--- grub2-1.98+20100804.orig/config.h.in +++ grub2-1.98+20100804/config.h.in @@ -0,0 +1,261 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define it if GAS requires that absolute indirect calls/jumps are not + prefixed with an asterisk */ +#undef ABSOLUTE_WITHOUT_ASTERISK + +/* Define if building universal (internal helper macro) */ +#undef AC_APPLE_UNIVERSAL_BUILD + +/* Define it to \"addr32\" or \"addr32;\" to make GAS happy */ +#undef ADDR32 + +/* Define it to one of __bss_start, edata and _edata */ +#undef BSS_START_SYMBOL + +/* Define it to \"data32\" or \"data32;\" to make GAS happy */ +#undef DATA32 + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +#undef ENABLE_NLS + +/* Define it to either end or _end */ +#undef END_SYMBOL + +/* Define if C symbols get an underscore after compilation */ +#undef HAVE_ASM_USCORE + +/* Define to 1 if you have the `asprintf' function. */ +#undef HAVE_ASPRINTF + +/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the + CoreFoundation framework. */ +#undef HAVE_CFLOCALECOPYCURRENT + +/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in + the CoreFoundation framework. */ +#undef HAVE_CFPREFERENCESCOPYAPPVALUE + +/* Define to 1 if you have the header file. */ +#undef HAVE_CURSES_H + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +#undef HAVE_DCGETTEXT + +/* Define to 1 if you have the devmapper library. */ +#undef HAVE_DEVICE_MAPPER + +/* Define to 1 if you have the header file. */ +#undef HAVE_FT2BUILD_H + +/* Define to 1 if you have the `getfsstat' function. */ +#undef HAVE_GETFSSTAT + +/* Define to 1 if you have the `getmntany' function. */ +#undef HAVE_GETMNTANY + +/* Define if getrawpartition() in -lutil can be used */ +#undef HAVE_GETRAWPARTITION + +/* Define if the GNU gettext() function is already present or preinstalled. */ +#undef HAVE_GETTEXT + +/* Define if you have the iconv() function and it works. */ +#undef HAVE_ICONV + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the NVPAIR library. */ +#undef HAVE_LIBNVPAIR + +/* Define to 1 if you have the header file. */ +#undef HAVE_LIBNVPAIR_H + +/* Define to 1 if you have the ZFS library. */ +#undef HAVE_LIBZFS + +/* Define to 1 if you have the header file. */ +#undef HAVE_LIBZFS_H + +/* Define to 1 if you have the `memalign' function. */ +#undef HAVE_MEMALIGN + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_NCURSES_CURSES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_NCURSES_H + +/* Define if opendisk() in -lutil can be used */ +#undef HAVE_OPENDISK + +/* Define to 1 if you have the header file. */ +#undef HAVE_PCI_PCI_H + +/* Define to 1 if you have the `posix_memalign' function. */ +#undef HAVE_POSIX_MEMALIGN + +/* Define to 1 if you have the header file. */ +#undef HAVE_SDL_SDL_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_USB_H + +/* Define to 1 if you have the `vasprintf' function. */ +#undef HAVE_VASPRINTF + +/* Define to 1 if you have the `_restgpr_14_x' function. */ +#undef HAVE__RESTGPR_14_X + +/* Define to 1 if you have the `__ashldi3' function. */ +#undef HAVE___ASHLDI3 + +/* Define to 1 if you have the `__ashrdi3' function. */ +#undef HAVE___ASHRDI3 + +/* Define to 1 if you have the `__bswapdi2' function. */ +#undef HAVE___BSWAPDI2 + +/* Define to 1 if you have the `__bswapsi2' function. */ +#undef HAVE___BSWAPSI2 + +/* Define to 1 if you have the `__lshrdi3' function. */ +#undef HAVE___LSHRDI3 + +/* Define to 1 if you have the `__trampoline_setup' function. */ +#undef HAVE___TRAMPOLINE_SETUP + +/* Define to 1 if you have the `__ucmpdi2' function. */ +#undef HAVE___UCMPDI2 + +/* Define to 1 if you enable memory manager debugging. */ +#undef MM_DEBUG + +/* Define to 1 if GCC generates calls to __enable_execute_stack() */ +#undef NEED_ENABLE_EXECUTE_STACK + +/* Define to 1 if GCC generates calls to __register_frame_info() */ +#undef NEED_REGISTER_FRAME_INFO + +/* Catch gcc bug */ +#undef NESTED_FUNC_ATTR + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* The size of `long', as computed by sizeof. */ +#undef SIZEOF_LONG + +/* The size of `void *', as computed by sizeof. */ +#undef SIZEOF_VOID_P + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# undef _POSIX_PTHREAD_SEMANTICS +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# undef _TANDEM_SOURCE +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif + + +/* Version number of package */ +#undef VERSION + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +# undef WORDS_BIGENDIAN +# endif +#endif + +/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a + `char[]'. */ +#undef YYTEXT_POINTER + +/* Number of bits in a file offset, on hosts where this is settable. */ +#undef _FILE_OFFSET_BITS + +/* Define for large files, on AIX-style hosts. */ +#undef _LARGE_FILES + +/* Define to 1 if on MINIX. */ +#undef _MINIX + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +#undef _POSIX_1_SOURCE + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +#undef _POSIX_SOURCE + +#if defined(__i386__) && !defined(GRUB_UTIL) +#define NESTED_FUNC_ATTR __attribute__ ((__regparm__ (1))) +#else +#define NESTED_FUNC_ATTR +#endif --- grub2-1.98+20100804.orig/aclocal.m4 +++ grub2-1.98+20100804/aclocal.m4 @@ -13,8 +13,8 @@ m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],, -[m4_warning([this file was generated for autoconf 2.65. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, +[m4_warning([this file was generated for autoconf 2.67. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) --- grub2-1.98+20100804.orig/config.guess +++ grub2-1.98+20100804/config.guess @@ -0,0 +1,1502 @@ +#! /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, 2010 +# Free Software Foundation, Inc. + +timestamp='2009-12-30' + +# 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, 2009, 2010 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:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + 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*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + 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:*:*) + LIBC=gnu + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + 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 | grep '^CPU'` + 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: --- grub2-1.98+20100804.orig/DISTLIST +++ grub2-1.98+20100804/DISTLIST @@ -0,0 +1,823 @@ +AUTHORS +COPYING +ChangeLog +DISTLIST +INSTALL +NEWS +README +THANKS +TODO +Makefile.in +aclocal.m4 +autogen.sh +config.guess +config.h.in +config.sub +configure +configure.ac +gencmdlist.sh +gendistlist.sh +genfslist.sh +genhandlerlist.sh +geninit.sh +geninitheader.sh +genkernsyms.sh.in +genmk.rb +genmoddep.awk +genmodsrc.sh +genpartmaplist.sh +genparttoollist.sh +genvideolist.sh +gensymlist.sh.in +install-sh +mkinstalldirs +stamp-h.in +boot/i386/pc/boot.S +boot/i386/pc/cdboot.S +boot/i386/pc/diskboot.S +boot/i386/pc/lnxboot.S +boot/i386/pc/pxeboot.S +boot/i386/qemu/boot.S +boot/mips/yeeloong/fwstart.S +boot/sparc64/ieee1275/boot.S +boot/sparc64/ieee1275/diskboot.S +bus/bonito.c +bus/cs5536.c +bus/pci.c +bus/emu/pci.c +bus/usb/ohci.c +bus/usb/uhci.c +bus/usb/usb.c +bus/usb/usbhub.c +bus/usb/usbtrans.c +bus/usb/emu/usb.c +commands/acpi.c +commands/blocklist.c +commands/boot.c +commands/cat.c +commands/cmp.c +commands/configfile.c +commands/crc.c +commands/date.c +commands/echo.c +commands/extcmd.c +commands/gptsync.c +commands/halt.c +commands/hashsum.c +commands/hdparm.c +commands/help.c +commands/hexdump.c +commands/iorw.c +commands/keystatus.c +commands/loadenv.c +commands/ls.c +commands/lsmmap.c +commands/lspci.c +commands/memrw.c +commands/minicmd.c +commands/parttool.c +commands/password.c +commands/password_pbkdf2.c +commands/probe.c +commands/read.c +commands/reboot.c +commands/regexp.c +commands/search.c +commands/search_file.c +commands/search_label.c +commands/search_uuid.c +commands/search_wrap.c +commands/setpci.c +commands/sleep.c +commands/terminal.c +commands/test.c +commands/true.c +commands/usbtest.c +commands/videotest.c +commands/xnu_uuid.c +commands/efi/acpi.c +commands/efi/fixvideo.c +commands/efi/loadbios.c +commands/i386/cmostest.c +commands/i386/cpuid.c +commands/i386/pc/acpi.c +commands/i386/pc/drivemap.c +commands/i386/pc/drivemap_int13h.S +commands/i386/pc/halt.c +commands/i386/pc/play.c +commands/i386/pc/pxecmd.c +commands/i386/pc/vbeinfo.c +commands/i386/pc/vbetest.c +commands/ieee1275/suspend.c +commands/mips/yeeloong/lsspd.c +conf/any-emu.mk +conf/any-emu.rmk +conf/common.mk +conf/common.rmk +conf/gcry.mk +conf/gcry.rmk +conf/i386-coreboot.mk +conf/i386-coreboot.rmk +conf/i386-efi.mk +conf/i386-efi.rmk +conf/i386-ieee1275.mk +conf/i386-ieee1275.rmk +conf/i386-multiboot.mk +conf/i386-multiboot.rmk +conf/i386-pc-cygwin-img-ld.sc +conf/i386-pc.mk +conf/i386-pc.rmk +conf/i386-qemu.mk +conf/i386-qemu.rmk +conf/i386.mk +conf/i386.rmk +conf/mips-qemu-mips.mk +conf/mips-qemu-mips.rmk +conf/mips-yeeloong.mk +conf/mips-yeeloong.rmk +conf/mips.mk +conf/mips.rmk +conf/powerpc-ieee1275.mk +conf/powerpc-ieee1275.rmk +conf/sparc64-ieee1275.mk +conf/sparc64-ieee1275.rmk +conf/tests.mk +conf/tests.rmk +conf/x86-efi.mk +conf/x86-efi.rmk +conf/x86_64-efi.mk +conf/x86_64-efi.rmk +disk/ata.c +disk/ata_pthru.c +disk/dmraid_nvidia.c +disk/host.c +disk/loopback.c +disk/lvm.c +disk/mdraid_linux.c +disk/memdisk.c +disk/raid.c +disk/raid5_recover.c +disk/raid6_recover.c +disk/scsi.c +disk/usbms.c +disk/efi/efidisk.c +disk/i386/pc/biosdisk.c +disk/ieee1275/nand.c +disk/ieee1275/ofdisk.c +docs/fdl.texi +docs/grub.cfg +docs/grub.texi +docs/mdate-sh +docs/texinfo.tex +efiemu/loadcore.c +efiemu/loadcore32.c +efiemu/loadcore64.c +efiemu/loadcore_common.c +efiemu/main.c +efiemu/mm.c +efiemu/pnvram.c +efiemu/prepare.c +efiemu/prepare32.c +efiemu/prepare64.c +efiemu/symbols.c +efiemu/i386/coredetect.c +efiemu/i386/loadcore32.c +efiemu/i386/loadcore64.c +efiemu/i386/pc/cfgtables.c +efiemu/runtime/config.h +efiemu/runtime/efiemu.S +efiemu/runtime/efiemu.c +efiemu/runtime/efiemu.sh +font/font.c +font/font_cmd.c +fs/affs.c +fs/afs.c +fs/afs_be.c +fs/befs.c +fs/befs_be.c +fs/cpio.c +fs/ext2.c +fs/fat.c +fs/fshelp.c +fs/hfs.c +fs/hfsplus.c +fs/iso9660.c +fs/jfs.c +fs/minix.c +fs/nilfs2.c +fs/ntfs.c +fs/ntfscomp.c +fs/reiserfs.c +fs/sfs.c +fs/tar.c +fs/udf.c +fs/ufs.c +fs/ufs2.c +fs/xfs.c +fs/i386/pc/pxe.c +hello/hello.c +hook/datehook.c +include/multiboot.h +include/multiboot2.h +include/grub/acorn_filecore.h +include/grub/acpi.h +include/grub/aout.h +include/grub/at_keyboard.h +include/grub/ata.h +include/grub/auth.h +include/grub/autoefi.h +include/grub/bitmap.h +include/grub/bitmap_scale.h +include/grub/boot.h +include/grub/bsdlabel.h +include/grub/bufio.h +include/grub/cache.h +include/grub/charset.h +include/grub/cmos.h +include/grub/command.h +include/grub/crypto.h +include/grub/cs5536.h +include/grub/datetime.h +include/grub/device.h +include/grub/disk.h +include/grub/dl.h +include/grub/elf.h +include/grub/elfload.h +include/grub/env.h +include/grub/env_private.h +include/grub/err.h +include/grub/extcmd.h +include/grub/fbblit.h +include/grub/fbfill.h +include/grub/fbutil.h +include/grub/file.h +include/grub/font.h +include/grub/fontformat.h +include/grub/fs.h +include/grub/fshelp.h +include/grub/gfxmenu_model.h +include/grub/gfxmenu_view.h +include/grub/gfxterm.h +include/grub/gfxwidgets.h +include/grub/gpt_partition.h +include/grub/gui.h +include/grub/gui_string_util.h +include/grub/gzio.h +include/grub/hfs.h +include/grub/i18n.h +include/grub/icon_manager.h +include/grub/kernel.h +include/grub/libgcc.h +include/grub/libpciaccess.h +include/grub/libusb.h +include/grub/list.h +include/grub/loader.h +include/grub/lvm.h +include/grub/macho.h +include/grub/machoload.h +include/grub/memory.h +include/grub/menu.h +include/grub/menu_viewer.h +include/grub/misc.h +include/grub/mm.h +include/grub/msdos_partition.h +include/grub/multiboot.h +include/grub/multiboot_loader.h +include/grub/net.h +include/grub/normal.h +include/grub/ntfs.h +include/grub/offsets.h +include/grub/parser.h +include/grub/partition.h +include/grub/parttool.h +include/grub/pci.h +include/grub/pciutils.h +include/grub/raid.h +include/grub/reader.h +include/grub/script_sh.h +include/grub/scsi.h +include/grub/scsicmd.h +include/grub/sdl.h +include/grub/search.h +include/grub/serial.h +include/grub/setjmp.h +include/grub/smbus.h +include/grub/symbol.h +include/grub/term.h +include/grub/terminfo.h +include/grub/test.h +include/grub/time.h +include/grub/tparm.h +include/grub/trig.h +include/grub/types.h +include/grub/unicode.h +include/grub/usb.h +include/grub/usbdesc.h +include/grub/usbtrans.h +include/grub/vga.h +include/grub/video.h +include/grub/video_fb.h +include/grub/xnu.h +include/grub/efi/api.h +include/grub/efi/console.h +include/grub/efi/console_control.h +include/grub/efi/disk.h +include/grub/efi/efi.h +include/grub/efi/graphics_output.h +include/grub/efi/memory.h +include/grub/efi/pe32.h +include/grub/efi/time.h +include/grub/efi/uga_draw.h +include/grub/efiemu/efiemu.h +include/grub/efiemu/runtime.h +include/grub/emu/console.h +include/grub/emu/getroot.h +include/grub/emu/hostdisk.h +include/grub/emu/misc.h +include/grub/i386/at_keyboard.h +include/grub/i386/bsd.h +include/grub/i386/cmos.h +include/grub/i386/cpuid.h +include/grub/i386/efiemu.h +include/grub/i386/freebsd_linker.h +include/grub/i386/freebsd_reboot.h +include/grub/i386/io.h +include/grub/i386/linux.h +include/grub/i386/loader.h +include/grub/i386/macho.h +include/grub/i386/memory.h +include/grub/i386/multiboot.h +include/grub/i386/netbsd_bootinfo.h +include/grub/i386/netbsd_reboot.h +include/grub/i386/openbsd_bootarg.h +include/grub/i386/openbsd_reboot.h +include/grub/i386/pci.h +include/grub/i386/pit.h +include/grub/i386/relocator.h +include/grub/i386/setjmp.h +include/grub/i386/time.h +include/grub/i386/tsc.h +include/grub/i386/types.h +include/grub/i386/vga_common.h +include/grub/i386/xnu.h +include/grub/i386/coreboot/boot.h +include/grub/i386/coreboot/console.h +include/grub/i386/coreboot/init.h +include/grub/i386/coreboot/loader.h +include/grub/i386/coreboot/memory.h +include/grub/i386/coreboot/serial.h +include/grub/i386/coreboot/time.h +include/grub/i386/efi/loader.h +include/grub/i386/efi/memory.h +include/grub/i386/efi/serial.h +include/grub/i386/efi/time.h +include/grub/i386/ieee1275/ieee1275.h +include/grub/i386/ieee1275/loader.h +include/grub/i386/ieee1275/memory.h +include/grub/i386/ieee1275/serial.h +include/grub/i386/ieee1275/time.h +include/grub/i386/multiboot/boot.h +include/grub/i386/multiboot/console.h +include/grub/i386/multiboot/init.h +include/grub/i386/multiboot/kernel.h +include/grub/i386/multiboot/loader.h +include/grub/i386/multiboot/memory.h +include/grub/i386/multiboot/serial.h +include/grub/i386/multiboot/time.h +include/grub/i386/pc/biosdisk.h +include/grub/i386/pc/biosnum.h +include/grub/i386/pc/boot.h +include/grub/i386/pc/chainloader.h +include/grub/i386/pc/console.h +include/grub/i386/pc/efiemu.h +include/grub/i386/pc/init.h +include/grub/i386/pc/kernel.h +include/grub/i386/pc/loader.h +include/grub/i386/pc/memory.h +include/grub/i386/pc/pxe.h +include/grub/i386/pc/time.h +include/grub/i386/pc/vbe.h +include/grub/i386/pc/vga.h +include/grub/i386/qemu/boot.h +include/grub/i386/qemu/console.h +include/grub/i386/qemu/init.h +include/grub/i386/qemu/kernel.h +include/grub/i386/qemu/loader.h +include/grub/i386/qemu/memory.h +include/grub/i386/qemu/serial.h +include/grub/i386/qemu/time.h +include/grub/ieee1275/console.h +include/grub/ieee1275/ieee1275.h +include/grub/ieee1275/ofdisk.h +include/grub/lib/LzFind.h +include/grub/lib/LzHash.h +include/grub/lib/LzmaDec.h +include/grub/lib/LzmaEnc.h +include/grub/lib/LzmaTypes.h +include/grub/lib/arg.h +include/grub/lib/crc.h +include/grub/lib/envblk.h +include/grub/lib/hexdump.h +include/grub/mips/at_keyboard.h +include/grub/mips/cache.h +include/grub/mips/cmos.h +include/grub/mips/io.h +include/grub/mips/loongson.h +include/grub/mips/multiboot.h +include/grub/mips/pci.h +include/grub/mips/relocator.h +include/grub/mips/setjmp.h +include/grub/mips/time.h +include/grub/mips/types.h +include/grub/mips/qemu-mips/kernel.h +include/grub/mips/qemu-mips/loader.h +include/grub/mips/qemu-mips/memory.h +include/grub/mips/qemu-mips/serial.h +include/grub/mips/qemu-mips/time.h +include/grub/mips/yeeloong/at_keyboard.h +include/grub/mips/yeeloong/cmos.h +include/grub/mips/yeeloong/ec.h +include/grub/mips/yeeloong/kernel.h +include/grub/mips/yeeloong/loader.h +include/grub/mips/yeeloong/memory.h +include/grub/mips/yeeloong/pci.h +include/grub/mips/yeeloong/serial.h +include/grub/mips/yeeloong/time.h +include/grub/powerpc/kernel.h +include/grub/powerpc/setjmp.h +include/grub/powerpc/time.h +include/grub/powerpc/types.h +include/grub/powerpc/ieee1275/biosdisk.h +include/grub/powerpc/ieee1275/ieee1275.h +include/grub/powerpc/ieee1275/loader.h +include/grub/powerpc/ieee1275/memory.h +include/grub/powerpc/ieee1275/time.h +include/grub/powerpc/ieee1275/util/biosdisk.h +include/grub/sparc64/setjmp.h +include/grub/sparc64/time.h +include/grub/sparc64/types.h +include/grub/sparc64/ieee1275/boot.h +include/grub/sparc64/ieee1275/ieee1275.h +include/grub/sparc64/ieee1275/kernel.h +include/grub/sparc64/ieee1275/loader.h +include/grub/sparc64/ieee1275/memory.h +include/grub/sparc64/ieee1275/time.h +include/grub/util/deviceiter.h +include/grub/util/libnvpair.h +include/grub/util/libzfs.h +include/grub/util/lvm.h +include/grub/util/misc.h +include/grub/util/ofpath.h +include/grub/util/raid.h +include/grub/util/resolve.h +include/grub/x86_64/at_keyboard.h +include/grub/x86_64/io.h +include/grub/x86_64/linux.h +include/grub/x86_64/macho.h +include/grub/x86_64/multiboot.h +include/grub/x86_64/pci.h +include/grub/x86_64/relocator.h +include/grub/x86_64/setjmp.h +include/grub/x86_64/time.h +include/grub/x86_64/types.h +include/grub/x86_64/xnu.h +include/grub/x86_64/efi/boot.h +include/grub/x86_64/efi/loader.h +include/grub/x86_64/efi/memory.h +include/grub/x86_64/efi/serial.h +include/grub/x86_64/efi/time.h +io/bufio.c +io/gzio.c +kern/command.c +kern/corecmd.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 +kern/list.c +kern/main.c +kern/misc.c +kern/mm.c +kern/parser.c +kern/partition.c +kern/rescue_parser.c +kern/rescue_reader.c +kern/term.c +kern/time.c +kern/efi/efi.c +kern/efi/init.c +kern/efi/mm.c +kern/emu/console.c +kern/emu/getroot.c +kern/emu/hostdisk.c +kern/emu/hostfs.c +kern/emu/main.c +kern/emu/misc.c +kern/emu/mm.c +kern/emu/time.c +kern/generic/millisleep.c +kern/generic/rtc_get_time_ms.c +kern/i386/dl.c +kern/i386/halt.c +kern/i386/loader.S +kern/i386/misc.S +kern/i386/multiboot_mmap.c +kern/i386/pit.c +kern/i386/realmode.S +kern/i386/tsc.c +kern/i386/coreboot/init.c +kern/i386/coreboot/mmap.c +kern/i386/coreboot/startup.S +kern/i386/efi/init.c +kern/i386/efi/startup.S +kern/i386/ieee1275/init.c +kern/i386/ieee1275/startup.S +kern/i386/pc/init.c +kern/i386/pc/lzma_decode.S +kern/i386/pc/mmap.c +kern/i386/pc/startup.S +kern/i386/qemu/init.c +kern/i386/qemu/mmap.c +kern/i386/qemu/startup.S +kern/ieee1275/cmain.c +kern/ieee1275/ieee1275.c +kern/ieee1275/init.c +kern/ieee1275/mmap.c +kern/ieee1275/openfw.c +kern/mips/cache.S +kern/mips/cache_flush.S +kern/mips/dl.c +kern/mips/init.c +kern/mips/startup.S +kern/mips/qemu-mips/init.c +kern/mips/yeeloong/init.c +kern/powerpc/cache.S +kern/powerpc/dl.c +kern/powerpc/ieee1275/startup.S +kern/sparc64/cache.S +kern/sparc64/dl.c +kern/sparc64/ieee1275/crt0.S +kern/sparc64/ieee1275/ieee1275.c +kern/sparc64/ieee1275/init.c +kern/x86_64/dl.c +kern/x86_64/efi/callwrap.S +kern/x86_64/efi/startup.S +lib/LzFind.c +lib/LzmaDec.c +lib/LzmaEnc.c +lib/arg.c +lib/cmos_datetime.c +lib/crc.c +lib/crypto.c +lib/envblk.c +lib/hexdump.c +lib/pbkdf2.c +lib/relocator.c +lib/efi/datetime.c +lib/i386/relocator.c +lib/i386/relocator_asm.S +lib/i386/relocator_backward.S +lib/i386/setjmp.S +lib/i386/pc/biosnum.c +lib/ieee1275/datetime.c +lib/libgcrypt-grub/cipher/arcfour.c +lib/libgcrypt-grub/cipher/bithelp.h +lib/libgcrypt-grub/cipher/blowfish.c +lib/libgcrypt-grub/cipher/camellia-glue.c +lib/libgcrypt-grub/cipher/camellia.c +lib/libgcrypt-grub/cipher/camellia.h +lib/libgcrypt-grub/cipher/cast5.c +lib/libgcrypt-grub/cipher/cipher.h +lib/libgcrypt-grub/cipher/crc.c +lib/libgcrypt-grub/cipher/des.c +lib/libgcrypt-grub/cipher/dsa.c +lib/libgcrypt-grub/cipher/ecc.c +lib/libgcrypt-grub/cipher/elgamal.c +lib/libgcrypt-grub/cipher/g10lib.h +lib/libgcrypt-grub/cipher/hash-common.h +lib/libgcrypt-grub/cipher/md4.c +lib/libgcrypt-grub/cipher/md5.c +lib/libgcrypt-grub/cipher/memory.h +lib/libgcrypt-grub/cipher/primegen.c +lib/libgcrypt-grub/cipher/rfc2268.c +lib/libgcrypt-grub/cipher/rijndael-tables.h +lib/libgcrypt-grub/cipher/rijndael.c +lib/libgcrypt-grub/cipher/rmd.h +lib/libgcrypt-grub/cipher/rmd160.c +lib/libgcrypt-grub/cipher/rsa.c +lib/libgcrypt-grub/cipher/seed.c +lib/libgcrypt-grub/cipher/serpent.c +lib/libgcrypt-grub/cipher/sha1.c +lib/libgcrypt-grub/cipher/sha256.c +lib/libgcrypt-grub/cipher/sha512.c +lib/libgcrypt-grub/cipher/tiger.c +lib/libgcrypt-grub/cipher/twofish.c +lib/libgcrypt-grub/cipher/types.h +lib/libgcrypt-grub/cipher/whirlpool.c +lib/libgcrypt/cipher/ac.c +lib/libgcrypt/cipher/arcfour.c +lib/libgcrypt/cipher/bithelp.h +lib/libgcrypt/cipher/blowfish.c +lib/libgcrypt/cipher/camellia-glue.c +lib/libgcrypt/cipher/camellia.c +lib/libgcrypt/cipher/camellia.h +lib/libgcrypt/cipher/cast5.c +lib/libgcrypt/cipher/cipher.c +lib/libgcrypt/cipher/crc.c +lib/libgcrypt/cipher/des.c +lib/libgcrypt/cipher/dsa.c +lib/libgcrypt/cipher/ecc.c +lib/libgcrypt/cipher/elgamal.c +lib/libgcrypt/cipher/hash-common.c +lib/libgcrypt/cipher/hash-common.h +lib/libgcrypt/cipher/hmac-tests.c +lib/libgcrypt/cipher/md.c +lib/libgcrypt/cipher/md4.c +lib/libgcrypt/cipher/md5.c +lib/libgcrypt/cipher/primegen.c +lib/libgcrypt/cipher/pubkey.c +lib/libgcrypt/cipher/rfc2268.c +lib/libgcrypt/cipher/rijndael-tables.h +lib/libgcrypt/cipher/rijndael.c +lib/libgcrypt/cipher/rmd.h +lib/libgcrypt/cipher/rmd160.c +lib/libgcrypt/cipher/rsa.c +lib/libgcrypt/cipher/seed.c +lib/libgcrypt/cipher/serpent.c +lib/libgcrypt/cipher/sha1.c +lib/libgcrypt/cipher/sha256.c +lib/libgcrypt/cipher/sha512.c +lib/libgcrypt/cipher/tiger.c +lib/libgcrypt/cipher/twofish.c +lib/libgcrypt/cipher/whirlpool.c +lib/libgcrypt_wrap/cipher_wrap.h +lib/mips/relocator.c +lib/mips/relocator_asm.S +lib/mips/setjmp.S +lib/posix_wrap/assert.h +lib/posix_wrap/ctype.h +lib/posix_wrap/errno.h +lib/posix_wrap/langinfo.h +lib/posix_wrap/limits.h +lib/posix_wrap/localcharset.h +lib/posix_wrap/locale.h +lib/posix_wrap/stdint.h +lib/posix_wrap/stdio.h +lib/posix_wrap/stdlib.h +lib/posix_wrap/string.h +lib/posix_wrap/unistd.h +lib/posix_wrap/wchar.h +lib/posix_wrap/wctype.h +lib/posix_wrap/sys/types.h +lib/powerpc/setjmp.S +lib/sparc64/setjmp.S +lib/x86_64/setjmp.S +loader/aout.c +loader/macho.c +loader/macho32.c +loader/macho64.c +loader/machoXX.c +loader/multiboot.c +loader/multiboot_elfxx.c +loader/multiboot_mbi2.c +loader/xnu.c +loader/xnu_resume.c +loader/efi/appleloader.c +loader/efi/chainloader.c +loader/i386/bsd.c +loader/i386/bsd32.c +loader/i386/bsd64.c +loader/i386/bsdXX.c +loader/i386/bsd_helper.S +loader/i386/bsd_pagetable.c +loader/i386/bsd_trampoline.S +loader/i386/linux.c +loader/i386/linux_trampoline.S +loader/i386/multiboot_mbi.c +loader/i386/xnu.c +loader/i386/efi/linux.c +loader/i386/ieee1275/linux.c +loader/i386/pc/chainloader.c +loader/i386/pc/linux.c +loader/mips/linux.c +loader/powerpc/ieee1275/linux.c +loader/sparc64/ieee1275/linux.c +mmap/mmap.c +mmap/efi/mmap.c +mmap/i386/mmap.c +mmap/i386/uppermem.c +mmap/i386/pc/mmap.c +mmap/i386/pc/mmap_helper.S +mmap/mips/yeeloong/uppermem.c +normal/auth.c +normal/autofs.c +normal/charset.c +normal/cmdline.c +normal/color.c +normal/completion.c +normal/context.c +normal/crypto.c +normal/datetime.c +normal/dyncmd.c +normal/main.c +normal/menu.c +normal/menu_entry.c +normal/menu_text.c +normal/misc.c +normal/term.c +partmap/acorn.c +partmap/amiga.c +partmap/apple.c +partmap/bsdlabel.c +partmap/gpt.c +partmap/msdos.c +partmap/sun.c +partmap/sunpc.c +parttool/msdospart.c +script/execute.c +script/function.c +script/lexer.c +script/main.c +script/parser.y +script/script.c +term/at_keyboard.c +term/gfxterm.c +term/serial.c +term/terminfo.c +term/tparm.c +term/usb_keyboard.c +term/efi/console.c +term/i386/vga_common.c +term/i386/pc/console.c +term/i386/pc/vga_text.c +term/ieee1275/ofconsole.c +util/bin2h.c +util/deviceiter.c +util/devicemap.c +util/grub-editenv.c +util/grub-fstest.c +util/grub-install.in +util/grub-macho2img.c +util/grub-mkconfig.in +util/grub-mkconfig_lib.in +util/grub-mkdevicemap.c +util/grub-mkfont.c +util/grub-mkimage.c +util/grub-mkimagexx.c +util/grub-mkpasswd-pbkdf2.c +util/grub-mkrelpath.c +util/grub-mkrescue.in +util/grub-pe2elf.c +util/grub-probe.c +util/grub-reboot.in +util/grub-script-check.c +util/grub-set-default.in +util/lvm.c +util/misc.c +util/raid.c +util/resolve.c +util/update-grub_lib.in +util/grub.d/00_header.in +util/grub.d/10_hurd.in +util/grub.d/10_kfreebsd.in +util/grub.d/10_linux.in +util/grub.d/10_netbsd.in +util/grub.d/10_windows.in +util/grub.d/20_linux_xen.in +util/grub.d/30_os-prober.in +util/grub.d/40_custom.in +util/grub.d/41_custom.in +util/grub.d/README +util/i386/efi/grub-dumpdevtree +util/i386/efi/grub-install.in +util/i386/pc/grub-setup.c +util/ieee1275/devicemap.c +util/ieee1275/grub-install.in +util/ieee1275/grub-ofpathname.c +util/ieee1275/ofpath.c +util/powerpc/ieee1275/grub-mkrescue.in +util/sparc64/ieee1275/grub-setup.c +video/bitmap.c +video/bitmap_scale.c +video/bochs.c +video/cirrus.c +video/efi_gop.c +video/efi_uga.c +video/ieee1275.c +video/sm712.c +video/sm712_init.c +video/video.c +video/emu/sdl.c +video/fb/fbblit.c +video/fb/fbfill.c +video/fb/fbutil.c +video/fb/video_fb.c +video/i386/pc/vbe.c +video/i386/pc/vga.c +video/readers/jpeg.c +video/readers/png.c +video/readers/tga.c --- grub2-1.98+20100804.orig/install-sh +++ grub2-1.98+20100804/install-sh @@ -0,0 +1,520 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2009-04-28.21; # UTC + +# 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-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: --- grub2-1.98+20100804.orig/config.sub +++ grub2-1.98+20100804/config.sub @@ -0,0 +1,1714 @@ +#! /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, 2010 +# Free Software Foundation, Inc. + +timestamp='2010-01-22' + +# 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, 2009, 2010 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 \ + | ubicom32 \ + | 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-* | tilegx-* \ + | tron-* \ + | ubicom32-* \ + | 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 + ;; + # This must be matched before tile*. + tilegx*) + basic_machine=tilegx-unknown + os=-linux-gnu + ;; + 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. + -auroraux) + os=-auroraux + ;; + -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* | -auroraux* | -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 + ;; + -nacl*) + ;; + -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: --- grub2-1.98+20100804.orig/missing +++ grub2-1.98+20100804/missing @@ -0,0 +1,376 @@ +#! /bin/sh +# Common stub for a few missing GNU programs while installing. + +scriptversion=2009-04-28.21; # UTC + +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, +# 2008, 2009 Free Software Foundation, Inc. +# Originally by Fran,cois Pinard , 1996. + +# This program 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, 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, see . + +# 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. + +if test $# -eq 0; then + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 +fi + +run=: +sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' +sed_minuso='s/.* -o \([^ ]*\).*/\1/p' + +# In the cases where this matters, `missing' is being run in the +# srcdir already. +if test -f configure.ac; then + configure_ac=configure.ac +else + configure_ac=configure.in +fi + +msg="missing on your system" + +case $1 in +--run) + # Try to run requested program, and just exit if it succeeds. + run= + shift + "$@" && exit 0 + # Exit code 63 means version mismatch. This often happens + # when the user try to use an ancient version of a tool on + # a file that requires a minimum version. In this case we + # we should proceed has if the program had been absent, or + # if --run hadn't been passed. + if test $? = 63; then + run=: + msg="probably too old" + fi + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + --run try to run the given command, and emulate it if it fails + +Supported PROGRAM values: + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + autom4te touch the output file, or create a stub one + automake touch all \`Makefile.in' files + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c + help2man touch the output file + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + tar try tar, gnutar, gtar, then tar without non-portable flags + yacc create \`y.tab.[ch]', if possible, from existing .[ch] + +Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and +\`g' are ignored when checking the name. + +Send bug reports to ." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: Unknown \`$1' option" + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 + ;; + +esac + +# normalize program name to check for. +program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + +# Now exit if we have it, but it failed. Also exit now if we +# don't have it and --version was passed (most likely to detect +# the program). This is about non-GNU programs, so use $1 not +# $program. +case $1 in + lex*|yacc*) + # Not GNU programs, they don't have --version. + ;; + + tar*) + if test -n "$run"; then + echo 1>&2 "ERROR: \`tar' requires --run" + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + exit 1 + fi + ;; + + *) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + # Could not run --version or --help. This is probably someone + # running `$TOOL --version' or `$TOOL --help' to check whether + # $TOOL exists and not knowing $TOOL uses missing. + exit 1 + fi + ;; +esac + +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case $program in + aclocal*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acinclude.m4' or \`${configure_ac}'. You might want + to install the \`Automake' and \`Perl' packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`${configure_ac}'. You might want to install the + \`Autoconf' and \`GNU m4' packages. Grab them from any GNU + archive site." + touch configure + ;; + + autoheader*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acconfig.h' or \`${configure_ac}'. You might want + to install the \`Autoconf' and \`GNU m4' packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case $f in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files + ;; + + automake*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. + You might want to install the \`Automake' and \`Perl' packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done + ;; + + autom4te*) + echo 1>&2 "\ +WARNING: \`$1' is needed, but is $msg. + You might have modified some files without having the + proper tools for further handling them. + You can get \`$1' as part of \`Autoconf' from any GNU + archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo "#! /bin/sh" + echo "# Created by GNU Automake missing as a replacement of" + echo "# $ $@" + echo "exit 0" + chmod +x $file + exit 1 + fi + ;; + + bison*|yacc*) + echo 1>&2 "\ +WARNING: \`$1' $msg. You should only need it if + you modified a \`.y' file. You may need the \`Bison' package + in order for those modifications to take effect. You can get + \`Bison' from any GNU archive site." + rm -f y.tab.c y.tab.h + if test $# -ne 1; then + eval LASTARG="\${$#}" + case $LASTARG in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if test ! -f y.tab.h; then + echo >y.tab.h + fi + if test ! -f y.tab.c; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex*|flex*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.l' file. You may need the \`Flex' package + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c + if test $# -ne 1; then + eval LASTARG="\${$#}" + case $LASTARG in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if test ! -f lex.yy.c; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + help2man*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a dependency of a manual page. You may need the + \`Help2man' package in order for those modifications to take + effect. You can get \`Help2man' from any GNU archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo ".ab help2man is required to generate this page" + exit $? + fi + ;; + + makeinfo*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.texi' or \`.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy \`make' (AIX, + DU, IRIX). You might want to install the \`Texinfo' package or + the \`GNU make' package. Grab either from any GNU archive site." + # The file to touch is that specified with -o ... + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -z "$file"; then + # ... or it is the one specified with @setfilename ... + infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n ' + /^@setfilename/{ + s/.* \([^ ]*\) *$/\1/ + p + q + }' $infile` + # ... or it is derived from the source name (dir/f.texi becomes f.info) + test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info + fi + # If the file does not exist, the user really needs makeinfo; + # let's fail without touching anything. + test -f $file || exit 1 + touch $file + ;; + + tar*) + shift + + # We have already tried tar in the generic part. + # Look for gnutar/gtar before invocation to avoid ugly error + # messages. + if (gnutar --version > /dev/null 2>&1); then + gnutar "$@" && exit 0 + fi + if (gtar --version > /dev/null 2>&1); then + gtar "$@" && exit 0 + fi + firstarg="$1" + if shift; then + case $firstarg in + *o*) + firstarg=`echo "$firstarg" | sed s/o//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + case $firstarg in + *h*) + firstarg=`echo "$firstarg" | sed s/h//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + fi + + echo 1>&2 "\ +WARNING: I can't seem to be able to run \`tar' with the given arguments. + You may want to install GNU tar or Free paxutils, or check the + command line arguments." + exit 1 + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and is $msg. + You might have modified some files without having the + proper tools for further handling them. Check the \`README' file, + it often tells you about the needed prerequisites for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing \`$1' program." + exit 1 + ;; +esac + +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: --- grub2-1.98+20100804.orig/stamp-h.in +++ grub2-1.98+20100804/stamp-h.in @@ -0,0 +1 @@ +timestamp --- grub2-1.98+20100804.orig/configure +++ grub2-1.98+20100804/configure @@ -1,13 +1,13 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.65 for GRUB 1.98+20100804-1. +# Generated by GNU Autoconf 2.67 for GRUB 1.98+20100804-13. # # Report bugs to . # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software +# Foundation, Inc. # # # This configure script is free software; the Free Software Foundation @@ -319,7 +319,7 @@ test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p @@ -359,19 +359,19 @@ fi # as_fn_arith -# as_fn_error ERROR [LINENO LOG_FD] -# --------------------------------- +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with status $?, using 1 if that was 0. +# script with STATUS, using 1 if that was 0. as_fn_error () { - as_status=$?; test $as_status -eq 0 && as_status=1 - if test "$3"; then - as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $1" >&2 + $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -533,7 +533,7 @@ exec 6>&1 # Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` @@ -552,8 +552,8 @@ # Identity of this package. PACKAGE_NAME='GRUB' PACKAGE_TARNAME='grub' -PACKAGE_VERSION='1.98+20100804-1' -PACKAGE_STRING='GRUB 1.98+20100804-1' +PACKAGE_VERSION='1.98+20100804-13' +PACKAGE_STRING='GRUB 1.98+20100804-13' PACKAGE_BUGREPORT='bug-grub@gnu.org' PACKAGE_URL='' @@ -842,8 +842,9 @@ fi case $ac_option in - *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *) ac_optarg=yes ;; + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. @@ -888,7 +889,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -914,7 +915,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1118,7 +1119,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1134,7 +1135,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1164,8 +1165,8 @@ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; - -*) as_fn_error "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information." + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" ;; *=*) @@ -1173,7 +1174,7 @@ # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error "invalid variable name: \`$ac_envvar'" ;; + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; @@ -1191,13 +1192,13 @@ if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error "missing argument to $ac_option" + as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; - fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi @@ -1220,7 +1221,7 @@ [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac - as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' @@ -1234,8 +1235,8 @@ if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 + $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1250,9 +1251,9 @@ ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error "working directory cannot be determined" + as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error "pwd does not report name of working directory" + as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. @@ -1291,11 +1292,11 @@ fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then @@ -1321,7 +1322,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures GRUB 1.98+20100804-1 to adapt to many kinds of systems. +\`configure' configures GRUB 1.98+20100804-13 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1335,7 +1336,7 @@ --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages + -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files @@ -1392,7 +1393,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of GRUB 1.98+20100804-1:";; + short | recursive ) echo "Configuration of GRUB 1.98+20100804-13:";; esac cat <<\_ACEOF @@ -1512,10 +1513,10 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -GRUB configure 1.98+20100804-1 -generated by GNU Autoconf 2.65 +GRUB configure 1.98+20100804-13 +generated by GNU Autoconf 2.67 -Copyright (C) 2009 Free Software Foundation, Inc. +Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1631,7 +1632,7 @@ mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } >/dev/null && { + test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : @@ -1655,10 +1656,10 @@ ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + if eval "test \"\${$3+set}\"" = set; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 @@ -1694,7 +1695,7 @@ else ac_header_preproc=no fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } @@ -1717,17 +1718,15 @@ $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( cat <<\_ASBOX -## ------------------------------- ## +( $as_echo "## ------------------------------- ## ## Report this to bug-grub@gnu.org ## -## ------------------------------- ## -_ASBOX +## ------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" @@ -1791,7 +1790,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1999,7 +1998,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -2061,8 +2060,8 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by GRUB $as_me 1.98+20100804-1, which was -generated by GNU Autoconf 2.65. Invocation command line was +It was created by GRUB $as_me 1.98+20100804-13, which was +generated by GNU Autoconf 2.67. Invocation command line was $ $0 $@ @@ -2172,11 +2171,9 @@ { echo - cat <<\_ASBOX -## ---------------- ## + $as_echo "## ---------------- ## ## Cache variables. ## -## ---------------- ## -_ASBOX +## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( @@ -2210,11 +2207,9 @@ ) echo - cat <<\_ASBOX -## ----------------- ## + $as_echo "## ----------------- ## ## Output variables. ## -## ----------------- ## -_ASBOX +## ----------------- ##" echo for ac_var in $ac_subst_vars do @@ -2227,11 +2222,9 @@ echo if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------------- ## + $as_echo "## ------------------- ## ## File substitutions. ## -## ------------------- ## -_ASBOX +## ------------------- ##" echo for ac_var in $ac_subst_files do @@ -2245,11 +2238,9 @@ fi if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## + $as_echo "## ----------- ## ## confdefs.h. ## -## ----------- ## -_ASBOX +## ----------- ##" echo cat confdefs.h echo @@ -2304,7 +2295,12 @@ ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - ac_site_file1=$CONFIG_SITE + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site @@ -2319,7 +2315,11 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5 ; } fi done @@ -2396,7 +2396,7 @@ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## @@ -2413,16 +2413,22 @@ ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - for ac_t in install-sh install.sh shtool; do - if test -f "$ac_dir/$ac_t"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/$ac_t -c" - break 2 - fi - done + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi done if test -z "$ac_aux_dir"; then - as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 + as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, @@ -2538,11 +2544,11 @@ ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) - as_fn_error "unsafe absolute working directory name" "$LINENO" 5;; + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; + as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;; esac # Do `set' in a subshell so we don't clobber the current shell's @@ -2564,7 +2570,7 @@ # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". - as_fn_error "ls -t appears to fail. Make sure there is not a broken + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi @@ -2574,7 +2580,7 @@ # Ok. : else - as_fn_error "newly created file is older than distributed files! + as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 @@ -2812,7 +2818,7 @@ $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF @@ -2820,7 +2826,7 @@ all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; @@ -2854,7 +2860,7 @@ am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then - as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi @@ -2870,7 +2876,7 @@ # Define the identity of the package. PACKAGE='grub' - VERSION='1.98+20100804-1' + VERSION='1.98+20100804-13' cat >>confdefs.h <<_ACEOF @@ -2918,7 +2924,7 @@ # Checks for host and target systems. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } @@ -2929,16 +2935,16 @@ test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && - as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; -*) as_fn_error "invalid value of canonical build" "$LINENO" 5;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' @@ -2963,7 +2969,7 @@ ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi @@ -2971,7 +2977,7 @@ $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; -*) as_fn_error "invalid value of canonical host" "$LINENO" 5;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' @@ -2996,7 +3002,7 @@ ac_cv_target=$ac_cv_host else ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || - as_fn_error "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 fi fi @@ -3004,7 +3010,7 @@ $as_echo "$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; -*) as_fn_error "invalid value of canonical target" "$LINENO" 5;; +*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5 ;; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' @@ -3070,7 +3076,7 @@ powerpc64-*) platform=ieee1275 ;; sparc64-*) platform=ieee1275 ;; mips-*) platform=yeeloong ;; - *) as_fn_error "unsupported CPU: \"$target_cpu\"" "$LINENO" 5 ;; + *) as_fn_error $? "unsupported CPU: \"$target_cpu\"" "$LINENO" 5 ;; esac else platform="$with_platform" @@ -3101,7 +3107,7 @@ mips-qemu-mips) ;; mips-yeeloong) ;; *-emu) ;; - *) as_fn_error "platform \"$platform\" is not supported for target CPU \"$target_cpu\"" "$LINENO" 5 ;; + *) as_fn_error $? "platform \"$platform\" is not supported for target CPU \"$target_cpu\"" "$LINENO" 5 ;; esac case "$target_cpu" in @@ -3201,7 +3207,7 @@ done if test "x$CMP" = x; then - as_fn_error "cmp is not found" "$LINENO" 5 + as_fn_error $? "cmp is not found" "$LINENO" 5 fi for ac_prog in bison @@ -3247,7 +3253,7 @@ done if test "x$YACC" = x; then - as_fn_error "bison is not found" "$LINENO" 5 + as_fn_error $? "bison is not found" "$LINENO" 5 fi FONT_SOURCE= @@ -3262,7 +3268,7 @@ done if test "x$FONT_SOURCE" = x && ( test "x$platform" = xqemu || test "x$platform" = xyeeloong ); then - as_fn_error "qemu and yeeloong ports need unifont" "$LINENO" 5 + as_fn_error $? "qemu and yeeloong ports need unifont" "$LINENO" 5 fi @@ -3672,8 +3678,8 @@ test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "no acceptable C compiler found in \$PATH -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5 ; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 @@ -3787,9 +3793,8 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "C compiler cannot create executables -See \`config.log' for more details." "$LINENO" 5; }; } +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5 ; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } @@ -3831,8 +3836,8 @@ else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5 ; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 @@ -3889,9 +3894,9 @@ else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot run C compiled programs. +as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. -See \`config.log' for more details." "$LINENO" 5; } +See \`config.log' for more details" "$LINENO" 5 ; } fi fi fi @@ -3942,8 +3947,8 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot compute suffix of object files: cannot compile -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5 ; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi @@ -4376,7 +4381,7 @@ elif test -f lexyy.c; then ac_cv_prog_lex_root=lexyy else - as_fn_error "cannot find output from $LEX; giving up" "$LINENO" 5 + as_fn_error $? "cannot find output from $LEX; giving up" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5 @@ -4452,7 +4457,7 @@ $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF @@ -4460,7 +4465,7 @@ all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; @@ -4482,13 +4487,13 @@ if test "x$LEX" = "x:"; then - as_fn_error "flex is not found" "$LINENO" 5 + as_fn_error $? "flex is not found" "$LINENO" 5 else version=`$LEX --version | $AWK '{ split($NF,x,"."); print x[1]*10000+x[2]*100+x[3]; }'` if test -n "$version" -a "$version" -ge 20535; then : else - as_fn_error "flex is too old. GRUB requires 2.5.35 or above" "$LINENO" 5 + as_fn_error $? "flex is too old. GRUB requires 2.5.35 or above" "$LINENO" 5 fi fi @@ -4878,8 +4883,8 @@ test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "no acceptable C compiler found in \$PATH -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5 ; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 @@ -5246,7 +5251,7 @@ # Must be GCC. -test "x$GCC" = xyes || as_fn_error "GCC is required" "$LINENO" 5 +test "x$GCC" = xyes || as_fn_error $? "GCC is required" "$LINENO" 5 ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -5290,7 +5295,7 @@ # Broken: fails on valid input. continue fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. @@ -5306,11 +5311,11 @@ ac_preproc_ok=: break fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext +rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi @@ -5349,7 +5354,7 @@ # Broken: fails on valid input. continue fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. @@ -5365,18 +5370,18 @@ ac_preproc_ok=: break fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext +rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5 ; } fi ac_ext=c @@ -5437,7 +5442,7 @@ done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then - as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP @@ -5503,7 +5508,7 @@ done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then - as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP @@ -5635,8 +5640,7 @@ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -6118,7 +6122,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi -test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${acl_cv_prog_gnu_ld+set}" = set; then : @@ -6836,7 +6840,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 $as_echo_n "checking for GNU gettext in libc... " >&6; } -if { as_var=$gt_func_gnugettext_libc; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval "test \"\${$gt_func_gnugettext_libc+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -7552,7 +7556,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 $as_echo_n "checking for GNU gettext in libintl... " >&6; } -if { as_var=$gt_func_gnugettext_libintl; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval "test \"\${$gt_func_gnugettext_libintl+set}\"" = set; then : $as_echo_n "(cached) " >&6 else gt_save_CPPFLAGS="$CPPFLAGS" @@ -8147,8 +8151,8 @@ ;; #( *) - as_fn_error "unknown endianness - presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; esac # The cast to long int works around a bug in the HP C Compiler @@ -8166,9 +8170,8 @@ if test "$ac_cv_type_void_p" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (void *) -See \`config.log' for more details." "$LINENO" 5; }; } +as_fn_error 77 "cannot compute sizeof (void *) +See \`config.log' for more details" "$LINENO" 5 ; } else ac_cv_sizeof_void_p=0 fi @@ -8200,9 +8203,8 @@ if test "$ac_cv_type_long" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "cannot compute sizeof (long) -See \`config.log' for more details." "$LINENO" 5; }; } +as_fn_error 77 "cannot compute sizeof (long) +See \`config.log' for more details" "$LINENO" 5 ; } else ac_cv_sizeof_long=0 fi @@ -8293,8 +8295,7 @@ do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF @@ -8306,8 +8307,7 @@ do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -8515,7 +8515,7 @@ done if test "x$ac_ct_TARGET_CC" = x; then - TARGET_CC="as_fn_error "none of gcc, egcs and cc is found. set TARGET_CC manually." "$LINENO" 5" + TARGET_CC="as_fn_error $? "none of gcc, egcs and cc is found. set TARGET_CC manually." "$LINENO" 5 " else case $cross_compiling:$ac_tool_warned in yes:) @@ -9285,7 +9285,7 @@ fi if test "x$OBJCONV" = x ; then - as_fn_error "objconv not found which is required when building with apple compiler" "$LINENO" 5 + as_fn_error $? "objconv not found which is required when building with apple compiler" "$LINENO" 5 fi TARGET_IMG_LDSCRIPT= TARGET_IMG_CFLAGS="-static" @@ -9375,7 +9375,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $grub_cv_cc_mcmodel" >&5 $as_echo "$grub_cv_cc_mcmodel" >&6; } if test "x$grub_cv_cc_mcmodel" = xno; then - as_fn_error "-mcmodel=large not supported. Upgrade your gcc." "$LINENO" 5 + as_fn_error $? "-mcmodel=large not supported. Upgrade your gcc." "$LINENO" 5 else TARGET_CFLAGS="$TARGET_CFLAGS -mcmodel=large" fi @@ -9410,7 +9410,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $grub_cv_cc_no_red_zone" >&5 $as_echo "$grub_cv_cc_no_red_zone" >&6; } if test "x$grub_cv_cc_no_red_zone" = xno; then - as_fn_error "-mno-red-zone not supported, upgrade your gcc" "$LINENO" 5 + as_fn_error $? "-mno-red-zone not supported, upgrade your gcc" "$LINENO" 5 fi TARGET_CFLAGS="$TARGET_CFLAGS -mno-red-zone" @@ -9443,7 +9443,7 @@ test $ac_status = 0; }; } && test -s conftest.s; then true else - as_fn_error "${CC-cc} failed to produce assembly code" "$LINENO" 5 + as_fn_error $? "${CC-cc} failed to produce assembly code" "$LINENO" 5 fi if grep __enable_execute_stack conftest.s >/dev/null 2>&1; then @@ -9604,7 +9604,7 @@ test $ac_status = 0; }; } && test -s conftest.s; then true else - as_fn_error "${CC-cc} failed to produce assembly code" "$LINENO" 5 + as_fn_error $? "${CC-cc} failed to produce assembly code" "$LINENO" 5 fi if grep _func conftest.s >/dev/null 2>&1; then @@ -9639,8 +9639,7 @@ do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF @@ -9690,7 +9689,7 @@ $as_echo "$grub_cv_prog_target_cc" >&6; } if test "x$grub_cv_prog_target_cc" = xno; then - as_fn_error "cannot compile for the target" "$LINENO" 5 + as_fn_error $? "cannot compile for the target" "$LINENO" 5 fi if test "x$TARGET_APPLE_CC" != x1 ; then @@ -9714,7 +9713,7 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest.o; then : else - as_fn_error "${CC-cc} cannot compile C source code" "$LINENO" 5 + as_fn_error $? "${CC-cc} cannot compile C source code" "$LINENO" 5 fi grub_cv_prog_objcopy_absolute=yes for link_addr in 0x2000 0x8000 0x7C00; do @@ -9725,7 +9724,7 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : else - as_fn_error "${CC-cc} cannot link at address $link_addr" "$LINENO" 5 + as_fn_error $? "${CC-cc} cannot link at address $link_addr" "$LINENO" 5 fi if { ac_try='${OBJCOPY-objcopy} --only-section=.text -O binary conftest.exec conftest' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 @@ -9734,7 +9733,7 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : else - as_fn_error "${OBJCOPY-objcopy} cannot create binary files" "$LINENO" 5 + as_fn_error $? "${OBJCOPY-objcopy} cannot create binary files" "$LINENO" 5 fi if test ! -f conftest.old || { ac_try='cmp -s conftest.old conftest' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 @@ -9755,7 +9754,7 @@ $as_echo "$grub_cv_prog_objcopy_absolute" >&6; } if test "x$grub_cv_prog_objcopy_absolute" = xno; then - as_fn_error "GRUB requires a working absolute objcopy; upgrade your binutils" "$LINENO" 5 + as_fn_error $? "GRUB requires a working absolute objcopy; upgrade your binutils" "$LINENO" 5 fi fi @@ -9901,7 +9900,7 @@ $as_echo "#define BSS_START_SYMBOL _edata" >>confdefs.h else - as_fn_error "none of __bss_start, edata or _edata is defined" "$LINENO" 5 + as_fn_error $? "none of __bss_start, edata or _edata is defined" "$LINENO" 5 fi @@ -9972,7 +9971,7 @@ $as_echo "#define END_SYMBOL _end" >>confdefs.h else - as_fn_error "neither end nor _end is defined" "$LINENO" 5 + as_fn_error $? "neither end nor _end is defined" "$LINENO" 5 fi fi @@ -10145,7 +10144,7 @@ fi fi if test x"$enable_efiemu" = xyes && test x"$efiemu_excuse" != x ; then - as_fn_error "efiemu runtime was explicitly requested but can't be compiled" "$LINENO" 5 + as_fn_error $? "efiemu runtime was explicitly requested but can't be compiled" "$LINENO" 5 fi if test x"$efiemu_excuse" = x ; then enable_efiemu=yes @@ -10367,7 +10366,7 @@ fi if test x"$missing_ncurses" = xtrue ; then - as_fn_error "grub-emu can't be compiled without ncurses" "$LINENO" 5 + as_fn_error $? "grub-emu can't be compiled without ncurses" "$LINENO" 5 fi if test x"$enable_grub_emu_modules" = xyes ; then @@ -10455,7 +10454,7 @@ fi if test x"$enable_grub_emu_usb" = xyes && test x"$grub_emu_usb_excuse" != x ; then - as_fn_error "USB support for grub-emu was explicitly requested but can't be compiled" "$LINENO" 5 + as_fn_error $? "USB support for grub-emu was explicitly requested but can't be compiled" "$LINENO" 5 fi if test x"$grub_emu_usb_excuse" = x ; then enable_grub_emu_usb=yes @@ -10532,7 +10531,7 @@ fi if test x"enable_grub_emu_sdl" = xyes && test x"$grub_emu_sdl_excuse" != x ; then - as_fn_error "SDL support for grub-emu was explicitely requested but can't be compiled" "$LINENO" 5 + as_fn_error $? "SDL support for grub-emu was explicitely requested but can't be compiled" "$LINENO" 5 fi if test x"$grub_emu_sdl_excuse" = x ; then enable_grub_emu_sdl=yes @@ -10721,7 +10720,7 @@ fi if test x"$enable_grub_mkfont" = xyes && test x"$grub_mkfont_excuse" != x ; then - as_fn_error "grub-mkfont was explicitly requested but can't be compiled" "$LINENO" 5 + as_fn_error $? "grub-mkfont was explicitly requested but can't be compiled" "$LINENO" 5 fi if test x"$grub_mkfont_excuse" = x ; then enable_grub_mkfont=yes @@ -11002,6 +11001,7 @@ ac_libobjs= ac_ltlibobjs= +U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' @@ -11025,15 +11025,15 @@ fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - as_fn_error "conditional \"AMDEP\" was never defined. + as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error "conditional \"am__fastdepCC\" was never defined. + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error "conditional \"am__fastdepCC\" was never defined. + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi @@ -11184,19 +11184,19 @@ (unset CDPATH) >/dev/null 2>&1 && unset CDPATH -# as_fn_error ERROR [LINENO LOG_FD] -# --------------------------------- +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with status $?, using 1 if that was 0. +# script with STATUS, using 1 if that was 0. as_fn_error () { - as_status=$?; test $as_status -eq 0 && as_status=1 - if test "$3"; then - as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $1" >&2 + $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -11392,7 +11392,7 @@ test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p @@ -11445,8 +11445,8 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by GRUB $as_me 1.98+20100804-1, which was -generated by GNU Autoconf 2.65. Invocation command line was +This file was extended by GRUB $as_me 1.98+20100804-13, which was +generated by GNU Autoconf 2.67. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -11515,11 +11515,11 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -GRUB config.status 1.98+20100804-1 -configured by $0, generated by GNU Autoconf 2.65, +GRUB config.status 1.98+20100804-13 +configured by $0, generated by GNU Autoconf 2.67, with options \\"\$ac_cs_config\\" -Copyright (C) 2009 Free Software Foundation, Inc. +Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -11537,11 +11537,16 @@ while test $# != 0 do case $1 in - --*=*) + --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; *) ac_option=$1 ac_optarg=$2 @@ -11563,6 +11568,7 @@ $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; @@ -11575,7 +11581,7 @@ ac_need_defaults=false;; --he | --h) # Conflict between --help and --header - as_fn_error "ambiguous option: \`$1' + as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; @@ -11584,7 +11590,7 @@ ac_cs_silent=: ;; # This is an error. - -*) as_fn_error "unrecognized option: \`$1' + -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" @@ -11655,7 +11661,7 @@ "genkernsyms.sh") CONFIG_FILES="$CONFIG_FILES genkernsyms.sh" ;; "stamp-h") CONFIG_FILES="$CONFIG_FILES stamp-h" ;; - *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; esac done @@ -11694,7 +11700,7 @@ { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") -} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -11711,7 +11717,7 @@ fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\r' + ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi @@ -11725,18 +11731,18 @@ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || - as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || - as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then - as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi @@ -11825,20 +11831,28 @@ else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ - || as_fn_error "could not setup config files machinery" "$LINENO" 5 + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/ -s/:*\${srcdir}:*/:/ -s/:*@srcdir@:*/:/ -s/^\([^=]*=[ ]*\):*/\1/ + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// s/^[^=]*=[ ]*$// }' fi @@ -11866,7 +11880,7 @@ if test -z "$ac_t"; then break elif $ac_last_try; then - as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5 + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi @@ -11951,7 +11965,7 @@ _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error "could not setup config headers machinery" "$LINENO" 5 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" @@ -11964,7 +11978,7 @@ esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -11992,7 +12006,7 @@ [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" @@ -12019,7 +12033,7 @@ case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac @@ -12156,22 +12170,22 @@ $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&5 +which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&2;} +which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # @@ -12182,19 +12196,19 @@ $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$tmp/config.h" "$ac_file" \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error "could not create -" "$LINENO" 5 + || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" @@ -12248,19 +12262,19 @@ $as_echo "$as_me: linking $ac_source to $ac_file" >&6;} if test ! -r "$ac_source"; then - as_fn_error "$ac_source: file not found" "$LINENO" 5 + as_fn_error $? "$ac_source: file not found" "$LINENO" 5 fi rm -f "$ac_file" # Try a relative symlink, then a hard link, then a copy. - case $srcdir in + case $ac_source in [\\/$]* | ?:[\\/]* ) ac_rel_source=$ac_source ;; *) ac_rel_source=$ac_top_build_prefix$ac_source ;; esac ln -s "$ac_rel_source" "$ac_file" 2>/dev/null || ln "$ac_source" "$ac_file" 2>/dev/null || cp -p "$ac_source" "$ac_file" || - as_fn_error "cannot link or copy $ac_source to $ac_file" "$LINENO" 5 + as_fn_error $? "cannot link or copy $ac_source to $ac_file" "$LINENO" 5 fi ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 @@ -12489,7 +12503,7 @@ ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || - as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. @@ -12510,7 +12524,7 @@ exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit $? + $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 --- grub2-1.98+20100804.orig/conf/i386-qemu.mk +++ grub2-1.98+20100804/conf/i386-qemu.mk @@ -0,0 +1,1175 @@ +# -*- makefile -*- +# Generated by genmk.rb, please don't edit! + +COMMON_CFLAGS = -mrtd -mregparm=3 + +# Images. + +GRUB_KERNEL_MACHINE_LINK_ADDR = 0x8200 +GRUB_BOOT_MACHINE_LINK_ADDR = 0xffe00 + +pkglib_IMAGES += boot.img +boot_img_SOURCES = boot/i386/qemu/boot.S + +clean-image-boot.img.1: + rm -f boot.img boot.exec boot_img-boot_i386_qemu_boot.o + +CLEAN_IMAGE_TARGETS += clean-image-boot.img.1 + +mostlyclean-image-boot.img.1: + rm -f boot_img-boot_i386_qemu_boot.d + +MOSTLYCLEAN_IMAGE_TARGETS += mostlyclean-image-boot.img.1 + +ifneq ($(TARGET_APPLE_CC),1) +boot.img: boot.exec + $(OBJCOPY) -O $(boot_img_FORMAT) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .reginfo -R .rel.dyn $< $@ +else +ifneq (boot.exec,kernel.exec) +boot.img: boot.exec ./grub-macho2img + ./grub-macho2img $< $@ +else +boot.img: boot.exec ./grub-macho2img + ./grub-macho2img --bss $< $@ +endif +endif + +boot.exec: boot_img-boot_i386_qemu_boot.o + $(TARGET_CC) -o $@ $^ $(TARGET_LDFLAGS) $(boot_img_LDFLAGS) + +boot_img-boot_i386_qemu_boot.o: boot/i386/qemu/boot.S $(boot/i386/qemu/boot.S_DEPENDENCIES) + $(TARGET_CC) -Iboot/i386/qemu -I$(srcdir)/boot/i386/qemu $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(boot_img_ASFLAGS) -DGRUB_FILE=\"boot/i386/qemu/boot.S\" -MD -c -o $@ $< +-include boot_img-boot_i386_qemu_boot.d + +boot_img_ASFLAGS = $(COMMON_ASFLAGS) -DGRUB_BOOT_MACHINE_LINK_ADDR=$(GRUB_BOOT_MACHINE_LINK_ADDR) +boot_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS)$(GRUB_BOOT_MACHINE_LINK_ADDR) +boot_img_FORMAT = binary + +kern/i386/qemu/init.c_DEPENDENCIES = ascii.h + +pkglib_PROGRAMS += kernel.img +kernel_img_SOURCES = kern/i386/qemu/startup.S \ + kern/i386/misc.S \ + kern/i386/coreboot/init.c \ + kern/i386/qemu/init.c \ + kern/i386/qemu/mmap.c \ + kern/i386/halt.c \ + kern/main.c kern/device.c \ + kern/disk.c kern/dl.c kern/file.c kern/fs.c kern/err.c \ + kern/misc.c kern/mm.c kern/term.c \ + kern/rescue_parser.c kern/rescue_reader.c \ + kern/time.c kern/list.c kern/command.c kern/corecmd.c \ + kern/$(target_cpu)/dl.c kern/parser.c kern/partition.c \ + kern/i386/tsc.c kern/i386/pit.c \ + kern/generic/rtc_get_time_ms.c \ + kern/generic/millisleep.c \ + kern/env.c \ + term/i386/pc/vga_text.c term/i386/vga_common.c bus/pci.c \ + symlist.c +MOSTLYCLEANFILES += kernel_img-kern_i386_qemu_startup.d kernel_img-kern_i386_misc.d kernel_img-kern_i386_coreboot_init.d kernel_img-kern_i386_qemu_init.d kernel_img-kern_i386_qemu_mmap.d kernel_img-kern_i386_halt.d kernel_img-kern_main.d kernel_img-kern_device.d kernel_img-kern_disk.d kernel_img-kern_dl.d kernel_img-kern_file.d kernel_img-kern_fs.d kernel_img-kern_err.d kernel_img-kern_misc.d kernel_img-kern_mm.d kernel_img-kern_term.d kernel_img-kern_rescue_parser.d kernel_img-kern_rescue_reader.d kernel_img-kern_time.d kernel_img-kern_list.d kernel_img-kern_command.d kernel_img-kern_corecmd.d kernel_img-kern___target_cpu__dl.d kernel_img-kern_parser.d kernel_img-kern_partition.d kernel_img-kern_i386_tsc.d kernel_img-kern_i386_pit.d kernel_img-kern_generic_rtc_get_time_ms.d kernel_img-kern_generic_millisleep.d kernel_img-kern_env.d kernel_img-term_i386_pc_vga_text.d kernel_img-term_i386_vga_common.d kernel_img-bus_pci.d kernel_img-symlist.d + +kernel_img-kern_i386_qemu_startup.o: kern/i386/qemu/startup.S $(kern/i386/qemu/startup.S_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386/qemu -I$(srcdir)/kern/i386/qemu $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(kernel_img_ASFLAGS) -DGRUB_FILE=\"kern/i386/qemu/startup.S\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_qemu_startup.d + +kernel_img_OBJECTS += kernel_img-kern_i386_qemu_startup.o +kernel_img-kern_i386_misc.o: kern/i386/misc.S $(kern/i386/misc.S_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(kernel_img_ASFLAGS) -DGRUB_FILE=\"kern/i386/misc.S\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_misc.d + +kernel_img_OBJECTS += kernel_img-kern_i386_misc.o +kernel_img-kern_i386_coreboot_init.o: kern/i386/coreboot/init.c $(kern/i386/coreboot/init.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386/coreboot -I$(srcdir)/kern/i386/coreboot $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/i386/coreboot/init.c\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_coreboot_init.d + +kernel_img_OBJECTS += kernel_img-kern_i386_coreboot_init.o +kernel_img-kern_i386_qemu_init.o: kern/i386/qemu/init.c $(kern/i386/qemu/init.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386/qemu -I$(srcdir)/kern/i386/qemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/i386/qemu/init.c\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_qemu_init.d + +kernel_img_OBJECTS += kernel_img-kern_i386_qemu_init.o +kernel_img-kern_i386_qemu_mmap.o: kern/i386/qemu/mmap.c $(kern/i386/qemu/mmap.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386/qemu -I$(srcdir)/kern/i386/qemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/i386/qemu/mmap.c\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_qemu_mmap.d + +kernel_img_OBJECTS += kernel_img-kern_i386_qemu_mmap.o +kernel_img-kern_i386_halt.o: kern/i386/halt.c $(kern/i386/halt.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/i386/halt.c\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_halt.d + +kernel_img_OBJECTS += kernel_img-kern_i386_halt.o +kernel_img-kern_main.o: kern/main.c $(kern/main.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/main.c\" -MD -c -o $@ $< + +-include kernel_img-kern_main.d + +kernel_img_OBJECTS += kernel_img-kern_main.o +kernel_img-kern_device.o: kern/device.c $(kern/device.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/device.c\" -MD -c -o $@ $< + +-include kernel_img-kern_device.d + +kernel_img_OBJECTS += kernel_img-kern_device.o +kernel_img-kern_disk.o: kern/disk.c $(kern/disk.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/disk.c\" -MD -c -o $@ $< + +-include kernel_img-kern_disk.d + +kernel_img_OBJECTS += kernel_img-kern_disk.o +kernel_img-kern_dl.o: kern/dl.c $(kern/dl.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/dl.c\" -MD -c -o $@ $< + +-include kernel_img-kern_dl.d + +kernel_img_OBJECTS += kernel_img-kern_dl.o +kernel_img-kern_file.o: kern/file.c $(kern/file.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/file.c\" -MD -c -o $@ $< + +-include kernel_img-kern_file.d + +kernel_img_OBJECTS += kernel_img-kern_file.o +kernel_img-kern_fs.o: kern/fs.c $(kern/fs.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/fs.c\" -MD -c -o $@ $< + +-include kernel_img-kern_fs.d + +kernel_img_OBJECTS += kernel_img-kern_fs.o +kernel_img-kern_err.o: kern/err.c $(kern/err.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/err.c\" -MD -c -o $@ $< + +-include kernel_img-kern_err.d + +kernel_img_OBJECTS += kernel_img-kern_err.o +kernel_img-kern_misc.o: kern/misc.c $(kern/misc.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/misc.c\" -MD -c -o $@ $< + +-include kernel_img-kern_misc.d + +kernel_img_OBJECTS += kernel_img-kern_misc.o +kernel_img-kern_mm.o: kern/mm.c $(kern/mm.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/mm.c\" -MD -c -o $@ $< + +-include kernel_img-kern_mm.d + +kernel_img_OBJECTS += kernel_img-kern_mm.o +kernel_img-kern_term.o: kern/term.c $(kern/term.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/term.c\" -MD -c -o $@ $< + +-include kernel_img-kern_term.d + +kernel_img_OBJECTS += kernel_img-kern_term.o +kernel_img-kern_rescue_parser.o: kern/rescue_parser.c $(kern/rescue_parser.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/rescue_parser.c\" -MD -c -o $@ $< + +-include kernel_img-kern_rescue_parser.d + +kernel_img_OBJECTS += kernel_img-kern_rescue_parser.o +kernel_img-kern_rescue_reader.o: kern/rescue_reader.c $(kern/rescue_reader.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/rescue_reader.c\" -MD -c -o $@ $< + +-include kernel_img-kern_rescue_reader.d + +kernel_img_OBJECTS += kernel_img-kern_rescue_reader.o +kernel_img-kern_time.o: kern/time.c $(kern/time.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/time.c\" -MD -c -o $@ $< + +-include kernel_img-kern_time.d + +kernel_img_OBJECTS += kernel_img-kern_time.o +kernel_img-kern_list.o: kern/list.c $(kern/list.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/list.c\" -MD -c -o $@ $< + +-include kernel_img-kern_list.d + +kernel_img_OBJECTS += kernel_img-kern_list.o +kernel_img-kern_command.o: kern/command.c $(kern/command.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/command.c\" -MD -c -o $@ $< + +-include kernel_img-kern_command.d + +kernel_img_OBJECTS += kernel_img-kern_command.o +kernel_img-kern_corecmd.o: kern/corecmd.c $(kern/corecmd.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/corecmd.c\" -MD -c -o $@ $< + +-include kernel_img-kern_corecmd.d + +kernel_img_OBJECTS += kernel_img-kern_corecmd.o +kernel_img-kern___target_cpu__dl.o: kern/$(target_cpu)/dl.c $(kern/$(target_cpu)/dl.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/$(target_cpu) -I$(srcdir)/kern/$(target_cpu) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/$(target_cpu)/dl.c\" -MD -c -o $@ $< + +-include kernel_img-kern___target_cpu__dl.d + +kernel_img_OBJECTS += kernel_img-kern___target_cpu__dl.o +kernel_img-kern_parser.o: kern/parser.c $(kern/parser.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/parser.c\" -MD -c -o $@ $< + +-include kernel_img-kern_parser.d + +kernel_img_OBJECTS += kernel_img-kern_parser.o +kernel_img-kern_partition.o: kern/partition.c $(kern/partition.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/partition.c\" -MD -c -o $@ $< + +-include kernel_img-kern_partition.d + +kernel_img_OBJECTS += kernel_img-kern_partition.o +kernel_img-kern_i386_tsc.o: kern/i386/tsc.c $(kern/i386/tsc.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/i386/tsc.c\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_tsc.d + +kernel_img_OBJECTS += kernel_img-kern_i386_tsc.o +kernel_img-kern_i386_pit.o: kern/i386/pit.c $(kern/i386/pit.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/i386/pit.c\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_pit.d + +kernel_img_OBJECTS += kernel_img-kern_i386_pit.o +kernel_img-kern_generic_rtc_get_time_ms.o: kern/generic/rtc_get_time_ms.c $(kern/generic/rtc_get_time_ms.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/generic -I$(srcdir)/kern/generic $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/generic/rtc_get_time_ms.c\" -MD -c -o $@ $< + +-include kernel_img-kern_generic_rtc_get_time_ms.d + +kernel_img_OBJECTS += kernel_img-kern_generic_rtc_get_time_ms.o +kernel_img-kern_generic_millisleep.o: kern/generic/millisleep.c $(kern/generic/millisleep.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/generic -I$(srcdir)/kern/generic $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/generic/millisleep.c\" -MD -c -o $@ $< + +-include kernel_img-kern_generic_millisleep.d + +kernel_img_OBJECTS += kernel_img-kern_generic_millisleep.o +kernel_img-kern_env.o: kern/env.c $(kern/env.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/env.c\" -MD -c -o $@ $< + +-include kernel_img-kern_env.d + +kernel_img_OBJECTS += kernel_img-kern_env.o +kernel_img-term_i386_pc_vga_text.o: term/i386/pc/vga_text.c $(term/i386/pc/vga_text.c_DEPENDENCIES) + $(TARGET_CC) -Iterm/i386/pc -I$(srcdir)/term/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"term/i386/pc/vga_text.c\" -MD -c -o $@ $< + +-include kernel_img-term_i386_pc_vga_text.d + +kernel_img_OBJECTS += kernel_img-term_i386_pc_vga_text.o +kernel_img-term_i386_vga_common.o: term/i386/vga_common.c $(term/i386/vga_common.c_DEPENDENCIES) + $(TARGET_CC) -Iterm/i386 -I$(srcdir)/term/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"term/i386/vga_common.c\" -MD -c -o $@ $< + +-include kernel_img-term_i386_vga_common.d + +kernel_img_OBJECTS += kernel_img-term_i386_vga_common.o +kernel_img-bus_pci.o: bus/pci.c $(bus/pci.c_DEPENDENCIES) + $(TARGET_CC) -Ibus -I$(srcdir)/bus $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"bus/pci.c\" -MD -c -o $@ $< + +-include kernel_img-bus_pci.d + +kernel_img_OBJECTS += kernel_img-bus_pci.o +kernel_img-symlist.o: symlist.c $(symlist.c_DEPENDENCIES) + $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"symlist.c\" -MD -c -o $@ $< + +-include kernel_img-symlist.d + +kernel_img_OBJECTS += kernel_img-symlist.o +kernel_img_HEADERS += pci.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) +kernel_img_FORMAT = binary + +sbin_SCRIPTS += grub-install +grub_install_SOURCES = util/grub-install.in +CLEANFILES += grub-install + +grub-install: util/grub-install.in $(util/grub-install.in_DEPENDENCIES) config.status + ./config.status --file=-:util/grub-install.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +bin_SCRIPTS += grub-mkrescue +grub_mkrescue_SOURCES = util/grub-mkrescue.in +CLEANFILES += grub-mkrescue + +grub-mkrescue: util/grub-mkrescue.in $(util/grub-mkrescue.in_DEPENDENCIES) config.status + ./config.status --file=-:util/grub-mkrescue.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +# Modules. +pkglib_MODULES = linux.mod aout.mod halt.mod datetime.mod mmap.mod + +# For mmap.mod. +mmap_mod_SOURCES = mmap/mmap.c mmap/i386/uppermem.c mmap/i386/mmap.c + +clean-module-mmap.mod.1: + rm -f mmap.mod mod-mmap.o mod-mmap.c pre-mmap.o mmap_mod-mmap_mmap.o mmap_mod-mmap_i386_uppermem.o mmap_mod-mmap_i386_mmap.o und-mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap.mod.1 + +clean-module-mmap.mod-symbol.1: + rm -f def-mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap.mod-symbol.1 +DEFSYMFILES += def-mmap.lst +mostlyclean-module-mmap.mod.1: + rm -f mmap_mod-mmap_mmap.d mmap_mod-mmap_i386_uppermem.d mmap_mod-mmap_i386_mmap.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-mmap.mod.1 +UNDSYMFILES += und-mmap.lst + +ifeq ($(TARGET_NO_MODULES), yes) +mmap.mod: pre-mmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-mmap.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +mmap.mod: pre-mmap.o mod-mmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-mmap.o mod-mmap.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +mmap.mod: pre-mmap.o mod-mmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-mmap.o mod-mmap.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-mmap.o: $(mmap_mod_DEPENDENCIES) mmap_mod-mmap_mmap.o mmap_mod-mmap_i386_uppermem.o mmap_mod-mmap_i386_mmap.o + -rm -f $@ + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ mmap_mod-mmap_mmap.o mmap_mod-mmap_i386_uppermem.o mmap_mod-mmap_i386_mmap.o + +mod-mmap.o: mod-mmap.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mod-mmap.c\" -c -o $@ $< + +mod-mmap.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'mmap' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-mmap.lst: pre-mmap.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 mmap/' > $@ +else +def-mmap.lst: pre-mmap.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 mmap/' > $@ +endif + +und-mmap.lst: pre-mmap.o + echo 'mmap' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +mmap_mod-mmap_mmap.o: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) + $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mmap/mmap.c\" -MD -c -o $@ $< +-include mmap_mod-mmap_mmap.d + +clean-module-mmap_mod-mmap_mmap-extra.1: + rm -f cmd-mmap_mod-mmap_mmap.lst fs-mmap_mod-mmap_mmap.lst partmap-mmap_mod-mmap_mmap.lst handler-mmap_mod-mmap_mmap.lst parttool-mmap_mod-mmap_mmap.lst video-mmap_mod-mmap_mmap.lst terminal-mmap_mod-mmap_mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap_mod-mmap_mmap-extra.1 + +COMMANDFILES += cmd-mmap_mod-mmap_mmap.lst +FSFILES += fs-mmap_mod-mmap_mmap.lst +PARTTOOLFILES += parttool-mmap_mod-mmap_mmap.lst +PARTMAPFILES += partmap-mmap_mod-mmap_mmap.lst +HANDLERFILES += handler-mmap_mod-mmap_mmap.lst +TERMINALFILES += terminal-mmap_mod-mmap_mmap.lst +VIDEOFILES += video-mmap_mod-mmap_mmap.lst + +cmd-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh mmap > $@ || (rm -f $@; exit 1) + +fs-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh mmap > $@ || (rm -f $@; exit 1) + +parttool-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh mmap > $@ || (rm -f $@; exit 1) + +partmap-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh mmap > $@ || (rm -f $@; exit 1) + +handler-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh mmap > $@ || (rm -f $@; exit 1) + +terminal-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh mmap > $@ || (rm -f $@; exit 1) + +video-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh mmap > $@ || (rm -f $@; exit 1) + +mmap_mod-mmap_i386_uppermem.o: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) + $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mmap/i386/uppermem.c\" -MD -c -o $@ $< +-include mmap_mod-mmap_i386_uppermem.d + +clean-module-mmap_mod-mmap_i386_uppermem-extra.1: + rm -f cmd-mmap_mod-mmap_i386_uppermem.lst fs-mmap_mod-mmap_i386_uppermem.lst partmap-mmap_mod-mmap_i386_uppermem.lst handler-mmap_mod-mmap_i386_uppermem.lst parttool-mmap_mod-mmap_i386_uppermem.lst video-mmap_mod-mmap_i386_uppermem.lst terminal-mmap_mod-mmap_i386_uppermem.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap_mod-mmap_i386_uppermem-extra.1 + +COMMANDFILES += cmd-mmap_mod-mmap_i386_uppermem.lst +FSFILES += fs-mmap_mod-mmap_i386_uppermem.lst +PARTTOOLFILES += parttool-mmap_mod-mmap_i386_uppermem.lst +PARTMAPFILES += partmap-mmap_mod-mmap_i386_uppermem.lst +HANDLERFILES += handler-mmap_mod-mmap_i386_uppermem.lst +TERMINALFILES += terminal-mmap_mod-mmap_i386_uppermem.lst +VIDEOFILES += video-mmap_mod-mmap_i386_uppermem.lst + +cmd-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh mmap > $@ || (rm -f $@; exit 1) + +fs-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh mmap > $@ || (rm -f $@; exit 1) + +parttool-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh mmap > $@ || (rm -f $@; exit 1) + +partmap-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh mmap > $@ || (rm -f $@; exit 1) + +handler-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh mmap > $@ || (rm -f $@; exit 1) + +terminal-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh mmap > $@ || (rm -f $@; exit 1) + +video-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh mmap > $@ || (rm -f $@; exit 1) + +mmap_mod-mmap_i386_mmap.o: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) + $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mmap/i386/mmap.c\" -MD -c -o $@ $< +-include mmap_mod-mmap_i386_mmap.d + +clean-module-mmap_mod-mmap_i386_mmap-extra.1: + rm -f cmd-mmap_mod-mmap_i386_mmap.lst fs-mmap_mod-mmap_i386_mmap.lst partmap-mmap_mod-mmap_i386_mmap.lst handler-mmap_mod-mmap_i386_mmap.lst parttool-mmap_mod-mmap_i386_mmap.lst video-mmap_mod-mmap_i386_mmap.lst terminal-mmap_mod-mmap_i386_mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap_mod-mmap_i386_mmap-extra.1 + +COMMANDFILES += cmd-mmap_mod-mmap_i386_mmap.lst +FSFILES += fs-mmap_mod-mmap_i386_mmap.lst +PARTTOOLFILES += parttool-mmap_mod-mmap_i386_mmap.lst +PARTMAPFILES += partmap-mmap_mod-mmap_i386_mmap.lst +HANDLERFILES += handler-mmap_mod-mmap_i386_mmap.lst +TERMINALFILES += terminal-mmap_mod-mmap_i386_mmap.lst +VIDEOFILES += video-mmap_mod-mmap_i386_mmap.lst + +cmd-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh mmap > $@ || (rm -f $@; exit 1) + +fs-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh mmap > $@ || (rm -f $@; exit 1) + +parttool-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh mmap > $@ || (rm -f $@; exit 1) + +partmap-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh mmap > $@ || (rm -f $@; exit 1) + +handler-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh mmap > $@ || (rm -f $@; exit 1) + +terminal-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh mmap > $@ || (rm -f $@; exit 1) + +video-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh mmap > $@ || (rm -f $@; exit 1) + +mmap_mod_CFLAGS = $(COMMON_CFLAGS) +mmap_mod_LDFLAGS = $(COMMON_LDFLAGS) +mmap_mod_ASFLAGS = $(COMMON_ASFLAGS) + +# For linux.mod. +linux_mod_SOURCES = loader/i386/linux.c + +clean-module-linux.mod.1: + rm -f linux.mod mod-linux.o mod-linux.c pre-linux.o linux_mod-loader_i386_linux.o und-linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux.mod.1 + +clean-module-linux.mod-symbol.1: + rm -f def-linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux.mod-symbol.1 +DEFSYMFILES += def-linux.lst +mostlyclean-module-linux.mod.1: + rm -f linux_mod-loader_i386_linux.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-linux.mod.1 +UNDSYMFILES += und-linux.lst + +ifeq ($(TARGET_NO_MODULES), yes) +linux.mod: pre-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-linux.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-linux.o mod-linux.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-linux.o mod-linux.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-linux.o: $(linux_mod_DEPENDENCIES) linux_mod-loader_i386_linux.o + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ linux_mod-loader_i386_linux.o + +mod-linux.o: mod-linux.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -DGRUB_FILE=\"mod-linux.c\" -c -o $@ $< + +mod-linux.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'linux' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-linux.lst: pre-linux.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 linux/' > $@ +else +def-linux.lst: pre-linux.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 linux/' > $@ +endif + +und-linux.lst: pre-linux.o + echo 'linux' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +linux_mod-loader_i386_linux.o: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -DGRUB_FILE=\"loader/i386/linux.c\" -MD -c -o $@ $< +-include linux_mod-loader_i386_linux.d + +clean-module-linux_mod-loader_i386_linux-extra.1: + rm -f cmd-linux_mod-loader_i386_linux.lst fs-linux_mod-loader_i386_linux.lst partmap-linux_mod-loader_i386_linux.lst handler-linux_mod-loader_i386_linux.lst parttool-linux_mod-loader_i386_linux.lst video-linux_mod-loader_i386_linux.lst terminal-linux_mod-loader_i386_linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux_mod-loader_i386_linux-extra.1 + +COMMANDFILES += cmd-linux_mod-loader_i386_linux.lst +FSFILES += fs-linux_mod-loader_i386_linux.lst +PARTTOOLFILES += parttool-linux_mod-loader_i386_linux.lst +PARTMAPFILES += partmap-linux_mod-loader_i386_linux.lst +HANDLERFILES += handler-linux_mod-loader_i386_linux.lst +TERMINALFILES += terminal-linux_mod-loader_i386_linux.lst +VIDEOFILES += video-linux_mod-loader_i386_linux.lst + +cmd-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh linux > $@ || (rm -f $@; exit 1) + +fs-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh linux > $@ || (rm -f $@; exit 1) + +parttool-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh linux > $@ || (rm -f $@; exit 1) + +partmap-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh linux > $@ || (rm -f $@; exit 1) + +handler-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh linux > $@ || (rm -f $@; exit 1) + +terminal-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh linux > $@ || (rm -f $@; exit 1) + +video-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh linux > $@ || (rm -f $@; exit 1) + +linux_mod_CFLAGS = $(COMMON_CFLAGS) +linux_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For halt.mod. +halt_mod_SOURCES = commands/halt.c + +clean-module-halt.mod.1: + rm -f halt.mod mod-halt.o mod-halt.c pre-halt.o halt_mod-commands_halt.o und-halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt.mod.1 + +clean-module-halt.mod-symbol.1: + rm -f def-halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt.mod-symbol.1 +DEFSYMFILES += def-halt.lst +mostlyclean-module-halt.mod.1: + rm -f halt_mod-commands_halt.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-halt.mod.1 +UNDSYMFILES += und-halt.lst + +ifeq ($(TARGET_NO_MODULES), yes) +halt.mod: pre-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-halt.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +halt.mod: pre-halt.o mod-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-halt.o mod-halt.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +halt.mod: pre-halt.o mod-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-halt.o mod-halt.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-halt.o: $(halt_mod_DEPENDENCIES) halt_mod-commands_halt.o + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ halt_mod-commands_halt.o + +mod-halt.o: mod-halt.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -DGRUB_FILE=\"mod-halt.c\" -c -o $@ $< + +mod-halt.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'halt' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-halt.lst: pre-halt.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 halt/' > $@ +else +def-halt.lst: pre-halt.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 halt/' > $@ +endif + +und-halt.lst: pre-halt.o + echo 'halt' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +halt_mod-commands_halt.o: commands/halt.c $(commands/halt.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -DGRUB_FILE=\"commands/halt.c\" -MD -c -o $@ $< +-include halt_mod-commands_halt.d + +clean-module-halt_mod-commands_halt-extra.1: + rm -f cmd-halt_mod-commands_halt.lst fs-halt_mod-commands_halt.lst partmap-halt_mod-commands_halt.lst handler-halt_mod-commands_halt.lst parttool-halt_mod-commands_halt.lst video-halt_mod-commands_halt.lst terminal-halt_mod-commands_halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt_mod-commands_halt-extra.1 + +COMMANDFILES += cmd-halt_mod-commands_halt.lst +FSFILES += fs-halt_mod-commands_halt.lst +PARTTOOLFILES += parttool-halt_mod-commands_halt.lst +PARTMAPFILES += partmap-halt_mod-commands_halt.lst +HANDLERFILES += handler-halt_mod-commands_halt.lst +TERMINALFILES += terminal-halt_mod-commands_halt.lst +VIDEOFILES += video-halt_mod-commands_halt.lst + +cmd-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh halt > $@ || (rm -f $@; exit 1) + +fs-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh halt > $@ || (rm -f $@; exit 1) + +parttool-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh halt > $@ || (rm -f $@; exit 1) + +partmap-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh halt > $@ || (rm -f $@; exit 1) + +handler-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh halt > $@ || (rm -f $@; exit 1) + +terminal-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh halt > $@ || (rm -f $@; exit 1) + +video-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh halt > $@ || (rm -f $@; exit 1) + +halt_mod_CFLAGS = $(COMMON_CFLAGS) +halt_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For aout.mod. +aout_mod_SOURCES = loader/aout.c + +clean-module-aout.mod.1: + rm -f aout.mod mod-aout.o mod-aout.c pre-aout.o aout_mod-loader_aout.o und-aout.lst + +CLEAN_MODULE_TARGETS += clean-module-aout.mod.1 + +clean-module-aout.mod-symbol.1: + rm -f def-aout.lst + +CLEAN_MODULE_TARGETS += clean-module-aout.mod-symbol.1 +DEFSYMFILES += def-aout.lst +mostlyclean-module-aout.mod.1: + rm -f aout_mod-loader_aout.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-aout.mod.1 +UNDSYMFILES += und-aout.lst + +ifeq ($(TARGET_NO_MODULES), yes) +aout.mod: pre-aout.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-aout.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +aout.mod: pre-aout.o mod-aout.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-aout.o mod-aout.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +aout.mod: pre-aout.o mod-aout.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-aout.o mod-aout.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-aout.o: $(aout_mod_DEPENDENCIES) aout_mod-loader_aout.o + -rm -f $@ + $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ aout_mod-loader_aout.o + +mod-aout.o: mod-aout.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -DGRUB_FILE=\"mod-aout.c\" -c -o $@ $< + +mod-aout.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'aout' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-aout.lst: pre-aout.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 aout/' > $@ +else +def-aout.lst: pre-aout.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 aout/' > $@ +endif + +und-aout.lst: pre-aout.o + echo 'aout' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +aout_mod-loader_aout.o: loader/aout.c $(loader/aout.c_DEPENDENCIES) + $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -DGRUB_FILE=\"loader/aout.c\" -MD -c -o $@ $< +-include aout_mod-loader_aout.d + +clean-module-aout_mod-loader_aout-extra.1: + rm -f cmd-aout_mod-loader_aout.lst fs-aout_mod-loader_aout.lst partmap-aout_mod-loader_aout.lst handler-aout_mod-loader_aout.lst parttool-aout_mod-loader_aout.lst video-aout_mod-loader_aout.lst terminal-aout_mod-loader_aout.lst + +CLEAN_MODULE_TARGETS += clean-module-aout_mod-loader_aout-extra.1 + +COMMANDFILES += cmd-aout_mod-loader_aout.lst +FSFILES += fs-aout_mod-loader_aout.lst +PARTTOOLFILES += parttool-aout_mod-loader_aout.lst +PARTMAPFILES += partmap-aout_mod-loader_aout.lst +HANDLERFILES += handler-aout_mod-loader_aout.lst +TERMINALFILES += terminal-aout_mod-loader_aout.lst +VIDEOFILES += video-aout_mod-loader_aout.lst + +cmd-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh aout > $@ || (rm -f $@; exit 1) + +fs-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh aout > $@ || (rm -f $@; exit 1) + +parttool-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh aout > $@ || (rm -f $@; exit 1) + +partmap-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh aout > $@ || (rm -f $@; exit 1) + +handler-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh aout > $@ || (rm -f $@; exit 1) + +terminal-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh aout > $@ || (rm -f $@; exit 1) + +video-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh aout > $@ || (rm -f $@; exit 1) + +aout_mod_CFLAGS = $(COMMON_CFLAGS) +aout_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For bsd.mod +pkglib_MODULES += bsd.mod +bsd_mod_SOURCES = loader/i386/bsd.c loader/i386/bsd32.c loader/i386/bsd64.c loader/i386/bsd_helper.S loader/i386/bsd_trampoline.S + +clean-module-bsd.mod.1: + rm -f bsd.mod mod-bsd.o mod-bsd.c pre-bsd.o bsd_mod-loader_i386_bsd.o bsd_mod-loader_i386_bsd32.o bsd_mod-loader_i386_bsd64.o bsd_mod-loader_i386_bsd_helper.o bsd_mod-loader_i386_bsd_trampoline.o und-bsd.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd.mod.1 + +clean-module-bsd.mod-symbol.1: + rm -f def-bsd.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd.mod-symbol.1 +DEFSYMFILES += def-bsd.lst +mostlyclean-module-bsd.mod.1: + rm -f bsd_mod-loader_i386_bsd.d bsd_mod-loader_i386_bsd32.d bsd_mod-loader_i386_bsd64.d bsd_mod-loader_i386_bsd_helper.d bsd_mod-loader_i386_bsd_trampoline.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-bsd.mod.1 +UNDSYMFILES += und-bsd.lst + +ifeq ($(TARGET_NO_MODULES), yes) +bsd.mod: pre-bsd.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(bsd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-bsd.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +bsd.mod: pre-bsd.o mod-bsd.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(bsd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-bsd.o mod-bsd.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +bsd.mod: pre-bsd.o mod-bsd.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(bsd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-bsd.o mod-bsd.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-bsd.o: $(bsd_mod_DEPENDENCIES) bsd_mod-loader_i386_bsd.o bsd_mod-loader_i386_bsd32.o bsd_mod-loader_i386_bsd64.o bsd_mod-loader_i386_bsd_helper.o bsd_mod-loader_i386_bsd_trampoline.o + -rm -f $@ + $(TARGET_CC) $(bsd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ bsd_mod-loader_i386_bsd.o bsd_mod-loader_i386_bsd32.o bsd_mod-loader_i386_bsd64.o bsd_mod-loader_i386_bsd_helper.o bsd_mod-loader_i386_bsd_trampoline.o + +mod-bsd.o: mod-bsd.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -DGRUB_FILE=\"mod-bsd.c\" -c -o $@ $< + +mod-bsd.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'bsd' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-bsd.lst: pre-bsd.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 bsd/' > $@ +else +def-bsd.lst: pre-bsd.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 bsd/' > $@ +endif + +und-bsd.lst: pre-bsd.o + echo 'bsd' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +bsd_mod-loader_i386_bsd.o: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -DGRUB_FILE=\"loader/i386/bsd.c\" -MD -c -o $@ $< +-include bsd_mod-loader_i386_bsd.d + +clean-module-bsd_mod-loader_i386_bsd-extra.1: + rm -f cmd-bsd_mod-loader_i386_bsd.lst fs-bsd_mod-loader_i386_bsd.lst partmap-bsd_mod-loader_i386_bsd.lst handler-bsd_mod-loader_i386_bsd.lst parttool-bsd_mod-loader_i386_bsd.lst video-bsd_mod-loader_i386_bsd.lst terminal-bsd_mod-loader_i386_bsd.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd_mod-loader_i386_bsd-extra.1 + +COMMANDFILES += cmd-bsd_mod-loader_i386_bsd.lst +FSFILES += fs-bsd_mod-loader_i386_bsd.lst +PARTTOOLFILES += parttool-bsd_mod-loader_i386_bsd.lst +PARTMAPFILES += partmap-bsd_mod-loader_i386_bsd.lst +HANDLERFILES += handler-bsd_mod-loader_i386_bsd.lst +TERMINALFILES += terminal-bsd_mod-loader_i386_bsd.lst +VIDEOFILES += video-bsd_mod-loader_i386_bsd.lst + +cmd-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh bsd > $@ || (rm -f $@; exit 1) + +fs-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh bsd > $@ || (rm -f $@; exit 1) + +parttool-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh bsd > $@ || (rm -f $@; exit 1) + +partmap-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh bsd > $@ || (rm -f $@; exit 1) + +handler-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh bsd > $@ || (rm -f $@; exit 1) + +terminal-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh bsd > $@ || (rm -f $@; exit 1) + +video-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh bsd > $@ || (rm -f $@; exit 1) + +bsd_mod-loader_i386_bsd32.o: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -DGRUB_FILE=\"loader/i386/bsd32.c\" -MD -c -o $@ $< +-include bsd_mod-loader_i386_bsd32.d + +clean-module-bsd_mod-loader_i386_bsd32-extra.1: + rm -f cmd-bsd_mod-loader_i386_bsd32.lst fs-bsd_mod-loader_i386_bsd32.lst partmap-bsd_mod-loader_i386_bsd32.lst handler-bsd_mod-loader_i386_bsd32.lst parttool-bsd_mod-loader_i386_bsd32.lst video-bsd_mod-loader_i386_bsd32.lst terminal-bsd_mod-loader_i386_bsd32.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd_mod-loader_i386_bsd32-extra.1 + +COMMANDFILES += cmd-bsd_mod-loader_i386_bsd32.lst +FSFILES += fs-bsd_mod-loader_i386_bsd32.lst +PARTTOOLFILES += parttool-bsd_mod-loader_i386_bsd32.lst +PARTMAPFILES += partmap-bsd_mod-loader_i386_bsd32.lst +HANDLERFILES += handler-bsd_mod-loader_i386_bsd32.lst +TERMINALFILES += terminal-bsd_mod-loader_i386_bsd32.lst +VIDEOFILES += video-bsd_mod-loader_i386_bsd32.lst + +cmd-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh bsd > $@ || (rm -f $@; exit 1) + +fs-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh bsd > $@ || (rm -f $@; exit 1) + +parttool-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh bsd > $@ || (rm -f $@; exit 1) + +partmap-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh bsd > $@ || (rm -f $@; exit 1) + +handler-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh bsd > $@ || (rm -f $@; exit 1) + +terminal-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh bsd > $@ || (rm -f $@; exit 1) + +video-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh bsd > $@ || (rm -f $@; exit 1) + +bsd_mod-loader_i386_bsd64.o: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -DGRUB_FILE=\"loader/i386/bsd64.c\" -MD -c -o $@ $< +-include bsd_mod-loader_i386_bsd64.d + +clean-module-bsd_mod-loader_i386_bsd64-extra.1: + rm -f cmd-bsd_mod-loader_i386_bsd64.lst fs-bsd_mod-loader_i386_bsd64.lst partmap-bsd_mod-loader_i386_bsd64.lst handler-bsd_mod-loader_i386_bsd64.lst parttool-bsd_mod-loader_i386_bsd64.lst video-bsd_mod-loader_i386_bsd64.lst terminal-bsd_mod-loader_i386_bsd64.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd_mod-loader_i386_bsd64-extra.1 + +COMMANDFILES += cmd-bsd_mod-loader_i386_bsd64.lst +FSFILES += fs-bsd_mod-loader_i386_bsd64.lst +PARTTOOLFILES += parttool-bsd_mod-loader_i386_bsd64.lst +PARTMAPFILES += partmap-bsd_mod-loader_i386_bsd64.lst +HANDLERFILES += handler-bsd_mod-loader_i386_bsd64.lst +TERMINALFILES += terminal-bsd_mod-loader_i386_bsd64.lst +VIDEOFILES += video-bsd_mod-loader_i386_bsd64.lst + +cmd-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh bsd > $@ || (rm -f $@; exit 1) + +fs-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh bsd > $@ || (rm -f $@; exit 1) + +parttool-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh bsd > $@ || (rm -f $@; exit 1) + +partmap-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh bsd > $@ || (rm -f $@; exit 1) + +handler-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh bsd > $@ || (rm -f $@; exit 1) + +terminal-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh bsd > $@ || (rm -f $@; exit 1) + +video-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh bsd > $@ || (rm -f $@; exit 1) + +bsd_mod-loader_i386_bsd_helper.o: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -DGRUB_FILE=\"loader/i386/bsd_helper.S\" -MD -c -o $@ $< +-include bsd_mod-loader_i386_bsd_helper.d + +clean-module-bsd_mod-loader_i386_bsd_helper-extra.1: + rm -f cmd-bsd_mod-loader_i386_bsd_helper.lst fs-bsd_mod-loader_i386_bsd_helper.lst partmap-bsd_mod-loader_i386_bsd_helper.lst handler-bsd_mod-loader_i386_bsd_helper.lst parttool-bsd_mod-loader_i386_bsd_helper.lst video-bsd_mod-loader_i386_bsd_helper.lst terminal-bsd_mod-loader_i386_bsd_helper.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd_mod-loader_i386_bsd_helper-extra.1 + +COMMANDFILES += cmd-bsd_mod-loader_i386_bsd_helper.lst +FSFILES += fs-bsd_mod-loader_i386_bsd_helper.lst +PARTTOOLFILES += parttool-bsd_mod-loader_i386_bsd_helper.lst +PARTMAPFILES += partmap-bsd_mod-loader_i386_bsd_helper.lst +HANDLERFILES += handler-bsd_mod-loader_i386_bsd_helper.lst +TERMINALFILES += terminal-bsd_mod-loader_i386_bsd_helper.lst +VIDEOFILES += video-bsd_mod-loader_i386_bsd_helper.lst + +cmd-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh bsd > $@ || (rm -f $@; exit 1) + +fs-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genfslist.sh bsd > $@ || (rm -f $@; exit 1) + +parttool-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh bsd > $@ || (rm -f $@; exit 1) + +partmap-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh bsd > $@ || (rm -f $@; exit 1) + +handler-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh bsd > $@ || (rm -f $@; exit 1) + +terminal-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genterminallist.sh bsd > $@ || (rm -f $@; exit 1) + +video-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genvideolist.sh bsd > $@ || (rm -f $@; exit 1) + +bsd_mod-loader_i386_bsd_trampoline.o: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -DGRUB_FILE=\"loader/i386/bsd_trampoline.S\" -MD -c -o $@ $< +-include bsd_mod-loader_i386_bsd_trampoline.d + +clean-module-bsd_mod-loader_i386_bsd_trampoline-extra.1: + rm -f cmd-bsd_mod-loader_i386_bsd_trampoline.lst fs-bsd_mod-loader_i386_bsd_trampoline.lst partmap-bsd_mod-loader_i386_bsd_trampoline.lst handler-bsd_mod-loader_i386_bsd_trampoline.lst parttool-bsd_mod-loader_i386_bsd_trampoline.lst video-bsd_mod-loader_i386_bsd_trampoline.lst terminal-bsd_mod-loader_i386_bsd_trampoline.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd_mod-loader_i386_bsd_trampoline-extra.1 + +COMMANDFILES += cmd-bsd_mod-loader_i386_bsd_trampoline.lst +FSFILES += fs-bsd_mod-loader_i386_bsd_trampoline.lst +PARTTOOLFILES += parttool-bsd_mod-loader_i386_bsd_trampoline.lst +PARTMAPFILES += partmap-bsd_mod-loader_i386_bsd_trampoline.lst +HANDLERFILES += handler-bsd_mod-loader_i386_bsd_trampoline.lst +TERMINALFILES += terminal-bsd_mod-loader_i386_bsd_trampoline.lst +VIDEOFILES += video-bsd_mod-loader_i386_bsd_trampoline.lst + +cmd-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh bsd > $@ || (rm -f $@; exit 1) + +fs-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genfslist.sh bsd > $@ || (rm -f $@; exit 1) + +parttool-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh bsd > $@ || (rm -f $@; exit 1) + +partmap-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh bsd > $@ || (rm -f $@; exit 1) + +handler-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh bsd > $@ || (rm -f $@; exit 1) + +terminal-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genterminallist.sh bsd > $@ || (rm -f $@; exit 1) + +video-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genvideolist.sh bsd > $@ || (rm -f $@; exit 1) + +bsd_mod_CFLAGS = $(COMMON_CFLAGS) +bsd_mod_LDFLAGS = $(COMMON_LDFLAGS) +bsd_mod_ASFLAGS = $(COMMON_ASFLAGS) + +# For datetime.mod +datetime_mod_SOURCES = lib/cmos_datetime.c + +clean-module-datetime.mod.1: + rm -f datetime.mod mod-datetime.o mod-datetime.c pre-datetime.o datetime_mod-lib_cmos_datetime.o und-datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime.mod.1 + +clean-module-datetime.mod-symbol.1: + rm -f def-datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime.mod-symbol.1 +DEFSYMFILES += def-datetime.lst +mostlyclean-module-datetime.mod.1: + rm -f datetime_mod-lib_cmos_datetime.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-datetime.mod.1 +UNDSYMFILES += und-datetime.lst + +ifeq ($(TARGET_NO_MODULES), yes) +datetime.mod: pre-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-datetime.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +datetime.mod: pre-datetime.o mod-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-datetime.o mod-datetime.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +datetime.mod: pre-datetime.o mod-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-datetime.o mod-datetime.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-datetime.o: $(datetime_mod_DEPENDENCIES) datetime_mod-lib_cmos_datetime.o + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ datetime_mod-lib_cmos_datetime.o + +mod-datetime.o: mod-datetime.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -DGRUB_FILE=\"mod-datetime.c\" -c -o $@ $< + +mod-datetime.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'datetime' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-datetime.lst: pre-datetime.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 datetime/' > $@ +else +def-datetime.lst: pre-datetime.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 datetime/' > $@ +endif + +und-datetime.lst: pre-datetime.o + echo 'datetime' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +datetime_mod-lib_cmos_datetime.o: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) + $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -DGRUB_FILE=\"lib/cmos_datetime.c\" -MD -c -o $@ $< +-include datetime_mod-lib_cmos_datetime.d + +clean-module-datetime_mod-lib_cmos_datetime-extra.1: + rm -f cmd-datetime_mod-lib_cmos_datetime.lst fs-datetime_mod-lib_cmos_datetime.lst partmap-datetime_mod-lib_cmos_datetime.lst handler-datetime_mod-lib_cmos_datetime.lst parttool-datetime_mod-lib_cmos_datetime.lst video-datetime_mod-lib_cmos_datetime.lst terminal-datetime_mod-lib_cmos_datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime_mod-lib_cmos_datetime-extra.1 + +COMMANDFILES += cmd-datetime_mod-lib_cmos_datetime.lst +FSFILES += fs-datetime_mod-lib_cmos_datetime.lst +PARTTOOLFILES += parttool-datetime_mod-lib_cmos_datetime.lst +PARTMAPFILES += partmap-datetime_mod-lib_cmos_datetime.lst +HANDLERFILES += handler-datetime_mod-lib_cmos_datetime.lst +TERMINALFILES += terminal-datetime_mod-lib_cmos_datetime.lst +VIDEOFILES += video-datetime_mod-lib_cmos_datetime.lst + +cmd-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh datetime > $@ || (rm -f $@; exit 1) + +fs-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh datetime > $@ || (rm -f $@; exit 1) + +parttool-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh datetime > $@ || (rm -f $@; exit 1) + +partmap-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh datetime > $@ || (rm -f $@; exit 1) + +handler-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh datetime > $@ || (rm -f $@; exit 1) + +terminal-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh datetime > $@ || (rm -f $@; exit 1) + +video-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh datetime > $@ || (rm -f $@; exit 1) + +datetime_mod_CFLAGS = $(COMMON_CFLAGS) +datetime_mod_LDFLAGS = $(COMMON_LDFLAGS) + +include $(srcdir)/conf/i386.mk +include $(srcdir)/conf/common.mk +CLEANFILES += kernel.img $(kernel_img_OBJECTS) +ifeq ($(kernel_img_RELOCATABLE),yes) +kernel.img: $(kernel_img_DEPENDENCIES) $(kernel_img_OBJECTS) + $(TARGET_CC) -Wl,-r,-d -o $@ $(kernel_img_OBJECTS) $(TARGET_LDFLAGS) $(kernel_img_LDFLAGS) + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K start -R .note -R .comment $@; fi +else +kernel.img: $(kernel_img_DEPENDENCIES) $(kernel_img_OBJECTS) + $(TARGET_CC) -o $@ $(kernel_img_OBJECTS) $(TARGET_LDFLAGS) $(kernel_img_LDFLAGS) + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) -R .rel.dyn -R .reginfo -R .note -R .comment $@; fi +endif + --- grub2-1.98+20100804.orig/conf/i386-multiboot.mk +++ grub2-1.98+20100804/conf/i386-multiboot.mk @@ -0,0 +1,1126 @@ +# -*- makefile -*- +# Generated by genmk.rb, please don't edit! + +COMMON_CFLAGS = -mrtd -mregparm=3 + +# Images. + +GRUB_KERNEL_MACHINE_LINK_ADDR = 0x8200 + +pkglib_PROGRAMS += kernel.img +kernel_img_SOURCES = kern/i386/coreboot/startup.S \ + kern/i386/misc.S \ + kern/i386/coreboot/init.c \ + kern/i386/multiboot_mmap.c \ + kern/i386/halt.c \ + kern/main.c kern/device.c \ + kern/disk.c kern/dl.c kern/file.c kern/fs.c kern/err.c \ + kern/misc.c kern/mm.c kern/term.c \ + kern/rescue_parser.c kern/rescue_reader.c \ + kern/time.c kern/list.c kern/handler.c kern/command.c kern/corecmd.c \ + kern/$(target_cpu)/dl.c kern/parser.c kern/partition.c \ + kern/i386/tsc.c kern/i386/pit.c \ + kern/generic/rtc_get_time_ms.c \ + kern/generic/millisleep.c \ + kern/env.c \ + term/i386/pc/vga_text.c term/i386/vga_common.c \ + symlist.c +MOSTLYCLEANFILES += kernel_img-kern_i386_coreboot_startup.d kernel_img-kern_i386_misc.d kernel_img-kern_i386_coreboot_init.d kernel_img-kern_i386_multiboot_mmap.d kernel_img-kern_i386_halt.d kernel_img-kern_main.d kernel_img-kern_device.d kernel_img-kern_disk.d kernel_img-kern_dl.d kernel_img-kern_file.d kernel_img-kern_fs.d kernel_img-kern_err.d kernel_img-kern_misc.d kernel_img-kern_mm.d kernel_img-kern_term.d kernel_img-kern_rescue_parser.d kernel_img-kern_rescue_reader.d kernel_img-kern_time.d kernel_img-kern_list.d kernel_img-kern_handler.d kernel_img-kern_command.d kernel_img-kern_corecmd.d kernel_img-kern___target_cpu__dl.d kernel_img-kern_parser.d kernel_img-kern_partition.d kernel_img-kern_i386_tsc.d kernel_img-kern_i386_pit.d kernel_img-kern_generic_rtc_get_time_ms.d kernel_img-kern_generic_millisleep.d kernel_img-kern_env.d kernel_img-term_i386_pc_vga_text.d kernel_img-term_i386_vga_common.d kernel_img-symlist.d + +kernel_img-kern_i386_coreboot_startup.o: kern/i386/coreboot/startup.S $(kern/i386/coreboot/startup.S_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386/coreboot -I$(srcdir)/kern/i386/coreboot $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(kernel_img_ASFLAGS) -DGRUB_FILE=\"kern/i386/coreboot/startup.S\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_coreboot_startup.d + +kernel_img_OBJECTS += kernel_img-kern_i386_coreboot_startup.o +kernel_img-kern_i386_misc.o: kern/i386/misc.S $(kern/i386/misc.S_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(kernel_img_ASFLAGS) -DGRUB_FILE=\"kern/i386/misc.S\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_misc.d + +kernel_img_OBJECTS += kernel_img-kern_i386_misc.o +kernel_img-kern_i386_coreboot_init.o: kern/i386/coreboot/init.c $(kern/i386/coreboot/init.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386/coreboot -I$(srcdir)/kern/i386/coreboot $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/i386/coreboot/init.c\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_coreboot_init.d + +kernel_img_OBJECTS += kernel_img-kern_i386_coreboot_init.o +kernel_img-kern_i386_multiboot_mmap.o: kern/i386/multiboot_mmap.c $(kern/i386/multiboot_mmap.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/i386/multiboot_mmap.c\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_multiboot_mmap.d + +kernel_img_OBJECTS += kernel_img-kern_i386_multiboot_mmap.o +kernel_img-kern_i386_halt.o: kern/i386/halt.c $(kern/i386/halt.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/i386/halt.c\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_halt.d + +kernel_img_OBJECTS += kernel_img-kern_i386_halt.o +kernel_img-kern_main.o: kern/main.c $(kern/main.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/main.c\" -MD -c -o $@ $< + +-include kernel_img-kern_main.d + +kernel_img_OBJECTS += kernel_img-kern_main.o +kernel_img-kern_device.o: kern/device.c $(kern/device.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/device.c\" -MD -c -o $@ $< + +-include kernel_img-kern_device.d + +kernel_img_OBJECTS += kernel_img-kern_device.o +kernel_img-kern_disk.o: kern/disk.c $(kern/disk.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/disk.c\" -MD -c -o $@ $< + +-include kernel_img-kern_disk.d + +kernel_img_OBJECTS += kernel_img-kern_disk.o +kernel_img-kern_dl.o: kern/dl.c $(kern/dl.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/dl.c\" -MD -c -o $@ $< + +-include kernel_img-kern_dl.d + +kernel_img_OBJECTS += kernel_img-kern_dl.o +kernel_img-kern_file.o: kern/file.c $(kern/file.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/file.c\" -MD -c -o $@ $< + +-include kernel_img-kern_file.d + +kernel_img_OBJECTS += kernel_img-kern_file.o +kernel_img-kern_fs.o: kern/fs.c $(kern/fs.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/fs.c\" -MD -c -o $@ $< + +-include kernel_img-kern_fs.d + +kernel_img_OBJECTS += kernel_img-kern_fs.o +kernel_img-kern_err.o: kern/err.c $(kern/err.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/err.c\" -MD -c -o $@ $< + +-include kernel_img-kern_err.d + +kernel_img_OBJECTS += kernel_img-kern_err.o +kernel_img-kern_misc.o: kern/misc.c $(kern/misc.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/misc.c\" -MD -c -o $@ $< + +-include kernel_img-kern_misc.d + +kernel_img_OBJECTS += kernel_img-kern_misc.o +kernel_img-kern_mm.o: kern/mm.c $(kern/mm.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/mm.c\" -MD -c -o $@ $< + +-include kernel_img-kern_mm.d + +kernel_img_OBJECTS += kernel_img-kern_mm.o +kernel_img-kern_term.o: kern/term.c $(kern/term.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/term.c\" -MD -c -o $@ $< + +-include kernel_img-kern_term.d + +kernel_img_OBJECTS += kernel_img-kern_term.o +kernel_img-kern_rescue_parser.o: kern/rescue_parser.c $(kern/rescue_parser.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/rescue_parser.c\" -MD -c -o $@ $< + +-include kernel_img-kern_rescue_parser.d + +kernel_img_OBJECTS += kernel_img-kern_rescue_parser.o +kernel_img-kern_rescue_reader.o: kern/rescue_reader.c $(kern/rescue_reader.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/rescue_reader.c\" -MD -c -o $@ $< + +-include kernel_img-kern_rescue_reader.d + +kernel_img_OBJECTS += kernel_img-kern_rescue_reader.o +kernel_img-kern_time.o: kern/time.c $(kern/time.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/time.c\" -MD -c -o $@ $< + +-include kernel_img-kern_time.d + +kernel_img_OBJECTS += kernel_img-kern_time.o +kernel_img-kern_list.o: kern/list.c $(kern/list.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/list.c\" -MD -c -o $@ $< + +-include kernel_img-kern_list.d + +kernel_img_OBJECTS += kernel_img-kern_list.o +kernel_img-kern_handler.o: kern/handler.c $(kern/handler.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/handler.c\" -MD -c -o $@ $< + +-include kernel_img-kern_handler.d + +kernel_img_OBJECTS += kernel_img-kern_handler.o +kernel_img-kern_command.o: kern/command.c $(kern/command.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/command.c\" -MD -c -o $@ $< + +-include kernel_img-kern_command.d + +kernel_img_OBJECTS += kernel_img-kern_command.o +kernel_img-kern_corecmd.o: kern/corecmd.c $(kern/corecmd.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/corecmd.c\" -MD -c -o $@ $< + +-include kernel_img-kern_corecmd.d + +kernel_img_OBJECTS += kernel_img-kern_corecmd.o +kernel_img-kern___target_cpu__dl.o: kern/$(target_cpu)/dl.c $(kern/$(target_cpu)/dl.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/$(target_cpu) -I$(srcdir)/kern/$(target_cpu) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/$(target_cpu)/dl.c\" -MD -c -o $@ $< + +-include kernel_img-kern___target_cpu__dl.d + +kernel_img_OBJECTS += kernel_img-kern___target_cpu__dl.o +kernel_img-kern_parser.o: kern/parser.c $(kern/parser.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/parser.c\" -MD -c -o $@ $< + +-include kernel_img-kern_parser.d + +kernel_img_OBJECTS += kernel_img-kern_parser.o +kernel_img-kern_partition.o: kern/partition.c $(kern/partition.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/partition.c\" -MD -c -o $@ $< + +-include kernel_img-kern_partition.d + +kernel_img_OBJECTS += kernel_img-kern_partition.o +kernel_img-kern_i386_tsc.o: kern/i386/tsc.c $(kern/i386/tsc.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/i386/tsc.c\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_tsc.d + +kernel_img_OBJECTS += kernel_img-kern_i386_tsc.o +kernel_img-kern_i386_pit.o: kern/i386/pit.c $(kern/i386/pit.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/i386/pit.c\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_pit.d + +kernel_img_OBJECTS += kernel_img-kern_i386_pit.o +kernel_img-kern_generic_rtc_get_time_ms.o: kern/generic/rtc_get_time_ms.c $(kern/generic/rtc_get_time_ms.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/generic -I$(srcdir)/kern/generic $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/generic/rtc_get_time_ms.c\" -MD -c -o $@ $< + +-include kernel_img-kern_generic_rtc_get_time_ms.d + +kernel_img_OBJECTS += kernel_img-kern_generic_rtc_get_time_ms.o +kernel_img-kern_generic_millisleep.o: kern/generic/millisleep.c $(kern/generic/millisleep.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/generic -I$(srcdir)/kern/generic $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/generic/millisleep.c\" -MD -c -o $@ $< + +-include kernel_img-kern_generic_millisleep.d + +kernel_img_OBJECTS += kernel_img-kern_generic_millisleep.o +kernel_img-kern_env.o: kern/env.c $(kern/env.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/env.c\" -MD -c -o $@ $< + +-include kernel_img-kern_env.d + +kernel_img_OBJECTS += kernel_img-kern_env.o +kernel_img-term_i386_pc_vga_text.o: term/i386/pc/vga_text.c $(term/i386/pc/vga_text.c_DEPENDENCIES) + $(TARGET_CC) -Iterm/i386/pc -I$(srcdir)/term/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"term/i386/pc/vga_text.c\" -MD -c -o $@ $< + +-include kernel_img-term_i386_pc_vga_text.d + +kernel_img_OBJECTS += kernel_img-term_i386_pc_vga_text.o +kernel_img-term_i386_vga_common.o: term/i386/vga_common.c $(term/i386/vga_common.c_DEPENDENCIES) + $(TARGET_CC) -Iterm/i386 -I$(srcdir)/term/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"term/i386/vga_common.c\" -MD -c -o $@ $< + +-include kernel_img-term_i386_vga_common.d + +kernel_img_OBJECTS += kernel_img-term_i386_vga_common.o +kernel_img-symlist.o: symlist.c $(symlist.c_DEPENDENCIES) + $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"symlist.c\" -MD -c -o $@ $< + +-include kernel_img-symlist.d + +kernel_img_OBJECTS += kernel_img-symlist.o +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 + +sbin_SCRIPTS += grub-install +grub_install_SOURCES = util/grub-install.in +CLEANFILES += grub-install + +grub-install: util/grub-install.in $(util/grub-install.in_DEPENDENCIES) config.status + ./config.status --file=-:util/grub-install.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +bin_SCRIPTS += grub-mkrescue +grub_mkrescue_SOURCES = util/grub-mkrescue.in +CLEANFILES += grub-mkrescue + +grub-mkrescue: util/grub-mkrescue.in $(util/grub-mkrescue.in_DEPENDENCIES) config.status + ./config.status --file=-:util/grub-mkrescue.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +# Modules. +pkglib_MODULES = linux.mod aout.mod halt.mod datetime.mod mmap.mod + +# For mmap.mod. +mmap_mod_SOURCES = mmap/mmap.c mmap/i386/uppermem.c mmap/i386/mmap.c + +clean-module-mmap.mod.1: + rm -f mmap.mod mod-mmap.o mod-mmap.c pre-mmap.o mmap_mod-mmap_mmap.o mmap_mod-mmap_i386_uppermem.o mmap_mod-mmap_i386_mmap.o und-mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap.mod.1 + +clean-module-mmap.mod-symbol.1: + rm -f def-mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap.mod-symbol.1 +DEFSYMFILES += def-mmap.lst +mostlyclean-module-mmap.mod.1: + rm -f mmap_mod-mmap_mmap.d mmap_mod-mmap_i386_uppermem.d mmap_mod-mmap_i386_mmap.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-mmap.mod.1 +UNDSYMFILES += und-mmap.lst + +ifeq ($(TARGET_NO_MODULES), yes) +mmap.mod: pre-mmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-mmap.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +mmap.mod: pre-mmap.o mod-mmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-mmap.o mod-mmap.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +mmap.mod: pre-mmap.o mod-mmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-mmap.o mod-mmap.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-mmap.o: $(mmap_mod_DEPENDENCIES) mmap_mod-mmap_mmap.o mmap_mod-mmap_i386_uppermem.o mmap_mod-mmap_i386_mmap.o + -rm -f $@ + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ mmap_mod-mmap_mmap.o mmap_mod-mmap_i386_uppermem.o mmap_mod-mmap_i386_mmap.o + +mod-mmap.o: mod-mmap.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mod-mmap.c\" -c -o $@ $< + +mod-mmap.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'mmap' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-mmap.lst: pre-mmap.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 mmap/' > $@ +else +def-mmap.lst: pre-mmap.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 mmap/' > $@ +endif + +und-mmap.lst: pre-mmap.o + echo 'mmap' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +mmap_mod-mmap_mmap.o: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) + $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mmap/mmap.c\" -MD -c -o $@ $< +-include mmap_mod-mmap_mmap.d + +clean-module-mmap_mod-mmap_mmap-extra.1: + rm -f cmd-mmap_mod-mmap_mmap.lst fs-mmap_mod-mmap_mmap.lst partmap-mmap_mod-mmap_mmap.lst handler-mmap_mod-mmap_mmap.lst parttool-mmap_mod-mmap_mmap.lst video-mmap_mod-mmap_mmap.lst terminal-mmap_mod-mmap_mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap_mod-mmap_mmap-extra.1 + +COMMANDFILES += cmd-mmap_mod-mmap_mmap.lst +FSFILES += fs-mmap_mod-mmap_mmap.lst +PARTTOOLFILES += parttool-mmap_mod-mmap_mmap.lst +PARTMAPFILES += partmap-mmap_mod-mmap_mmap.lst +HANDLERFILES += handler-mmap_mod-mmap_mmap.lst +TERMINALFILES += terminal-mmap_mod-mmap_mmap.lst +VIDEOFILES += video-mmap_mod-mmap_mmap.lst + +cmd-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh mmap > $@ || (rm -f $@; exit 1) + +fs-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh mmap > $@ || (rm -f $@; exit 1) + +parttool-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh mmap > $@ || (rm -f $@; exit 1) + +partmap-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh mmap > $@ || (rm -f $@; exit 1) + +handler-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh mmap > $@ || (rm -f $@; exit 1) + +terminal-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh mmap > $@ || (rm -f $@; exit 1) + +video-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh mmap > $@ || (rm -f $@; exit 1) + +mmap_mod-mmap_i386_uppermem.o: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) + $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mmap/i386/uppermem.c\" -MD -c -o $@ $< +-include mmap_mod-mmap_i386_uppermem.d + +clean-module-mmap_mod-mmap_i386_uppermem-extra.1: + rm -f cmd-mmap_mod-mmap_i386_uppermem.lst fs-mmap_mod-mmap_i386_uppermem.lst partmap-mmap_mod-mmap_i386_uppermem.lst handler-mmap_mod-mmap_i386_uppermem.lst parttool-mmap_mod-mmap_i386_uppermem.lst video-mmap_mod-mmap_i386_uppermem.lst terminal-mmap_mod-mmap_i386_uppermem.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap_mod-mmap_i386_uppermem-extra.1 + +COMMANDFILES += cmd-mmap_mod-mmap_i386_uppermem.lst +FSFILES += fs-mmap_mod-mmap_i386_uppermem.lst +PARTTOOLFILES += parttool-mmap_mod-mmap_i386_uppermem.lst +PARTMAPFILES += partmap-mmap_mod-mmap_i386_uppermem.lst +HANDLERFILES += handler-mmap_mod-mmap_i386_uppermem.lst +TERMINALFILES += terminal-mmap_mod-mmap_i386_uppermem.lst +VIDEOFILES += video-mmap_mod-mmap_i386_uppermem.lst + +cmd-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh mmap > $@ || (rm -f $@; exit 1) + +fs-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh mmap > $@ || (rm -f $@; exit 1) + +parttool-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh mmap > $@ || (rm -f $@; exit 1) + +partmap-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh mmap > $@ || (rm -f $@; exit 1) + +handler-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh mmap > $@ || (rm -f $@; exit 1) + +terminal-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh mmap > $@ || (rm -f $@; exit 1) + +video-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh mmap > $@ || (rm -f $@; exit 1) + +mmap_mod-mmap_i386_mmap.o: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) + $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mmap/i386/mmap.c\" -MD -c -o $@ $< +-include mmap_mod-mmap_i386_mmap.d + +clean-module-mmap_mod-mmap_i386_mmap-extra.1: + rm -f cmd-mmap_mod-mmap_i386_mmap.lst fs-mmap_mod-mmap_i386_mmap.lst partmap-mmap_mod-mmap_i386_mmap.lst handler-mmap_mod-mmap_i386_mmap.lst parttool-mmap_mod-mmap_i386_mmap.lst video-mmap_mod-mmap_i386_mmap.lst terminal-mmap_mod-mmap_i386_mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap_mod-mmap_i386_mmap-extra.1 + +COMMANDFILES += cmd-mmap_mod-mmap_i386_mmap.lst +FSFILES += fs-mmap_mod-mmap_i386_mmap.lst +PARTTOOLFILES += parttool-mmap_mod-mmap_i386_mmap.lst +PARTMAPFILES += partmap-mmap_mod-mmap_i386_mmap.lst +HANDLERFILES += handler-mmap_mod-mmap_i386_mmap.lst +TERMINALFILES += terminal-mmap_mod-mmap_i386_mmap.lst +VIDEOFILES += video-mmap_mod-mmap_i386_mmap.lst + +cmd-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh mmap > $@ || (rm -f $@; exit 1) + +fs-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh mmap > $@ || (rm -f $@; exit 1) + +parttool-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh mmap > $@ || (rm -f $@; exit 1) + +partmap-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh mmap > $@ || (rm -f $@; exit 1) + +handler-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh mmap > $@ || (rm -f $@; exit 1) + +terminal-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh mmap > $@ || (rm -f $@; exit 1) + +video-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh mmap > $@ || (rm -f $@; exit 1) + +mmap_mod_CFLAGS = $(COMMON_CFLAGS) +mmap_mod_LDFLAGS = $(COMMON_LDFLAGS) +mmap_mod_ASFLAGS = $(COMMON_ASFLAGS) + +# For linux.mod. +linux_mod_SOURCES = loader/i386/linux.c + +clean-module-linux.mod.1: + rm -f linux.mod mod-linux.o mod-linux.c pre-linux.o linux_mod-loader_i386_linux.o und-linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux.mod.1 + +clean-module-linux.mod-symbol.1: + rm -f def-linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux.mod-symbol.1 +DEFSYMFILES += def-linux.lst +mostlyclean-module-linux.mod.1: + rm -f linux_mod-loader_i386_linux.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-linux.mod.1 +UNDSYMFILES += und-linux.lst + +ifeq ($(TARGET_NO_MODULES), yes) +linux.mod: pre-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-linux.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-linux.o mod-linux.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-linux.o mod-linux.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-linux.o: $(linux_mod_DEPENDENCIES) linux_mod-loader_i386_linux.o + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ linux_mod-loader_i386_linux.o + +mod-linux.o: mod-linux.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -DGRUB_FILE=\"mod-linux.c\" -c -o $@ $< + +mod-linux.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'linux' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-linux.lst: pre-linux.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 linux/' > $@ +else +def-linux.lst: pre-linux.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 linux/' > $@ +endif + +und-linux.lst: pre-linux.o + echo 'linux' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +linux_mod-loader_i386_linux.o: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -DGRUB_FILE=\"loader/i386/linux.c\" -MD -c -o $@ $< +-include linux_mod-loader_i386_linux.d + +clean-module-linux_mod-loader_i386_linux-extra.1: + rm -f cmd-linux_mod-loader_i386_linux.lst fs-linux_mod-loader_i386_linux.lst partmap-linux_mod-loader_i386_linux.lst handler-linux_mod-loader_i386_linux.lst parttool-linux_mod-loader_i386_linux.lst video-linux_mod-loader_i386_linux.lst terminal-linux_mod-loader_i386_linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux_mod-loader_i386_linux-extra.1 + +COMMANDFILES += cmd-linux_mod-loader_i386_linux.lst +FSFILES += fs-linux_mod-loader_i386_linux.lst +PARTTOOLFILES += parttool-linux_mod-loader_i386_linux.lst +PARTMAPFILES += partmap-linux_mod-loader_i386_linux.lst +HANDLERFILES += handler-linux_mod-loader_i386_linux.lst +TERMINALFILES += terminal-linux_mod-loader_i386_linux.lst +VIDEOFILES += video-linux_mod-loader_i386_linux.lst + +cmd-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh linux > $@ || (rm -f $@; exit 1) + +fs-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh linux > $@ || (rm -f $@; exit 1) + +parttool-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh linux > $@ || (rm -f $@; exit 1) + +partmap-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh linux > $@ || (rm -f $@; exit 1) + +handler-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh linux > $@ || (rm -f $@; exit 1) + +terminal-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh linux > $@ || (rm -f $@; exit 1) + +video-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh linux > $@ || (rm -f $@; exit 1) + +linux_mod_CFLAGS = $(COMMON_CFLAGS) +linux_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For halt.mod. +halt_mod_SOURCES = commands/halt.c + +clean-module-halt.mod.1: + rm -f halt.mod mod-halt.o mod-halt.c pre-halt.o halt_mod-commands_halt.o und-halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt.mod.1 + +clean-module-halt.mod-symbol.1: + rm -f def-halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt.mod-symbol.1 +DEFSYMFILES += def-halt.lst +mostlyclean-module-halt.mod.1: + rm -f halt_mod-commands_halt.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-halt.mod.1 +UNDSYMFILES += und-halt.lst + +ifeq ($(TARGET_NO_MODULES), yes) +halt.mod: pre-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-halt.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +halt.mod: pre-halt.o mod-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-halt.o mod-halt.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +halt.mod: pre-halt.o mod-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-halt.o mod-halt.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-halt.o: $(halt_mod_DEPENDENCIES) halt_mod-commands_halt.o + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ halt_mod-commands_halt.o + +mod-halt.o: mod-halt.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -DGRUB_FILE=\"mod-halt.c\" -c -o $@ $< + +mod-halt.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'halt' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-halt.lst: pre-halt.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 halt/' > $@ +else +def-halt.lst: pre-halt.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 halt/' > $@ +endif + +und-halt.lst: pre-halt.o + echo 'halt' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +halt_mod-commands_halt.o: commands/halt.c $(commands/halt.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -DGRUB_FILE=\"commands/halt.c\" -MD -c -o $@ $< +-include halt_mod-commands_halt.d + +clean-module-halt_mod-commands_halt-extra.1: + rm -f cmd-halt_mod-commands_halt.lst fs-halt_mod-commands_halt.lst partmap-halt_mod-commands_halt.lst handler-halt_mod-commands_halt.lst parttool-halt_mod-commands_halt.lst video-halt_mod-commands_halt.lst terminal-halt_mod-commands_halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt_mod-commands_halt-extra.1 + +COMMANDFILES += cmd-halt_mod-commands_halt.lst +FSFILES += fs-halt_mod-commands_halt.lst +PARTTOOLFILES += parttool-halt_mod-commands_halt.lst +PARTMAPFILES += partmap-halt_mod-commands_halt.lst +HANDLERFILES += handler-halt_mod-commands_halt.lst +TERMINALFILES += terminal-halt_mod-commands_halt.lst +VIDEOFILES += video-halt_mod-commands_halt.lst + +cmd-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh halt > $@ || (rm -f $@; exit 1) + +fs-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh halt > $@ || (rm -f $@; exit 1) + +parttool-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh halt > $@ || (rm -f $@; exit 1) + +partmap-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh halt > $@ || (rm -f $@; exit 1) + +handler-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh halt > $@ || (rm -f $@; exit 1) + +terminal-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh halt > $@ || (rm -f $@; exit 1) + +video-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh halt > $@ || (rm -f $@; exit 1) + +halt_mod_CFLAGS = $(COMMON_CFLAGS) +halt_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For aout.mod. +aout_mod_SOURCES = loader/aout.c + +clean-module-aout.mod.1: + rm -f aout.mod mod-aout.o mod-aout.c pre-aout.o aout_mod-loader_aout.o und-aout.lst + +CLEAN_MODULE_TARGETS += clean-module-aout.mod.1 + +clean-module-aout.mod-symbol.1: + rm -f def-aout.lst + +CLEAN_MODULE_TARGETS += clean-module-aout.mod-symbol.1 +DEFSYMFILES += def-aout.lst +mostlyclean-module-aout.mod.1: + rm -f aout_mod-loader_aout.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-aout.mod.1 +UNDSYMFILES += und-aout.lst + +ifeq ($(TARGET_NO_MODULES), yes) +aout.mod: pre-aout.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-aout.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +aout.mod: pre-aout.o mod-aout.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-aout.o mod-aout.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +aout.mod: pre-aout.o mod-aout.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-aout.o mod-aout.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-aout.o: $(aout_mod_DEPENDENCIES) aout_mod-loader_aout.o + -rm -f $@ + $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ aout_mod-loader_aout.o + +mod-aout.o: mod-aout.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -DGRUB_FILE=\"mod-aout.c\" -c -o $@ $< + +mod-aout.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'aout' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-aout.lst: pre-aout.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 aout/' > $@ +else +def-aout.lst: pre-aout.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 aout/' > $@ +endif + +und-aout.lst: pre-aout.o + echo 'aout' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +aout_mod-loader_aout.o: loader/aout.c $(loader/aout.c_DEPENDENCIES) + $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -DGRUB_FILE=\"loader/aout.c\" -MD -c -o $@ $< +-include aout_mod-loader_aout.d + +clean-module-aout_mod-loader_aout-extra.1: + rm -f cmd-aout_mod-loader_aout.lst fs-aout_mod-loader_aout.lst partmap-aout_mod-loader_aout.lst handler-aout_mod-loader_aout.lst parttool-aout_mod-loader_aout.lst video-aout_mod-loader_aout.lst terminal-aout_mod-loader_aout.lst + +CLEAN_MODULE_TARGETS += clean-module-aout_mod-loader_aout-extra.1 + +COMMANDFILES += cmd-aout_mod-loader_aout.lst +FSFILES += fs-aout_mod-loader_aout.lst +PARTTOOLFILES += parttool-aout_mod-loader_aout.lst +PARTMAPFILES += partmap-aout_mod-loader_aout.lst +HANDLERFILES += handler-aout_mod-loader_aout.lst +TERMINALFILES += terminal-aout_mod-loader_aout.lst +VIDEOFILES += video-aout_mod-loader_aout.lst + +cmd-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh aout > $@ || (rm -f $@; exit 1) + +fs-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh aout > $@ || (rm -f $@; exit 1) + +parttool-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh aout > $@ || (rm -f $@; exit 1) + +partmap-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh aout > $@ || (rm -f $@; exit 1) + +handler-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh aout > $@ || (rm -f $@; exit 1) + +terminal-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh aout > $@ || (rm -f $@; exit 1) + +video-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh aout > $@ || (rm -f $@; exit 1) + +aout_mod_CFLAGS = $(COMMON_CFLAGS) +aout_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For bsd.mod +pkglib_MODULES += bsd.mod +bsd_mod_SOURCES = loader/i386/bsd.c loader/i386/bsd32.c loader/i386/bsd64.c loader/i386/bsd_helper.S loader/i386/bsd_trampoline.S + +clean-module-bsd.mod.1: + rm -f bsd.mod mod-bsd.o mod-bsd.c pre-bsd.o bsd_mod-loader_i386_bsd.o bsd_mod-loader_i386_bsd32.o bsd_mod-loader_i386_bsd64.o bsd_mod-loader_i386_bsd_helper.o bsd_mod-loader_i386_bsd_trampoline.o und-bsd.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd.mod.1 + +clean-module-bsd.mod-symbol.1: + rm -f def-bsd.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd.mod-symbol.1 +DEFSYMFILES += def-bsd.lst +mostlyclean-module-bsd.mod.1: + rm -f bsd_mod-loader_i386_bsd.d bsd_mod-loader_i386_bsd32.d bsd_mod-loader_i386_bsd64.d bsd_mod-loader_i386_bsd_helper.d bsd_mod-loader_i386_bsd_trampoline.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-bsd.mod.1 +UNDSYMFILES += und-bsd.lst + +ifeq ($(TARGET_NO_MODULES), yes) +bsd.mod: pre-bsd.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(bsd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-bsd.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +bsd.mod: pre-bsd.o mod-bsd.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(bsd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-bsd.o mod-bsd.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +bsd.mod: pre-bsd.o mod-bsd.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(bsd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-bsd.o mod-bsd.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-bsd.o: $(bsd_mod_DEPENDENCIES) bsd_mod-loader_i386_bsd.o bsd_mod-loader_i386_bsd32.o bsd_mod-loader_i386_bsd64.o bsd_mod-loader_i386_bsd_helper.o bsd_mod-loader_i386_bsd_trampoline.o + -rm -f $@ + $(TARGET_CC) $(bsd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ bsd_mod-loader_i386_bsd.o bsd_mod-loader_i386_bsd32.o bsd_mod-loader_i386_bsd64.o bsd_mod-loader_i386_bsd_helper.o bsd_mod-loader_i386_bsd_trampoline.o + +mod-bsd.o: mod-bsd.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -DGRUB_FILE=\"mod-bsd.c\" -c -o $@ $< + +mod-bsd.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'bsd' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-bsd.lst: pre-bsd.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 bsd/' > $@ +else +def-bsd.lst: pre-bsd.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 bsd/' > $@ +endif + +und-bsd.lst: pre-bsd.o + echo 'bsd' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +bsd_mod-loader_i386_bsd.o: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -DGRUB_FILE=\"loader/i386/bsd.c\" -MD -c -o $@ $< +-include bsd_mod-loader_i386_bsd.d + +clean-module-bsd_mod-loader_i386_bsd-extra.1: + rm -f cmd-bsd_mod-loader_i386_bsd.lst fs-bsd_mod-loader_i386_bsd.lst partmap-bsd_mod-loader_i386_bsd.lst handler-bsd_mod-loader_i386_bsd.lst parttool-bsd_mod-loader_i386_bsd.lst video-bsd_mod-loader_i386_bsd.lst terminal-bsd_mod-loader_i386_bsd.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd_mod-loader_i386_bsd-extra.1 + +COMMANDFILES += cmd-bsd_mod-loader_i386_bsd.lst +FSFILES += fs-bsd_mod-loader_i386_bsd.lst +PARTTOOLFILES += parttool-bsd_mod-loader_i386_bsd.lst +PARTMAPFILES += partmap-bsd_mod-loader_i386_bsd.lst +HANDLERFILES += handler-bsd_mod-loader_i386_bsd.lst +TERMINALFILES += terminal-bsd_mod-loader_i386_bsd.lst +VIDEOFILES += video-bsd_mod-loader_i386_bsd.lst + +cmd-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh bsd > $@ || (rm -f $@; exit 1) + +fs-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh bsd > $@ || (rm -f $@; exit 1) + +parttool-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh bsd > $@ || (rm -f $@; exit 1) + +partmap-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh bsd > $@ || (rm -f $@; exit 1) + +handler-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh bsd > $@ || (rm -f $@; exit 1) + +terminal-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh bsd > $@ || (rm -f $@; exit 1) + +video-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh bsd > $@ || (rm -f $@; exit 1) + +bsd_mod-loader_i386_bsd32.o: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -DGRUB_FILE=\"loader/i386/bsd32.c\" -MD -c -o $@ $< +-include bsd_mod-loader_i386_bsd32.d + +clean-module-bsd_mod-loader_i386_bsd32-extra.1: + rm -f cmd-bsd_mod-loader_i386_bsd32.lst fs-bsd_mod-loader_i386_bsd32.lst partmap-bsd_mod-loader_i386_bsd32.lst handler-bsd_mod-loader_i386_bsd32.lst parttool-bsd_mod-loader_i386_bsd32.lst video-bsd_mod-loader_i386_bsd32.lst terminal-bsd_mod-loader_i386_bsd32.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd_mod-loader_i386_bsd32-extra.1 + +COMMANDFILES += cmd-bsd_mod-loader_i386_bsd32.lst +FSFILES += fs-bsd_mod-loader_i386_bsd32.lst +PARTTOOLFILES += parttool-bsd_mod-loader_i386_bsd32.lst +PARTMAPFILES += partmap-bsd_mod-loader_i386_bsd32.lst +HANDLERFILES += handler-bsd_mod-loader_i386_bsd32.lst +TERMINALFILES += terminal-bsd_mod-loader_i386_bsd32.lst +VIDEOFILES += video-bsd_mod-loader_i386_bsd32.lst + +cmd-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh bsd > $@ || (rm -f $@; exit 1) + +fs-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh bsd > $@ || (rm -f $@; exit 1) + +parttool-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh bsd > $@ || (rm -f $@; exit 1) + +partmap-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh bsd > $@ || (rm -f $@; exit 1) + +handler-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh bsd > $@ || (rm -f $@; exit 1) + +terminal-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh bsd > $@ || (rm -f $@; exit 1) + +video-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh bsd > $@ || (rm -f $@; exit 1) + +bsd_mod-loader_i386_bsd64.o: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -DGRUB_FILE=\"loader/i386/bsd64.c\" -MD -c -o $@ $< +-include bsd_mod-loader_i386_bsd64.d + +clean-module-bsd_mod-loader_i386_bsd64-extra.1: + rm -f cmd-bsd_mod-loader_i386_bsd64.lst fs-bsd_mod-loader_i386_bsd64.lst partmap-bsd_mod-loader_i386_bsd64.lst handler-bsd_mod-loader_i386_bsd64.lst parttool-bsd_mod-loader_i386_bsd64.lst video-bsd_mod-loader_i386_bsd64.lst terminal-bsd_mod-loader_i386_bsd64.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd_mod-loader_i386_bsd64-extra.1 + +COMMANDFILES += cmd-bsd_mod-loader_i386_bsd64.lst +FSFILES += fs-bsd_mod-loader_i386_bsd64.lst +PARTTOOLFILES += parttool-bsd_mod-loader_i386_bsd64.lst +PARTMAPFILES += partmap-bsd_mod-loader_i386_bsd64.lst +HANDLERFILES += handler-bsd_mod-loader_i386_bsd64.lst +TERMINALFILES += terminal-bsd_mod-loader_i386_bsd64.lst +VIDEOFILES += video-bsd_mod-loader_i386_bsd64.lst + +cmd-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh bsd > $@ || (rm -f $@; exit 1) + +fs-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh bsd > $@ || (rm -f $@; exit 1) + +parttool-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh bsd > $@ || (rm -f $@; exit 1) + +partmap-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh bsd > $@ || (rm -f $@; exit 1) + +handler-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh bsd > $@ || (rm -f $@; exit 1) + +terminal-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh bsd > $@ || (rm -f $@; exit 1) + +video-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh bsd > $@ || (rm -f $@; exit 1) + +bsd_mod-loader_i386_bsd_helper.o: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -DGRUB_FILE=\"loader/i386/bsd_helper.S\" -MD -c -o $@ $< +-include bsd_mod-loader_i386_bsd_helper.d + +clean-module-bsd_mod-loader_i386_bsd_helper-extra.1: + rm -f cmd-bsd_mod-loader_i386_bsd_helper.lst fs-bsd_mod-loader_i386_bsd_helper.lst partmap-bsd_mod-loader_i386_bsd_helper.lst handler-bsd_mod-loader_i386_bsd_helper.lst parttool-bsd_mod-loader_i386_bsd_helper.lst video-bsd_mod-loader_i386_bsd_helper.lst terminal-bsd_mod-loader_i386_bsd_helper.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd_mod-loader_i386_bsd_helper-extra.1 + +COMMANDFILES += cmd-bsd_mod-loader_i386_bsd_helper.lst +FSFILES += fs-bsd_mod-loader_i386_bsd_helper.lst +PARTTOOLFILES += parttool-bsd_mod-loader_i386_bsd_helper.lst +PARTMAPFILES += partmap-bsd_mod-loader_i386_bsd_helper.lst +HANDLERFILES += handler-bsd_mod-loader_i386_bsd_helper.lst +TERMINALFILES += terminal-bsd_mod-loader_i386_bsd_helper.lst +VIDEOFILES += video-bsd_mod-loader_i386_bsd_helper.lst + +cmd-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh bsd > $@ || (rm -f $@; exit 1) + +fs-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genfslist.sh bsd > $@ || (rm -f $@; exit 1) + +parttool-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh bsd > $@ || (rm -f $@; exit 1) + +partmap-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh bsd > $@ || (rm -f $@; exit 1) + +handler-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh bsd > $@ || (rm -f $@; exit 1) + +terminal-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genterminallist.sh bsd > $@ || (rm -f $@; exit 1) + +video-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genvideolist.sh bsd > $@ || (rm -f $@; exit 1) + +bsd_mod-loader_i386_bsd_trampoline.o: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -DGRUB_FILE=\"loader/i386/bsd_trampoline.S\" -MD -c -o $@ $< +-include bsd_mod-loader_i386_bsd_trampoline.d + +clean-module-bsd_mod-loader_i386_bsd_trampoline-extra.1: + rm -f cmd-bsd_mod-loader_i386_bsd_trampoline.lst fs-bsd_mod-loader_i386_bsd_trampoline.lst partmap-bsd_mod-loader_i386_bsd_trampoline.lst handler-bsd_mod-loader_i386_bsd_trampoline.lst parttool-bsd_mod-loader_i386_bsd_trampoline.lst video-bsd_mod-loader_i386_bsd_trampoline.lst terminal-bsd_mod-loader_i386_bsd_trampoline.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd_mod-loader_i386_bsd_trampoline-extra.1 + +COMMANDFILES += cmd-bsd_mod-loader_i386_bsd_trampoline.lst +FSFILES += fs-bsd_mod-loader_i386_bsd_trampoline.lst +PARTTOOLFILES += parttool-bsd_mod-loader_i386_bsd_trampoline.lst +PARTMAPFILES += partmap-bsd_mod-loader_i386_bsd_trampoline.lst +HANDLERFILES += handler-bsd_mod-loader_i386_bsd_trampoline.lst +TERMINALFILES += terminal-bsd_mod-loader_i386_bsd_trampoline.lst +VIDEOFILES += video-bsd_mod-loader_i386_bsd_trampoline.lst + +cmd-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh bsd > $@ || (rm -f $@; exit 1) + +fs-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genfslist.sh bsd > $@ || (rm -f $@; exit 1) + +parttool-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh bsd > $@ || (rm -f $@; exit 1) + +partmap-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh bsd > $@ || (rm -f $@; exit 1) + +handler-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh bsd > $@ || (rm -f $@; exit 1) + +terminal-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genterminallist.sh bsd > $@ || (rm -f $@; exit 1) + +video-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genvideolist.sh bsd > $@ || (rm -f $@; exit 1) + +bsd_mod_CFLAGS = $(COMMON_CFLAGS) +bsd_mod_LDFLAGS = $(COMMON_LDFLAGS) +bsd_mod_ASFLAGS = $(COMMON_ASFLAGS) + +# For datetime.mod +datetime_mod_SOURCES = lib/cmos_datetime.c + +clean-module-datetime.mod.1: + rm -f datetime.mod mod-datetime.o mod-datetime.c pre-datetime.o datetime_mod-lib_cmos_datetime.o und-datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime.mod.1 + +clean-module-datetime.mod-symbol.1: + rm -f def-datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime.mod-symbol.1 +DEFSYMFILES += def-datetime.lst +mostlyclean-module-datetime.mod.1: + rm -f datetime_mod-lib_cmos_datetime.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-datetime.mod.1 +UNDSYMFILES += und-datetime.lst + +ifeq ($(TARGET_NO_MODULES), yes) +datetime.mod: pre-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-datetime.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +datetime.mod: pre-datetime.o mod-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-datetime.o mod-datetime.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +datetime.mod: pre-datetime.o mod-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-datetime.o mod-datetime.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-datetime.o: $(datetime_mod_DEPENDENCIES) datetime_mod-lib_cmos_datetime.o + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ datetime_mod-lib_cmos_datetime.o + +mod-datetime.o: mod-datetime.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -DGRUB_FILE=\"mod-datetime.c\" -c -o $@ $< + +mod-datetime.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'datetime' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-datetime.lst: pre-datetime.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 datetime/' > $@ +else +def-datetime.lst: pre-datetime.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 datetime/' > $@ +endif + +und-datetime.lst: pre-datetime.o + echo 'datetime' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +datetime_mod-lib_cmos_datetime.o: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) + $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -DGRUB_FILE=\"lib/cmos_datetime.c\" -MD -c -o $@ $< +-include datetime_mod-lib_cmos_datetime.d + +clean-module-datetime_mod-lib_cmos_datetime-extra.1: + rm -f cmd-datetime_mod-lib_cmos_datetime.lst fs-datetime_mod-lib_cmos_datetime.lst partmap-datetime_mod-lib_cmos_datetime.lst handler-datetime_mod-lib_cmos_datetime.lst parttool-datetime_mod-lib_cmos_datetime.lst video-datetime_mod-lib_cmos_datetime.lst terminal-datetime_mod-lib_cmos_datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime_mod-lib_cmos_datetime-extra.1 + +COMMANDFILES += cmd-datetime_mod-lib_cmos_datetime.lst +FSFILES += fs-datetime_mod-lib_cmos_datetime.lst +PARTTOOLFILES += parttool-datetime_mod-lib_cmos_datetime.lst +PARTMAPFILES += partmap-datetime_mod-lib_cmos_datetime.lst +HANDLERFILES += handler-datetime_mod-lib_cmos_datetime.lst +TERMINALFILES += terminal-datetime_mod-lib_cmos_datetime.lst +VIDEOFILES += video-datetime_mod-lib_cmos_datetime.lst + +cmd-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh datetime > $@ || (rm -f $@; exit 1) + +fs-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh datetime > $@ || (rm -f $@; exit 1) + +parttool-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh datetime > $@ || (rm -f $@; exit 1) + +partmap-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh datetime > $@ || (rm -f $@; exit 1) + +handler-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh datetime > $@ || (rm -f $@; exit 1) + +terminal-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh datetime > $@ || (rm -f $@; exit 1) + +video-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh datetime > $@ || (rm -f $@; exit 1) + +datetime_mod_CFLAGS = $(COMMON_CFLAGS) +datetime_mod_LDFLAGS = $(COMMON_LDFLAGS) + +include $(srcdir)/conf/i386.mk +include $(srcdir)/conf/common.mk +CLEANFILES += kernel.img $(kernel_img_OBJECTS) +ifeq ($(kernel_img_RELOCATABLE),yes) +kernel.img: $(kernel_img_DEPENDENCIES) $(kernel_img_OBJECTS) + $(TARGET_CC) -Wl,-r,-d -o $@ $(kernel_img_OBJECTS) $(TARGET_LDFLAGS) $(kernel_img_LDFLAGS) + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K start -R .note -R .comment $@; fi +else +kernel.img: $(kernel_img_DEPENDENCIES) $(kernel_img_OBJECTS) + $(TARGET_CC) -o $@ $(kernel_img_OBJECTS) $(TARGET_LDFLAGS) $(kernel_img_LDFLAGS) + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) -R .rel.dyn -R .reginfo -R .note -R .comment $@; fi +endif + --- grub2-1.98+20100804.orig/conf/x86_64-efi.mk +++ grub2-1.98+20100804/conf/x86_64-efi.mk @@ -0,0 +1,6 @@ +# -*- makefile -*- +# Generated by genmk.rb, please don't edit! + +COMMON_LDFLAGS = -melf_x86_64 + +include $(srcdir)/conf/x86-efi.mk --- grub2-1.98+20100804.orig/conf/powerpc-ieee1275.mk +++ grub2-1.98+20100804/conf/powerpc-ieee1275.mk @@ -0,0 +1,792 @@ + +# Generated by genmk.rb, please don't edit! +# -*- makefile -*- + +# Images. + +kernel_img_HEADERS += ieee1275/ieee1275.h + +# Programs +pkglib_PROGRAMS = kernel.img + +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 \ + kern/misc.c kern/mm.c kern/term.c \ + kern/rescue_parser.c kern/rescue_reader.c \ + kern/list.c kern/command.c kern/corecmd.c \ + kern/ieee1275/init.c \ + kern/ieee1275/mmap.c \ + term/ieee1275/ofconsole.c term/terminfo.c term/tparm.c \ + kern/ieee1275/openfw.c disk/ieee1275/ofdisk.c \ + kern/parser.c kern/partition.c kern/env.c kern/$(target_cpu)/dl.c \ + kern/generic/millisleep.c kern/time.c \ + symlist.c kern/$(target_cpu)/cache.S +MOSTLYCLEANFILES += kernel_img-kern_powerpc_ieee1275_startup.d kernel_img-kern_ieee1275_cmain.d kernel_img-kern_ieee1275_ieee1275.d kernel_img-kern_main.d kernel_img-kern_device.d kernel_img-kern_disk.d kernel_img-kern_dl.d kernel_img-kern_err.d kernel_img-kern_file.d kernel_img-kern_fs.d kernel_img-kern_misc.d kernel_img-kern_mm.d kernel_img-kern_term.d kernel_img-kern_rescue_parser.d kernel_img-kern_rescue_reader.d kernel_img-kern_list.d kernel_img-kern_command.d kernel_img-kern_corecmd.d kernel_img-kern_ieee1275_init.d kernel_img-kern_ieee1275_mmap.d kernel_img-term_ieee1275_ofconsole.d kernel_img-term_terminfo.d kernel_img-term_tparm.d kernel_img-kern_ieee1275_openfw.d kernel_img-disk_ieee1275_ofdisk.d kernel_img-kern_parser.d kernel_img-kern_partition.d kernel_img-kern_env.d kernel_img-kern___target_cpu__dl.d kernel_img-kern_generic_millisleep.d kernel_img-kern_time.d kernel_img-symlist.d kernel_img-kern___target_cpu__cache.d + +kernel_img-kern_powerpc_ieee1275_startup.o: kern/powerpc/ieee1275/startup.S $(kern/powerpc/ieee1275/startup.S_DEPENDENCIES) + $(TARGET_CC) -Ikern/powerpc/ieee1275 -I$(srcdir)/kern/powerpc/ieee1275 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(kernel_img_ASFLAGS) -DGRUB_FILE=\"kern/powerpc/ieee1275/startup.S\" -MD -c -o $@ $< + +-include kernel_img-kern_powerpc_ieee1275_startup.d + +kernel_img_OBJECTS += kernel_img-kern_powerpc_ieee1275_startup.o +kernel_img-kern_ieee1275_cmain.o: kern/ieee1275/cmain.c $(kern/ieee1275/cmain.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/ieee1275 -I$(srcdir)/kern/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/ieee1275/cmain.c\" -MD -c -o $@ $< + +-include kernel_img-kern_ieee1275_cmain.d + +kernel_img_OBJECTS += kernel_img-kern_ieee1275_cmain.o +kernel_img-kern_ieee1275_ieee1275.o: kern/ieee1275/ieee1275.c $(kern/ieee1275/ieee1275.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/ieee1275 -I$(srcdir)/kern/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/ieee1275/ieee1275.c\" -MD -c -o $@ $< + +-include kernel_img-kern_ieee1275_ieee1275.d + +kernel_img_OBJECTS += kernel_img-kern_ieee1275_ieee1275.o +kernel_img-kern_main.o: kern/main.c $(kern/main.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/main.c\" -MD -c -o $@ $< + +-include kernel_img-kern_main.d + +kernel_img_OBJECTS += kernel_img-kern_main.o +kernel_img-kern_device.o: kern/device.c $(kern/device.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/device.c\" -MD -c -o $@ $< + +-include kernel_img-kern_device.d + +kernel_img_OBJECTS += kernel_img-kern_device.o +kernel_img-kern_disk.o: kern/disk.c $(kern/disk.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/disk.c\" -MD -c -o $@ $< + +-include kernel_img-kern_disk.d + +kernel_img_OBJECTS += kernel_img-kern_disk.o +kernel_img-kern_dl.o: kern/dl.c $(kern/dl.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/dl.c\" -MD -c -o $@ $< + +-include kernel_img-kern_dl.d + +kernel_img_OBJECTS += kernel_img-kern_dl.o +kernel_img-kern_err.o: kern/err.c $(kern/err.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/err.c\" -MD -c -o $@ $< + +-include kernel_img-kern_err.d + +kernel_img_OBJECTS += kernel_img-kern_err.o +kernel_img-kern_file.o: kern/file.c $(kern/file.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/file.c\" -MD -c -o $@ $< + +-include kernel_img-kern_file.d + +kernel_img_OBJECTS += kernel_img-kern_file.o +kernel_img-kern_fs.o: kern/fs.c $(kern/fs.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/fs.c\" -MD -c -o $@ $< + +-include kernel_img-kern_fs.d + +kernel_img_OBJECTS += kernel_img-kern_fs.o +kernel_img-kern_misc.o: kern/misc.c $(kern/misc.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/misc.c\" -MD -c -o $@ $< + +-include kernel_img-kern_misc.d + +kernel_img_OBJECTS += kernel_img-kern_misc.o +kernel_img-kern_mm.o: kern/mm.c $(kern/mm.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/mm.c\" -MD -c -o $@ $< + +-include kernel_img-kern_mm.d + +kernel_img_OBJECTS += kernel_img-kern_mm.o +kernel_img-kern_term.o: kern/term.c $(kern/term.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/term.c\" -MD -c -o $@ $< + +-include kernel_img-kern_term.d + +kernel_img_OBJECTS += kernel_img-kern_term.o +kernel_img-kern_rescue_parser.o: kern/rescue_parser.c $(kern/rescue_parser.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/rescue_parser.c\" -MD -c -o $@ $< + +-include kernel_img-kern_rescue_parser.d + +kernel_img_OBJECTS += kernel_img-kern_rescue_parser.o +kernel_img-kern_rescue_reader.o: kern/rescue_reader.c $(kern/rescue_reader.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/rescue_reader.c\" -MD -c -o $@ $< + +-include kernel_img-kern_rescue_reader.d + +kernel_img_OBJECTS += kernel_img-kern_rescue_reader.o +kernel_img-kern_list.o: kern/list.c $(kern/list.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/list.c\" -MD -c -o $@ $< + +-include kernel_img-kern_list.d + +kernel_img_OBJECTS += kernel_img-kern_list.o +kernel_img-kern_command.o: kern/command.c $(kern/command.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/command.c\" -MD -c -o $@ $< + +-include kernel_img-kern_command.d + +kernel_img_OBJECTS += kernel_img-kern_command.o +kernel_img-kern_corecmd.o: kern/corecmd.c $(kern/corecmd.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/corecmd.c\" -MD -c -o $@ $< + +-include kernel_img-kern_corecmd.d + +kernel_img_OBJECTS += kernel_img-kern_corecmd.o +kernel_img-kern_ieee1275_init.o: kern/ieee1275/init.c $(kern/ieee1275/init.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/ieee1275 -I$(srcdir)/kern/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/ieee1275/init.c\" -MD -c -o $@ $< + +-include kernel_img-kern_ieee1275_init.d + +kernel_img_OBJECTS += kernel_img-kern_ieee1275_init.o +kernel_img-kern_ieee1275_mmap.o: kern/ieee1275/mmap.c $(kern/ieee1275/mmap.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/ieee1275 -I$(srcdir)/kern/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/ieee1275/mmap.c\" -MD -c -o $@ $< + +-include kernel_img-kern_ieee1275_mmap.d + +kernel_img_OBJECTS += kernel_img-kern_ieee1275_mmap.o +kernel_img-term_ieee1275_ofconsole.o: term/ieee1275/ofconsole.c $(term/ieee1275/ofconsole.c_DEPENDENCIES) + $(TARGET_CC) -Iterm/ieee1275 -I$(srcdir)/term/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"term/ieee1275/ofconsole.c\" -MD -c -o $@ $< + +-include kernel_img-term_ieee1275_ofconsole.d + +kernel_img_OBJECTS += kernel_img-term_ieee1275_ofconsole.o +kernel_img-term_terminfo.o: term/terminfo.c $(term/terminfo.c_DEPENDENCIES) + $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"term/terminfo.c\" -MD -c -o $@ $< + +-include kernel_img-term_terminfo.d + +kernel_img_OBJECTS += kernel_img-term_terminfo.o +kernel_img-term_tparm.o: term/tparm.c $(term/tparm.c_DEPENDENCIES) + $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"term/tparm.c\" -MD -c -o $@ $< + +-include kernel_img-term_tparm.d + +kernel_img_OBJECTS += kernel_img-term_tparm.o +kernel_img-kern_ieee1275_openfw.o: kern/ieee1275/openfw.c $(kern/ieee1275/openfw.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/ieee1275 -I$(srcdir)/kern/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/ieee1275/openfw.c\" -MD -c -o $@ $< + +-include kernel_img-kern_ieee1275_openfw.d + +kernel_img_OBJECTS += kernel_img-kern_ieee1275_openfw.o +kernel_img-disk_ieee1275_ofdisk.o: disk/ieee1275/ofdisk.c $(disk/ieee1275/ofdisk.c_DEPENDENCIES) + $(TARGET_CC) -Idisk/ieee1275 -I$(srcdir)/disk/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"disk/ieee1275/ofdisk.c\" -MD -c -o $@ $< + +-include kernel_img-disk_ieee1275_ofdisk.d + +kernel_img_OBJECTS += kernel_img-disk_ieee1275_ofdisk.o +kernel_img-kern_parser.o: kern/parser.c $(kern/parser.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/parser.c\" -MD -c -o $@ $< + +-include kernel_img-kern_parser.d + +kernel_img_OBJECTS += kernel_img-kern_parser.o +kernel_img-kern_partition.o: kern/partition.c $(kern/partition.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/partition.c\" -MD -c -o $@ $< + +-include kernel_img-kern_partition.d + +kernel_img_OBJECTS += kernel_img-kern_partition.o +kernel_img-kern_env.o: kern/env.c $(kern/env.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/env.c\" -MD -c -o $@ $< + +-include kernel_img-kern_env.d + +kernel_img_OBJECTS += kernel_img-kern_env.o +kernel_img-kern___target_cpu__dl.o: kern/$(target_cpu)/dl.c $(kern/$(target_cpu)/dl.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/$(target_cpu) -I$(srcdir)/kern/$(target_cpu) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/$(target_cpu)/dl.c\" -MD -c -o $@ $< + +-include kernel_img-kern___target_cpu__dl.d + +kernel_img_OBJECTS += kernel_img-kern___target_cpu__dl.o +kernel_img-kern_generic_millisleep.o: kern/generic/millisleep.c $(kern/generic/millisleep.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/generic -I$(srcdir)/kern/generic $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/generic/millisleep.c\" -MD -c -o $@ $< + +-include kernel_img-kern_generic_millisleep.d + +kernel_img_OBJECTS += kernel_img-kern_generic_millisleep.o +kernel_img-kern_time.o: kern/time.c $(kern/time.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/time.c\" -MD -c -o $@ $< + +-include kernel_img-kern_time.d + +kernel_img_OBJECTS += kernel_img-kern_time.o +kernel_img-symlist.o: symlist.c $(symlist.c_DEPENDENCIES) + $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"symlist.c\" -MD -c -o $@ $< + +-include kernel_img-symlist.d + +kernel_img_OBJECTS += kernel_img-symlist.o +kernel_img-kern___target_cpu__cache.o: kern/$(target_cpu)/cache.S $(kern/$(target_cpu)/cache.S_DEPENDENCIES) + $(TARGET_CC) -Ikern/$(target_cpu) -I$(srcdir)/kern/$(target_cpu) $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(kernel_img_ASFLAGS) -DGRUB_FILE=\"kern/$(target_cpu)/cache.S\" -MD -c -o $@ $< + +-include kernel_img-kern___target_cpu__cache.d + +kernel_img_OBJECTS += kernel_img-kern___target_cpu__cache.o +kernel_img_CFLAGS = $(COMMON_CFLAGS) +kernel_img_ASFLAGS = $(COMMON_ASFLAGS) +kernel_img_LDFLAGS += $(COMMON_LDFLAGS) -Wl,-N,-S,-Ttext,0x200000,-Bstatic + +# Scripts. +sbin_SCRIPTS = grub-install +bin_SCRIPTS = grub-mkrescue + +# For grub-install. +grub_install_SOURCES = util/ieee1275/grub-install.in +CLEANFILES += grub-install + +grub-install: util/ieee1275/grub-install.in $(util/ieee1275/grub-install.in_DEPENDENCIES) config.status + ./config.status --file=-:util/ieee1275/grub-install.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +# For grub-mkrescue. +grub_mkrescue_SOURCES = util/powerpc/ieee1275/grub-mkrescue.in +CLEANFILES += grub-mkrescue + +grub-mkrescue: util/powerpc/ieee1275/grub-mkrescue.in $(util/powerpc/ieee1275/grub-mkrescue.in_DEPENDENCIES) config.status + ./config.status --file=-:util/powerpc/ieee1275/grub-mkrescue.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +# Modules. +pkglib_MODULES += ieee1275_fb.mod +ieee1275_fb_mod_SOURCES = video/ieee1275.c + +clean-module-ieee1275_fb.mod.1: + rm -f ieee1275_fb.mod mod-ieee1275_fb.o mod-ieee1275_fb.c pre-ieee1275_fb.o ieee1275_fb_mod-video_ieee1275.o und-ieee1275_fb.lst + +CLEAN_MODULE_TARGETS += clean-module-ieee1275_fb.mod.1 + +clean-module-ieee1275_fb.mod-symbol.1: + rm -f def-ieee1275_fb.lst + +CLEAN_MODULE_TARGETS += clean-module-ieee1275_fb.mod-symbol.1 +DEFSYMFILES += def-ieee1275_fb.lst +mostlyclean-module-ieee1275_fb.mod.1: + rm -f ieee1275_fb_mod-video_ieee1275.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-ieee1275_fb.mod.1 +UNDSYMFILES += und-ieee1275_fb.lst + +ifeq ($(TARGET_NO_MODULES), yes) +ieee1275_fb.mod: pre-ieee1275_fb.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ieee1275_fb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ieee1275_fb.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +ieee1275_fb.mod: pre-ieee1275_fb.o mod-ieee1275_fb.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ieee1275_fb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ieee1275_fb.o mod-ieee1275_fb.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ieee1275_fb.mod: pre-ieee1275_fb.o mod-ieee1275_fb.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(ieee1275_fb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-ieee1275_fb.o mod-ieee1275_fb.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-ieee1275_fb.o: $(ieee1275_fb_mod_DEPENDENCIES) ieee1275_fb_mod-video_ieee1275.o + -rm -f $@ + $(TARGET_CC) $(ieee1275_fb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ ieee1275_fb_mod-video_ieee1275.o + +mod-ieee1275_fb.o: mod-ieee1275_fb.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ieee1275_fb_mod_CFLAGS) -DGRUB_FILE=\"mod-ieee1275_fb.c\" -c -o $@ $< + +mod-ieee1275_fb.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'ieee1275_fb' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-ieee1275_fb.lst: pre-ieee1275_fb.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 ieee1275_fb/' > $@ +else +def-ieee1275_fb.lst: pre-ieee1275_fb.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 ieee1275_fb/' > $@ +endif + +und-ieee1275_fb.lst: pre-ieee1275_fb.o + echo 'ieee1275_fb' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +ieee1275_fb_mod-video_ieee1275.o: video/ieee1275.c $(video/ieee1275.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ieee1275_fb_mod_CFLAGS) -DGRUB_FILE=\"video/ieee1275.c\" -MD -c -o $@ $< +-include ieee1275_fb_mod-video_ieee1275.d + +clean-module-ieee1275_fb_mod-video_ieee1275-extra.1: + rm -f cmd-ieee1275_fb_mod-video_ieee1275.lst fs-ieee1275_fb_mod-video_ieee1275.lst partmap-ieee1275_fb_mod-video_ieee1275.lst handler-ieee1275_fb_mod-video_ieee1275.lst parttool-ieee1275_fb_mod-video_ieee1275.lst video-ieee1275_fb_mod-video_ieee1275.lst terminal-ieee1275_fb_mod-video_ieee1275.lst + +CLEAN_MODULE_TARGETS += clean-module-ieee1275_fb_mod-video_ieee1275-extra.1 + +COMMANDFILES += cmd-ieee1275_fb_mod-video_ieee1275.lst +FSFILES += fs-ieee1275_fb_mod-video_ieee1275.lst +PARTTOOLFILES += parttool-ieee1275_fb_mod-video_ieee1275.lst +PARTMAPFILES += partmap-ieee1275_fb_mod-video_ieee1275.lst +HANDLERFILES += handler-ieee1275_fb_mod-video_ieee1275.lst +TERMINALFILES += terminal-ieee1275_fb_mod-video_ieee1275.lst +VIDEOFILES += video-ieee1275_fb_mod-video_ieee1275.lst + +cmd-ieee1275_fb_mod-video_ieee1275.lst: video/ieee1275.c $(video/ieee1275.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ieee1275_fb_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh ieee1275_fb > $@ || (rm -f $@; exit 1) + +fs-ieee1275_fb_mod-video_ieee1275.lst: video/ieee1275.c $(video/ieee1275.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ieee1275_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh ieee1275_fb > $@ || (rm -f $@; exit 1) + +parttool-ieee1275_fb_mod-video_ieee1275.lst: video/ieee1275.c $(video/ieee1275.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ieee1275_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh ieee1275_fb > $@ || (rm -f $@; exit 1) + +partmap-ieee1275_fb_mod-video_ieee1275.lst: video/ieee1275.c $(video/ieee1275.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ieee1275_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh ieee1275_fb > $@ || (rm -f $@; exit 1) + +handler-ieee1275_fb_mod-video_ieee1275.lst: video/ieee1275.c $(video/ieee1275.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ieee1275_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh ieee1275_fb > $@ || (rm -f $@; exit 1) + +terminal-ieee1275_fb_mod-video_ieee1275.lst: video/ieee1275.c $(video/ieee1275.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ieee1275_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh ieee1275_fb > $@ || (rm -f $@; exit 1) + +video-ieee1275_fb_mod-video_ieee1275.lst: video/ieee1275.c $(video/ieee1275.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ieee1275_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh ieee1275_fb > $@ || (rm -f $@; exit 1) + +ieee1275_fb_mod_CFLAGS = $(COMMON_CFLAGS) +ieee1275_fb_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For linux.mod. +pkglib_MODULES += linux.mod +linux_mod_SOURCES = loader/powerpc/ieee1275/linux.c + +clean-module-linux.mod.1: + rm -f linux.mod mod-linux.o mod-linux.c pre-linux.o linux_mod-loader_powerpc_ieee1275_linux.o und-linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux.mod.1 + +clean-module-linux.mod-symbol.1: + rm -f def-linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux.mod-symbol.1 +DEFSYMFILES += def-linux.lst +mostlyclean-module-linux.mod.1: + rm -f linux_mod-loader_powerpc_ieee1275_linux.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-linux.mod.1 +UNDSYMFILES += und-linux.lst + +ifeq ($(TARGET_NO_MODULES), yes) +linux.mod: pre-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-linux.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-linux.o mod-linux.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-linux.o mod-linux.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-linux.o: $(linux_mod_DEPENDENCIES) linux_mod-loader_powerpc_ieee1275_linux.o + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ linux_mod-loader_powerpc_ieee1275_linux.o + +mod-linux.o: mod-linux.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -DGRUB_FILE=\"mod-linux.c\" -c -o $@ $< + +mod-linux.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'linux' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-linux.lst: pre-linux.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 linux/' > $@ +else +def-linux.lst: pre-linux.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 linux/' > $@ +endif + +und-linux.lst: pre-linux.o + echo 'linux' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +linux_mod-loader_powerpc_ieee1275_linux.o: loader/powerpc/ieee1275/linux.c $(loader/powerpc/ieee1275/linux.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/powerpc/ieee1275 -I$(srcdir)/loader/powerpc/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -DGRUB_FILE=\"loader/powerpc/ieee1275/linux.c\" -MD -c -o $@ $< +-include linux_mod-loader_powerpc_ieee1275_linux.d + +clean-module-linux_mod-loader_powerpc_ieee1275_linux-extra.1: + rm -f cmd-linux_mod-loader_powerpc_ieee1275_linux.lst fs-linux_mod-loader_powerpc_ieee1275_linux.lst partmap-linux_mod-loader_powerpc_ieee1275_linux.lst handler-linux_mod-loader_powerpc_ieee1275_linux.lst parttool-linux_mod-loader_powerpc_ieee1275_linux.lst video-linux_mod-loader_powerpc_ieee1275_linux.lst terminal-linux_mod-loader_powerpc_ieee1275_linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux_mod-loader_powerpc_ieee1275_linux-extra.1 + +COMMANDFILES += cmd-linux_mod-loader_powerpc_ieee1275_linux.lst +FSFILES += fs-linux_mod-loader_powerpc_ieee1275_linux.lst +PARTTOOLFILES += parttool-linux_mod-loader_powerpc_ieee1275_linux.lst +PARTMAPFILES += partmap-linux_mod-loader_powerpc_ieee1275_linux.lst +HANDLERFILES += handler-linux_mod-loader_powerpc_ieee1275_linux.lst +TERMINALFILES += terminal-linux_mod-loader_powerpc_ieee1275_linux.lst +VIDEOFILES += video-linux_mod-loader_powerpc_ieee1275_linux.lst + +cmd-linux_mod-loader_powerpc_ieee1275_linux.lst: loader/powerpc/ieee1275/linux.c $(loader/powerpc/ieee1275/linux.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/powerpc/ieee1275 -I$(srcdir)/loader/powerpc/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh linux > $@ || (rm -f $@; exit 1) + +fs-linux_mod-loader_powerpc_ieee1275_linux.lst: loader/powerpc/ieee1275/linux.c $(loader/powerpc/ieee1275/linux.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/powerpc/ieee1275 -I$(srcdir)/loader/powerpc/ieee1275 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh linux > $@ || (rm -f $@; exit 1) + +parttool-linux_mod-loader_powerpc_ieee1275_linux.lst: loader/powerpc/ieee1275/linux.c $(loader/powerpc/ieee1275/linux.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/powerpc/ieee1275 -I$(srcdir)/loader/powerpc/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh linux > $@ || (rm -f $@; exit 1) + +partmap-linux_mod-loader_powerpc_ieee1275_linux.lst: loader/powerpc/ieee1275/linux.c $(loader/powerpc/ieee1275/linux.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/powerpc/ieee1275 -I$(srcdir)/loader/powerpc/ieee1275 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh linux > $@ || (rm -f $@; exit 1) + +handler-linux_mod-loader_powerpc_ieee1275_linux.lst: loader/powerpc/ieee1275/linux.c $(loader/powerpc/ieee1275/linux.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/powerpc/ieee1275 -I$(srcdir)/loader/powerpc/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh linux > $@ || (rm -f $@; exit 1) + +terminal-linux_mod-loader_powerpc_ieee1275_linux.lst: loader/powerpc/ieee1275/linux.c $(loader/powerpc/ieee1275/linux.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/powerpc/ieee1275 -I$(srcdir)/loader/powerpc/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh linux > $@ || (rm -f $@; exit 1) + +video-linux_mod-loader_powerpc_ieee1275_linux.lst: loader/powerpc/ieee1275/linux.c $(loader/powerpc/ieee1275/linux.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/powerpc/ieee1275 -I$(srcdir)/loader/powerpc/ieee1275 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh linux > $@ || (rm -f $@; exit 1) + +linux_mod_CFLAGS = $(COMMON_CFLAGS) +linux_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For suspend.mod +pkglib_MODULES += suspend.mod +suspend_mod_SOURCES = commands/ieee1275/suspend.c + +clean-module-suspend.mod.1: + rm -f suspend.mod mod-suspend.o mod-suspend.c pre-suspend.o suspend_mod-commands_ieee1275_suspend.o und-suspend.lst + +CLEAN_MODULE_TARGETS += clean-module-suspend.mod.1 + +clean-module-suspend.mod-symbol.1: + rm -f def-suspend.lst + +CLEAN_MODULE_TARGETS += clean-module-suspend.mod-symbol.1 +DEFSYMFILES += def-suspend.lst +mostlyclean-module-suspend.mod.1: + rm -f suspend_mod-commands_ieee1275_suspend.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-suspend.mod.1 +UNDSYMFILES += und-suspend.lst + +ifeq ($(TARGET_NO_MODULES), yes) +suspend.mod: pre-suspend.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(suspend_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-suspend.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +suspend.mod: pre-suspend.o mod-suspend.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(suspend_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-suspend.o mod-suspend.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +suspend.mod: pre-suspend.o mod-suspend.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(suspend_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-suspend.o mod-suspend.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-suspend.o: $(suspend_mod_DEPENDENCIES) suspend_mod-commands_ieee1275_suspend.o + -rm -f $@ + $(TARGET_CC) $(suspend_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ suspend_mod-commands_ieee1275_suspend.o + +mod-suspend.o: mod-suspend.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(suspend_mod_CFLAGS) -DGRUB_FILE=\"mod-suspend.c\" -c -o $@ $< + +mod-suspend.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'suspend' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-suspend.lst: pre-suspend.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 suspend/' > $@ +else +def-suspend.lst: pre-suspend.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 suspend/' > $@ +endif + +und-suspend.lst: pre-suspend.o + echo 'suspend' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +suspend_mod-commands_ieee1275_suspend.o: commands/ieee1275/suspend.c $(commands/ieee1275/suspend.c_DEPENDENCIES) + $(TARGET_CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(suspend_mod_CFLAGS) -DGRUB_FILE=\"commands/ieee1275/suspend.c\" -MD -c -o $@ $< +-include suspend_mod-commands_ieee1275_suspend.d + +clean-module-suspend_mod-commands_ieee1275_suspend-extra.1: + rm -f cmd-suspend_mod-commands_ieee1275_suspend.lst fs-suspend_mod-commands_ieee1275_suspend.lst partmap-suspend_mod-commands_ieee1275_suspend.lst handler-suspend_mod-commands_ieee1275_suspend.lst parttool-suspend_mod-commands_ieee1275_suspend.lst video-suspend_mod-commands_ieee1275_suspend.lst terminal-suspend_mod-commands_ieee1275_suspend.lst + +CLEAN_MODULE_TARGETS += clean-module-suspend_mod-commands_ieee1275_suspend-extra.1 + +COMMANDFILES += cmd-suspend_mod-commands_ieee1275_suspend.lst +FSFILES += fs-suspend_mod-commands_ieee1275_suspend.lst +PARTTOOLFILES += parttool-suspend_mod-commands_ieee1275_suspend.lst +PARTMAPFILES += partmap-suspend_mod-commands_ieee1275_suspend.lst +HANDLERFILES += handler-suspend_mod-commands_ieee1275_suspend.lst +TERMINALFILES += terminal-suspend_mod-commands_ieee1275_suspend.lst +VIDEOFILES += video-suspend_mod-commands_ieee1275_suspend.lst + +cmd-suspend_mod-commands_ieee1275_suspend.lst: commands/ieee1275/suspend.c $(commands/ieee1275/suspend.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(suspend_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh suspend > $@ || (rm -f $@; exit 1) + +fs-suspend_mod-commands_ieee1275_suspend.lst: commands/ieee1275/suspend.c $(commands/ieee1275/suspend.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(suspend_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh suspend > $@ || (rm -f $@; exit 1) + +parttool-suspend_mod-commands_ieee1275_suspend.lst: commands/ieee1275/suspend.c $(commands/ieee1275/suspend.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(suspend_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh suspend > $@ || (rm -f $@; exit 1) + +partmap-suspend_mod-commands_ieee1275_suspend.lst: commands/ieee1275/suspend.c $(commands/ieee1275/suspend.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(suspend_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh suspend > $@ || (rm -f $@; exit 1) + +handler-suspend_mod-commands_ieee1275_suspend.lst: commands/ieee1275/suspend.c $(commands/ieee1275/suspend.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(suspend_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh suspend > $@ || (rm -f $@; exit 1) + +terminal-suspend_mod-commands_ieee1275_suspend.lst: commands/ieee1275/suspend.c $(commands/ieee1275/suspend.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(suspend_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh suspend > $@ || (rm -f $@; exit 1) + +video-suspend_mod-commands_ieee1275_suspend.lst: commands/ieee1275/suspend.c $(commands/ieee1275/suspend.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(suspend_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh suspend > $@ || (rm -f $@; exit 1) + +suspend_mod_CFLAGS = $(COMMON_CFLAGS) +suspend_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For halt.mod +pkglib_MODULES += halt.mod +halt_mod_SOURCES = commands/halt.c + +clean-module-halt.mod.1: + rm -f halt.mod mod-halt.o mod-halt.c pre-halt.o halt_mod-commands_halt.o und-halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt.mod.1 + +clean-module-halt.mod-symbol.1: + rm -f def-halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt.mod-symbol.1 +DEFSYMFILES += def-halt.lst +mostlyclean-module-halt.mod.1: + rm -f halt_mod-commands_halt.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-halt.mod.1 +UNDSYMFILES += und-halt.lst + +ifeq ($(TARGET_NO_MODULES), yes) +halt.mod: pre-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-halt.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +halt.mod: pre-halt.o mod-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-halt.o mod-halt.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +halt.mod: pre-halt.o mod-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-halt.o mod-halt.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-halt.o: $(halt_mod_DEPENDENCIES) halt_mod-commands_halt.o + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ halt_mod-commands_halt.o + +mod-halt.o: mod-halt.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -DGRUB_FILE=\"mod-halt.c\" -c -o $@ $< + +mod-halt.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'halt' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-halt.lst: pre-halt.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 halt/' > $@ +else +def-halt.lst: pre-halt.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 halt/' > $@ +endif + +und-halt.lst: pre-halt.o + echo 'halt' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +halt_mod-commands_halt.o: commands/halt.c $(commands/halt.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -DGRUB_FILE=\"commands/halt.c\" -MD -c -o $@ $< +-include halt_mod-commands_halt.d + +clean-module-halt_mod-commands_halt-extra.1: + rm -f cmd-halt_mod-commands_halt.lst fs-halt_mod-commands_halt.lst partmap-halt_mod-commands_halt.lst handler-halt_mod-commands_halt.lst parttool-halt_mod-commands_halt.lst video-halt_mod-commands_halt.lst terminal-halt_mod-commands_halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt_mod-commands_halt-extra.1 + +COMMANDFILES += cmd-halt_mod-commands_halt.lst +FSFILES += fs-halt_mod-commands_halt.lst +PARTTOOLFILES += parttool-halt_mod-commands_halt.lst +PARTMAPFILES += partmap-halt_mod-commands_halt.lst +HANDLERFILES += handler-halt_mod-commands_halt.lst +TERMINALFILES += terminal-halt_mod-commands_halt.lst +VIDEOFILES += video-halt_mod-commands_halt.lst + +cmd-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh halt > $@ || (rm -f $@; exit 1) + +fs-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh halt > $@ || (rm -f $@; exit 1) + +parttool-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh halt > $@ || (rm -f $@; exit 1) + +partmap-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh halt > $@ || (rm -f $@; exit 1) + +handler-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh halt > $@ || (rm -f $@; exit 1) + +terminal-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh halt > $@ || (rm -f $@; exit 1) + +video-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh halt > $@ || (rm -f $@; exit 1) + +halt_mod_CFLAGS = $(COMMON_CFLAGS) +halt_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For datetime.mod +pkglib_MODULES += datetime.mod +datetime_mod_SOURCES = lib/ieee1275/datetime.c + +clean-module-datetime.mod.1: + rm -f datetime.mod mod-datetime.o mod-datetime.c pre-datetime.o datetime_mod-lib_ieee1275_datetime.o und-datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime.mod.1 + +clean-module-datetime.mod-symbol.1: + rm -f def-datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime.mod-symbol.1 +DEFSYMFILES += def-datetime.lst +mostlyclean-module-datetime.mod.1: + rm -f datetime_mod-lib_ieee1275_datetime.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-datetime.mod.1 +UNDSYMFILES += und-datetime.lst + +ifeq ($(TARGET_NO_MODULES), yes) +datetime.mod: pre-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-datetime.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +datetime.mod: pre-datetime.o mod-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-datetime.o mod-datetime.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +datetime.mod: pre-datetime.o mod-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-datetime.o mod-datetime.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-datetime.o: $(datetime_mod_DEPENDENCIES) datetime_mod-lib_ieee1275_datetime.o + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ datetime_mod-lib_ieee1275_datetime.o + +mod-datetime.o: mod-datetime.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -DGRUB_FILE=\"mod-datetime.c\" -c -o $@ $< + +mod-datetime.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'datetime' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-datetime.lst: pre-datetime.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 datetime/' > $@ +else +def-datetime.lst: pre-datetime.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 datetime/' > $@ +endif + +und-datetime.lst: pre-datetime.o + echo 'datetime' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +datetime_mod-lib_ieee1275_datetime.o: lib/ieee1275/datetime.c $(lib/ieee1275/datetime.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/ieee1275 -I$(srcdir)/lib/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -DGRUB_FILE=\"lib/ieee1275/datetime.c\" -MD -c -o $@ $< +-include datetime_mod-lib_ieee1275_datetime.d + +clean-module-datetime_mod-lib_ieee1275_datetime-extra.1: + rm -f cmd-datetime_mod-lib_ieee1275_datetime.lst fs-datetime_mod-lib_ieee1275_datetime.lst partmap-datetime_mod-lib_ieee1275_datetime.lst handler-datetime_mod-lib_ieee1275_datetime.lst parttool-datetime_mod-lib_ieee1275_datetime.lst video-datetime_mod-lib_ieee1275_datetime.lst terminal-datetime_mod-lib_ieee1275_datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime_mod-lib_ieee1275_datetime-extra.1 + +COMMANDFILES += cmd-datetime_mod-lib_ieee1275_datetime.lst +FSFILES += fs-datetime_mod-lib_ieee1275_datetime.lst +PARTTOOLFILES += parttool-datetime_mod-lib_ieee1275_datetime.lst +PARTMAPFILES += partmap-datetime_mod-lib_ieee1275_datetime.lst +HANDLERFILES += handler-datetime_mod-lib_ieee1275_datetime.lst +TERMINALFILES += terminal-datetime_mod-lib_ieee1275_datetime.lst +VIDEOFILES += video-datetime_mod-lib_ieee1275_datetime.lst + +cmd-datetime_mod-lib_ieee1275_datetime.lst: lib/ieee1275/datetime.c $(lib/ieee1275/datetime.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/ieee1275 -I$(srcdir)/lib/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh datetime > $@ || (rm -f $@; exit 1) + +fs-datetime_mod-lib_ieee1275_datetime.lst: lib/ieee1275/datetime.c $(lib/ieee1275/datetime.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/ieee1275 -I$(srcdir)/lib/ieee1275 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh datetime > $@ || (rm -f $@; exit 1) + +parttool-datetime_mod-lib_ieee1275_datetime.lst: lib/ieee1275/datetime.c $(lib/ieee1275/datetime.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/ieee1275 -I$(srcdir)/lib/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh datetime > $@ || (rm -f $@; exit 1) + +partmap-datetime_mod-lib_ieee1275_datetime.lst: lib/ieee1275/datetime.c $(lib/ieee1275/datetime.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/ieee1275 -I$(srcdir)/lib/ieee1275 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh datetime > $@ || (rm -f $@; exit 1) + +handler-datetime_mod-lib_ieee1275_datetime.lst: lib/ieee1275/datetime.c $(lib/ieee1275/datetime.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/ieee1275 -I$(srcdir)/lib/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh datetime > $@ || (rm -f $@; exit 1) + +terminal-datetime_mod-lib_ieee1275_datetime.lst: lib/ieee1275/datetime.c $(lib/ieee1275/datetime.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/ieee1275 -I$(srcdir)/lib/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh datetime > $@ || (rm -f $@; exit 1) + +video-datetime_mod-lib_ieee1275_datetime.lst: lib/ieee1275/datetime.c $(lib/ieee1275/datetime.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/ieee1275 -I$(srcdir)/lib/ieee1275 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh datetime > $@ || (rm -f $@; exit 1) + +datetime_mod_CFLAGS = $(COMMON_CFLAGS) +datetime_mod_LDFLAGS = $(COMMON_LDFLAGS) + +include $(srcdir)/conf/common.mk +CLEANFILES += kernel.img $(kernel_img_OBJECTS) +ifeq ($(kernel_img_RELOCATABLE),yes) +kernel.img: $(kernel_img_DEPENDENCIES) $(kernel_img_OBJECTS) + $(TARGET_CC) -Wl,-r,-d -o $@ $(kernel_img_OBJECTS) $(TARGET_LDFLAGS) $(kernel_img_LDFLAGS) + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K start -R .note -R .comment $@; fi +else +kernel.img: $(kernel_img_DEPENDENCIES) $(kernel_img_OBJECTS) + $(TARGET_CC) -o $@ $(kernel_img_OBJECTS) $(TARGET_LDFLAGS) $(kernel_img_LDFLAGS) + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) -R .rel.dyn -R .reginfo -R .note -R .comment $@; fi +endif + --- grub2-1.98+20100804.orig/conf/i386.mk +++ grub2-1.98+20100804/conf/i386.mk @@ -0,0 +1,1885 @@ +# -*- makefile -*- +# Generated by genmk.rb, please don't edit! + +pkglib_MODULES += cpuid.mod +cpuid_mod_SOURCES = commands/i386/cpuid.c + +clean-module-cpuid.mod.1: + rm -f cpuid.mod mod-cpuid.o mod-cpuid.c pre-cpuid.o cpuid_mod-commands_i386_cpuid.o und-cpuid.lst + +CLEAN_MODULE_TARGETS += clean-module-cpuid.mod.1 + +clean-module-cpuid.mod-symbol.1: + rm -f def-cpuid.lst + +CLEAN_MODULE_TARGETS += clean-module-cpuid.mod-symbol.1 +DEFSYMFILES += def-cpuid.lst +mostlyclean-module-cpuid.mod.1: + rm -f cpuid_mod-commands_i386_cpuid.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-cpuid.mod.1 +UNDSYMFILES += und-cpuid.lst + +ifeq ($(TARGET_NO_MODULES), yes) +cpuid.mod: pre-cpuid.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(cpuid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-cpuid.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +cpuid.mod: pre-cpuid.o mod-cpuid.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(cpuid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-cpuid.o mod-cpuid.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +cpuid.mod: pre-cpuid.o mod-cpuid.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(cpuid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-cpuid.o mod-cpuid.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-cpuid.o: $(cpuid_mod_DEPENDENCIES) cpuid_mod-commands_i386_cpuid.o + -rm -f $@ + $(TARGET_CC) $(cpuid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ cpuid_mod-commands_i386_cpuid.o + +mod-cpuid.o: mod-cpuid.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cpuid_mod_CFLAGS) -DGRUB_FILE=\"mod-cpuid.c\" -c -o $@ $< + +mod-cpuid.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'cpuid' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-cpuid.lst: pre-cpuid.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 cpuid/' > $@ +else +def-cpuid.lst: pre-cpuid.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 cpuid/' > $@ +endif + +und-cpuid.lst: pre-cpuid.o + echo 'cpuid' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +cpuid_mod-commands_i386_cpuid.o: commands/i386/cpuid.c $(commands/i386/cpuid.c_DEPENDENCIES) + $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cpuid_mod_CFLAGS) -DGRUB_FILE=\"commands/i386/cpuid.c\" -MD -c -o $@ $< +-include cpuid_mod-commands_i386_cpuid.d + +clean-module-cpuid_mod-commands_i386_cpuid-extra.1: + rm -f cmd-cpuid_mod-commands_i386_cpuid.lst fs-cpuid_mod-commands_i386_cpuid.lst partmap-cpuid_mod-commands_i386_cpuid.lst handler-cpuid_mod-commands_i386_cpuid.lst parttool-cpuid_mod-commands_i386_cpuid.lst video-cpuid_mod-commands_i386_cpuid.lst terminal-cpuid_mod-commands_i386_cpuid.lst + +CLEAN_MODULE_TARGETS += clean-module-cpuid_mod-commands_i386_cpuid-extra.1 + +COMMANDFILES += cmd-cpuid_mod-commands_i386_cpuid.lst +FSFILES += fs-cpuid_mod-commands_i386_cpuid.lst +PARTTOOLFILES += parttool-cpuid_mod-commands_i386_cpuid.lst +PARTMAPFILES += partmap-cpuid_mod-commands_i386_cpuid.lst +HANDLERFILES += handler-cpuid_mod-commands_i386_cpuid.lst +TERMINALFILES += terminal-cpuid_mod-commands_i386_cpuid.lst +VIDEOFILES += video-cpuid_mod-commands_i386_cpuid.lst + +cmd-cpuid_mod-commands_i386_cpuid.lst: commands/i386/cpuid.c $(commands/i386/cpuid.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cpuid_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh cpuid > $@ || (rm -f $@; exit 1) + +fs-cpuid_mod-commands_i386_cpuid.lst: commands/i386/cpuid.c $(commands/i386/cpuid.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(cpuid_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh cpuid > $@ || (rm -f $@; exit 1) + +parttool-cpuid_mod-commands_i386_cpuid.lst: commands/i386/cpuid.c $(commands/i386/cpuid.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cpuid_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh cpuid > $@ || (rm -f $@; exit 1) + +partmap-cpuid_mod-commands_i386_cpuid.lst: commands/i386/cpuid.c $(commands/i386/cpuid.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(cpuid_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh cpuid > $@ || (rm -f $@; exit 1) + +handler-cpuid_mod-commands_i386_cpuid.lst: commands/i386/cpuid.c $(commands/i386/cpuid.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cpuid_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh cpuid > $@ || (rm -f $@; exit 1) + +terminal-cpuid_mod-commands_i386_cpuid.lst: commands/i386/cpuid.c $(commands/i386/cpuid.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cpuid_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh cpuid > $@ || (rm -f $@; exit 1) + +video-cpuid_mod-commands_i386_cpuid.lst: commands/i386/cpuid.c $(commands/i386/cpuid.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(cpuid_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh cpuid > $@ || (rm -f $@; exit 1) + +cpuid_mod_CFLAGS = $(COMMON_CFLAGS) +cpuid_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += at_keyboard.mod +at_keyboard_mod_SOURCES = term/at_keyboard.c + +clean-module-at_keyboard.mod.1: + rm -f at_keyboard.mod mod-at_keyboard.o mod-at_keyboard.c pre-at_keyboard.o at_keyboard_mod-term_at_keyboard.o und-at_keyboard.lst + +CLEAN_MODULE_TARGETS += clean-module-at_keyboard.mod.1 + +clean-module-at_keyboard.mod-symbol.1: + rm -f def-at_keyboard.lst + +CLEAN_MODULE_TARGETS += clean-module-at_keyboard.mod-symbol.1 +DEFSYMFILES += def-at_keyboard.lst +mostlyclean-module-at_keyboard.mod.1: + rm -f at_keyboard_mod-term_at_keyboard.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-at_keyboard.mod.1 +UNDSYMFILES += und-at_keyboard.lst + +ifeq ($(TARGET_NO_MODULES), yes) +at_keyboard.mod: pre-at_keyboard.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(at_keyboard_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-at_keyboard.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +at_keyboard.mod: pre-at_keyboard.o mod-at_keyboard.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(at_keyboard_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-at_keyboard.o mod-at_keyboard.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +at_keyboard.mod: pre-at_keyboard.o mod-at_keyboard.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(at_keyboard_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-at_keyboard.o mod-at_keyboard.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-at_keyboard.o: $(at_keyboard_mod_DEPENDENCIES) at_keyboard_mod-term_at_keyboard.o + -rm -f $@ + $(TARGET_CC) $(at_keyboard_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ at_keyboard_mod-term_at_keyboard.o + +mod-at_keyboard.o: mod-at_keyboard.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(at_keyboard_mod_CFLAGS) -DGRUB_FILE=\"mod-at_keyboard.c\" -c -o $@ $< + +mod-at_keyboard.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'at_keyboard' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-at_keyboard.lst: pre-at_keyboard.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 at_keyboard/' > $@ +else +def-at_keyboard.lst: pre-at_keyboard.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 at_keyboard/' > $@ +endif + +und-at_keyboard.lst: pre-at_keyboard.o + echo 'at_keyboard' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +at_keyboard_mod-term_at_keyboard.o: term/at_keyboard.c $(term/at_keyboard.c_DEPENDENCIES) + $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(at_keyboard_mod_CFLAGS) -DGRUB_FILE=\"term/at_keyboard.c\" -MD -c -o $@ $< +-include at_keyboard_mod-term_at_keyboard.d + +clean-module-at_keyboard_mod-term_at_keyboard-extra.1: + rm -f cmd-at_keyboard_mod-term_at_keyboard.lst fs-at_keyboard_mod-term_at_keyboard.lst partmap-at_keyboard_mod-term_at_keyboard.lst handler-at_keyboard_mod-term_at_keyboard.lst parttool-at_keyboard_mod-term_at_keyboard.lst video-at_keyboard_mod-term_at_keyboard.lst terminal-at_keyboard_mod-term_at_keyboard.lst + +CLEAN_MODULE_TARGETS += clean-module-at_keyboard_mod-term_at_keyboard-extra.1 + +COMMANDFILES += cmd-at_keyboard_mod-term_at_keyboard.lst +FSFILES += fs-at_keyboard_mod-term_at_keyboard.lst +PARTTOOLFILES += parttool-at_keyboard_mod-term_at_keyboard.lst +PARTMAPFILES += partmap-at_keyboard_mod-term_at_keyboard.lst +HANDLERFILES += handler-at_keyboard_mod-term_at_keyboard.lst +TERMINALFILES += terminal-at_keyboard_mod-term_at_keyboard.lst +VIDEOFILES += video-at_keyboard_mod-term_at_keyboard.lst + +cmd-at_keyboard_mod-term_at_keyboard.lst: term/at_keyboard.c $(term/at_keyboard.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(at_keyboard_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh at_keyboard > $@ || (rm -f $@; exit 1) + +fs-at_keyboard_mod-term_at_keyboard.lst: term/at_keyboard.c $(term/at_keyboard.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(at_keyboard_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh at_keyboard > $@ || (rm -f $@; exit 1) + +parttool-at_keyboard_mod-term_at_keyboard.lst: term/at_keyboard.c $(term/at_keyboard.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(at_keyboard_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh at_keyboard > $@ || (rm -f $@; exit 1) + +partmap-at_keyboard_mod-term_at_keyboard.lst: term/at_keyboard.c $(term/at_keyboard.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(at_keyboard_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh at_keyboard > $@ || (rm -f $@; exit 1) + +handler-at_keyboard_mod-term_at_keyboard.lst: term/at_keyboard.c $(term/at_keyboard.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(at_keyboard_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh at_keyboard > $@ || (rm -f $@; exit 1) + +terminal-at_keyboard_mod-term_at_keyboard.lst: term/at_keyboard.c $(term/at_keyboard.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(at_keyboard_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh at_keyboard > $@ || (rm -f $@; exit 1) + +video-at_keyboard_mod-term_at_keyboard.lst: term/at_keyboard.c $(term/at_keyboard.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(at_keyboard_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh at_keyboard > $@ || (rm -f $@; exit 1) + +at_keyboard_mod_CFLAGS = $(COMMON_CFLAGS) +at_keyboard_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += vga_text.mod +vga_text_mod_SOURCES = term/i386/pc/vga_text.c term/i386/vga_common.c + +clean-module-vga_text.mod.1: + rm -f vga_text.mod mod-vga_text.o mod-vga_text.c pre-vga_text.o vga_text_mod-term_i386_pc_vga_text.o vga_text_mod-term_i386_vga_common.o und-vga_text.lst + +CLEAN_MODULE_TARGETS += clean-module-vga_text.mod.1 + +clean-module-vga_text.mod-symbol.1: + rm -f def-vga_text.lst + +CLEAN_MODULE_TARGETS += clean-module-vga_text.mod-symbol.1 +DEFSYMFILES += def-vga_text.lst +mostlyclean-module-vga_text.mod.1: + rm -f vga_text_mod-term_i386_pc_vga_text.d vga_text_mod-term_i386_vga_common.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-vga_text.mod.1 +UNDSYMFILES += und-vga_text.lst + +ifeq ($(TARGET_NO_MODULES), yes) +vga_text.mod: pre-vga_text.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(vga_text_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-vga_text.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +vga_text.mod: pre-vga_text.o mod-vga_text.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(vga_text_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-vga_text.o mod-vga_text.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +vga_text.mod: pre-vga_text.o mod-vga_text.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(vga_text_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-vga_text.o mod-vga_text.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-vga_text.o: $(vga_text_mod_DEPENDENCIES) vga_text_mod-term_i386_pc_vga_text.o vga_text_mod-term_i386_vga_common.o + -rm -f $@ + $(TARGET_CC) $(vga_text_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ vga_text_mod-term_i386_pc_vga_text.o vga_text_mod-term_i386_vga_common.o + +mod-vga_text.o: mod-vga_text.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vga_text_mod_CFLAGS) -DGRUB_FILE=\"mod-vga_text.c\" -c -o $@ $< + +mod-vga_text.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'vga_text' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-vga_text.lst: pre-vga_text.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 vga_text/' > $@ +else +def-vga_text.lst: pre-vga_text.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 vga_text/' > $@ +endif + +und-vga_text.lst: pre-vga_text.o + echo 'vga_text' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +vga_text_mod-term_i386_pc_vga_text.o: term/i386/pc/vga_text.c $(term/i386/pc/vga_text.c_DEPENDENCIES) + $(TARGET_CC) -Iterm/i386/pc -I$(srcdir)/term/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vga_text_mod_CFLAGS) -DGRUB_FILE=\"term/i386/pc/vga_text.c\" -MD -c -o $@ $< +-include vga_text_mod-term_i386_pc_vga_text.d + +clean-module-vga_text_mod-term_i386_pc_vga_text-extra.1: + rm -f cmd-vga_text_mod-term_i386_pc_vga_text.lst fs-vga_text_mod-term_i386_pc_vga_text.lst partmap-vga_text_mod-term_i386_pc_vga_text.lst handler-vga_text_mod-term_i386_pc_vga_text.lst parttool-vga_text_mod-term_i386_pc_vga_text.lst video-vga_text_mod-term_i386_pc_vga_text.lst terminal-vga_text_mod-term_i386_pc_vga_text.lst + +CLEAN_MODULE_TARGETS += clean-module-vga_text_mod-term_i386_pc_vga_text-extra.1 + +COMMANDFILES += cmd-vga_text_mod-term_i386_pc_vga_text.lst +FSFILES += fs-vga_text_mod-term_i386_pc_vga_text.lst +PARTTOOLFILES += parttool-vga_text_mod-term_i386_pc_vga_text.lst +PARTMAPFILES += partmap-vga_text_mod-term_i386_pc_vga_text.lst +HANDLERFILES += handler-vga_text_mod-term_i386_pc_vga_text.lst +TERMINALFILES += terminal-vga_text_mod-term_i386_pc_vga_text.lst +VIDEOFILES += video-vga_text_mod-term_i386_pc_vga_text.lst + +cmd-vga_text_mod-term_i386_pc_vga_text.lst: term/i386/pc/vga_text.c $(term/i386/pc/vga_text.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iterm/i386/pc -I$(srcdir)/term/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vga_text_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh vga_text > $@ || (rm -f $@; exit 1) + +fs-vga_text_mod-term_i386_pc_vga_text.lst: term/i386/pc/vga_text.c $(term/i386/pc/vga_text.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iterm/i386/pc -I$(srcdir)/term/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(vga_text_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh vga_text > $@ || (rm -f $@; exit 1) + +parttool-vga_text_mod-term_i386_pc_vga_text.lst: term/i386/pc/vga_text.c $(term/i386/pc/vga_text.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iterm/i386/pc -I$(srcdir)/term/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vga_text_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh vga_text > $@ || (rm -f $@; exit 1) + +partmap-vga_text_mod-term_i386_pc_vga_text.lst: term/i386/pc/vga_text.c $(term/i386/pc/vga_text.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iterm/i386/pc -I$(srcdir)/term/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(vga_text_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh vga_text > $@ || (rm -f $@; exit 1) + +handler-vga_text_mod-term_i386_pc_vga_text.lst: term/i386/pc/vga_text.c $(term/i386/pc/vga_text.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iterm/i386/pc -I$(srcdir)/term/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vga_text_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh vga_text > $@ || (rm -f $@; exit 1) + +terminal-vga_text_mod-term_i386_pc_vga_text.lst: term/i386/pc/vga_text.c $(term/i386/pc/vga_text.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iterm/i386/pc -I$(srcdir)/term/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vga_text_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh vga_text > $@ || (rm -f $@; exit 1) + +video-vga_text_mod-term_i386_pc_vga_text.lst: term/i386/pc/vga_text.c $(term/i386/pc/vga_text.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iterm/i386/pc -I$(srcdir)/term/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(vga_text_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh vga_text > $@ || (rm -f $@; exit 1) + +vga_text_mod-term_i386_vga_common.o: term/i386/vga_common.c $(term/i386/vga_common.c_DEPENDENCIES) + $(TARGET_CC) -Iterm/i386 -I$(srcdir)/term/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vga_text_mod_CFLAGS) -DGRUB_FILE=\"term/i386/vga_common.c\" -MD -c -o $@ $< +-include vga_text_mod-term_i386_vga_common.d + +clean-module-vga_text_mod-term_i386_vga_common-extra.1: + rm -f cmd-vga_text_mod-term_i386_vga_common.lst fs-vga_text_mod-term_i386_vga_common.lst partmap-vga_text_mod-term_i386_vga_common.lst handler-vga_text_mod-term_i386_vga_common.lst parttool-vga_text_mod-term_i386_vga_common.lst video-vga_text_mod-term_i386_vga_common.lst terminal-vga_text_mod-term_i386_vga_common.lst + +CLEAN_MODULE_TARGETS += clean-module-vga_text_mod-term_i386_vga_common-extra.1 + +COMMANDFILES += cmd-vga_text_mod-term_i386_vga_common.lst +FSFILES += fs-vga_text_mod-term_i386_vga_common.lst +PARTTOOLFILES += parttool-vga_text_mod-term_i386_vga_common.lst +PARTMAPFILES += partmap-vga_text_mod-term_i386_vga_common.lst +HANDLERFILES += handler-vga_text_mod-term_i386_vga_common.lst +TERMINALFILES += terminal-vga_text_mod-term_i386_vga_common.lst +VIDEOFILES += video-vga_text_mod-term_i386_vga_common.lst + +cmd-vga_text_mod-term_i386_vga_common.lst: term/i386/vga_common.c $(term/i386/vga_common.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iterm/i386 -I$(srcdir)/term/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vga_text_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh vga_text > $@ || (rm -f $@; exit 1) + +fs-vga_text_mod-term_i386_vga_common.lst: term/i386/vga_common.c $(term/i386/vga_common.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iterm/i386 -I$(srcdir)/term/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(vga_text_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh vga_text > $@ || (rm -f $@; exit 1) + +parttool-vga_text_mod-term_i386_vga_common.lst: term/i386/vga_common.c $(term/i386/vga_common.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iterm/i386 -I$(srcdir)/term/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vga_text_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh vga_text > $@ || (rm -f $@; exit 1) + +partmap-vga_text_mod-term_i386_vga_common.lst: term/i386/vga_common.c $(term/i386/vga_common.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iterm/i386 -I$(srcdir)/term/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(vga_text_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh vga_text > $@ || (rm -f $@; exit 1) + +handler-vga_text_mod-term_i386_vga_common.lst: term/i386/vga_common.c $(term/i386/vga_common.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iterm/i386 -I$(srcdir)/term/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vga_text_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh vga_text > $@ || (rm -f $@; exit 1) + +terminal-vga_text_mod-term_i386_vga_common.lst: term/i386/vga_common.c $(term/i386/vga_common.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iterm/i386 -I$(srcdir)/term/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vga_text_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh vga_text > $@ || (rm -f $@; exit 1) + +video-vga_text_mod-term_i386_vga_common.lst: term/i386/vga_common.c $(term/i386/vga_common.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iterm/i386 -I$(srcdir)/term/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(vga_text_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh vga_text > $@ || (rm -f $@; exit 1) + +vga_text_mod_CFLAGS = $(COMMON_CFLAGS) +vga_text_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += video_cirrus.mod +video_cirrus_mod_SOURCES = video/cirrus.c + +clean-module-video_cirrus.mod.1: + rm -f video_cirrus.mod mod-video_cirrus.o mod-video_cirrus.c pre-video_cirrus.o video_cirrus_mod-video_cirrus.o und-video_cirrus.lst + +CLEAN_MODULE_TARGETS += clean-module-video_cirrus.mod.1 + +clean-module-video_cirrus.mod-symbol.1: + rm -f def-video_cirrus.lst + +CLEAN_MODULE_TARGETS += clean-module-video_cirrus.mod-symbol.1 +DEFSYMFILES += def-video_cirrus.lst +mostlyclean-module-video_cirrus.mod.1: + rm -f video_cirrus_mod-video_cirrus.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-video_cirrus.mod.1 +UNDSYMFILES += und-video_cirrus.lst + +ifeq ($(TARGET_NO_MODULES), yes) +video_cirrus.mod: pre-video_cirrus.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(video_cirrus_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-video_cirrus.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +video_cirrus.mod: pre-video_cirrus.o mod-video_cirrus.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(video_cirrus_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-video_cirrus.o mod-video_cirrus.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +video_cirrus.mod: pre-video_cirrus.o mod-video_cirrus.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(video_cirrus_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-video_cirrus.o mod-video_cirrus.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-video_cirrus.o: $(video_cirrus_mod_DEPENDENCIES) video_cirrus_mod-video_cirrus.o + -rm -f $@ + $(TARGET_CC) $(video_cirrus_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ video_cirrus_mod-video_cirrus.o + +mod-video_cirrus.o: mod-video_cirrus.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_cirrus_mod_CFLAGS) -DGRUB_FILE=\"mod-video_cirrus.c\" -c -o $@ $< + +mod-video_cirrus.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'video_cirrus' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-video_cirrus.lst: pre-video_cirrus.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 video_cirrus/' > $@ +else +def-video_cirrus.lst: pre-video_cirrus.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 video_cirrus/' > $@ +endif + +und-video_cirrus.lst: pre-video_cirrus.o + echo 'video_cirrus' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +video_cirrus_mod-video_cirrus.o: video/cirrus.c $(video/cirrus.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_cirrus_mod_CFLAGS) -DGRUB_FILE=\"video/cirrus.c\" -MD -c -o $@ $< +-include video_cirrus_mod-video_cirrus.d + +clean-module-video_cirrus_mod-video_cirrus-extra.1: + rm -f cmd-video_cirrus_mod-video_cirrus.lst fs-video_cirrus_mod-video_cirrus.lst partmap-video_cirrus_mod-video_cirrus.lst handler-video_cirrus_mod-video_cirrus.lst parttool-video_cirrus_mod-video_cirrus.lst video-video_cirrus_mod-video_cirrus.lst terminal-video_cirrus_mod-video_cirrus.lst + +CLEAN_MODULE_TARGETS += clean-module-video_cirrus_mod-video_cirrus-extra.1 + +COMMANDFILES += cmd-video_cirrus_mod-video_cirrus.lst +FSFILES += fs-video_cirrus_mod-video_cirrus.lst +PARTTOOLFILES += parttool-video_cirrus_mod-video_cirrus.lst +PARTMAPFILES += partmap-video_cirrus_mod-video_cirrus.lst +HANDLERFILES += handler-video_cirrus_mod-video_cirrus.lst +TERMINALFILES += terminal-video_cirrus_mod-video_cirrus.lst +VIDEOFILES += video-video_cirrus_mod-video_cirrus.lst + +cmd-video_cirrus_mod-video_cirrus.lst: video/cirrus.c $(video/cirrus.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_cirrus_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh video_cirrus > $@ || (rm -f $@; exit 1) + +fs-video_cirrus_mod-video_cirrus.lst: video/cirrus.c $(video/cirrus.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(video_cirrus_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh video_cirrus > $@ || (rm -f $@; exit 1) + +parttool-video_cirrus_mod-video_cirrus.lst: video/cirrus.c $(video/cirrus.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_cirrus_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh video_cirrus > $@ || (rm -f $@; exit 1) + +partmap-video_cirrus_mod-video_cirrus.lst: video/cirrus.c $(video/cirrus.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(video_cirrus_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh video_cirrus > $@ || (rm -f $@; exit 1) + +handler-video_cirrus_mod-video_cirrus.lst: video/cirrus.c $(video/cirrus.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_cirrus_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh video_cirrus > $@ || (rm -f $@; exit 1) + +terminal-video_cirrus_mod-video_cirrus.lst: video/cirrus.c $(video/cirrus.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_cirrus_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh video_cirrus > $@ || (rm -f $@; exit 1) + +video-video_cirrus_mod-video_cirrus.lst: video/cirrus.c $(video/cirrus.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(video_cirrus_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh video_cirrus > $@ || (rm -f $@; exit 1) + +video_cirrus_mod_CFLAGS = $(COMMON_CFLAGS) +video_cirrus_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += video_bochs.mod +video_bochs_mod_SOURCES = video/bochs.c + +clean-module-video_bochs.mod.1: + rm -f video_bochs.mod mod-video_bochs.o mod-video_bochs.c pre-video_bochs.o video_bochs_mod-video_bochs.o und-video_bochs.lst + +CLEAN_MODULE_TARGETS += clean-module-video_bochs.mod.1 + +clean-module-video_bochs.mod-symbol.1: + rm -f def-video_bochs.lst + +CLEAN_MODULE_TARGETS += clean-module-video_bochs.mod-symbol.1 +DEFSYMFILES += def-video_bochs.lst +mostlyclean-module-video_bochs.mod.1: + rm -f video_bochs_mod-video_bochs.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-video_bochs.mod.1 +UNDSYMFILES += und-video_bochs.lst + +ifeq ($(TARGET_NO_MODULES), yes) +video_bochs.mod: pre-video_bochs.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(video_bochs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-video_bochs.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +video_bochs.mod: pre-video_bochs.o mod-video_bochs.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(video_bochs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-video_bochs.o mod-video_bochs.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +video_bochs.mod: pre-video_bochs.o mod-video_bochs.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(video_bochs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-video_bochs.o mod-video_bochs.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-video_bochs.o: $(video_bochs_mod_DEPENDENCIES) video_bochs_mod-video_bochs.o + -rm -f $@ + $(TARGET_CC) $(video_bochs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ video_bochs_mod-video_bochs.o + +mod-video_bochs.o: mod-video_bochs.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_bochs_mod_CFLAGS) -DGRUB_FILE=\"mod-video_bochs.c\" -c -o $@ $< + +mod-video_bochs.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'video_bochs' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-video_bochs.lst: pre-video_bochs.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 video_bochs/' > $@ +else +def-video_bochs.lst: pre-video_bochs.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 video_bochs/' > $@ +endif + +und-video_bochs.lst: pre-video_bochs.o + echo 'video_bochs' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +video_bochs_mod-video_bochs.o: video/bochs.c $(video/bochs.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_bochs_mod_CFLAGS) -DGRUB_FILE=\"video/bochs.c\" -MD -c -o $@ $< +-include video_bochs_mod-video_bochs.d + +clean-module-video_bochs_mod-video_bochs-extra.1: + rm -f cmd-video_bochs_mod-video_bochs.lst fs-video_bochs_mod-video_bochs.lst partmap-video_bochs_mod-video_bochs.lst handler-video_bochs_mod-video_bochs.lst parttool-video_bochs_mod-video_bochs.lst video-video_bochs_mod-video_bochs.lst terminal-video_bochs_mod-video_bochs.lst + +CLEAN_MODULE_TARGETS += clean-module-video_bochs_mod-video_bochs-extra.1 + +COMMANDFILES += cmd-video_bochs_mod-video_bochs.lst +FSFILES += fs-video_bochs_mod-video_bochs.lst +PARTTOOLFILES += parttool-video_bochs_mod-video_bochs.lst +PARTMAPFILES += partmap-video_bochs_mod-video_bochs.lst +HANDLERFILES += handler-video_bochs_mod-video_bochs.lst +TERMINALFILES += terminal-video_bochs_mod-video_bochs.lst +VIDEOFILES += video-video_bochs_mod-video_bochs.lst + +cmd-video_bochs_mod-video_bochs.lst: video/bochs.c $(video/bochs.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_bochs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh video_bochs > $@ || (rm -f $@; exit 1) + +fs-video_bochs_mod-video_bochs.lst: video/bochs.c $(video/bochs.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(video_bochs_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh video_bochs > $@ || (rm -f $@; exit 1) + +parttool-video_bochs_mod-video_bochs.lst: video/bochs.c $(video/bochs.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_bochs_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh video_bochs > $@ || (rm -f $@; exit 1) + +partmap-video_bochs_mod-video_bochs.lst: video/bochs.c $(video/bochs.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(video_bochs_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh video_bochs > $@ || (rm -f $@; exit 1) + +handler-video_bochs_mod-video_bochs.lst: video/bochs.c $(video/bochs.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_bochs_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh video_bochs > $@ || (rm -f $@; exit 1) + +terminal-video_bochs_mod-video_bochs.lst: video/bochs.c $(video/bochs.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_bochs_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh video_bochs > $@ || (rm -f $@; exit 1) + +video-video_bochs_mod-video_bochs.lst: video/bochs.c $(video/bochs.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(video_bochs_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh video_bochs > $@ || (rm -f $@; exit 1) + +video_bochs_mod_CFLAGS = $(COMMON_CFLAGS) +video_bochs_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += relocator.mod +relocator_mod_SOURCES = lib/i386/relocator.c lib/i386/relocator_asm.S lib/i386/relocator_backward.S + +clean-module-relocator.mod.1: + rm -f relocator.mod mod-relocator.o mod-relocator.c pre-relocator.o relocator_mod-lib_i386_relocator.o relocator_mod-lib_i386_relocator_asm.o relocator_mod-lib_i386_relocator_backward.o und-relocator.lst + +CLEAN_MODULE_TARGETS += clean-module-relocator.mod.1 + +clean-module-relocator.mod-symbol.1: + rm -f def-relocator.lst + +CLEAN_MODULE_TARGETS += clean-module-relocator.mod-symbol.1 +DEFSYMFILES += def-relocator.lst +mostlyclean-module-relocator.mod.1: + rm -f relocator_mod-lib_i386_relocator.d relocator_mod-lib_i386_relocator_asm.d relocator_mod-lib_i386_relocator_backward.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-relocator.mod.1 +UNDSYMFILES += und-relocator.lst + +ifeq ($(TARGET_NO_MODULES), yes) +relocator.mod: pre-relocator.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(relocator_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-relocator.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +relocator.mod: pre-relocator.o mod-relocator.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(relocator_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-relocator.o mod-relocator.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +relocator.mod: pre-relocator.o mod-relocator.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(relocator_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-relocator.o mod-relocator.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-relocator.o: $(relocator_mod_DEPENDENCIES) relocator_mod-lib_i386_relocator.o relocator_mod-lib_i386_relocator_asm.o relocator_mod-lib_i386_relocator_backward.o + -rm -f $@ + $(TARGET_CC) $(relocator_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ relocator_mod-lib_i386_relocator.o relocator_mod-lib_i386_relocator_asm.o relocator_mod-lib_i386_relocator_backward.o + +mod-relocator.o: mod-relocator.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(relocator_mod_CFLAGS) -DGRUB_FILE=\"mod-relocator.c\" -c -o $@ $< + +mod-relocator.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'relocator' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-relocator.lst: pre-relocator.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 relocator/' > $@ +else +def-relocator.lst: pre-relocator.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 relocator/' > $@ +endif + +und-relocator.lst: pre-relocator.o + echo 'relocator' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +relocator_mod-lib_i386_relocator.o: lib/i386/relocator.c $(lib/i386/relocator.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/i386 -I$(srcdir)/lib/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(relocator_mod_CFLAGS) -DGRUB_FILE=\"lib/i386/relocator.c\" -MD -c -o $@ $< +-include relocator_mod-lib_i386_relocator.d + +clean-module-relocator_mod-lib_i386_relocator-extra.1: + rm -f cmd-relocator_mod-lib_i386_relocator.lst fs-relocator_mod-lib_i386_relocator.lst partmap-relocator_mod-lib_i386_relocator.lst handler-relocator_mod-lib_i386_relocator.lst parttool-relocator_mod-lib_i386_relocator.lst video-relocator_mod-lib_i386_relocator.lst terminal-relocator_mod-lib_i386_relocator.lst + +CLEAN_MODULE_TARGETS += clean-module-relocator_mod-lib_i386_relocator-extra.1 + +COMMANDFILES += cmd-relocator_mod-lib_i386_relocator.lst +FSFILES += fs-relocator_mod-lib_i386_relocator.lst +PARTTOOLFILES += parttool-relocator_mod-lib_i386_relocator.lst +PARTMAPFILES += partmap-relocator_mod-lib_i386_relocator.lst +HANDLERFILES += handler-relocator_mod-lib_i386_relocator.lst +TERMINALFILES += terminal-relocator_mod-lib_i386_relocator.lst +VIDEOFILES += video-relocator_mod-lib_i386_relocator.lst + +cmd-relocator_mod-lib_i386_relocator.lst: lib/i386/relocator.c $(lib/i386/relocator.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/i386 -I$(srcdir)/lib/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(relocator_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh relocator > $@ || (rm -f $@; exit 1) + +fs-relocator_mod-lib_i386_relocator.lst: lib/i386/relocator.c $(lib/i386/relocator.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/i386 -I$(srcdir)/lib/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(relocator_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh relocator > $@ || (rm -f $@; exit 1) + +parttool-relocator_mod-lib_i386_relocator.lst: lib/i386/relocator.c $(lib/i386/relocator.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/i386 -I$(srcdir)/lib/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(relocator_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh relocator > $@ || (rm -f $@; exit 1) + +partmap-relocator_mod-lib_i386_relocator.lst: lib/i386/relocator.c $(lib/i386/relocator.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/i386 -I$(srcdir)/lib/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(relocator_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh relocator > $@ || (rm -f $@; exit 1) + +handler-relocator_mod-lib_i386_relocator.lst: lib/i386/relocator.c $(lib/i386/relocator.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/i386 -I$(srcdir)/lib/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(relocator_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh relocator > $@ || (rm -f $@; exit 1) + +terminal-relocator_mod-lib_i386_relocator.lst: lib/i386/relocator.c $(lib/i386/relocator.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/i386 -I$(srcdir)/lib/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(relocator_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh relocator > $@ || (rm -f $@; exit 1) + +video-relocator_mod-lib_i386_relocator.lst: lib/i386/relocator.c $(lib/i386/relocator.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/i386 -I$(srcdir)/lib/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(relocator_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh relocator > $@ || (rm -f $@; exit 1) + +relocator_mod-lib_i386_relocator_asm.o: lib/i386/relocator_asm.S $(lib/i386/relocator_asm.S_DEPENDENCIES) + $(TARGET_CC) -Ilib/i386 -I$(srcdir)/lib/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(relocator_mod_ASFLAGS) -DGRUB_FILE=\"lib/i386/relocator_asm.S\" -MD -c -o $@ $< +-include relocator_mod-lib_i386_relocator_asm.d + +clean-module-relocator_mod-lib_i386_relocator_asm-extra.1: + rm -f cmd-relocator_mod-lib_i386_relocator_asm.lst fs-relocator_mod-lib_i386_relocator_asm.lst partmap-relocator_mod-lib_i386_relocator_asm.lst handler-relocator_mod-lib_i386_relocator_asm.lst parttool-relocator_mod-lib_i386_relocator_asm.lst video-relocator_mod-lib_i386_relocator_asm.lst terminal-relocator_mod-lib_i386_relocator_asm.lst + +CLEAN_MODULE_TARGETS += clean-module-relocator_mod-lib_i386_relocator_asm-extra.1 + +COMMANDFILES += cmd-relocator_mod-lib_i386_relocator_asm.lst +FSFILES += fs-relocator_mod-lib_i386_relocator_asm.lst +PARTTOOLFILES += parttool-relocator_mod-lib_i386_relocator_asm.lst +PARTMAPFILES += partmap-relocator_mod-lib_i386_relocator_asm.lst +HANDLERFILES += handler-relocator_mod-lib_i386_relocator_asm.lst +TERMINALFILES += terminal-relocator_mod-lib_i386_relocator_asm.lst +VIDEOFILES += video-relocator_mod-lib_i386_relocator_asm.lst + +cmd-relocator_mod-lib_i386_relocator_asm.lst: lib/i386/relocator_asm.S $(lib/i386/relocator_asm.S_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/i386 -I$(srcdir)/lib/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(relocator_mod_ASFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh relocator > $@ || (rm -f $@; exit 1) + +fs-relocator_mod-lib_i386_relocator_asm.lst: lib/i386/relocator_asm.S $(lib/i386/relocator_asm.S_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/i386 -I$(srcdir)/lib/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(relocator_mod_ASFLAGS) -E $< | sh $(srcdir)/genfslist.sh relocator > $@ || (rm -f $@; exit 1) + +parttool-relocator_mod-lib_i386_relocator_asm.lst: lib/i386/relocator_asm.S $(lib/i386/relocator_asm.S_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/i386 -I$(srcdir)/lib/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(relocator_mod_ASFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh relocator > $@ || (rm -f $@; exit 1) + +partmap-relocator_mod-lib_i386_relocator_asm.lst: lib/i386/relocator_asm.S $(lib/i386/relocator_asm.S_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/i386 -I$(srcdir)/lib/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(relocator_mod_ASFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh relocator > $@ || (rm -f $@; exit 1) + +handler-relocator_mod-lib_i386_relocator_asm.lst: lib/i386/relocator_asm.S $(lib/i386/relocator_asm.S_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/i386 -I$(srcdir)/lib/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(relocator_mod_ASFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh relocator > $@ || (rm -f $@; exit 1) + +terminal-relocator_mod-lib_i386_relocator_asm.lst: lib/i386/relocator_asm.S $(lib/i386/relocator_asm.S_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/i386 -I$(srcdir)/lib/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(relocator_mod_ASFLAGS) -E $< | sh $(srcdir)/genterminallist.sh relocator > $@ || (rm -f $@; exit 1) + +video-relocator_mod-lib_i386_relocator_asm.lst: lib/i386/relocator_asm.S $(lib/i386/relocator_asm.S_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/i386 -I$(srcdir)/lib/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(relocator_mod_ASFLAGS) -E $< | sh $(srcdir)/genvideolist.sh relocator > $@ || (rm -f $@; exit 1) + +relocator_mod-lib_i386_relocator_backward.o: lib/i386/relocator_backward.S $(lib/i386/relocator_backward.S_DEPENDENCIES) + $(TARGET_CC) -Ilib/i386 -I$(srcdir)/lib/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(relocator_mod_ASFLAGS) -DGRUB_FILE=\"lib/i386/relocator_backward.S\" -MD -c -o $@ $< +-include relocator_mod-lib_i386_relocator_backward.d + +clean-module-relocator_mod-lib_i386_relocator_backward-extra.1: + rm -f cmd-relocator_mod-lib_i386_relocator_backward.lst fs-relocator_mod-lib_i386_relocator_backward.lst partmap-relocator_mod-lib_i386_relocator_backward.lst handler-relocator_mod-lib_i386_relocator_backward.lst parttool-relocator_mod-lib_i386_relocator_backward.lst video-relocator_mod-lib_i386_relocator_backward.lst terminal-relocator_mod-lib_i386_relocator_backward.lst + +CLEAN_MODULE_TARGETS += clean-module-relocator_mod-lib_i386_relocator_backward-extra.1 + +COMMANDFILES += cmd-relocator_mod-lib_i386_relocator_backward.lst +FSFILES += fs-relocator_mod-lib_i386_relocator_backward.lst +PARTTOOLFILES += parttool-relocator_mod-lib_i386_relocator_backward.lst +PARTMAPFILES += partmap-relocator_mod-lib_i386_relocator_backward.lst +HANDLERFILES += handler-relocator_mod-lib_i386_relocator_backward.lst +TERMINALFILES += terminal-relocator_mod-lib_i386_relocator_backward.lst +VIDEOFILES += video-relocator_mod-lib_i386_relocator_backward.lst + +cmd-relocator_mod-lib_i386_relocator_backward.lst: lib/i386/relocator_backward.S $(lib/i386/relocator_backward.S_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/i386 -I$(srcdir)/lib/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(relocator_mod_ASFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh relocator > $@ || (rm -f $@; exit 1) + +fs-relocator_mod-lib_i386_relocator_backward.lst: lib/i386/relocator_backward.S $(lib/i386/relocator_backward.S_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/i386 -I$(srcdir)/lib/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(relocator_mod_ASFLAGS) -E $< | sh $(srcdir)/genfslist.sh relocator > $@ || (rm -f $@; exit 1) + +parttool-relocator_mod-lib_i386_relocator_backward.lst: lib/i386/relocator_backward.S $(lib/i386/relocator_backward.S_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/i386 -I$(srcdir)/lib/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(relocator_mod_ASFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh relocator > $@ || (rm -f $@; exit 1) + +partmap-relocator_mod-lib_i386_relocator_backward.lst: lib/i386/relocator_backward.S $(lib/i386/relocator_backward.S_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/i386 -I$(srcdir)/lib/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(relocator_mod_ASFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh relocator > $@ || (rm -f $@; exit 1) + +handler-relocator_mod-lib_i386_relocator_backward.lst: lib/i386/relocator_backward.S $(lib/i386/relocator_backward.S_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/i386 -I$(srcdir)/lib/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(relocator_mod_ASFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh relocator > $@ || (rm -f $@; exit 1) + +terminal-relocator_mod-lib_i386_relocator_backward.lst: lib/i386/relocator_backward.S $(lib/i386/relocator_backward.S_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/i386 -I$(srcdir)/lib/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(relocator_mod_ASFLAGS) -E $< | sh $(srcdir)/genterminallist.sh relocator > $@ || (rm -f $@; exit 1) + +video-relocator_mod-lib_i386_relocator_backward.lst: lib/i386/relocator_backward.S $(lib/i386/relocator_backward.S_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/i386 -I$(srcdir)/lib/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(relocator_mod_ASFLAGS) -E $< | sh $(srcdir)/genvideolist.sh relocator > $@ || (rm -f $@; exit 1) + +relocator_mod_CFLAGS = $(COMMON_CFLAGS) +relocator_mod_ASFLAGS = $(COMMON_ASFLAGS) +relocator_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += ata.mod +ata_mod_SOURCES = disk/ata.c + +clean-module-ata.mod.1: + rm -f ata.mod mod-ata.o mod-ata.c pre-ata.o ata_mod-disk_ata.o und-ata.lst + +CLEAN_MODULE_TARGETS += clean-module-ata.mod.1 + +clean-module-ata.mod-symbol.1: + rm -f def-ata.lst + +CLEAN_MODULE_TARGETS += clean-module-ata.mod-symbol.1 +DEFSYMFILES += def-ata.lst +mostlyclean-module-ata.mod.1: + rm -f ata_mod-disk_ata.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-ata.mod.1 +UNDSYMFILES += und-ata.lst + +ifeq ($(TARGET_NO_MODULES), yes) +ata.mod: pre-ata.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ata_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ata.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +ata.mod: pre-ata.o mod-ata.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ata_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ata.o mod-ata.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ata.mod: pre-ata.o mod-ata.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(ata_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-ata.o mod-ata.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-ata.o: $(ata_mod_DEPENDENCIES) ata_mod-disk_ata.o + -rm -f $@ + $(TARGET_CC) $(ata_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ ata_mod-disk_ata.o + +mod-ata.o: mod-ata.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_mod_CFLAGS) -DGRUB_FILE=\"mod-ata.c\" -c -o $@ $< + +mod-ata.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'ata' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-ata.lst: pre-ata.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 ata/' > $@ +else +def-ata.lst: pre-ata.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 ata/' > $@ +endif + +und-ata.lst: pre-ata.o + echo 'ata' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +ata_mod-disk_ata.o: disk/ata.c $(disk/ata.c_DEPENDENCIES) + $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_mod_CFLAGS) -DGRUB_FILE=\"disk/ata.c\" -MD -c -o $@ $< +-include ata_mod-disk_ata.d + +clean-module-ata_mod-disk_ata-extra.1: + rm -f cmd-ata_mod-disk_ata.lst fs-ata_mod-disk_ata.lst partmap-ata_mod-disk_ata.lst handler-ata_mod-disk_ata.lst parttool-ata_mod-disk_ata.lst video-ata_mod-disk_ata.lst terminal-ata_mod-disk_ata.lst + +CLEAN_MODULE_TARGETS += clean-module-ata_mod-disk_ata-extra.1 + +COMMANDFILES += cmd-ata_mod-disk_ata.lst +FSFILES += fs-ata_mod-disk_ata.lst +PARTTOOLFILES += parttool-ata_mod-disk_ata.lst +PARTMAPFILES += partmap-ata_mod-disk_ata.lst +HANDLERFILES += handler-ata_mod-disk_ata.lst +TERMINALFILES += terminal-ata_mod-disk_ata.lst +VIDEOFILES += video-ata_mod-disk_ata.lst + +cmd-ata_mod-disk_ata.lst: disk/ata.c $(disk/ata.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh ata > $@ || (rm -f $@; exit 1) + +fs-ata_mod-disk_ata.lst: disk/ata.c $(disk/ata.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ata_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh ata > $@ || (rm -f $@; exit 1) + +parttool-ata_mod-disk_ata.lst: disk/ata.c $(disk/ata.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh ata > $@ || (rm -f $@; exit 1) + +partmap-ata_mod-disk_ata.lst: disk/ata.c $(disk/ata.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ata_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh ata > $@ || (rm -f $@; exit 1) + +handler-ata_mod-disk_ata.lst: disk/ata.c $(disk/ata.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh ata > $@ || (rm -f $@; exit 1) + +terminal-ata_mod-disk_ata.lst: disk/ata.c $(disk/ata.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh ata > $@ || (rm -f $@; exit 1) + +video-ata_mod-disk_ata.lst: disk/ata.c $(disk/ata.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ata_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh ata > $@ || (rm -f $@; exit 1) + +ata_mod_CFLAGS = $(COMMON_CFLAGS) +ata_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For setpci.mod +pkglib_MODULES += setpci.mod +setpci_mod_SOURCES = commands/setpci.c + +clean-module-setpci.mod.1: + rm -f setpci.mod mod-setpci.o mod-setpci.c pre-setpci.o setpci_mod-commands_setpci.o und-setpci.lst + +CLEAN_MODULE_TARGETS += clean-module-setpci.mod.1 + +clean-module-setpci.mod-symbol.1: + rm -f def-setpci.lst + +CLEAN_MODULE_TARGETS += clean-module-setpci.mod-symbol.1 +DEFSYMFILES += def-setpci.lst +mostlyclean-module-setpci.mod.1: + rm -f setpci_mod-commands_setpci.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-setpci.mod.1 +UNDSYMFILES += und-setpci.lst + +ifeq ($(TARGET_NO_MODULES), yes) +setpci.mod: pre-setpci.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(setpci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-setpci.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +setpci.mod: pre-setpci.o mod-setpci.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(setpci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-setpci.o mod-setpci.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +setpci.mod: pre-setpci.o mod-setpci.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(setpci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-setpci.o mod-setpci.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-setpci.o: $(setpci_mod_DEPENDENCIES) setpci_mod-commands_setpci.o + -rm -f $@ + $(TARGET_CC) $(setpci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ setpci_mod-commands_setpci.o + +mod-setpci.o: mod-setpci.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(setpci_mod_CFLAGS) -DGRUB_FILE=\"mod-setpci.c\" -c -o $@ $< + +mod-setpci.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'setpci' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-setpci.lst: pre-setpci.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 setpci/' > $@ +else +def-setpci.lst: pre-setpci.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 setpci/' > $@ +endif + +und-setpci.lst: pre-setpci.o + echo 'setpci' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +setpci_mod-commands_setpci.o: commands/setpci.c $(commands/setpci.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(setpci_mod_CFLAGS) -DGRUB_FILE=\"commands/setpci.c\" -MD -c -o $@ $< +-include setpci_mod-commands_setpci.d + +clean-module-setpci_mod-commands_setpci-extra.1: + rm -f cmd-setpci_mod-commands_setpci.lst fs-setpci_mod-commands_setpci.lst partmap-setpci_mod-commands_setpci.lst handler-setpci_mod-commands_setpci.lst parttool-setpci_mod-commands_setpci.lst video-setpci_mod-commands_setpci.lst terminal-setpci_mod-commands_setpci.lst + +CLEAN_MODULE_TARGETS += clean-module-setpci_mod-commands_setpci-extra.1 + +COMMANDFILES += cmd-setpci_mod-commands_setpci.lst +FSFILES += fs-setpci_mod-commands_setpci.lst +PARTTOOLFILES += parttool-setpci_mod-commands_setpci.lst +PARTMAPFILES += partmap-setpci_mod-commands_setpci.lst +HANDLERFILES += handler-setpci_mod-commands_setpci.lst +TERMINALFILES += terminal-setpci_mod-commands_setpci.lst +VIDEOFILES += video-setpci_mod-commands_setpci.lst + +cmd-setpci_mod-commands_setpci.lst: commands/setpci.c $(commands/setpci.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(setpci_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh setpci > $@ || (rm -f $@; exit 1) + +fs-setpci_mod-commands_setpci.lst: commands/setpci.c $(commands/setpci.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(setpci_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh setpci > $@ || (rm -f $@; exit 1) + +parttool-setpci_mod-commands_setpci.lst: commands/setpci.c $(commands/setpci.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(setpci_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh setpci > $@ || (rm -f $@; exit 1) + +partmap-setpci_mod-commands_setpci.lst: commands/setpci.c $(commands/setpci.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(setpci_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh setpci > $@ || (rm -f $@; exit 1) + +handler-setpci_mod-commands_setpci.lst: commands/setpci.c $(commands/setpci.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(setpci_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh setpci > $@ || (rm -f $@; exit 1) + +terminal-setpci_mod-commands_setpci.lst: commands/setpci.c $(commands/setpci.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(setpci_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh setpci > $@ || (rm -f $@; exit 1) + +video-setpci_mod-commands_setpci.lst: commands/setpci.c $(commands/setpci.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(setpci_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh setpci > $@ || (rm -f $@; exit 1) + +setpci_mod_CFLAGS = $(COMMON_CFLAGS) +setpci_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += multiboot.mod +multiboot_mod_SOURCES = loader/multiboot.c loader/i386/multiboot_mbi.c + +clean-module-multiboot.mod.1: + rm -f multiboot.mod mod-multiboot.o mod-multiboot.c pre-multiboot.o multiboot_mod-loader_multiboot.o multiboot_mod-loader_i386_multiboot_mbi.o und-multiboot.lst + +CLEAN_MODULE_TARGETS += clean-module-multiboot.mod.1 + +clean-module-multiboot.mod-symbol.1: + rm -f def-multiboot.lst + +CLEAN_MODULE_TARGETS += clean-module-multiboot.mod-symbol.1 +DEFSYMFILES += def-multiboot.lst +mostlyclean-module-multiboot.mod.1: + rm -f multiboot_mod-loader_multiboot.d multiboot_mod-loader_i386_multiboot_mbi.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-multiboot.mod.1 +UNDSYMFILES += und-multiboot.lst + +ifeq ($(TARGET_NO_MODULES), yes) +multiboot.mod: pre-multiboot.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(multiboot_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-multiboot.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +multiboot.mod: pre-multiboot.o mod-multiboot.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(multiboot_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-multiboot.o mod-multiboot.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +multiboot.mod: pre-multiboot.o mod-multiboot.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(multiboot_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-multiboot.o mod-multiboot.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-multiboot.o: $(multiboot_mod_DEPENDENCIES) multiboot_mod-loader_multiboot.o multiboot_mod-loader_i386_multiboot_mbi.o + -rm -f $@ + $(TARGET_CC) $(multiboot_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ multiboot_mod-loader_multiboot.o multiboot_mod-loader_i386_multiboot_mbi.o + +mod-multiboot.o: mod-multiboot.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot_mod_CFLAGS) -DGRUB_FILE=\"mod-multiboot.c\" -c -o $@ $< + +mod-multiboot.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'multiboot' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-multiboot.lst: pre-multiboot.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 multiboot/' > $@ +else +def-multiboot.lst: pre-multiboot.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 multiboot/' > $@ +endif + +und-multiboot.lst: pre-multiboot.o + echo 'multiboot' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +multiboot_mod-loader_multiboot.o: loader/multiboot.c $(loader/multiboot.c_DEPENDENCIES) + $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot_mod_CFLAGS) -DGRUB_FILE=\"loader/multiboot.c\" -MD -c -o $@ $< +-include multiboot_mod-loader_multiboot.d + +clean-module-multiboot_mod-loader_multiboot-extra.1: + rm -f cmd-multiboot_mod-loader_multiboot.lst fs-multiboot_mod-loader_multiboot.lst partmap-multiboot_mod-loader_multiboot.lst handler-multiboot_mod-loader_multiboot.lst parttool-multiboot_mod-loader_multiboot.lst video-multiboot_mod-loader_multiboot.lst terminal-multiboot_mod-loader_multiboot.lst + +CLEAN_MODULE_TARGETS += clean-module-multiboot_mod-loader_multiboot-extra.1 + +COMMANDFILES += cmd-multiboot_mod-loader_multiboot.lst +FSFILES += fs-multiboot_mod-loader_multiboot.lst +PARTTOOLFILES += parttool-multiboot_mod-loader_multiboot.lst +PARTMAPFILES += partmap-multiboot_mod-loader_multiboot.lst +HANDLERFILES += handler-multiboot_mod-loader_multiboot.lst +TERMINALFILES += terminal-multiboot_mod-loader_multiboot.lst +VIDEOFILES += video-multiboot_mod-loader_multiboot.lst + +cmd-multiboot_mod-loader_multiboot.lst: loader/multiboot.c $(loader/multiboot.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh multiboot > $@ || (rm -f $@; exit 1) + +fs-multiboot_mod-loader_multiboot.lst: loader/multiboot.c $(loader/multiboot.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(multiboot_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh multiboot > $@ || (rm -f $@; exit 1) + +parttool-multiboot_mod-loader_multiboot.lst: loader/multiboot.c $(loader/multiboot.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh multiboot > $@ || (rm -f $@; exit 1) + +partmap-multiboot_mod-loader_multiboot.lst: loader/multiboot.c $(loader/multiboot.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(multiboot_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh multiboot > $@ || (rm -f $@; exit 1) + +handler-multiboot_mod-loader_multiboot.lst: loader/multiboot.c $(loader/multiboot.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh multiboot > $@ || (rm -f $@; exit 1) + +terminal-multiboot_mod-loader_multiboot.lst: loader/multiboot.c $(loader/multiboot.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh multiboot > $@ || (rm -f $@; exit 1) + +video-multiboot_mod-loader_multiboot.lst: loader/multiboot.c $(loader/multiboot.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(multiboot_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh multiboot > $@ || (rm -f $@; exit 1) + +multiboot_mod-loader_i386_multiboot_mbi.o: loader/i386/multiboot_mbi.c $(loader/i386/multiboot_mbi.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot_mod_CFLAGS) -DGRUB_FILE=\"loader/i386/multiboot_mbi.c\" -MD -c -o $@ $< +-include multiboot_mod-loader_i386_multiboot_mbi.d + +clean-module-multiboot_mod-loader_i386_multiboot_mbi-extra.1: + rm -f cmd-multiboot_mod-loader_i386_multiboot_mbi.lst fs-multiboot_mod-loader_i386_multiboot_mbi.lst partmap-multiboot_mod-loader_i386_multiboot_mbi.lst handler-multiboot_mod-loader_i386_multiboot_mbi.lst parttool-multiboot_mod-loader_i386_multiboot_mbi.lst video-multiboot_mod-loader_i386_multiboot_mbi.lst terminal-multiboot_mod-loader_i386_multiboot_mbi.lst + +CLEAN_MODULE_TARGETS += clean-module-multiboot_mod-loader_i386_multiboot_mbi-extra.1 + +COMMANDFILES += cmd-multiboot_mod-loader_i386_multiboot_mbi.lst +FSFILES += fs-multiboot_mod-loader_i386_multiboot_mbi.lst +PARTTOOLFILES += parttool-multiboot_mod-loader_i386_multiboot_mbi.lst +PARTMAPFILES += partmap-multiboot_mod-loader_i386_multiboot_mbi.lst +HANDLERFILES += handler-multiboot_mod-loader_i386_multiboot_mbi.lst +TERMINALFILES += terminal-multiboot_mod-loader_i386_multiboot_mbi.lst +VIDEOFILES += video-multiboot_mod-loader_i386_multiboot_mbi.lst + +cmd-multiboot_mod-loader_i386_multiboot_mbi.lst: loader/i386/multiboot_mbi.c $(loader/i386/multiboot_mbi.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh multiboot > $@ || (rm -f $@; exit 1) + +fs-multiboot_mod-loader_i386_multiboot_mbi.lst: loader/i386/multiboot_mbi.c $(loader/i386/multiboot_mbi.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(multiboot_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh multiboot > $@ || (rm -f $@; exit 1) + +parttool-multiboot_mod-loader_i386_multiboot_mbi.lst: loader/i386/multiboot_mbi.c $(loader/i386/multiboot_mbi.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh multiboot > $@ || (rm -f $@; exit 1) + +partmap-multiboot_mod-loader_i386_multiboot_mbi.lst: loader/i386/multiboot_mbi.c $(loader/i386/multiboot_mbi.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(multiboot_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh multiboot > $@ || (rm -f $@; exit 1) + +handler-multiboot_mod-loader_i386_multiboot_mbi.lst: loader/i386/multiboot_mbi.c $(loader/i386/multiboot_mbi.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh multiboot > $@ || (rm -f $@; exit 1) + +terminal-multiboot_mod-loader_i386_multiboot_mbi.lst: loader/i386/multiboot_mbi.c $(loader/i386/multiboot_mbi.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh multiboot > $@ || (rm -f $@; exit 1) + +video-multiboot_mod-loader_i386_multiboot_mbi.lst: loader/i386/multiboot_mbi.c $(loader/i386/multiboot_mbi.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(multiboot_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh multiboot > $@ || (rm -f $@; exit 1) + +multiboot_mod_CFLAGS = $(COMMON_CFLAGS) +multiboot_mod_LDFLAGS = $(COMMON_LDFLAGS) +multiboot_mod_ASFLAGS = $(COMMON_ASFLAGS) + +pkglib_MODULES += multiboot2.mod +multiboot2_mod_SOURCES = loader/multiboot.c loader/multiboot_mbi2.c + +clean-module-multiboot2.mod.1: + rm -f multiboot2.mod mod-multiboot2.o mod-multiboot2.c pre-multiboot2.o multiboot2_mod-loader_multiboot.o multiboot2_mod-loader_multiboot_mbi2.o und-multiboot2.lst + +CLEAN_MODULE_TARGETS += clean-module-multiboot2.mod.1 + +clean-module-multiboot2.mod-symbol.1: + rm -f def-multiboot2.lst + +CLEAN_MODULE_TARGETS += clean-module-multiboot2.mod-symbol.1 +DEFSYMFILES += def-multiboot2.lst +mostlyclean-module-multiboot2.mod.1: + rm -f multiboot2_mod-loader_multiboot.d multiboot2_mod-loader_multiboot_mbi2.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-multiboot2.mod.1 +UNDSYMFILES += und-multiboot2.lst + +ifeq ($(TARGET_NO_MODULES), yes) +multiboot2.mod: pre-multiboot2.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(multiboot2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-multiboot2.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +multiboot2.mod: pre-multiboot2.o mod-multiboot2.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(multiboot2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-multiboot2.o mod-multiboot2.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +multiboot2.mod: pre-multiboot2.o mod-multiboot2.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(multiboot2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-multiboot2.o mod-multiboot2.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-multiboot2.o: $(multiboot2_mod_DEPENDENCIES) multiboot2_mod-loader_multiboot.o multiboot2_mod-loader_multiboot_mbi2.o + -rm -f $@ + $(TARGET_CC) $(multiboot2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ multiboot2_mod-loader_multiboot.o multiboot2_mod-loader_multiboot_mbi2.o + +mod-multiboot2.o: mod-multiboot2.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -DGRUB_FILE=\"mod-multiboot2.c\" -c -o $@ $< + +mod-multiboot2.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'multiboot2' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-multiboot2.lst: pre-multiboot2.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 multiboot2/' > $@ +else +def-multiboot2.lst: pre-multiboot2.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 multiboot2/' > $@ +endif + +und-multiboot2.lst: pre-multiboot2.o + echo 'multiboot2' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +multiboot2_mod-loader_multiboot.o: loader/multiboot.c $(loader/multiboot.c_DEPENDENCIES) + $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -DGRUB_FILE=\"loader/multiboot.c\" -MD -c -o $@ $< +-include multiboot2_mod-loader_multiboot.d + +clean-module-multiboot2_mod-loader_multiboot-extra.1: + rm -f cmd-multiboot2_mod-loader_multiboot.lst fs-multiboot2_mod-loader_multiboot.lst partmap-multiboot2_mod-loader_multiboot.lst handler-multiboot2_mod-loader_multiboot.lst parttool-multiboot2_mod-loader_multiboot.lst video-multiboot2_mod-loader_multiboot.lst terminal-multiboot2_mod-loader_multiboot.lst + +CLEAN_MODULE_TARGETS += clean-module-multiboot2_mod-loader_multiboot-extra.1 + +COMMANDFILES += cmd-multiboot2_mod-loader_multiboot.lst +FSFILES += fs-multiboot2_mod-loader_multiboot.lst +PARTTOOLFILES += parttool-multiboot2_mod-loader_multiboot.lst +PARTMAPFILES += partmap-multiboot2_mod-loader_multiboot.lst +HANDLERFILES += handler-multiboot2_mod-loader_multiboot.lst +TERMINALFILES += terminal-multiboot2_mod-loader_multiboot.lst +VIDEOFILES += video-multiboot2_mod-loader_multiboot.lst + +cmd-multiboot2_mod-loader_multiboot.lst: loader/multiboot.c $(loader/multiboot.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +fs-multiboot2_mod-loader_multiboot.lst: loader/multiboot.c $(loader/multiboot.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +parttool-multiboot2_mod-loader_multiboot.lst: loader/multiboot.c $(loader/multiboot.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +partmap-multiboot2_mod-loader_multiboot.lst: loader/multiboot.c $(loader/multiboot.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +handler-multiboot2_mod-loader_multiboot.lst: loader/multiboot.c $(loader/multiboot.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +terminal-multiboot2_mod-loader_multiboot.lst: loader/multiboot.c $(loader/multiboot.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +video-multiboot2_mod-loader_multiboot.lst: loader/multiboot.c $(loader/multiboot.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +multiboot2_mod-loader_multiboot_mbi2.o: loader/multiboot_mbi2.c $(loader/multiboot_mbi2.c_DEPENDENCIES) + $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -DGRUB_FILE=\"loader/multiboot_mbi2.c\" -MD -c -o $@ $< +-include multiboot2_mod-loader_multiboot_mbi2.d + +clean-module-multiboot2_mod-loader_multiboot_mbi2-extra.1: + rm -f cmd-multiboot2_mod-loader_multiboot_mbi2.lst fs-multiboot2_mod-loader_multiboot_mbi2.lst partmap-multiboot2_mod-loader_multiboot_mbi2.lst handler-multiboot2_mod-loader_multiboot_mbi2.lst parttool-multiboot2_mod-loader_multiboot_mbi2.lst video-multiboot2_mod-loader_multiboot_mbi2.lst terminal-multiboot2_mod-loader_multiboot_mbi2.lst + +CLEAN_MODULE_TARGETS += clean-module-multiboot2_mod-loader_multiboot_mbi2-extra.1 + +COMMANDFILES += cmd-multiboot2_mod-loader_multiboot_mbi2.lst +FSFILES += fs-multiboot2_mod-loader_multiboot_mbi2.lst +PARTTOOLFILES += parttool-multiboot2_mod-loader_multiboot_mbi2.lst +PARTMAPFILES += partmap-multiboot2_mod-loader_multiboot_mbi2.lst +HANDLERFILES += handler-multiboot2_mod-loader_multiboot_mbi2.lst +TERMINALFILES += terminal-multiboot2_mod-loader_multiboot_mbi2.lst +VIDEOFILES += video-multiboot2_mod-loader_multiboot_mbi2.lst + +cmd-multiboot2_mod-loader_multiboot_mbi2.lst: loader/multiboot_mbi2.c $(loader/multiboot_mbi2.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +fs-multiboot2_mod-loader_multiboot_mbi2.lst: loader/multiboot_mbi2.c $(loader/multiboot_mbi2.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +parttool-multiboot2_mod-loader_multiboot_mbi2.lst: loader/multiboot_mbi2.c $(loader/multiboot_mbi2.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +partmap-multiboot2_mod-loader_multiboot_mbi2.lst: loader/multiboot_mbi2.c $(loader/multiboot_mbi2.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +handler-multiboot2_mod-loader_multiboot_mbi2.lst: loader/multiboot_mbi2.c $(loader/multiboot_mbi2.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +terminal-multiboot2_mod-loader_multiboot_mbi2.lst: loader/multiboot_mbi2.c $(loader/multiboot_mbi2.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +video-multiboot2_mod-loader_multiboot_mbi2.lst: loader/multiboot_mbi2.c $(loader/multiboot_mbi2.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +multiboot2_mod_CFLAGS = $(COMMON_CFLAGS) -DGRUB_USE_MULTIBOOT2 +multiboot2_mod_LDFLAGS = $(COMMON_LDFLAGS) +multiboot2_mod_ASFLAGS = $(COMMON_ASFLAGS) + +# For serial.mod. +pkglib_MODULES += serial.mod +serial_mod_SOURCES = term/serial.c + +clean-module-serial.mod.1: + rm -f serial.mod mod-serial.o mod-serial.c pre-serial.o serial_mod-term_serial.o und-serial.lst + +CLEAN_MODULE_TARGETS += clean-module-serial.mod.1 + +clean-module-serial.mod-symbol.1: + rm -f def-serial.lst + +CLEAN_MODULE_TARGETS += clean-module-serial.mod-symbol.1 +DEFSYMFILES += def-serial.lst +mostlyclean-module-serial.mod.1: + rm -f serial_mod-term_serial.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-serial.mod.1 +UNDSYMFILES += und-serial.lst + +ifeq ($(TARGET_NO_MODULES), yes) +serial.mod: pre-serial.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(serial_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-serial.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +serial.mod: pre-serial.o mod-serial.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(serial_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-serial.o mod-serial.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +serial.mod: pre-serial.o mod-serial.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(serial_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-serial.o mod-serial.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-serial.o: $(serial_mod_DEPENDENCIES) serial_mod-term_serial.o + -rm -f $@ + $(TARGET_CC) $(serial_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ serial_mod-term_serial.o + +mod-serial.o: mod-serial.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(serial_mod_CFLAGS) -DGRUB_FILE=\"mod-serial.c\" -c -o $@ $< + +mod-serial.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'serial' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-serial.lst: pre-serial.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 serial/' > $@ +else +def-serial.lst: pre-serial.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 serial/' > $@ +endif + +und-serial.lst: pre-serial.o + echo 'serial' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +serial_mod-term_serial.o: term/serial.c $(term/serial.c_DEPENDENCIES) + $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(serial_mod_CFLAGS) -DGRUB_FILE=\"term/serial.c\" -MD -c -o $@ $< +-include serial_mod-term_serial.d + +clean-module-serial_mod-term_serial-extra.1: + rm -f cmd-serial_mod-term_serial.lst fs-serial_mod-term_serial.lst partmap-serial_mod-term_serial.lst handler-serial_mod-term_serial.lst parttool-serial_mod-term_serial.lst video-serial_mod-term_serial.lst terminal-serial_mod-term_serial.lst + +CLEAN_MODULE_TARGETS += clean-module-serial_mod-term_serial-extra.1 + +COMMANDFILES += cmd-serial_mod-term_serial.lst +FSFILES += fs-serial_mod-term_serial.lst +PARTTOOLFILES += parttool-serial_mod-term_serial.lst +PARTMAPFILES += partmap-serial_mod-term_serial.lst +HANDLERFILES += handler-serial_mod-term_serial.lst +TERMINALFILES += terminal-serial_mod-term_serial.lst +VIDEOFILES += video-serial_mod-term_serial.lst + +cmd-serial_mod-term_serial.lst: term/serial.c $(term/serial.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(serial_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh serial > $@ || (rm -f $@; exit 1) + +fs-serial_mod-term_serial.lst: term/serial.c $(term/serial.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(serial_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh serial > $@ || (rm -f $@; exit 1) + +parttool-serial_mod-term_serial.lst: term/serial.c $(term/serial.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(serial_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh serial > $@ || (rm -f $@; exit 1) + +partmap-serial_mod-term_serial.lst: term/serial.c $(term/serial.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(serial_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh serial > $@ || (rm -f $@; exit 1) + +handler-serial_mod-term_serial.lst: term/serial.c $(term/serial.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(serial_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh serial > $@ || (rm -f $@; exit 1) + +terminal-serial_mod-term_serial.lst: term/serial.c $(term/serial.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(serial_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh serial > $@ || (rm -f $@; exit 1) + +video-serial_mod-term_serial.lst: term/serial.c $(term/serial.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(serial_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh serial > $@ || (rm -f $@; exit 1) + +serial_mod_CFLAGS = $(COMMON_CFLAGS) +serial_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# On qemu it's compiled in +ifneq ($(platform), qemu) +# For pci.mod +pkglib_MODULES += pci.mod +pci_mod_SOURCES = bus/pci.c + +clean-module-pci.mod.1: + rm -f pci.mod mod-pci.o mod-pci.c pre-pci.o pci_mod-bus_pci.o und-pci.lst + +CLEAN_MODULE_TARGETS += clean-module-pci.mod.1 + +clean-module-pci.mod-symbol.1: + rm -f def-pci.lst + +CLEAN_MODULE_TARGETS += clean-module-pci.mod-symbol.1 +DEFSYMFILES += def-pci.lst +mostlyclean-module-pci.mod.1: + rm -f pci_mod-bus_pci.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-pci.mod.1 +UNDSYMFILES += und-pci.lst + +ifeq ($(TARGET_NO_MODULES), yes) +pci.mod: pre-pci.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(pci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-pci.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +pci.mod: pre-pci.o mod-pci.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(pci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-pci.o mod-pci.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +pci.mod: pre-pci.o mod-pci.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(pci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-pci.o mod-pci.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-pci.o: $(pci_mod_DEPENDENCIES) pci_mod-bus_pci.o + -rm -f $@ + $(TARGET_CC) $(pci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pci_mod-bus_pci.o + +mod-pci.o: mod-pci.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -DGRUB_FILE=\"mod-pci.c\" -c -o $@ $< + +mod-pci.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'pci' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-pci.lst: pre-pci.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 pci/' > $@ +else +def-pci.lst: pre-pci.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 pci/' > $@ +endif + +und-pci.lst: pre-pci.o + echo 'pci' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +pci_mod-bus_pci.o: bus/pci.c $(bus/pci.c_DEPENDENCIES) + $(TARGET_CC) -Ibus -I$(srcdir)/bus $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -DGRUB_FILE=\"bus/pci.c\" -MD -c -o $@ $< +-include pci_mod-bus_pci.d + +clean-module-pci_mod-bus_pci-extra.1: + rm -f cmd-pci_mod-bus_pci.lst fs-pci_mod-bus_pci.lst partmap-pci_mod-bus_pci.lst handler-pci_mod-bus_pci.lst parttool-pci_mod-bus_pci.lst video-pci_mod-bus_pci.lst terminal-pci_mod-bus_pci.lst + +CLEAN_MODULE_TARGETS += clean-module-pci_mod-bus_pci-extra.1 + +COMMANDFILES += cmd-pci_mod-bus_pci.lst +FSFILES += fs-pci_mod-bus_pci.lst +PARTTOOLFILES += parttool-pci_mod-bus_pci.lst +PARTMAPFILES += partmap-pci_mod-bus_pci.lst +HANDLERFILES += handler-pci_mod-bus_pci.lst +TERMINALFILES += terminal-pci_mod-bus_pci.lst +VIDEOFILES += video-pci_mod-bus_pci.lst + +cmd-pci_mod-bus_pci.lst: bus/pci.c $(bus/pci.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ibus -I$(srcdir)/bus $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh pci > $@ || (rm -f $@; exit 1) + +fs-pci_mod-bus_pci.lst: bus/pci.c $(bus/pci.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ibus -I$(srcdir)/bus $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh pci > $@ || (rm -f $@; exit 1) + +parttool-pci_mod-bus_pci.lst: bus/pci.c $(bus/pci.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ibus -I$(srcdir)/bus $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh pci > $@ || (rm -f $@; exit 1) + +partmap-pci_mod-bus_pci.lst: bus/pci.c $(bus/pci.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ibus -I$(srcdir)/bus $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh pci > $@ || (rm -f $@; exit 1) + +handler-pci_mod-bus_pci.lst: bus/pci.c $(bus/pci.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ibus -I$(srcdir)/bus $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh pci > $@ || (rm -f $@; exit 1) + +terminal-pci_mod-bus_pci.lst: bus/pci.c $(bus/pci.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ibus -I$(srcdir)/bus $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh pci > $@ || (rm -f $@; exit 1) + +video-pci_mod-bus_pci.lst: bus/pci.c $(bus/pci.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ibus -I$(srcdir)/bus $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh pci > $@ || (rm -f $@; exit 1) + +pci_mod_CFLAGS = $(COMMON_CFLAGS) +pci_mod_LDFLAGS = $(COMMON_LDFLAGS) +endif + +# For cs5536.mod +pkglib_MODULES += cs5536.mod +cs5536_mod_SOURCES = bus/cs5536.c + +clean-module-cs5536.mod.1: + rm -f cs5536.mod mod-cs5536.o mod-cs5536.c pre-cs5536.o cs5536_mod-bus_cs5536.o und-cs5536.lst + +CLEAN_MODULE_TARGETS += clean-module-cs5536.mod.1 + +clean-module-cs5536.mod-symbol.1: + rm -f def-cs5536.lst + +CLEAN_MODULE_TARGETS += clean-module-cs5536.mod-symbol.1 +DEFSYMFILES += def-cs5536.lst +mostlyclean-module-cs5536.mod.1: + rm -f cs5536_mod-bus_cs5536.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-cs5536.mod.1 +UNDSYMFILES += und-cs5536.lst + +ifeq ($(TARGET_NO_MODULES), yes) +cs5536.mod: pre-cs5536.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(cs5536_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-cs5536.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +cs5536.mod: pre-cs5536.o mod-cs5536.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(cs5536_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-cs5536.o mod-cs5536.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +cs5536.mod: pre-cs5536.o mod-cs5536.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(cs5536_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-cs5536.o mod-cs5536.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-cs5536.o: $(cs5536_mod_DEPENDENCIES) cs5536_mod-bus_cs5536.o + -rm -f $@ + $(TARGET_CC) $(cs5536_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ cs5536_mod-bus_cs5536.o + +mod-cs5536.o: mod-cs5536.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cs5536_mod_CFLAGS) -DGRUB_FILE=\"mod-cs5536.c\" -c -o $@ $< + +mod-cs5536.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'cs5536' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-cs5536.lst: pre-cs5536.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 cs5536/' > $@ +else +def-cs5536.lst: pre-cs5536.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 cs5536/' > $@ +endif + +und-cs5536.lst: pre-cs5536.o + echo 'cs5536' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +cs5536_mod-bus_cs5536.o: bus/cs5536.c $(bus/cs5536.c_DEPENDENCIES) + $(TARGET_CC) -Ibus -I$(srcdir)/bus $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cs5536_mod_CFLAGS) -DGRUB_FILE=\"bus/cs5536.c\" -MD -c -o $@ $< +-include cs5536_mod-bus_cs5536.d + +clean-module-cs5536_mod-bus_cs5536-extra.1: + rm -f cmd-cs5536_mod-bus_cs5536.lst fs-cs5536_mod-bus_cs5536.lst partmap-cs5536_mod-bus_cs5536.lst handler-cs5536_mod-bus_cs5536.lst parttool-cs5536_mod-bus_cs5536.lst video-cs5536_mod-bus_cs5536.lst terminal-cs5536_mod-bus_cs5536.lst + +CLEAN_MODULE_TARGETS += clean-module-cs5536_mod-bus_cs5536-extra.1 + +COMMANDFILES += cmd-cs5536_mod-bus_cs5536.lst +FSFILES += fs-cs5536_mod-bus_cs5536.lst +PARTTOOLFILES += parttool-cs5536_mod-bus_cs5536.lst +PARTMAPFILES += partmap-cs5536_mod-bus_cs5536.lst +HANDLERFILES += handler-cs5536_mod-bus_cs5536.lst +TERMINALFILES += terminal-cs5536_mod-bus_cs5536.lst +VIDEOFILES += video-cs5536_mod-bus_cs5536.lst + +cmd-cs5536_mod-bus_cs5536.lst: bus/cs5536.c $(bus/cs5536.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ibus -I$(srcdir)/bus $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cs5536_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh cs5536 > $@ || (rm -f $@; exit 1) + +fs-cs5536_mod-bus_cs5536.lst: bus/cs5536.c $(bus/cs5536.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ibus -I$(srcdir)/bus $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(cs5536_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh cs5536 > $@ || (rm -f $@; exit 1) + +parttool-cs5536_mod-bus_cs5536.lst: bus/cs5536.c $(bus/cs5536.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ibus -I$(srcdir)/bus $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cs5536_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh cs5536 > $@ || (rm -f $@; exit 1) + +partmap-cs5536_mod-bus_cs5536.lst: bus/cs5536.c $(bus/cs5536.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ibus -I$(srcdir)/bus $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(cs5536_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh cs5536 > $@ || (rm -f $@; exit 1) + +handler-cs5536_mod-bus_cs5536.lst: bus/cs5536.c $(bus/cs5536.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ibus -I$(srcdir)/bus $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cs5536_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh cs5536 > $@ || (rm -f $@; exit 1) + +terminal-cs5536_mod-bus_cs5536.lst: bus/cs5536.c $(bus/cs5536.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ibus -I$(srcdir)/bus $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cs5536_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh cs5536 > $@ || (rm -f $@; exit 1) + +video-cs5536_mod-bus_cs5536.lst: bus/cs5536.c $(bus/cs5536.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ibus -I$(srcdir)/bus $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(cs5536_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh cs5536 > $@ || (rm -f $@; exit 1) + +cs5536_mod_CFLAGS = $(COMMON_CFLAGS) +cs5536_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For lspci.mod +pkglib_MODULES += lspci.mod +lspci_mod_SOURCES = commands/lspci.c + +clean-module-lspci.mod.1: + rm -f lspci.mod mod-lspci.o mod-lspci.c pre-lspci.o lspci_mod-commands_lspci.o und-lspci.lst + +CLEAN_MODULE_TARGETS += clean-module-lspci.mod.1 + +clean-module-lspci.mod-symbol.1: + rm -f def-lspci.lst + +CLEAN_MODULE_TARGETS += clean-module-lspci.mod-symbol.1 +DEFSYMFILES += def-lspci.lst +mostlyclean-module-lspci.mod.1: + rm -f lspci_mod-commands_lspci.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-lspci.mod.1 +UNDSYMFILES += und-lspci.lst + +ifeq ($(TARGET_NO_MODULES), yes) +lspci.mod: pre-lspci.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(lspci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-lspci.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +lspci.mod: pre-lspci.o mod-lspci.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(lspci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-lspci.o mod-lspci.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +lspci.mod: pre-lspci.o mod-lspci.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(lspci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-lspci.o mod-lspci.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-lspci.o: $(lspci_mod_DEPENDENCIES) lspci_mod-commands_lspci.o + -rm -f $@ + $(TARGET_CC) $(lspci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ lspci_mod-commands_lspci.o + +mod-lspci.o: mod-lspci.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lspci_mod_CFLAGS) -DGRUB_FILE=\"mod-lspci.c\" -c -o $@ $< + +mod-lspci.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'lspci' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-lspci.lst: pre-lspci.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 lspci/' > $@ +else +def-lspci.lst: pre-lspci.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 lspci/' > $@ +endif + +und-lspci.lst: pre-lspci.o + echo 'lspci' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +lspci_mod-commands_lspci.o: commands/lspci.c $(commands/lspci.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lspci_mod_CFLAGS) -DGRUB_FILE=\"commands/lspci.c\" -MD -c -o $@ $< +-include lspci_mod-commands_lspci.d + +clean-module-lspci_mod-commands_lspci-extra.1: + rm -f cmd-lspci_mod-commands_lspci.lst fs-lspci_mod-commands_lspci.lst partmap-lspci_mod-commands_lspci.lst handler-lspci_mod-commands_lspci.lst parttool-lspci_mod-commands_lspci.lst video-lspci_mod-commands_lspci.lst terminal-lspci_mod-commands_lspci.lst + +CLEAN_MODULE_TARGETS += clean-module-lspci_mod-commands_lspci-extra.1 + +COMMANDFILES += cmd-lspci_mod-commands_lspci.lst +FSFILES += fs-lspci_mod-commands_lspci.lst +PARTTOOLFILES += parttool-lspci_mod-commands_lspci.lst +PARTMAPFILES += partmap-lspci_mod-commands_lspci.lst +HANDLERFILES += handler-lspci_mod-commands_lspci.lst +TERMINALFILES += terminal-lspci_mod-commands_lspci.lst +VIDEOFILES += video-lspci_mod-commands_lspci.lst + +cmd-lspci_mod-commands_lspci.lst: commands/lspci.c $(commands/lspci.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lspci_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh lspci > $@ || (rm -f $@; exit 1) + +fs-lspci_mod-commands_lspci.lst: commands/lspci.c $(commands/lspci.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(lspci_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh lspci > $@ || (rm -f $@; exit 1) + +parttool-lspci_mod-commands_lspci.lst: commands/lspci.c $(commands/lspci.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lspci_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh lspci > $@ || (rm -f $@; exit 1) + +partmap-lspci_mod-commands_lspci.lst: commands/lspci.c $(commands/lspci.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(lspci_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh lspci > $@ || (rm -f $@; exit 1) + +handler-lspci_mod-commands_lspci.lst: commands/lspci.c $(commands/lspci.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lspci_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh lspci > $@ || (rm -f $@; exit 1) + +terminal-lspci_mod-commands_lspci.lst: commands/lspci.c $(commands/lspci.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lspci_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh lspci > $@ || (rm -f $@; exit 1) + +video-lspci_mod-commands_lspci.lst: commands/lspci.c $(commands/lspci.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(lspci_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh lspci > $@ || (rm -f $@; exit 1) + +lspci_mod_CFLAGS = $(COMMON_CFLAGS) +lspci_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For play.mod. +pkglib_MODULES += play.mod +play_mod_SOURCES = commands/i386/pc/play.c + +clean-module-play.mod.1: + rm -f play.mod mod-play.o mod-play.c pre-play.o play_mod-commands_i386_pc_play.o und-play.lst + +CLEAN_MODULE_TARGETS += clean-module-play.mod.1 + +clean-module-play.mod-symbol.1: + rm -f def-play.lst + +CLEAN_MODULE_TARGETS += clean-module-play.mod-symbol.1 +DEFSYMFILES += def-play.lst +mostlyclean-module-play.mod.1: + rm -f play_mod-commands_i386_pc_play.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-play.mod.1 +UNDSYMFILES += und-play.lst + +ifeq ($(TARGET_NO_MODULES), yes) +play.mod: pre-play.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(play_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-play.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +play.mod: pre-play.o mod-play.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(play_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-play.o mod-play.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +play.mod: pre-play.o mod-play.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(play_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-play.o mod-play.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-play.o: $(play_mod_DEPENDENCIES) play_mod-commands_i386_pc_play.o + -rm -f $@ + $(TARGET_CC) $(play_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ play_mod-commands_i386_pc_play.o + +mod-play.o: mod-play.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(play_mod_CFLAGS) -DGRUB_FILE=\"mod-play.c\" -c -o $@ $< + +mod-play.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'play' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-play.lst: pre-play.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 play/' > $@ +else +def-play.lst: pre-play.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 play/' > $@ +endif + +und-play.lst: pre-play.o + echo 'play' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +play_mod-commands_i386_pc_play.o: commands/i386/pc/play.c $(commands/i386/pc/play.c_DEPENDENCIES) + $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(play_mod_CFLAGS) -DGRUB_FILE=\"commands/i386/pc/play.c\" -MD -c -o $@ $< +-include play_mod-commands_i386_pc_play.d + +clean-module-play_mod-commands_i386_pc_play-extra.1: + rm -f cmd-play_mod-commands_i386_pc_play.lst fs-play_mod-commands_i386_pc_play.lst partmap-play_mod-commands_i386_pc_play.lst handler-play_mod-commands_i386_pc_play.lst parttool-play_mod-commands_i386_pc_play.lst video-play_mod-commands_i386_pc_play.lst terminal-play_mod-commands_i386_pc_play.lst + +CLEAN_MODULE_TARGETS += clean-module-play_mod-commands_i386_pc_play-extra.1 + +COMMANDFILES += cmd-play_mod-commands_i386_pc_play.lst +FSFILES += fs-play_mod-commands_i386_pc_play.lst +PARTTOOLFILES += parttool-play_mod-commands_i386_pc_play.lst +PARTMAPFILES += partmap-play_mod-commands_i386_pc_play.lst +HANDLERFILES += handler-play_mod-commands_i386_pc_play.lst +TERMINALFILES += terminal-play_mod-commands_i386_pc_play.lst +VIDEOFILES += video-play_mod-commands_i386_pc_play.lst + +cmd-play_mod-commands_i386_pc_play.lst: commands/i386/pc/play.c $(commands/i386/pc/play.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(play_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh play > $@ || (rm -f $@; exit 1) + +fs-play_mod-commands_i386_pc_play.lst: commands/i386/pc/play.c $(commands/i386/pc/play.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(play_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh play > $@ || (rm -f $@; exit 1) + +parttool-play_mod-commands_i386_pc_play.lst: commands/i386/pc/play.c $(commands/i386/pc/play.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(play_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh play > $@ || (rm -f $@; exit 1) + +partmap-play_mod-commands_i386_pc_play.lst: commands/i386/pc/play.c $(commands/i386/pc/play.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(play_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh play > $@ || (rm -f $@; exit 1) + +handler-play_mod-commands_i386_pc_play.lst: commands/i386/pc/play.c $(commands/i386/pc/play.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(play_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh play > $@ || (rm -f $@; exit 1) + +terminal-play_mod-commands_i386_pc_play.lst: commands/i386/pc/play.c $(commands/i386/pc/play.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(play_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh play > $@ || (rm -f $@; exit 1) + +video-play_mod-commands_i386_pc_play.lst: commands/i386/pc/play.c $(commands/i386/pc/play.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(play_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh play > $@ || (rm -f $@; exit 1) + +play_mod_CFLAGS = $(COMMON_CFLAGS) +play_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For iorw.mod. +pkglib_MODULES += iorw.mod +iorw_mod_SOURCES = commands/iorw.c + +clean-module-iorw.mod.1: + rm -f iorw.mod mod-iorw.o mod-iorw.c pre-iorw.o iorw_mod-commands_iorw.o und-iorw.lst + +CLEAN_MODULE_TARGETS += clean-module-iorw.mod.1 + +clean-module-iorw.mod-symbol.1: + rm -f def-iorw.lst + +CLEAN_MODULE_TARGETS += clean-module-iorw.mod-symbol.1 +DEFSYMFILES += def-iorw.lst +mostlyclean-module-iorw.mod.1: + rm -f iorw_mod-commands_iorw.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-iorw.mod.1 +UNDSYMFILES += und-iorw.lst + +ifeq ($(TARGET_NO_MODULES), yes) +iorw.mod: pre-iorw.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(iorw_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-iorw.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +iorw.mod: pre-iorw.o mod-iorw.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(iorw_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-iorw.o mod-iorw.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +iorw.mod: pre-iorw.o mod-iorw.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(iorw_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-iorw.o mod-iorw.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-iorw.o: $(iorw_mod_DEPENDENCIES) iorw_mod-commands_iorw.o + -rm -f $@ + $(TARGET_CC) $(iorw_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ iorw_mod-commands_iorw.o + +mod-iorw.o: mod-iorw.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(iorw_mod_CFLAGS) -DGRUB_FILE=\"mod-iorw.c\" -c -o $@ $< + +mod-iorw.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'iorw' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-iorw.lst: pre-iorw.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 iorw/' > $@ +else +def-iorw.lst: pre-iorw.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 iorw/' > $@ +endif + +und-iorw.lst: pre-iorw.o + echo 'iorw' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +iorw_mod-commands_iorw.o: commands/iorw.c $(commands/iorw.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(iorw_mod_CFLAGS) -DGRUB_FILE=\"commands/iorw.c\" -MD -c -o $@ $< +-include iorw_mod-commands_iorw.d + +clean-module-iorw_mod-commands_iorw-extra.1: + rm -f cmd-iorw_mod-commands_iorw.lst fs-iorw_mod-commands_iorw.lst partmap-iorw_mod-commands_iorw.lst handler-iorw_mod-commands_iorw.lst parttool-iorw_mod-commands_iorw.lst video-iorw_mod-commands_iorw.lst terminal-iorw_mod-commands_iorw.lst + +CLEAN_MODULE_TARGETS += clean-module-iorw_mod-commands_iorw-extra.1 + +COMMANDFILES += cmd-iorw_mod-commands_iorw.lst +FSFILES += fs-iorw_mod-commands_iorw.lst +PARTTOOLFILES += parttool-iorw_mod-commands_iorw.lst +PARTMAPFILES += partmap-iorw_mod-commands_iorw.lst +HANDLERFILES += handler-iorw_mod-commands_iorw.lst +TERMINALFILES += terminal-iorw_mod-commands_iorw.lst +VIDEOFILES += video-iorw_mod-commands_iorw.lst + +cmd-iorw_mod-commands_iorw.lst: commands/iorw.c $(commands/iorw.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(iorw_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh iorw > $@ || (rm -f $@; exit 1) + +fs-iorw_mod-commands_iorw.lst: commands/iorw.c $(commands/iorw.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(iorw_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh iorw > $@ || (rm -f $@; exit 1) + +parttool-iorw_mod-commands_iorw.lst: commands/iorw.c $(commands/iorw.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(iorw_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh iorw > $@ || (rm -f $@; exit 1) + +partmap-iorw_mod-commands_iorw.lst: commands/iorw.c $(commands/iorw.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(iorw_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh iorw > $@ || (rm -f $@; exit 1) + +handler-iorw_mod-commands_iorw.lst: commands/iorw.c $(commands/iorw.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(iorw_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh iorw > $@ || (rm -f $@; exit 1) + +terminal-iorw_mod-commands_iorw.lst: commands/iorw.c $(commands/iorw.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(iorw_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh iorw > $@ || (rm -f $@; exit 1) + +video-iorw_mod-commands_iorw.lst: commands/iorw.c $(commands/iorw.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(iorw_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh iorw > $@ || (rm -f $@; exit 1) + +iorw_mod_CFLAGS = $(COMMON_CFLAGS) +iorw_mod_LDFLAGS = $(COMMON_LDFLAGS) --- grub2-1.98+20100804.orig/conf/mips.mk +++ grub2-1.98+20100804/conf/mips.mk @@ -0,0 +1,304 @@ + +# Generated by genmk.rb, please don't edit! +# -*- makefile -*- + +COMMON_CFLAGS += -mexplicit-relocs -mflush-func=grub_cpu_flush_cache + +# Images. +kernel_img_HEADERS += cpu/cache.h + +# Scripts. +sbin_SCRIPTS = +bin_SCRIPTS = + +# For relocator.mod. +pkglib_MODULES += relocator.mod +relocator_mod_SOURCES = lib/$(target_cpu)/relocator.c lib/$(target_cpu)/relocator_asm.S + +clean-module-relocator.mod.1: + rm -f relocator.mod mod-relocator.o mod-relocator.c pre-relocator.o relocator_mod-lib___target_cpu__relocator.o relocator_mod-lib___target_cpu__relocator_asm.o und-relocator.lst + +CLEAN_MODULE_TARGETS += clean-module-relocator.mod.1 + +clean-module-relocator.mod-symbol.1: + rm -f def-relocator.lst + +CLEAN_MODULE_TARGETS += clean-module-relocator.mod-symbol.1 +DEFSYMFILES += def-relocator.lst +mostlyclean-module-relocator.mod.1: + rm -f relocator_mod-lib___target_cpu__relocator.d relocator_mod-lib___target_cpu__relocator_asm.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-relocator.mod.1 +UNDSYMFILES += und-relocator.lst + +ifeq ($(TARGET_NO_MODULES), yes) +relocator.mod: pre-relocator.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(relocator_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-relocator.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +relocator.mod: pre-relocator.o mod-relocator.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(relocator_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-relocator.o mod-relocator.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +relocator.mod: pre-relocator.o mod-relocator.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(relocator_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-relocator.o mod-relocator.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-relocator.o: $(relocator_mod_DEPENDENCIES) relocator_mod-lib___target_cpu__relocator.o relocator_mod-lib___target_cpu__relocator_asm.o + -rm -f $@ + $(TARGET_CC) $(relocator_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ relocator_mod-lib___target_cpu__relocator.o relocator_mod-lib___target_cpu__relocator_asm.o + +mod-relocator.o: mod-relocator.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(relocator_mod_CFLAGS) -DGRUB_FILE=\"mod-relocator.c\" -c -o $@ $< + +mod-relocator.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'relocator' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-relocator.lst: pre-relocator.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 relocator/' > $@ +else +def-relocator.lst: pre-relocator.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 relocator/' > $@ +endif + +und-relocator.lst: pre-relocator.o + echo 'relocator' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +relocator_mod-lib___target_cpu__relocator.o: lib/$(target_cpu)/relocator.c $(lib/$(target_cpu)/relocator.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/$(target_cpu) -I$(srcdir)/lib/$(target_cpu) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(relocator_mod_CFLAGS) -DGRUB_FILE=\"lib/$(target_cpu)/relocator.c\" -MD -c -o $@ $< +-include relocator_mod-lib___target_cpu__relocator.d + +clean-module-relocator_mod-lib___target_cpu__relocator-extra.1: + rm -f cmd-relocator_mod-lib___target_cpu__relocator.lst fs-relocator_mod-lib___target_cpu__relocator.lst partmap-relocator_mod-lib___target_cpu__relocator.lst handler-relocator_mod-lib___target_cpu__relocator.lst parttool-relocator_mod-lib___target_cpu__relocator.lst video-relocator_mod-lib___target_cpu__relocator.lst terminal-relocator_mod-lib___target_cpu__relocator.lst + +CLEAN_MODULE_TARGETS += clean-module-relocator_mod-lib___target_cpu__relocator-extra.1 + +COMMANDFILES += cmd-relocator_mod-lib___target_cpu__relocator.lst +FSFILES += fs-relocator_mod-lib___target_cpu__relocator.lst +PARTTOOLFILES += parttool-relocator_mod-lib___target_cpu__relocator.lst +PARTMAPFILES += partmap-relocator_mod-lib___target_cpu__relocator.lst +HANDLERFILES += handler-relocator_mod-lib___target_cpu__relocator.lst +TERMINALFILES += terminal-relocator_mod-lib___target_cpu__relocator.lst +VIDEOFILES += video-relocator_mod-lib___target_cpu__relocator.lst + +cmd-relocator_mod-lib___target_cpu__relocator.lst: lib/$(target_cpu)/relocator.c $(lib/$(target_cpu)/relocator.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/$(target_cpu) -I$(srcdir)/lib/$(target_cpu) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(relocator_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh relocator > $@ || (rm -f $@; exit 1) + +fs-relocator_mod-lib___target_cpu__relocator.lst: lib/$(target_cpu)/relocator.c $(lib/$(target_cpu)/relocator.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/$(target_cpu) -I$(srcdir)/lib/$(target_cpu) $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(relocator_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh relocator > $@ || (rm -f $@; exit 1) + +parttool-relocator_mod-lib___target_cpu__relocator.lst: lib/$(target_cpu)/relocator.c $(lib/$(target_cpu)/relocator.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/$(target_cpu) -I$(srcdir)/lib/$(target_cpu) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(relocator_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh relocator > $@ || (rm -f $@; exit 1) + +partmap-relocator_mod-lib___target_cpu__relocator.lst: lib/$(target_cpu)/relocator.c $(lib/$(target_cpu)/relocator.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/$(target_cpu) -I$(srcdir)/lib/$(target_cpu) $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(relocator_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh relocator > $@ || (rm -f $@; exit 1) + +handler-relocator_mod-lib___target_cpu__relocator.lst: lib/$(target_cpu)/relocator.c $(lib/$(target_cpu)/relocator.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/$(target_cpu) -I$(srcdir)/lib/$(target_cpu) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(relocator_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh relocator > $@ || (rm -f $@; exit 1) + +terminal-relocator_mod-lib___target_cpu__relocator.lst: lib/$(target_cpu)/relocator.c $(lib/$(target_cpu)/relocator.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/$(target_cpu) -I$(srcdir)/lib/$(target_cpu) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(relocator_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh relocator > $@ || (rm -f $@; exit 1) + +video-relocator_mod-lib___target_cpu__relocator.lst: lib/$(target_cpu)/relocator.c $(lib/$(target_cpu)/relocator.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/$(target_cpu) -I$(srcdir)/lib/$(target_cpu) $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(relocator_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh relocator > $@ || (rm -f $@; exit 1) + +relocator_mod-lib___target_cpu__relocator_asm.o: lib/$(target_cpu)/relocator_asm.S $(lib/$(target_cpu)/relocator_asm.S_DEPENDENCIES) + $(TARGET_CC) -Ilib/$(target_cpu) -I$(srcdir)/lib/$(target_cpu) $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(relocator_mod_ASFLAGS) -DGRUB_FILE=\"lib/$(target_cpu)/relocator_asm.S\" -MD -c -o $@ $< +-include relocator_mod-lib___target_cpu__relocator_asm.d + +clean-module-relocator_mod-lib___target_cpu__relocator_asm-extra.1: + rm -f cmd-relocator_mod-lib___target_cpu__relocator_asm.lst fs-relocator_mod-lib___target_cpu__relocator_asm.lst partmap-relocator_mod-lib___target_cpu__relocator_asm.lst handler-relocator_mod-lib___target_cpu__relocator_asm.lst parttool-relocator_mod-lib___target_cpu__relocator_asm.lst video-relocator_mod-lib___target_cpu__relocator_asm.lst terminal-relocator_mod-lib___target_cpu__relocator_asm.lst + +CLEAN_MODULE_TARGETS += clean-module-relocator_mod-lib___target_cpu__relocator_asm-extra.1 + +COMMANDFILES += cmd-relocator_mod-lib___target_cpu__relocator_asm.lst +FSFILES += fs-relocator_mod-lib___target_cpu__relocator_asm.lst +PARTTOOLFILES += parttool-relocator_mod-lib___target_cpu__relocator_asm.lst +PARTMAPFILES += partmap-relocator_mod-lib___target_cpu__relocator_asm.lst +HANDLERFILES += handler-relocator_mod-lib___target_cpu__relocator_asm.lst +TERMINALFILES += terminal-relocator_mod-lib___target_cpu__relocator_asm.lst +VIDEOFILES += video-relocator_mod-lib___target_cpu__relocator_asm.lst + +cmd-relocator_mod-lib___target_cpu__relocator_asm.lst: lib/$(target_cpu)/relocator_asm.S $(lib/$(target_cpu)/relocator_asm.S_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/$(target_cpu) -I$(srcdir)/lib/$(target_cpu) $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(relocator_mod_ASFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh relocator > $@ || (rm -f $@; exit 1) + +fs-relocator_mod-lib___target_cpu__relocator_asm.lst: lib/$(target_cpu)/relocator_asm.S $(lib/$(target_cpu)/relocator_asm.S_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/$(target_cpu) -I$(srcdir)/lib/$(target_cpu) $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(relocator_mod_ASFLAGS) -E $< | sh $(srcdir)/genfslist.sh relocator > $@ || (rm -f $@; exit 1) + +parttool-relocator_mod-lib___target_cpu__relocator_asm.lst: lib/$(target_cpu)/relocator_asm.S $(lib/$(target_cpu)/relocator_asm.S_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/$(target_cpu) -I$(srcdir)/lib/$(target_cpu) $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(relocator_mod_ASFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh relocator > $@ || (rm -f $@; exit 1) + +partmap-relocator_mod-lib___target_cpu__relocator_asm.lst: lib/$(target_cpu)/relocator_asm.S $(lib/$(target_cpu)/relocator_asm.S_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/$(target_cpu) -I$(srcdir)/lib/$(target_cpu) $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(relocator_mod_ASFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh relocator > $@ || (rm -f $@; exit 1) + +handler-relocator_mod-lib___target_cpu__relocator_asm.lst: lib/$(target_cpu)/relocator_asm.S $(lib/$(target_cpu)/relocator_asm.S_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/$(target_cpu) -I$(srcdir)/lib/$(target_cpu) $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(relocator_mod_ASFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh relocator > $@ || (rm -f $@; exit 1) + +terminal-relocator_mod-lib___target_cpu__relocator_asm.lst: lib/$(target_cpu)/relocator_asm.S $(lib/$(target_cpu)/relocator_asm.S_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/$(target_cpu) -I$(srcdir)/lib/$(target_cpu) $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(relocator_mod_ASFLAGS) -E $< | sh $(srcdir)/genterminallist.sh relocator > $@ || (rm -f $@; exit 1) + +video-relocator_mod-lib___target_cpu__relocator_asm.lst: lib/$(target_cpu)/relocator_asm.S $(lib/$(target_cpu)/relocator_asm.S_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/$(target_cpu) -I$(srcdir)/lib/$(target_cpu) $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(relocator_mod_ASFLAGS) -E $< | sh $(srcdir)/genvideolist.sh relocator > $@ || (rm -f $@; exit 1) + +relocator_mod_CFLAGS = $(COMMON_CFLAGS) +relocator_mod_ASFLAGS = $(COMMON_ASFLAGS) +relocator_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += multiboot2.mod +multiboot2_mod_SOURCES = loader/multiboot.c \ + loader/multiboot_mbi2.c + +clean-module-multiboot2.mod.1: + rm -f multiboot2.mod mod-multiboot2.o mod-multiboot2.c pre-multiboot2.o multiboot2_mod-loader_multiboot.o multiboot2_mod-loader_multiboot_mbi2.o und-multiboot2.lst + +CLEAN_MODULE_TARGETS += clean-module-multiboot2.mod.1 + +clean-module-multiboot2.mod-symbol.1: + rm -f def-multiboot2.lst + +CLEAN_MODULE_TARGETS += clean-module-multiboot2.mod-symbol.1 +DEFSYMFILES += def-multiboot2.lst +mostlyclean-module-multiboot2.mod.1: + rm -f multiboot2_mod-loader_multiboot.d multiboot2_mod-loader_multiboot_mbi2.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-multiboot2.mod.1 +UNDSYMFILES += und-multiboot2.lst + +ifeq ($(TARGET_NO_MODULES), yes) +multiboot2.mod: pre-multiboot2.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(multiboot2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-multiboot2.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +multiboot2.mod: pre-multiboot2.o mod-multiboot2.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(multiboot2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-multiboot2.o mod-multiboot2.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +multiboot2.mod: pre-multiboot2.o mod-multiboot2.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(multiboot2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-multiboot2.o mod-multiboot2.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-multiboot2.o: $(multiboot2_mod_DEPENDENCIES) multiboot2_mod-loader_multiboot.o multiboot2_mod-loader_multiboot_mbi2.o + -rm -f $@ + $(TARGET_CC) $(multiboot2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ multiboot2_mod-loader_multiboot.o multiboot2_mod-loader_multiboot_mbi2.o + +mod-multiboot2.o: mod-multiboot2.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -DGRUB_FILE=\"mod-multiboot2.c\" -c -o $@ $< + +mod-multiboot2.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'multiboot2' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-multiboot2.lst: pre-multiboot2.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 multiboot2/' > $@ +else +def-multiboot2.lst: pre-multiboot2.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 multiboot2/' > $@ +endif + +und-multiboot2.lst: pre-multiboot2.o + echo 'multiboot2' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +multiboot2_mod-loader_multiboot.o: loader/multiboot.c $(loader/multiboot.c_DEPENDENCIES) + $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -DGRUB_FILE=\"loader/multiboot.c\" -MD -c -o $@ $< +-include multiboot2_mod-loader_multiboot.d + +clean-module-multiboot2_mod-loader_multiboot-extra.1: + rm -f cmd-multiboot2_mod-loader_multiboot.lst fs-multiboot2_mod-loader_multiboot.lst partmap-multiboot2_mod-loader_multiboot.lst handler-multiboot2_mod-loader_multiboot.lst parttool-multiboot2_mod-loader_multiboot.lst video-multiboot2_mod-loader_multiboot.lst terminal-multiboot2_mod-loader_multiboot.lst + +CLEAN_MODULE_TARGETS += clean-module-multiboot2_mod-loader_multiboot-extra.1 + +COMMANDFILES += cmd-multiboot2_mod-loader_multiboot.lst +FSFILES += fs-multiboot2_mod-loader_multiboot.lst +PARTTOOLFILES += parttool-multiboot2_mod-loader_multiboot.lst +PARTMAPFILES += partmap-multiboot2_mod-loader_multiboot.lst +HANDLERFILES += handler-multiboot2_mod-loader_multiboot.lst +TERMINALFILES += terminal-multiboot2_mod-loader_multiboot.lst +VIDEOFILES += video-multiboot2_mod-loader_multiboot.lst + +cmd-multiboot2_mod-loader_multiboot.lst: loader/multiboot.c $(loader/multiboot.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +fs-multiboot2_mod-loader_multiboot.lst: loader/multiboot.c $(loader/multiboot.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +parttool-multiboot2_mod-loader_multiboot.lst: loader/multiboot.c $(loader/multiboot.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +partmap-multiboot2_mod-loader_multiboot.lst: loader/multiboot.c $(loader/multiboot.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +handler-multiboot2_mod-loader_multiboot.lst: loader/multiboot.c $(loader/multiboot.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +terminal-multiboot2_mod-loader_multiboot.lst: loader/multiboot.c $(loader/multiboot.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +video-multiboot2_mod-loader_multiboot.lst: loader/multiboot.c $(loader/multiboot.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +multiboot2_mod-loader_multiboot_mbi2.o: loader/multiboot_mbi2.c $(loader/multiboot_mbi2.c_DEPENDENCIES) + $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -DGRUB_FILE=\"loader/multiboot_mbi2.c\" -MD -c -o $@ $< +-include multiboot2_mod-loader_multiboot_mbi2.d + +clean-module-multiboot2_mod-loader_multiboot_mbi2-extra.1: + rm -f cmd-multiboot2_mod-loader_multiboot_mbi2.lst fs-multiboot2_mod-loader_multiboot_mbi2.lst partmap-multiboot2_mod-loader_multiboot_mbi2.lst handler-multiboot2_mod-loader_multiboot_mbi2.lst parttool-multiboot2_mod-loader_multiboot_mbi2.lst video-multiboot2_mod-loader_multiboot_mbi2.lst terminal-multiboot2_mod-loader_multiboot_mbi2.lst + +CLEAN_MODULE_TARGETS += clean-module-multiboot2_mod-loader_multiboot_mbi2-extra.1 + +COMMANDFILES += cmd-multiboot2_mod-loader_multiboot_mbi2.lst +FSFILES += fs-multiboot2_mod-loader_multiboot_mbi2.lst +PARTTOOLFILES += parttool-multiboot2_mod-loader_multiboot_mbi2.lst +PARTMAPFILES += partmap-multiboot2_mod-loader_multiboot_mbi2.lst +HANDLERFILES += handler-multiboot2_mod-loader_multiboot_mbi2.lst +TERMINALFILES += terminal-multiboot2_mod-loader_multiboot_mbi2.lst +VIDEOFILES += video-multiboot2_mod-loader_multiboot_mbi2.lst + +cmd-multiboot2_mod-loader_multiboot_mbi2.lst: loader/multiboot_mbi2.c $(loader/multiboot_mbi2.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +fs-multiboot2_mod-loader_multiboot_mbi2.lst: loader/multiboot_mbi2.c $(loader/multiboot_mbi2.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +parttool-multiboot2_mod-loader_multiboot_mbi2.lst: loader/multiboot_mbi2.c $(loader/multiboot_mbi2.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +partmap-multiboot2_mod-loader_multiboot_mbi2.lst: loader/multiboot_mbi2.c $(loader/multiboot_mbi2.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +handler-multiboot2_mod-loader_multiboot_mbi2.lst: loader/multiboot_mbi2.c $(loader/multiboot_mbi2.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +terminal-multiboot2_mod-loader_multiboot_mbi2.lst: loader/multiboot_mbi2.c $(loader/multiboot_mbi2.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +video-multiboot2_mod-loader_multiboot_mbi2.lst: loader/multiboot_mbi2.c $(loader/multiboot_mbi2.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(multiboot2_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh multiboot2 > $@ || (rm -f $@; exit 1) + +multiboot2_mod_CFLAGS = $(COMMON_CFLAGS) -DGRUB_USE_MULTIBOOT2 +multiboot2_mod_LDFLAGS = $(COMMON_LDFLAGS) +multiboot2_mod_ASFLAGS = $(COMMON_ASFLAGS) + +include $(srcdir)/conf/common.mk --- grub2-1.98+20100804.orig/conf/mips-yeeloong.mk +++ grub2-1.98+20100804/conf/mips-yeeloong.mk @@ -0,0 +1,1878 @@ +# -*- makefile -*- +# Generated by genmk.rb, please don't edit! +LINK_BASE = 0x80200000 +target_machine=yeeloong +COMMON_CFLAGS += -march=mips3 +COMMON_ASFLAGS += -march=mips3 + +kernel_img_HEADERS += pci.h bitmap.h video.h gfxterm.h font.h \ + bitmap_scale.h bufio.h cs5536.h machine/pci.h + +include $(srcdir)/conf/mips.mk + +pkglib_PROGRAMS = kernel.img +kernel_img_SOURCES = kern/$(target_cpu)/startup.S \ + kern/main.c kern/device.c kern/$(target_cpu)/init.c \ + kern/$(target_cpu)/$(target_machine)/init.c \ + kern/disk.c kern/dl.c kern/err.c kern/file.c kern/fs.c \ + kern/misc.c kern/mm.c kern/term.c \ + kern/rescue_parser.c kern/rescue_reader.c \ + kern/list.c kern/command.c kern/corecmd.c \ + kern/parser.c kern/partition.c kern/env.c kern/$(target_cpu)/dl.c \ + kern/generic/millisleep.c kern/generic/rtc_get_time_ms.c kern/time.c \ + kern/$(target_cpu)/cache.S \ + \ + term/at_keyboard.c \ + font/font_cmd.c font/font.c io/bufio.c \ + video/video.c video/fb/video_fb.c video/fb/fbblit.c \ + video/fb/fbfill.c video/fb/fbutil.c video/bitmap.c \ + video/bitmap_scale.c video/sm712.c bus/pci.c bus/bonito.c \ + term/gfxterm.c commands/extcmd.c lib/arg.c \ + bus/cs5536.c term/serial.c term/terminfo.c term/tparm.c \ + symlist.c +MOSTLYCLEANFILES += kernel_img-kern___target_cpu__startup.d kernel_img-kern_main.d kernel_img-kern_device.d kernel_img-kern___target_cpu__init.d kernel_img-kern___target_cpu____target_machine__init.d kernel_img-kern_disk.d kernel_img-kern_dl.d kernel_img-kern_err.d kernel_img-kern_file.d kernel_img-kern_fs.d kernel_img-kern_misc.d kernel_img-kern_mm.d kernel_img-kern_term.d kernel_img-kern_rescue_parser.d kernel_img-kern_rescue_reader.d kernel_img-kern_list.d kernel_img-kern_command.d kernel_img-kern_corecmd.d kernel_img-kern_parser.d kernel_img-kern_partition.d kernel_img-kern_env.d kernel_img-kern___target_cpu__dl.d kernel_img-kern_generic_millisleep.d kernel_img-kern_generic_rtc_get_time_ms.d kernel_img-kern_time.d kernel_img-kern___target_cpu__cache.d kernel_img-term_at_keyboard.d kernel_img-font_font_cmd.d kernel_img-font_font.d kernel_img-io_bufio.d kernel_img-video_video.d kernel_img-video_fb_video_fb.d kernel_img-video_fb_fbblit.d kernel_img-video_fb_fbfill.d kernel_img-video_fb_fbutil.d kernel_img-video_bitmap.d kernel_img-video_bitmap_scale.d kernel_img-video_sm712.d kernel_img-bus_pci.d kernel_img-bus_bonito.d kernel_img-term_gfxterm.d kernel_img-commands_extcmd.d kernel_img-lib_arg.d kernel_img-bus_cs5536.d kernel_img-term_serial.d kernel_img-term_terminfo.d kernel_img-term_tparm.d kernel_img-symlist.d + +kernel_img-kern___target_cpu__startup.o: kern/$(target_cpu)/startup.S $(kern/$(target_cpu)/startup.S_DEPENDENCIES) + $(TARGET_CC) -Ikern/$(target_cpu) -I$(srcdir)/kern/$(target_cpu) $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(kernel_img_ASFLAGS) -DGRUB_FILE=\"kern/$(target_cpu)/startup.S\" -MD -c -o $@ $< + +-include kernel_img-kern___target_cpu__startup.d + +kernel_img_OBJECTS += kernel_img-kern___target_cpu__startup.o +kernel_img-kern_main.o: kern/main.c $(kern/main.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/main.c\" -MD -c -o $@ $< + +-include kernel_img-kern_main.d + +kernel_img_OBJECTS += kernel_img-kern_main.o +kernel_img-kern_device.o: kern/device.c $(kern/device.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/device.c\" -MD -c -o $@ $< + +-include kernel_img-kern_device.d + +kernel_img_OBJECTS += kernel_img-kern_device.o +kernel_img-kern___target_cpu__init.o: kern/$(target_cpu)/init.c $(kern/$(target_cpu)/init.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/$(target_cpu) -I$(srcdir)/kern/$(target_cpu) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/$(target_cpu)/init.c\" -MD -c -o $@ $< + +-include kernel_img-kern___target_cpu__init.d + +kernel_img_OBJECTS += kernel_img-kern___target_cpu__init.o +kernel_img-kern___target_cpu____target_machine__init.o: kern/$(target_cpu)/$(target_machine)/init.c $(kern/$(target_cpu)/$(target_machine)/init.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/$(target_cpu)/$(target_machine) -I$(srcdir)/kern/$(target_cpu)/$(target_machine) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/$(target_cpu)/$(target_machine)/init.c\" -MD -c -o $@ $< + +-include kernel_img-kern___target_cpu____target_machine__init.d + +kernel_img_OBJECTS += kernel_img-kern___target_cpu____target_machine__init.o +kernel_img-kern_disk.o: kern/disk.c $(kern/disk.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/disk.c\" -MD -c -o $@ $< + +-include kernel_img-kern_disk.d + +kernel_img_OBJECTS += kernel_img-kern_disk.o +kernel_img-kern_dl.o: kern/dl.c $(kern/dl.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/dl.c\" -MD -c -o $@ $< + +-include kernel_img-kern_dl.d + +kernel_img_OBJECTS += kernel_img-kern_dl.o +kernel_img-kern_err.o: kern/err.c $(kern/err.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/err.c\" -MD -c -o $@ $< + +-include kernel_img-kern_err.d + +kernel_img_OBJECTS += kernel_img-kern_err.o +kernel_img-kern_file.o: kern/file.c $(kern/file.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/file.c\" -MD -c -o $@ $< + +-include kernel_img-kern_file.d + +kernel_img_OBJECTS += kernel_img-kern_file.o +kernel_img-kern_fs.o: kern/fs.c $(kern/fs.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/fs.c\" -MD -c -o $@ $< + +-include kernel_img-kern_fs.d + +kernel_img_OBJECTS += kernel_img-kern_fs.o +kernel_img-kern_misc.o: kern/misc.c $(kern/misc.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/misc.c\" -MD -c -o $@ $< + +-include kernel_img-kern_misc.d + +kernel_img_OBJECTS += kernel_img-kern_misc.o +kernel_img-kern_mm.o: kern/mm.c $(kern/mm.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/mm.c\" -MD -c -o $@ $< + +-include kernel_img-kern_mm.d + +kernel_img_OBJECTS += kernel_img-kern_mm.o +kernel_img-kern_term.o: kern/term.c $(kern/term.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/term.c\" -MD -c -o $@ $< + +-include kernel_img-kern_term.d + +kernel_img_OBJECTS += kernel_img-kern_term.o +kernel_img-kern_rescue_parser.o: kern/rescue_parser.c $(kern/rescue_parser.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/rescue_parser.c\" -MD -c -o $@ $< + +-include kernel_img-kern_rescue_parser.d + +kernel_img_OBJECTS += kernel_img-kern_rescue_parser.o +kernel_img-kern_rescue_reader.o: kern/rescue_reader.c $(kern/rescue_reader.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/rescue_reader.c\" -MD -c -o $@ $< + +-include kernel_img-kern_rescue_reader.d + +kernel_img_OBJECTS += kernel_img-kern_rescue_reader.o +kernel_img-kern_list.o: kern/list.c $(kern/list.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/list.c\" -MD -c -o $@ $< + +-include kernel_img-kern_list.d + +kernel_img_OBJECTS += kernel_img-kern_list.o +kernel_img-kern_command.o: kern/command.c $(kern/command.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/command.c\" -MD -c -o $@ $< + +-include kernel_img-kern_command.d + +kernel_img_OBJECTS += kernel_img-kern_command.o +kernel_img-kern_corecmd.o: kern/corecmd.c $(kern/corecmd.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/corecmd.c\" -MD -c -o $@ $< + +-include kernel_img-kern_corecmd.d + +kernel_img_OBJECTS += kernel_img-kern_corecmd.o +kernel_img-kern_parser.o: kern/parser.c $(kern/parser.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/parser.c\" -MD -c -o $@ $< + +-include kernel_img-kern_parser.d + +kernel_img_OBJECTS += kernel_img-kern_parser.o +kernel_img-kern_partition.o: kern/partition.c $(kern/partition.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/partition.c\" -MD -c -o $@ $< + +-include kernel_img-kern_partition.d + +kernel_img_OBJECTS += kernel_img-kern_partition.o +kernel_img-kern_env.o: kern/env.c $(kern/env.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/env.c\" -MD -c -o $@ $< + +-include kernel_img-kern_env.d + +kernel_img_OBJECTS += kernel_img-kern_env.o +kernel_img-kern___target_cpu__dl.o: kern/$(target_cpu)/dl.c $(kern/$(target_cpu)/dl.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/$(target_cpu) -I$(srcdir)/kern/$(target_cpu) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/$(target_cpu)/dl.c\" -MD -c -o $@ $< + +-include kernel_img-kern___target_cpu__dl.d + +kernel_img_OBJECTS += kernel_img-kern___target_cpu__dl.o +kernel_img-kern_generic_millisleep.o: kern/generic/millisleep.c $(kern/generic/millisleep.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/generic -I$(srcdir)/kern/generic $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/generic/millisleep.c\" -MD -c -o $@ $< + +-include kernel_img-kern_generic_millisleep.d + +kernel_img_OBJECTS += kernel_img-kern_generic_millisleep.o +kernel_img-kern_generic_rtc_get_time_ms.o: kern/generic/rtc_get_time_ms.c $(kern/generic/rtc_get_time_ms.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/generic -I$(srcdir)/kern/generic $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/generic/rtc_get_time_ms.c\" -MD -c -o $@ $< + +-include kernel_img-kern_generic_rtc_get_time_ms.d + +kernel_img_OBJECTS += kernel_img-kern_generic_rtc_get_time_ms.o +kernel_img-kern_time.o: kern/time.c $(kern/time.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/time.c\" -MD -c -o $@ $< + +-include kernel_img-kern_time.d + +kernel_img_OBJECTS += kernel_img-kern_time.o +kernel_img-kern___target_cpu__cache.o: kern/$(target_cpu)/cache.S $(kern/$(target_cpu)/cache.S_DEPENDENCIES) + $(TARGET_CC) -Ikern/$(target_cpu) -I$(srcdir)/kern/$(target_cpu) $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(kernel_img_ASFLAGS) -DGRUB_FILE=\"kern/$(target_cpu)/cache.S\" -MD -c -o $@ $< + +-include kernel_img-kern___target_cpu__cache.d + +kernel_img_OBJECTS += kernel_img-kern___target_cpu__cache.o +kernel_img-term_at_keyboard.o: term/at_keyboard.c $(term/at_keyboard.c_DEPENDENCIES) + $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"term/at_keyboard.c\" -MD -c -o $@ $< + +-include kernel_img-term_at_keyboard.d + +kernel_img_OBJECTS += kernel_img-term_at_keyboard.o +kernel_img-font_font_cmd.o: font/font_cmd.c $(font/font_cmd.c_DEPENDENCIES) + $(TARGET_CC) -Ifont -I$(srcdir)/font $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"font/font_cmd.c\" -MD -c -o $@ $< + +-include kernel_img-font_font_cmd.d + +kernel_img_OBJECTS += kernel_img-font_font_cmd.o +kernel_img-font_font.o: font/font.c $(font/font.c_DEPENDENCIES) + $(TARGET_CC) -Ifont -I$(srcdir)/font $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"font/font.c\" -MD -c -o $@ $< + +-include kernel_img-font_font.d + +kernel_img_OBJECTS += kernel_img-font_font.o +kernel_img-io_bufio.o: io/bufio.c $(io/bufio.c_DEPENDENCIES) + $(TARGET_CC) -Iio -I$(srcdir)/io $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"io/bufio.c\" -MD -c -o $@ $< + +-include kernel_img-io_bufio.d + +kernel_img_OBJECTS += kernel_img-io_bufio.o +kernel_img-video_video.o: video/video.c $(video/video.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"video/video.c\" -MD -c -o $@ $< + +-include kernel_img-video_video.d + +kernel_img_OBJECTS += kernel_img-video_video.o +kernel_img-video_fb_video_fb.o: video/fb/video_fb.c $(video/fb/video_fb.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"video/fb/video_fb.c\" -MD -c -o $@ $< + +-include kernel_img-video_fb_video_fb.d + +kernel_img_OBJECTS += kernel_img-video_fb_video_fb.o +kernel_img-video_fb_fbblit.o: video/fb/fbblit.c $(video/fb/fbblit.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"video/fb/fbblit.c\" -MD -c -o $@ $< + +-include kernel_img-video_fb_fbblit.d + +kernel_img_OBJECTS += kernel_img-video_fb_fbblit.o +kernel_img-video_fb_fbfill.o: video/fb/fbfill.c $(video/fb/fbfill.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"video/fb/fbfill.c\" -MD -c -o $@ $< + +-include kernel_img-video_fb_fbfill.d + +kernel_img_OBJECTS += kernel_img-video_fb_fbfill.o +kernel_img-video_fb_fbutil.o: video/fb/fbutil.c $(video/fb/fbutil.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"video/fb/fbutil.c\" -MD -c -o $@ $< + +-include kernel_img-video_fb_fbutil.d + +kernel_img_OBJECTS += kernel_img-video_fb_fbutil.o +kernel_img-video_bitmap.o: video/bitmap.c $(video/bitmap.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"video/bitmap.c\" -MD -c -o $@ $< + +-include kernel_img-video_bitmap.d + +kernel_img_OBJECTS += kernel_img-video_bitmap.o +kernel_img-video_bitmap_scale.o: video/bitmap_scale.c $(video/bitmap_scale.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"video/bitmap_scale.c\" -MD -c -o $@ $< + +-include kernel_img-video_bitmap_scale.d + +kernel_img_OBJECTS += kernel_img-video_bitmap_scale.o +kernel_img-video_sm712.o: video/sm712.c $(video/sm712.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"video/sm712.c\" -MD -c -o $@ $< + +-include kernel_img-video_sm712.d + +kernel_img_OBJECTS += kernel_img-video_sm712.o +kernel_img-bus_pci.o: bus/pci.c $(bus/pci.c_DEPENDENCIES) + $(TARGET_CC) -Ibus -I$(srcdir)/bus $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"bus/pci.c\" -MD -c -o $@ $< + +-include kernel_img-bus_pci.d + +kernel_img_OBJECTS += kernel_img-bus_pci.o +kernel_img-bus_bonito.o: bus/bonito.c $(bus/bonito.c_DEPENDENCIES) + $(TARGET_CC) -Ibus -I$(srcdir)/bus $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"bus/bonito.c\" -MD -c -o $@ $< + +-include kernel_img-bus_bonito.d + +kernel_img_OBJECTS += kernel_img-bus_bonito.o +kernel_img-term_gfxterm.o: term/gfxterm.c $(term/gfxterm.c_DEPENDENCIES) + $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"term/gfxterm.c\" -MD -c -o $@ $< + +-include kernel_img-term_gfxterm.d + +kernel_img_OBJECTS += kernel_img-term_gfxterm.o +kernel_img-commands_extcmd.o: commands/extcmd.c $(commands/extcmd.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"commands/extcmd.c\" -MD -c -o $@ $< + +-include kernel_img-commands_extcmd.d + +kernel_img_OBJECTS += kernel_img-commands_extcmd.o +kernel_img-lib_arg.o: lib/arg.c $(lib/arg.c_DEPENDENCIES) + $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"lib/arg.c\" -MD -c -o $@ $< + +-include kernel_img-lib_arg.d + +kernel_img_OBJECTS += kernel_img-lib_arg.o +kernel_img-bus_cs5536.o: bus/cs5536.c $(bus/cs5536.c_DEPENDENCIES) + $(TARGET_CC) -Ibus -I$(srcdir)/bus $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"bus/cs5536.c\" -MD -c -o $@ $< + +-include kernel_img-bus_cs5536.d + +kernel_img_OBJECTS += kernel_img-bus_cs5536.o +kernel_img-term_serial.o: term/serial.c $(term/serial.c_DEPENDENCIES) + $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"term/serial.c\" -MD -c -o $@ $< + +-include kernel_img-term_serial.d + +kernel_img_OBJECTS += kernel_img-term_serial.o +kernel_img-term_terminfo.o: term/terminfo.c $(term/terminfo.c_DEPENDENCIES) + $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"term/terminfo.c\" -MD -c -o $@ $< + +-include kernel_img-term_terminfo.d + +kernel_img_OBJECTS += kernel_img-term_terminfo.o +kernel_img-term_tparm.o: term/tparm.c $(term/tparm.c_DEPENDENCIES) + $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"term/tparm.c\" -MD -c -o $@ $< + +-include kernel_img-term_tparm.d + +kernel_img_OBJECTS += kernel_img-term_tparm.o +kernel_img-symlist.o: symlist.c $(symlist.c_DEPENDENCIES) + $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"symlist.c\" -MD -c -o $@ $< + +-include kernel_img-symlist.d + +kernel_img_OBJECTS += kernel_img-symlist.o +kernel_img_CFLAGS = $(COMMON_CFLAGS) -DUSE_ASCII_FAILBACK +kernel_img_ASFLAGS = $(COMMON_ASFLAGS) +kernel_img_LDFLAGS += $(COMMON_LDFLAGS) -Wl,-N,-S,-Ttext,$(LINK_BASE),-Bstatic +kernel_img_FORMAT = binary + +pkglib_IMAGES += fwstart.img +fwstart_img_SOURCES = boot/$(target_cpu)/$(target_machine)/fwstart.S + +clean-image-fwstart.img.1: + rm -f fwstart.img fwstart.exec fwstart_img-boot___target_cpu____target_machine__fwstart.o + +CLEAN_IMAGE_TARGETS += clean-image-fwstart.img.1 + +mostlyclean-image-fwstart.img.1: + rm -f fwstart_img-boot___target_cpu____target_machine__fwstart.d + +MOSTLYCLEAN_IMAGE_TARGETS += mostlyclean-image-fwstart.img.1 + +ifneq ($(TARGET_APPLE_CC),1) +fwstart.img: fwstart.exec + $(OBJCOPY) -O $(fwstart_img_FORMAT) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .reginfo -R .rel.dyn $< $@ +else +ifneq (fwstart.exec,kernel.exec) +fwstart.img: fwstart.exec ./grub-macho2img + ./grub-macho2img $< $@ +else +fwstart.img: fwstart.exec ./grub-macho2img + ./grub-macho2img --bss $< $@ +endif +endif + +fwstart.exec: fwstart_img-boot___target_cpu____target_machine__fwstart.o + $(TARGET_CC) -o $@ $^ $(TARGET_LDFLAGS) $(fwstart_img_LDFLAGS) + +fwstart_img-boot___target_cpu____target_machine__fwstart.o: boot/$(target_cpu)/$(target_machine)/fwstart.S $(boot/$(target_cpu)/$(target_machine)/fwstart.S_DEPENDENCIES) + $(TARGET_CC) -Iboot/$(target_cpu)/$(target_machine) -I$(srcdir)/boot/$(target_cpu)/$(target_machine) $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(fwstart_img_ASFLAGS) -DGRUB_FILE=\"boot/$(target_cpu)/$(target_machine)/fwstart.S\" -MD -c -o $@ $< +-include fwstart_img-boot___target_cpu____target_machine__fwstart.d + +fwstart_img_CFLAGS = $(COMMON_CFLAGS) +fwstart_img_ASFLAGS = $(COMMON_ASFLAGS) +fwstart_img_LDFLAGS = $(COMMON_LDFLAGS) -static-libgcc -lgcc \ + -Wl,-N,-S,-Ttext,0xbfc00000,-Bstatic +fwstart_img_FORMAT = binary + +# For ata.mod. +pkglib_MODULES += ata.mod +ata_mod_SOURCES = disk/ata.c + +clean-module-ata.mod.1: + rm -f ata.mod mod-ata.o mod-ata.c pre-ata.o ata_mod-disk_ata.o und-ata.lst + +CLEAN_MODULE_TARGETS += clean-module-ata.mod.1 + +clean-module-ata.mod-symbol.1: + rm -f def-ata.lst + +CLEAN_MODULE_TARGETS += clean-module-ata.mod-symbol.1 +DEFSYMFILES += def-ata.lst +mostlyclean-module-ata.mod.1: + rm -f ata_mod-disk_ata.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-ata.mod.1 +UNDSYMFILES += und-ata.lst + +ifeq ($(TARGET_NO_MODULES), yes) +ata.mod: pre-ata.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ata_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ata.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +ata.mod: pre-ata.o mod-ata.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ata_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ata.o mod-ata.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ata.mod: pre-ata.o mod-ata.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(ata_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-ata.o mod-ata.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-ata.o: $(ata_mod_DEPENDENCIES) ata_mod-disk_ata.o + -rm -f $@ + $(TARGET_CC) $(ata_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ ata_mod-disk_ata.o + +mod-ata.o: mod-ata.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_mod_CFLAGS) -DGRUB_FILE=\"mod-ata.c\" -c -o $@ $< + +mod-ata.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'ata' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-ata.lst: pre-ata.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 ata/' > $@ +else +def-ata.lst: pre-ata.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 ata/' > $@ +endif + +und-ata.lst: pre-ata.o + echo 'ata' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +ata_mod-disk_ata.o: disk/ata.c $(disk/ata.c_DEPENDENCIES) + $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_mod_CFLAGS) -DGRUB_FILE=\"disk/ata.c\" -MD -c -o $@ $< +-include ata_mod-disk_ata.d + +clean-module-ata_mod-disk_ata-extra.1: + rm -f cmd-ata_mod-disk_ata.lst fs-ata_mod-disk_ata.lst partmap-ata_mod-disk_ata.lst handler-ata_mod-disk_ata.lst parttool-ata_mod-disk_ata.lst video-ata_mod-disk_ata.lst terminal-ata_mod-disk_ata.lst + +CLEAN_MODULE_TARGETS += clean-module-ata_mod-disk_ata-extra.1 + +COMMANDFILES += cmd-ata_mod-disk_ata.lst +FSFILES += fs-ata_mod-disk_ata.lst +PARTTOOLFILES += parttool-ata_mod-disk_ata.lst +PARTMAPFILES += partmap-ata_mod-disk_ata.lst +HANDLERFILES += handler-ata_mod-disk_ata.lst +TERMINALFILES += terminal-ata_mod-disk_ata.lst +VIDEOFILES += video-ata_mod-disk_ata.lst + +cmd-ata_mod-disk_ata.lst: disk/ata.c $(disk/ata.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh ata > $@ || (rm -f $@; exit 1) + +fs-ata_mod-disk_ata.lst: disk/ata.c $(disk/ata.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ata_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh ata > $@ || (rm -f $@; exit 1) + +parttool-ata_mod-disk_ata.lst: disk/ata.c $(disk/ata.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh ata > $@ || (rm -f $@; exit 1) + +partmap-ata_mod-disk_ata.lst: disk/ata.c $(disk/ata.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ata_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh ata > $@ || (rm -f $@; exit 1) + +handler-ata_mod-disk_ata.lst: disk/ata.c $(disk/ata.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh ata > $@ || (rm -f $@; exit 1) + +terminal-ata_mod-disk_ata.lst: disk/ata.c $(disk/ata.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh ata > $@ || (rm -f $@; exit 1) + +video-ata_mod-disk_ata.lst: disk/ata.c $(disk/ata.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ata_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh ata > $@ || (rm -f $@; exit 1) + +ata_mod_CFLAGS = $(COMMON_CFLAGS) +ata_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For lspci.mod +pkglib_MODULES += lspci.mod +lspci_mod_SOURCES = commands/lspci.c + +clean-module-lspci.mod.1: + rm -f lspci.mod mod-lspci.o mod-lspci.c pre-lspci.o lspci_mod-commands_lspci.o und-lspci.lst + +CLEAN_MODULE_TARGETS += clean-module-lspci.mod.1 + +clean-module-lspci.mod-symbol.1: + rm -f def-lspci.lst + +CLEAN_MODULE_TARGETS += clean-module-lspci.mod-symbol.1 +DEFSYMFILES += def-lspci.lst +mostlyclean-module-lspci.mod.1: + rm -f lspci_mod-commands_lspci.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-lspci.mod.1 +UNDSYMFILES += und-lspci.lst + +ifeq ($(TARGET_NO_MODULES), yes) +lspci.mod: pre-lspci.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(lspci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-lspci.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +lspci.mod: pre-lspci.o mod-lspci.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(lspci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-lspci.o mod-lspci.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +lspci.mod: pre-lspci.o mod-lspci.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(lspci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-lspci.o mod-lspci.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-lspci.o: $(lspci_mod_DEPENDENCIES) lspci_mod-commands_lspci.o + -rm -f $@ + $(TARGET_CC) $(lspci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ lspci_mod-commands_lspci.o + +mod-lspci.o: mod-lspci.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lspci_mod_CFLAGS) -DGRUB_FILE=\"mod-lspci.c\" -c -o $@ $< + +mod-lspci.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'lspci' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-lspci.lst: pre-lspci.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 lspci/' > $@ +else +def-lspci.lst: pre-lspci.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 lspci/' > $@ +endif + +und-lspci.lst: pre-lspci.o + echo 'lspci' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +lspci_mod-commands_lspci.o: commands/lspci.c $(commands/lspci.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lspci_mod_CFLAGS) -DGRUB_FILE=\"commands/lspci.c\" -MD -c -o $@ $< +-include lspci_mod-commands_lspci.d + +clean-module-lspci_mod-commands_lspci-extra.1: + rm -f cmd-lspci_mod-commands_lspci.lst fs-lspci_mod-commands_lspci.lst partmap-lspci_mod-commands_lspci.lst handler-lspci_mod-commands_lspci.lst parttool-lspci_mod-commands_lspci.lst video-lspci_mod-commands_lspci.lst terminal-lspci_mod-commands_lspci.lst + +CLEAN_MODULE_TARGETS += clean-module-lspci_mod-commands_lspci-extra.1 + +COMMANDFILES += cmd-lspci_mod-commands_lspci.lst +FSFILES += fs-lspci_mod-commands_lspci.lst +PARTTOOLFILES += parttool-lspci_mod-commands_lspci.lst +PARTMAPFILES += partmap-lspci_mod-commands_lspci.lst +HANDLERFILES += handler-lspci_mod-commands_lspci.lst +TERMINALFILES += terminal-lspci_mod-commands_lspci.lst +VIDEOFILES += video-lspci_mod-commands_lspci.lst + +cmd-lspci_mod-commands_lspci.lst: commands/lspci.c $(commands/lspci.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lspci_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh lspci > $@ || (rm -f $@; exit 1) + +fs-lspci_mod-commands_lspci.lst: commands/lspci.c $(commands/lspci.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(lspci_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh lspci > $@ || (rm -f $@; exit 1) + +parttool-lspci_mod-commands_lspci.lst: commands/lspci.c $(commands/lspci.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lspci_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh lspci > $@ || (rm -f $@; exit 1) + +partmap-lspci_mod-commands_lspci.lst: commands/lspci.c $(commands/lspci.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(lspci_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh lspci > $@ || (rm -f $@; exit 1) + +handler-lspci_mod-commands_lspci.lst: commands/lspci.c $(commands/lspci.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lspci_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh lspci > $@ || (rm -f $@; exit 1) + +terminal-lspci_mod-commands_lspci.lst: commands/lspci.c $(commands/lspci.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lspci_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh lspci > $@ || (rm -f $@; exit 1) + +video-lspci_mod-commands_lspci.lst: commands/lspci.c $(commands/lspci.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(lspci_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh lspci > $@ || (rm -f $@; exit 1) + +lspci_mod_CFLAGS = $(COMMON_CFLAGS) +lspci_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For ata_pthru.mod. +pkglib_MODULES += ata_pthru.mod +ata_pthru_mod_SOURCES = disk/ata_pthru.c + +clean-module-ata_pthru.mod.1: + rm -f ata_pthru.mod mod-ata_pthru.o mod-ata_pthru.c pre-ata_pthru.o ata_pthru_mod-disk_ata_pthru.o und-ata_pthru.lst + +CLEAN_MODULE_TARGETS += clean-module-ata_pthru.mod.1 + +clean-module-ata_pthru.mod-symbol.1: + rm -f def-ata_pthru.lst + +CLEAN_MODULE_TARGETS += clean-module-ata_pthru.mod-symbol.1 +DEFSYMFILES += def-ata_pthru.lst +mostlyclean-module-ata_pthru.mod.1: + rm -f ata_pthru_mod-disk_ata_pthru.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-ata_pthru.mod.1 +UNDSYMFILES += und-ata_pthru.lst + +ifeq ($(TARGET_NO_MODULES), yes) +ata_pthru.mod: pre-ata_pthru.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ata_pthru_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ata_pthru.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +ata_pthru.mod: pre-ata_pthru.o mod-ata_pthru.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ata_pthru_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ata_pthru.o mod-ata_pthru.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ata_pthru.mod: pre-ata_pthru.o mod-ata_pthru.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(ata_pthru_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-ata_pthru.o mod-ata_pthru.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-ata_pthru.o: $(ata_pthru_mod_DEPENDENCIES) ata_pthru_mod-disk_ata_pthru.o + -rm -f $@ + $(TARGET_CC) $(ata_pthru_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ ata_pthru_mod-disk_ata_pthru.o + +mod-ata_pthru.o: mod-ata_pthru.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_pthru_mod_CFLAGS) -DGRUB_FILE=\"mod-ata_pthru.c\" -c -o $@ $< + +mod-ata_pthru.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'ata_pthru' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-ata_pthru.lst: pre-ata_pthru.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 ata_pthru/' > $@ +else +def-ata_pthru.lst: pre-ata_pthru.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 ata_pthru/' > $@ +endif + +und-ata_pthru.lst: pre-ata_pthru.o + echo 'ata_pthru' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +ata_pthru_mod-disk_ata_pthru.o: disk/ata_pthru.c $(disk/ata_pthru.c_DEPENDENCIES) + $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_pthru_mod_CFLAGS) -DGRUB_FILE=\"disk/ata_pthru.c\" -MD -c -o $@ $< +-include ata_pthru_mod-disk_ata_pthru.d + +clean-module-ata_pthru_mod-disk_ata_pthru-extra.1: + rm -f cmd-ata_pthru_mod-disk_ata_pthru.lst fs-ata_pthru_mod-disk_ata_pthru.lst partmap-ata_pthru_mod-disk_ata_pthru.lst handler-ata_pthru_mod-disk_ata_pthru.lst parttool-ata_pthru_mod-disk_ata_pthru.lst video-ata_pthru_mod-disk_ata_pthru.lst terminal-ata_pthru_mod-disk_ata_pthru.lst + +CLEAN_MODULE_TARGETS += clean-module-ata_pthru_mod-disk_ata_pthru-extra.1 + +COMMANDFILES += cmd-ata_pthru_mod-disk_ata_pthru.lst +FSFILES += fs-ata_pthru_mod-disk_ata_pthru.lst +PARTTOOLFILES += parttool-ata_pthru_mod-disk_ata_pthru.lst +PARTMAPFILES += partmap-ata_pthru_mod-disk_ata_pthru.lst +HANDLERFILES += handler-ata_pthru_mod-disk_ata_pthru.lst +TERMINALFILES += terminal-ata_pthru_mod-disk_ata_pthru.lst +VIDEOFILES += video-ata_pthru_mod-disk_ata_pthru.lst + +cmd-ata_pthru_mod-disk_ata_pthru.lst: disk/ata_pthru.c $(disk/ata_pthru.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_pthru_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh ata_pthru > $@ || (rm -f $@; exit 1) + +fs-ata_pthru_mod-disk_ata_pthru.lst: disk/ata_pthru.c $(disk/ata_pthru.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ata_pthru_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh ata_pthru > $@ || (rm -f $@; exit 1) + +parttool-ata_pthru_mod-disk_ata_pthru.lst: disk/ata_pthru.c $(disk/ata_pthru.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_pthru_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh ata_pthru > $@ || (rm -f $@; exit 1) + +partmap-ata_pthru_mod-disk_ata_pthru.lst: disk/ata_pthru.c $(disk/ata_pthru.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ata_pthru_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh ata_pthru > $@ || (rm -f $@; exit 1) + +handler-ata_pthru_mod-disk_ata_pthru.lst: disk/ata_pthru.c $(disk/ata_pthru.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_pthru_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh ata_pthru > $@ || (rm -f $@; exit 1) + +terminal-ata_pthru_mod-disk_ata_pthru.lst: disk/ata_pthru.c $(disk/ata_pthru.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_pthru_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh ata_pthru > $@ || (rm -f $@; exit 1) + +video-ata_pthru_mod-disk_ata_pthru.lst: disk/ata_pthru.c $(disk/ata_pthru.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ata_pthru_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh ata_pthru > $@ || (rm -f $@; exit 1) + +ata_pthru_mod_CFLAGS = $(COMMON_CFLAGS) +ata_pthru_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For mmap.mod. +pkglib_MODULES += mmap.mod +mmap_mod_SOURCES = mmap/mmap.c mmap/mips/yeeloong/uppermem.c + +clean-module-mmap.mod.1: + rm -f mmap.mod mod-mmap.o mod-mmap.c pre-mmap.o mmap_mod-mmap_mmap.o mmap_mod-mmap_mips_yeeloong_uppermem.o und-mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap.mod.1 + +clean-module-mmap.mod-symbol.1: + rm -f def-mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap.mod-symbol.1 +DEFSYMFILES += def-mmap.lst +mostlyclean-module-mmap.mod.1: + rm -f mmap_mod-mmap_mmap.d mmap_mod-mmap_mips_yeeloong_uppermem.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-mmap.mod.1 +UNDSYMFILES += und-mmap.lst + +ifeq ($(TARGET_NO_MODULES), yes) +mmap.mod: pre-mmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-mmap.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +mmap.mod: pre-mmap.o mod-mmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-mmap.o mod-mmap.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +mmap.mod: pre-mmap.o mod-mmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-mmap.o mod-mmap.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-mmap.o: $(mmap_mod_DEPENDENCIES) mmap_mod-mmap_mmap.o mmap_mod-mmap_mips_yeeloong_uppermem.o + -rm -f $@ + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ mmap_mod-mmap_mmap.o mmap_mod-mmap_mips_yeeloong_uppermem.o + +mod-mmap.o: mod-mmap.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mod-mmap.c\" -c -o $@ $< + +mod-mmap.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'mmap' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-mmap.lst: pre-mmap.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 mmap/' > $@ +else +def-mmap.lst: pre-mmap.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 mmap/' > $@ +endif + +und-mmap.lst: pre-mmap.o + echo 'mmap' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +mmap_mod-mmap_mmap.o: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) + $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mmap/mmap.c\" -MD -c -o $@ $< +-include mmap_mod-mmap_mmap.d + +clean-module-mmap_mod-mmap_mmap-extra.1: + rm -f cmd-mmap_mod-mmap_mmap.lst fs-mmap_mod-mmap_mmap.lst partmap-mmap_mod-mmap_mmap.lst handler-mmap_mod-mmap_mmap.lst parttool-mmap_mod-mmap_mmap.lst video-mmap_mod-mmap_mmap.lst terminal-mmap_mod-mmap_mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap_mod-mmap_mmap-extra.1 + +COMMANDFILES += cmd-mmap_mod-mmap_mmap.lst +FSFILES += fs-mmap_mod-mmap_mmap.lst +PARTTOOLFILES += parttool-mmap_mod-mmap_mmap.lst +PARTMAPFILES += partmap-mmap_mod-mmap_mmap.lst +HANDLERFILES += handler-mmap_mod-mmap_mmap.lst +TERMINALFILES += terminal-mmap_mod-mmap_mmap.lst +VIDEOFILES += video-mmap_mod-mmap_mmap.lst + +cmd-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh mmap > $@ || (rm -f $@; exit 1) + +fs-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh mmap > $@ || (rm -f $@; exit 1) + +parttool-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh mmap > $@ || (rm -f $@; exit 1) + +partmap-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh mmap > $@ || (rm -f $@; exit 1) + +handler-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh mmap > $@ || (rm -f $@; exit 1) + +terminal-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh mmap > $@ || (rm -f $@; exit 1) + +video-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh mmap > $@ || (rm -f $@; exit 1) + +mmap_mod-mmap_mips_yeeloong_uppermem.o: mmap/mips/yeeloong/uppermem.c $(mmap/mips/yeeloong/uppermem.c_DEPENDENCIES) + $(TARGET_CC) -Immap/mips/yeeloong -I$(srcdir)/mmap/mips/yeeloong $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mmap/mips/yeeloong/uppermem.c\" -MD -c -o $@ $< +-include mmap_mod-mmap_mips_yeeloong_uppermem.d + +clean-module-mmap_mod-mmap_mips_yeeloong_uppermem-extra.1: + rm -f cmd-mmap_mod-mmap_mips_yeeloong_uppermem.lst fs-mmap_mod-mmap_mips_yeeloong_uppermem.lst partmap-mmap_mod-mmap_mips_yeeloong_uppermem.lst handler-mmap_mod-mmap_mips_yeeloong_uppermem.lst parttool-mmap_mod-mmap_mips_yeeloong_uppermem.lst video-mmap_mod-mmap_mips_yeeloong_uppermem.lst terminal-mmap_mod-mmap_mips_yeeloong_uppermem.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap_mod-mmap_mips_yeeloong_uppermem-extra.1 + +COMMANDFILES += cmd-mmap_mod-mmap_mips_yeeloong_uppermem.lst +FSFILES += fs-mmap_mod-mmap_mips_yeeloong_uppermem.lst +PARTTOOLFILES += parttool-mmap_mod-mmap_mips_yeeloong_uppermem.lst +PARTMAPFILES += partmap-mmap_mod-mmap_mips_yeeloong_uppermem.lst +HANDLERFILES += handler-mmap_mod-mmap_mips_yeeloong_uppermem.lst +TERMINALFILES += terminal-mmap_mod-mmap_mips_yeeloong_uppermem.lst +VIDEOFILES += video-mmap_mod-mmap_mips_yeeloong_uppermem.lst + +cmd-mmap_mod-mmap_mips_yeeloong_uppermem.lst: mmap/mips/yeeloong/uppermem.c $(mmap/mips/yeeloong/uppermem.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Immap/mips/yeeloong -I$(srcdir)/mmap/mips/yeeloong $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh mmap > $@ || (rm -f $@; exit 1) + +fs-mmap_mod-mmap_mips_yeeloong_uppermem.lst: mmap/mips/yeeloong/uppermem.c $(mmap/mips/yeeloong/uppermem.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Immap/mips/yeeloong -I$(srcdir)/mmap/mips/yeeloong $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh mmap > $@ || (rm -f $@; exit 1) + +parttool-mmap_mod-mmap_mips_yeeloong_uppermem.lst: mmap/mips/yeeloong/uppermem.c $(mmap/mips/yeeloong/uppermem.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Immap/mips/yeeloong -I$(srcdir)/mmap/mips/yeeloong $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh mmap > $@ || (rm -f $@; exit 1) + +partmap-mmap_mod-mmap_mips_yeeloong_uppermem.lst: mmap/mips/yeeloong/uppermem.c $(mmap/mips/yeeloong/uppermem.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Immap/mips/yeeloong -I$(srcdir)/mmap/mips/yeeloong $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh mmap > $@ || (rm -f $@; exit 1) + +handler-mmap_mod-mmap_mips_yeeloong_uppermem.lst: mmap/mips/yeeloong/uppermem.c $(mmap/mips/yeeloong/uppermem.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Immap/mips/yeeloong -I$(srcdir)/mmap/mips/yeeloong $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh mmap > $@ || (rm -f $@; exit 1) + +terminal-mmap_mod-mmap_mips_yeeloong_uppermem.lst: mmap/mips/yeeloong/uppermem.c $(mmap/mips/yeeloong/uppermem.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Immap/mips/yeeloong -I$(srcdir)/mmap/mips/yeeloong $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh mmap > $@ || (rm -f $@; exit 1) + +video-mmap_mod-mmap_mips_yeeloong_uppermem.lst: mmap/mips/yeeloong/uppermem.c $(mmap/mips/yeeloong/uppermem.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Immap/mips/yeeloong -I$(srcdir)/mmap/mips/yeeloong $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh mmap > $@ || (rm -f $@; exit 1) + +mmap_mod_CFLAGS = $(COMMON_CFLAGS) +mmap_mod_LDFLAGS = $(COMMON_LDFLAGS) +mmap_mod_ASFLAGS = $(COMMON_ASFLAGS) + +# For datetime.mod +pkglib_MODULES += datetime.mod +datetime_mod_SOURCES = lib/cmos_datetime.c + +clean-module-datetime.mod.1: + rm -f datetime.mod mod-datetime.o mod-datetime.c pre-datetime.o datetime_mod-lib_cmos_datetime.o und-datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime.mod.1 + +clean-module-datetime.mod-symbol.1: + rm -f def-datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime.mod-symbol.1 +DEFSYMFILES += def-datetime.lst +mostlyclean-module-datetime.mod.1: + rm -f datetime_mod-lib_cmos_datetime.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-datetime.mod.1 +UNDSYMFILES += und-datetime.lst + +ifeq ($(TARGET_NO_MODULES), yes) +datetime.mod: pre-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-datetime.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +datetime.mod: pre-datetime.o mod-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-datetime.o mod-datetime.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +datetime.mod: pre-datetime.o mod-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-datetime.o mod-datetime.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-datetime.o: $(datetime_mod_DEPENDENCIES) datetime_mod-lib_cmos_datetime.o + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ datetime_mod-lib_cmos_datetime.o + +mod-datetime.o: mod-datetime.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -DGRUB_FILE=\"mod-datetime.c\" -c -o $@ $< + +mod-datetime.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'datetime' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-datetime.lst: pre-datetime.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 datetime/' > $@ +else +def-datetime.lst: pre-datetime.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 datetime/' > $@ +endif + +und-datetime.lst: pre-datetime.o + echo 'datetime' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +datetime_mod-lib_cmos_datetime.o: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) + $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -DGRUB_FILE=\"lib/cmos_datetime.c\" -MD -c -o $@ $< +-include datetime_mod-lib_cmos_datetime.d + +clean-module-datetime_mod-lib_cmos_datetime-extra.1: + rm -f cmd-datetime_mod-lib_cmos_datetime.lst fs-datetime_mod-lib_cmos_datetime.lst partmap-datetime_mod-lib_cmos_datetime.lst handler-datetime_mod-lib_cmos_datetime.lst parttool-datetime_mod-lib_cmos_datetime.lst video-datetime_mod-lib_cmos_datetime.lst terminal-datetime_mod-lib_cmos_datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime_mod-lib_cmos_datetime-extra.1 + +COMMANDFILES += cmd-datetime_mod-lib_cmos_datetime.lst +FSFILES += fs-datetime_mod-lib_cmos_datetime.lst +PARTTOOLFILES += parttool-datetime_mod-lib_cmos_datetime.lst +PARTMAPFILES += partmap-datetime_mod-lib_cmos_datetime.lst +HANDLERFILES += handler-datetime_mod-lib_cmos_datetime.lst +TERMINALFILES += terminal-datetime_mod-lib_cmos_datetime.lst +VIDEOFILES += video-datetime_mod-lib_cmos_datetime.lst + +cmd-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh datetime > $@ || (rm -f $@; exit 1) + +fs-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh datetime > $@ || (rm -f $@; exit 1) + +parttool-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh datetime > $@ || (rm -f $@; exit 1) + +partmap-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh datetime > $@ || (rm -f $@; exit 1) + +handler-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh datetime > $@ || (rm -f $@; exit 1) + +terminal-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh datetime > $@ || (rm -f $@; exit 1) + +video-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh datetime > $@ || (rm -f $@; exit 1) + +datetime_mod_CFLAGS = $(COMMON_CFLAGS) +datetime_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For lsspd.mod +pkglib_MODULES += lsspd.mod +lsspd_mod_SOURCES = commands/mips/yeeloong/lsspd.c + +clean-module-lsspd.mod.1: + rm -f lsspd.mod mod-lsspd.o mod-lsspd.c pre-lsspd.o lsspd_mod-commands_mips_yeeloong_lsspd.o und-lsspd.lst + +CLEAN_MODULE_TARGETS += clean-module-lsspd.mod.1 + +clean-module-lsspd.mod-symbol.1: + rm -f def-lsspd.lst + +CLEAN_MODULE_TARGETS += clean-module-lsspd.mod-symbol.1 +DEFSYMFILES += def-lsspd.lst +mostlyclean-module-lsspd.mod.1: + rm -f lsspd_mod-commands_mips_yeeloong_lsspd.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-lsspd.mod.1 +UNDSYMFILES += und-lsspd.lst + +ifeq ($(TARGET_NO_MODULES), yes) +lsspd.mod: pre-lsspd.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(lsspd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-lsspd.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +lsspd.mod: pre-lsspd.o mod-lsspd.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(lsspd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-lsspd.o mod-lsspd.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +lsspd.mod: pre-lsspd.o mod-lsspd.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(lsspd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-lsspd.o mod-lsspd.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-lsspd.o: $(lsspd_mod_DEPENDENCIES) lsspd_mod-commands_mips_yeeloong_lsspd.o + -rm -f $@ + $(TARGET_CC) $(lsspd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ lsspd_mod-commands_mips_yeeloong_lsspd.o + +mod-lsspd.o: mod-lsspd.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lsspd_mod_CFLAGS) -DGRUB_FILE=\"mod-lsspd.c\" -c -o $@ $< + +mod-lsspd.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'lsspd' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-lsspd.lst: pre-lsspd.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 lsspd/' > $@ +else +def-lsspd.lst: pre-lsspd.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 lsspd/' > $@ +endif + +und-lsspd.lst: pre-lsspd.o + echo 'lsspd' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +lsspd_mod-commands_mips_yeeloong_lsspd.o: commands/mips/yeeloong/lsspd.c $(commands/mips/yeeloong/lsspd.c_DEPENDENCIES) + $(TARGET_CC) -Icommands/mips/yeeloong -I$(srcdir)/commands/mips/yeeloong $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lsspd_mod_CFLAGS) -DGRUB_FILE=\"commands/mips/yeeloong/lsspd.c\" -MD -c -o $@ $< +-include lsspd_mod-commands_mips_yeeloong_lsspd.d + +clean-module-lsspd_mod-commands_mips_yeeloong_lsspd-extra.1: + rm -f cmd-lsspd_mod-commands_mips_yeeloong_lsspd.lst fs-lsspd_mod-commands_mips_yeeloong_lsspd.lst partmap-lsspd_mod-commands_mips_yeeloong_lsspd.lst handler-lsspd_mod-commands_mips_yeeloong_lsspd.lst parttool-lsspd_mod-commands_mips_yeeloong_lsspd.lst video-lsspd_mod-commands_mips_yeeloong_lsspd.lst terminal-lsspd_mod-commands_mips_yeeloong_lsspd.lst + +CLEAN_MODULE_TARGETS += clean-module-lsspd_mod-commands_mips_yeeloong_lsspd-extra.1 + +COMMANDFILES += cmd-lsspd_mod-commands_mips_yeeloong_lsspd.lst +FSFILES += fs-lsspd_mod-commands_mips_yeeloong_lsspd.lst +PARTTOOLFILES += parttool-lsspd_mod-commands_mips_yeeloong_lsspd.lst +PARTMAPFILES += partmap-lsspd_mod-commands_mips_yeeloong_lsspd.lst +HANDLERFILES += handler-lsspd_mod-commands_mips_yeeloong_lsspd.lst +TERMINALFILES += terminal-lsspd_mod-commands_mips_yeeloong_lsspd.lst +VIDEOFILES += video-lsspd_mod-commands_mips_yeeloong_lsspd.lst + +cmd-lsspd_mod-commands_mips_yeeloong_lsspd.lst: commands/mips/yeeloong/lsspd.c $(commands/mips/yeeloong/lsspd.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands/mips/yeeloong -I$(srcdir)/commands/mips/yeeloong $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lsspd_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh lsspd > $@ || (rm -f $@; exit 1) + +fs-lsspd_mod-commands_mips_yeeloong_lsspd.lst: commands/mips/yeeloong/lsspd.c $(commands/mips/yeeloong/lsspd.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands/mips/yeeloong -I$(srcdir)/commands/mips/yeeloong $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(lsspd_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh lsspd > $@ || (rm -f $@; exit 1) + +parttool-lsspd_mod-commands_mips_yeeloong_lsspd.lst: commands/mips/yeeloong/lsspd.c $(commands/mips/yeeloong/lsspd.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands/mips/yeeloong -I$(srcdir)/commands/mips/yeeloong $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lsspd_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh lsspd > $@ || (rm -f $@; exit 1) + +partmap-lsspd_mod-commands_mips_yeeloong_lsspd.lst: commands/mips/yeeloong/lsspd.c $(commands/mips/yeeloong/lsspd.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands/mips/yeeloong -I$(srcdir)/commands/mips/yeeloong $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(lsspd_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh lsspd > $@ || (rm -f $@; exit 1) + +handler-lsspd_mod-commands_mips_yeeloong_lsspd.lst: commands/mips/yeeloong/lsspd.c $(commands/mips/yeeloong/lsspd.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands/mips/yeeloong -I$(srcdir)/commands/mips/yeeloong $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lsspd_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh lsspd > $@ || (rm -f $@; exit 1) + +terminal-lsspd_mod-commands_mips_yeeloong_lsspd.lst: commands/mips/yeeloong/lsspd.c $(commands/mips/yeeloong/lsspd.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands/mips/yeeloong -I$(srcdir)/commands/mips/yeeloong $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lsspd_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh lsspd > $@ || (rm -f $@; exit 1) + +video-lsspd_mod-commands_mips_yeeloong_lsspd.lst: commands/mips/yeeloong/lsspd.c $(commands/mips/yeeloong/lsspd.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands/mips/yeeloong -I$(srcdir)/commands/mips/yeeloong $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(lsspd_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh lsspd > $@ || (rm -f $@; exit 1) + +lsspd_mod_CFLAGS = $(COMMON_CFLAGS) +lsspd_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += linux.mod +linux_mod_SOURCES = loader/$(target_cpu)/linux.c + +clean-module-linux.mod.1: + rm -f linux.mod mod-linux.o mod-linux.c pre-linux.o linux_mod-loader___target_cpu__linux.o und-linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux.mod.1 + +clean-module-linux.mod-symbol.1: + rm -f def-linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux.mod-symbol.1 +DEFSYMFILES += def-linux.lst +mostlyclean-module-linux.mod.1: + rm -f linux_mod-loader___target_cpu__linux.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-linux.mod.1 +UNDSYMFILES += und-linux.lst + +ifeq ($(TARGET_NO_MODULES), yes) +linux.mod: pre-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-linux.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-linux.o mod-linux.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-linux.o mod-linux.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-linux.o: $(linux_mod_DEPENDENCIES) linux_mod-loader___target_cpu__linux.o + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ linux_mod-loader___target_cpu__linux.o + +mod-linux.o: mod-linux.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -DGRUB_FILE=\"mod-linux.c\" -c -o $@ $< + +mod-linux.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'linux' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-linux.lst: pre-linux.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 linux/' > $@ +else +def-linux.lst: pre-linux.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 linux/' > $@ +endif + +und-linux.lst: pre-linux.o + echo 'linux' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +linux_mod-loader___target_cpu__linux.o: loader/$(target_cpu)/linux.c $(loader/$(target_cpu)/linux.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/$(target_cpu) -I$(srcdir)/loader/$(target_cpu) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -DGRUB_FILE=\"loader/$(target_cpu)/linux.c\" -MD -c -o $@ $< +-include linux_mod-loader___target_cpu__linux.d + +clean-module-linux_mod-loader___target_cpu__linux-extra.1: + rm -f cmd-linux_mod-loader___target_cpu__linux.lst fs-linux_mod-loader___target_cpu__linux.lst partmap-linux_mod-loader___target_cpu__linux.lst handler-linux_mod-loader___target_cpu__linux.lst parttool-linux_mod-loader___target_cpu__linux.lst video-linux_mod-loader___target_cpu__linux.lst terminal-linux_mod-loader___target_cpu__linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux_mod-loader___target_cpu__linux-extra.1 + +COMMANDFILES += cmd-linux_mod-loader___target_cpu__linux.lst +FSFILES += fs-linux_mod-loader___target_cpu__linux.lst +PARTTOOLFILES += parttool-linux_mod-loader___target_cpu__linux.lst +PARTMAPFILES += partmap-linux_mod-loader___target_cpu__linux.lst +HANDLERFILES += handler-linux_mod-loader___target_cpu__linux.lst +TERMINALFILES += terminal-linux_mod-loader___target_cpu__linux.lst +VIDEOFILES += video-linux_mod-loader___target_cpu__linux.lst + +cmd-linux_mod-loader___target_cpu__linux.lst: loader/$(target_cpu)/linux.c $(loader/$(target_cpu)/linux.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/$(target_cpu) -I$(srcdir)/loader/$(target_cpu) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh linux > $@ || (rm -f $@; exit 1) + +fs-linux_mod-loader___target_cpu__linux.lst: loader/$(target_cpu)/linux.c $(loader/$(target_cpu)/linux.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/$(target_cpu) -I$(srcdir)/loader/$(target_cpu) $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh linux > $@ || (rm -f $@; exit 1) + +parttool-linux_mod-loader___target_cpu__linux.lst: loader/$(target_cpu)/linux.c $(loader/$(target_cpu)/linux.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/$(target_cpu) -I$(srcdir)/loader/$(target_cpu) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh linux > $@ || (rm -f $@; exit 1) + +partmap-linux_mod-loader___target_cpu__linux.lst: loader/$(target_cpu)/linux.c $(loader/$(target_cpu)/linux.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/$(target_cpu) -I$(srcdir)/loader/$(target_cpu) $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh linux > $@ || (rm -f $@; exit 1) + +handler-linux_mod-loader___target_cpu__linux.lst: loader/$(target_cpu)/linux.c $(loader/$(target_cpu)/linux.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/$(target_cpu) -I$(srcdir)/loader/$(target_cpu) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh linux > $@ || (rm -f $@; exit 1) + +terminal-linux_mod-loader___target_cpu__linux.lst: loader/$(target_cpu)/linux.c $(loader/$(target_cpu)/linux.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/$(target_cpu) -I$(srcdir)/loader/$(target_cpu) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh linux > $@ || (rm -f $@; exit 1) + +video-linux_mod-loader___target_cpu__linux.lst: loader/$(target_cpu)/linux.c $(loader/$(target_cpu)/linux.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/$(target_cpu) -I$(srcdir)/loader/$(target_cpu) $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh linux > $@ || (rm -f $@; exit 1) + +linux_mod_CFLAGS = $(COMMON_CFLAGS) +linux_mod_ASFLAGS = $(COMMON_ASFLAGS) +linux_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For halt.mod. +pkglib_MODULES += halt.mod +halt_mod_SOURCES = commands/halt.c + +clean-module-halt.mod.1: + rm -f halt.mod mod-halt.o mod-halt.c pre-halt.o halt_mod-commands_halt.o und-halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt.mod.1 + +clean-module-halt.mod-symbol.1: + rm -f def-halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt.mod-symbol.1 +DEFSYMFILES += def-halt.lst +mostlyclean-module-halt.mod.1: + rm -f halt_mod-commands_halt.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-halt.mod.1 +UNDSYMFILES += und-halt.lst + +ifeq ($(TARGET_NO_MODULES), yes) +halt.mod: pre-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-halt.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +halt.mod: pre-halt.o mod-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-halt.o mod-halt.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +halt.mod: pre-halt.o mod-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-halt.o mod-halt.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-halt.o: $(halt_mod_DEPENDENCIES) halt_mod-commands_halt.o + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ halt_mod-commands_halt.o + +mod-halt.o: mod-halt.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -DGRUB_FILE=\"mod-halt.c\" -c -o $@ $< + +mod-halt.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'halt' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-halt.lst: pre-halt.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 halt/' > $@ +else +def-halt.lst: pre-halt.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 halt/' > $@ +endif + +und-halt.lst: pre-halt.o + echo 'halt' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +halt_mod-commands_halt.o: commands/halt.c $(commands/halt.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -DGRUB_FILE=\"commands/halt.c\" -MD -c -o $@ $< +-include halt_mod-commands_halt.d + +clean-module-halt_mod-commands_halt-extra.1: + rm -f cmd-halt_mod-commands_halt.lst fs-halt_mod-commands_halt.lst partmap-halt_mod-commands_halt.lst handler-halt_mod-commands_halt.lst parttool-halt_mod-commands_halt.lst video-halt_mod-commands_halt.lst terminal-halt_mod-commands_halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt_mod-commands_halt-extra.1 + +COMMANDFILES += cmd-halt_mod-commands_halt.lst +FSFILES += fs-halt_mod-commands_halt.lst +PARTTOOLFILES += parttool-halt_mod-commands_halt.lst +PARTMAPFILES += partmap-halt_mod-commands_halt.lst +HANDLERFILES += handler-halt_mod-commands_halt.lst +TERMINALFILES += terminal-halt_mod-commands_halt.lst +VIDEOFILES += video-halt_mod-commands_halt.lst + +cmd-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh halt > $@ || (rm -f $@; exit 1) + +fs-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh halt > $@ || (rm -f $@; exit 1) + +parttool-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh halt > $@ || (rm -f $@; exit 1) + +partmap-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh halt > $@ || (rm -f $@; exit 1) + +handler-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh halt > $@ || (rm -f $@; exit 1) + +terminal-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh halt > $@ || (rm -f $@; exit 1) + +video-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh halt > $@ || (rm -f $@; exit 1) + +halt_mod_CFLAGS = $(COMMON_CFLAGS) +halt_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For usb.mod +pkglib_MODULES += usb.mod +usb_mod_SOURCES = bus/usb/usb.c bus/usb/usbtrans.c bus/usb/usbhub.c + +clean-module-usb.mod.1: + rm -f usb.mod mod-usb.o mod-usb.c pre-usb.o usb_mod-bus_usb_usb.o usb_mod-bus_usb_usbtrans.o usb_mod-bus_usb_usbhub.o und-usb.lst + +CLEAN_MODULE_TARGETS += clean-module-usb.mod.1 + +clean-module-usb.mod-symbol.1: + rm -f def-usb.lst + +CLEAN_MODULE_TARGETS += clean-module-usb.mod-symbol.1 +DEFSYMFILES += def-usb.lst +mostlyclean-module-usb.mod.1: + rm -f usb_mod-bus_usb_usb.d usb_mod-bus_usb_usbtrans.d usb_mod-bus_usb_usbhub.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-usb.mod.1 +UNDSYMFILES += und-usb.lst + +ifeq ($(TARGET_NO_MODULES), yes) +usb.mod: pre-usb.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(usb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-usb.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +usb.mod: pre-usb.o mod-usb.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(usb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-usb.o mod-usb.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +usb.mod: pre-usb.o mod-usb.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(usb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-usb.o mod-usb.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-usb.o: $(usb_mod_DEPENDENCIES) usb_mod-bus_usb_usb.o usb_mod-bus_usb_usbtrans.o usb_mod-bus_usb_usbhub.o + -rm -f $@ + $(TARGET_CC) $(usb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ usb_mod-bus_usb_usb.o usb_mod-bus_usb_usbtrans.o usb_mod-bus_usb_usbhub.o + +mod-usb.o: mod-usb.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -DGRUB_FILE=\"mod-usb.c\" -c -o $@ $< + +mod-usb.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'usb' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-usb.lst: pre-usb.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 usb/' > $@ +else +def-usb.lst: pre-usb.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 usb/' > $@ +endif + +und-usb.lst: pre-usb.o + echo 'usb' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +usb_mod-bus_usb_usb.o: bus/usb/usb.c $(bus/usb/usb.c_DEPENDENCIES) + $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -DGRUB_FILE=\"bus/usb/usb.c\" -MD -c -o $@ $< +-include usb_mod-bus_usb_usb.d + +clean-module-usb_mod-bus_usb_usb-extra.1: + rm -f cmd-usb_mod-bus_usb_usb.lst fs-usb_mod-bus_usb_usb.lst partmap-usb_mod-bus_usb_usb.lst handler-usb_mod-bus_usb_usb.lst parttool-usb_mod-bus_usb_usb.lst video-usb_mod-bus_usb_usb.lst terminal-usb_mod-bus_usb_usb.lst + +CLEAN_MODULE_TARGETS += clean-module-usb_mod-bus_usb_usb-extra.1 + +COMMANDFILES += cmd-usb_mod-bus_usb_usb.lst +FSFILES += fs-usb_mod-bus_usb_usb.lst +PARTTOOLFILES += parttool-usb_mod-bus_usb_usb.lst +PARTMAPFILES += partmap-usb_mod-bus_usb_usb.lst +HANDLERFILES += handler-usb_mod-bus_usb_usb.lst +TERMINALFILES += terminal-usb_mod-bus_usb_usb.lst +VIDEOFILES += video-usb_mod-bus_usb_usb.lst + +cmd-usb_mod-bus_usb_usb.lst: bus/usb/usb.c $(bus/usb/usb.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh usb > $@ || (rm -f $@; exit 1) + +fs-usb_mod-bus_usb_usb.lst: bus/usb/usb.c $(bus/usb/usb.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh usb > $@ || (rm -f $@; exit 1) + +parttool-usb_mod-bus_usb_usb.lst: bus/usb/usb.c $(bus/usb/usb.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh usb > $@ || (rm -f $@; exit 1) + +partmap-usb_mod-bus_usb_usb.lst: bus/usb/usb.c $(bus/usb/usb.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh usb > $@ || (rm -f $@; exit 1) + +handler-usb_mod-bus_usb_usb.lst: bus/usb/usb.c $(bus/usb/usb.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh usb > $@ || (rm -f $@; exit 1) + +terminal-usb_mod-bus_usb_usb.lst: bus/usb/usb.c $(bus/usb/usb.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh usb > $@ || (rm -f $@; exit 1) + +video-usb_mod-bus_usb_usb.lst: bus/usb/usb.c $(bus/usb/usb.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh usb > $@ || (rm -f $@; exit 1) + +usb_mod-bus_usb_usbtrans.o: bus/usb/usbtrans.c $(bus/usb/usbtrans.c_DEPENDENCIES) + $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -DGRUB_FILE=\"bus/usb/usbtrans.c\" -MD -c -o $@ $< +-include usb_mod-bus_usb_usbtrans.d + +clean-module-usb_mod-bus_usb_usbtrans-extra.1: + rm -f cmd-usb_mod-bus_usb_usbtrans.lst fs-usb_mod-bus_usb_usbtrans.lst partmap-usb_mod-bus_usb_usbtrans.lst handler-usb_mod-bus_usb_usbtrans.lst parttool-usb_mod-bus_usb_usbtrans.lst video-usb_mod-bus_usb_usbtrans.lst terminal-usb_mod-bus_usb_usbtrans.lst + +CLEAN_MODULE_TARGETS += clean-module-usb_mod-bus_usb_usbtrans-extra.1 + +COMMANDFILES += cmd-usb_mod-bus_usb_usbtrans.lst +FSFILES += fs-usb_mod-bus_usb_usbtrans.lst +PARTTOOLFILES += parttool-usb_mod-bus_usb_usbtrans.lst +PARTMAPFILES += partmap-usb_mod-bus_usb_usbtrans.lst +HANDLERFILES += handler-usb_mod-bus_usb_usbtrans.lst +TERMINALFILES += terminal-usb_mod-bus_usb_usbtrans.lst +VIDEOFILES += video-usb_mod-bus_usb_usbtrans.lst + +cmd-usb_mod-bus_usb_usbtrans.lst: bus/usb/usbtrans.c $(bus/usb/usbtrans.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh usb > $@ || (rm -f $@; exit 1) + +fs-usb_mod-bus_usb_usbtrans.lst: bus/usb/usbtrans.c $(bus/usb/usbtrans.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh usb > $@ || (rm -f $@; exit 1) + +parttool-usb_mod-bus_usb_usbtrans.lst: bus/usb/usbtrans.c $(bus/usb/usbtrans.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh usb > $@ || (rm -f $@; exit 1) + +partmap-usb_mod-bus_usb_usbtrans.lst: bus/usb/usbtrans.c $(bus/usb/usbtrans.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh usb > $@ || (rm -f $@; exit 1) + +handler-usb_mod-bus_usb_usbtrans.lst: bus/usb/usbtrans.c $(bus/usb/usbtrans.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh usb > $@ || (rm -f $@; exit 1) + +terminal-usb_mod-bus_usb_usbtrans.lst: bus/usb/usbtrans.c $(bus/usb/usbtrans.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh usb > $@ || (rm -f $@; exit 1) + +video-usb_mod-bus_usb_usbtrans.lst: bus/usb/usbtrans.c $(bus/usb/usbtrans.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh usb > $@ || (rm -f $@; exit 1) + +usb_mod-bus_usb_usbhub.o: bus/usb/usbhub.c $(bus/usb/usbhub.c_DEPENDENCIES) + $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -DGRUB_FILE=\"bus/usb/usbhub.c\" -MD -c -o $@ $< +-include usb_mod-bus_usb_usbhub.d + +clean-module-usb_mod-bus_usb_usbhub-extra.1: + rm -f cmd-usb_mod-bus_usb_usbhub.lst fs-usb_mod-bus_usb_usbhub.lst partmap-usb_mod-bus_usb_usbhub.lst handler-usb_mod-bus_usb_usbhub.lst parttool-usb_mod-bus_usb_usbhub.lst video-usb_mod-bus_usb_usbhub.lst terminal-usb_mod-bus_usb_usbhub.lst + +CLEAN_MODULE_TARGETS += clean-module-usb_mod-bus_usb_usbhub-extra.1 + +COMMANDFILES += cmd-usb_mod-bus_usb_usbhub.lst +FSFILES += fs-usb_mod-bus_usb_usbhub.lst +PARTTOOLFILES += parttool-usb_mod-bus_usb_usbhub.lst +PARTMAPFILES += partmap-usb_mod-bus_usb_usbhub.lst +HANDLERFILES += handler-usb_mod-bus_usb_usbhub.lst +TERMINALFILES += terminal-usb_mod-bus_usb_usbhub.lst +VIDEOFILES += video-usb_mod-bus_usb_usbhub.lst + +cmd-usb_mod-bus_usb_usbhub.lst: bus/usb/usbhub.c $(bus/usb/usbhub.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh usb > $@ || (rm -f $@; exit 1) + +fs-usb_mod-bus_usb_usbhub.lst: bus/usb/usbhub.c $(bus/usb/usbhub.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh usb > $@ || (rm -f $@; exit 1) + +parttool-usb_mod-bus_usb_usbhub.lst: bus/usb/usbhub.c $(bus/usb/usbhub.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh usb > $@ || (rm -f $@; exit 1) + +partmap-usb_mod-bus_usb_usbhub.lst: bus/usb/usbhub.c $(bus/usb/usbhub.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh usb > $@ || (rm -f $@; exit 1) + +handler-usb_mod-bus_usb_usbhub.lst: bus/usb/usbhub.c $(bus/usb/usbhub.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh usb > $@ || (rm -f $@; exit 1) + +terminal-usb_mod-bus_usb_usbhub.lst: bus/usb/usbhub.c $(bus/usb/usbhub.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh usb > $@ || (rm -f $@; exit 1) + +video-usb_mod-bus_usb_usbhub.lst: bus/usb/usbhub.c $(bus/usb/usbhub.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh usb > $@ || (rm -f $@; exit 1) + +usb_mod_CFLAGS = $(COMMON_CFLAGS) +usb_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For usbtest.mod +pkglib_MODULES += usbtest.mod +usbtest_mod_SOURCES = commands/usbtest.c + +clean-module-usbtest.mod.1: + rm -f usbtest.mod mod-usbtest.o mod-usbtest.c pre-usbtest.o usbtest_mod-commands_usbtest.o und-usbtest.lst + +CLEAN_MODULE_TARGETS += clean-module-usbtest.mod.1 + +clean-module-usbtest.mod-symbol.1: + rm -f def-usbtest.lst + +CLEAN_MODULE_TARGETS += clean-module-usbtest.mod-symbol.1 +DEFSYMFILES += def-usbtest.lst +mostlyclean-module-usbtest.mod.1: + rm -f usbtest_mod-commands_usbtest.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-usbtest.mod.1 +UNDSYMFILES += und-usbtest.lst + +ifeq ($(TARGET_NO_MODULES), yes) +usbtest.mod: pre-usbtest.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(usbtest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-usbtest.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +usbtest.mod: pre-usbtest.o mod-usbtest.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(usbtest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-usbtest.o mod-usbtest.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +usbtest.mod: pre-usbtest.o mod-usbtest.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(usbtest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-usbtest.o mod-usbtest.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-usbtest.o: $(usbtest_mod_DEPENDENCIES) usbtest_mod-commands_usbtest.o + -rm -f $@ + $(TARGET_CC) $(usbtest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ usbtest_mod-commands_usbtest.o + +mod-usbtest.o: mod-usbtest.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -DGRUB_FILE=\"mod-usbtest.c\" -c -o $@ $< + +mod-usbtest.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'usbtest' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-usbtest.lst: pre-usbtest.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 usbtest/' > $@ +else +def-usbtest.lst: pre-usbtest.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 usbtest/' > $@ +endif + +und-usbtest.lst: pre-usbtest.o + echo 'usbtest' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +usbtest_mod-commands_usbtest.o: commands/usbtest.c $(commands/usbtest.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -DGRUB_FILE=\"commands/usbtest.c\" -MD -c -o $@ $< +-include usbtest_mod-commands_usbtest.d + +clean-module-usbtest_mod-commands_usbtest-extra.1: + rm -f cmd-usbtest_mod-commands_usbtest.lst fs-usbtest_mod-commands_usbtest.lst partmap-usbtest_mod-commands_usbtest.lst handler-usbtest_mod-commands_usbtest.lst parttool-usbtest_mod-commands_usbtest.lst video-usbtest_mod-commands_usbtest.lst terminal-usbtest_mod-commands_usbtest.lst + +CLEAN_MODULE_TARGETS += clean-module-usbtest_mod-commands_usbtest-extra.1 + +COMMANDFILES += cmd-usbtest_mod-commands_usbtest.lst +FSFILES += fs-usbtest_mod-commands_usbtest.lst +PARTTOOLFILES += parttool-usbtest_mod-commands_usbtest.lst +PARTMAPFILES += partmap-usbtest_mod-commands_usbtest.lst +HANDLERFILES += handler-usbtest_mod-commands_usbtest.lst +TERMINALFILES += terminal-usbtest_mod-commands_usbtest.lst +VIDEOFILES += video-usbtest_mod-commands_usbtest.lst + +cmd-usbtest_mod-commands_usbtest.lst: commands/usbtest.c $(commands/usbtest.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh usbtest > $@ || (rm -f $@; exit 1) + +fs-usbtest_mod-commands_usbtest.lst: commands/usbtest.c $(commands/usbtest.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh usbtest > $@ || (rm -f $@; exit 1) + +parttool-usbtest_mod-commands_usbtest.lst: commands/usbtest.c $(commands/usbtest.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh usbtest > $@ || (rm -f $@; exit 1) + +partmap-usbtest_mod-commands_usbtest.lst: commands/usbtest.c $(commands/usbtest.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh usbtest > $@ || (rm -f $@; exit 1) + +handler-usbtest_mod-commands_usbtest.lst: commands/usbtest.c $(commands/usbtest.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh usbtest > $@ || (rm -f $@; exit 1) + +terminal-usbtest_mod-commands_usbtest.lst: commands/usbtest.c $(commands/usbtest.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh usbtest > $@ || (rm -f $@; exit 1) + +video-usbtest_mod-commands_usbtest.lst: commands/usbtest.c $(commands/usbtest.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh usbtest > $@ || (rm -f $@; exit 1) + +usbtest_mod_CFLAGS = $(COMMON_CFLAGS) +usbtest_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For ohci.mod +pkglib_MODULES += ohci.mod +ohci_mod_SOURCES = bus/usb/ohci.c + +clean-module-ohci.mod.1: + rm -f ohci.mod mod-ohci.o mod-ohci.c pre-ohci.o ohci_mod-bus_usb_ohci.o und-ohci.lst + +CLEAN_MODULE_TARGETS += clean-module-ohci.mod.1 + +clean-module-ohci.mod-symbol.1: + rm -f def-ohci.lst + +CLEAN_MODULE_TARGETS += clean-module-ohci.mod-symbol.1 +DEFSYMFILES += def-ohci.lst +mostlyclean-module-ohci.mod.1: + rm -f ohci_mod-bus_usb_ohci.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-ohci.mod.1 +UNDSYMFILES += und-ohci.lst + +ifeq ($(TARGET_NO_MODULES), yes) +ohci.mod: pre-ohci.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ohci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ohci.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +ohci.mod: pre-ohci.o mod-ohci.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ohci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ohci.o mod-ohci.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ohci.mod: pre-ohci.o mod-ohci.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(ohci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-ohci.o mod-ohci.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-ohci.o: $(ohci_mod_DEPENDENCIES) ohci_mod-bus_usb_ohci.o + -rm -f $@ + $(TARGET_CC) $(ohci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ ohci_mod-bus_usb_ohci.o + +mod-ohci.o: mod-ohci.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ohci_mod_CFLAGS) -DGRUB_FILE=\"mod-ohci.c\" -c -o $@ $< + +mod-ohci.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'ohci' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-ohci.lst: pre-ohci.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 ohci/' > $@ +else +def-ohci.lst: pre-ohci.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 ohci/' > $@ +endif + +und-ohci.lst: pre-ohci.o + echo 'ohci' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +ohci_mod-bus_usb_ohci.o: bus/usb/ohci.c $(bus/usb/ohci.c_DEPENDENCIES) + $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ohci_mod_CFLAGS) -DGRUB_FILE=\"bus/usb/ohci.c\" -MD -c -o $@ $< +-include ohci_mod-bus_usb_ohci.d + +clean-module-ohci_mod-bus_usb_ohci-extra.1: + rm -f cmd-ohci_mod-bus_usb_ohci.lst fs-ohci_mod-bus_usb_ohci.lst partmap-ohci_mod-bus_usb_ohci.lst handler-ohci_mod-bus_usb_ohci.lst parttool-ohci_mod-bus_usb_ohci.lst video-ohci_mod-bus_usb_ohci.lst terminal-ohci_mod-bus_usb_ohci.lst + +CLEAN_MODULE_TARGETS += clean-module-ohci_mod-bus_usb_ohci-extra.1 + +COMMANDFILES += cmd-ohci_mod-bus_usb_ohci.lst +FSFILES += fs-ohci_mod-bus_usb_ohci.lst +PARTTOOLFILES += parttool-ohci_mod-bus_usb_ohci.lst +PARTMAPFILES += partmap-ohci_mod-bus_usb_ohci.lst +HANDLERFILES += handler-ohci_mod-bus_usb_ohci.lst +TERMINALFILES += terminal-ohci_mod-bus_usb_ohci.lst +VIDEOFILES += video-ohci_mod-bus_usb_ohci.lst + +cmd-ohci_mod-bus_usb_ohci.lst: bus/usb/ohci.c $(bus/usb/ohci.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ohci_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh ohci > $@ || (rm -f $@; exit 1) + +fs-ohci_mod-bus_usb_ohci.lst: bus/usb/ohci.c $(bus/usb/ohci.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ohci_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh ohci > $@ || (rm -f $@; exit 1) + +parttool-ohci_mod-bus_usb_ohci.lst: bus/usb/ohci.c $(bus/usb/ohci.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ohci_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh ohci > $@ || (rm -f $@; exit 1) + +partmap-ohci_mod-bus_usb_ohci.lst: bus/usb/ohci.c $(bus/usb/ohci.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ohci_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh ohci > $@ || (rm -f $@; exit 1) + +handler-ohci_mod-bus_usb_ohci.lst: bus/usb/ohci.c $(bus/usb/ohci.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ohci_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh ohci > $@ || (rm -f $@; exit 1) + +terminal-ohci_mod-bus_usb_ohci.lst: bus/usb/ohci.c $(bus/usb/ohci.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ohci_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh ohci > $@ || (rm -f $@; exit 1) + +video-ohci_mod-bus_usb_ohci.lst: bus/usb/ohci.c $(bus/usb/ohci.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ohci_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh ohci > $@ || (rm -f $@; exit 1) + +ohci_mod_CFLAGS = $(COMMON_CFLAGS) +ohci_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For usbms.mod +pkglib_MODULES += usbms.mod +usbms_mod_SOURCES = disk/usbms.c + +clean-module-usbms.mod.1: + rm -f usbms.mod mod-usbms.o mod-usbms.c pre-usbms.o usbms_mod-disk_usbms.o und-usbms.lst + +CLEAN_MODULE_TARGETS += clean-module-usbms.mod.1 + +clean-module-usbms.mod-symbol.1: + rm -f def-usbms.lst + +CLEAN_MODULE_TARGETS += clean-module-usbms.mod-symbol.1 +DEFSYMFILES += def-usbms.lst +mostlyclean-module-usbms.mod.1: + rm -f usbms_mod-disk_usbms.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-usbms.mod.1 +UNDSYMFILES += und-usbms.lst + +ifeq ($(TARGET_NO_MODULES), yes) +usbms.mod: pre-usbms.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(usbms_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-usbms.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +usbms.mod: pre-usbms.o mod-usbms.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(usbms_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-usbms.o mod-usbms.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +usbms.mod: pre-usbms.o mod-usbms.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(usbms_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-usbms.o mod-usbms.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-usbms.o: $(usbms_mod_DEPENDENCIES) usbms_mod-disk_usbms.o + -rm -f $@ + $(TARGET_CC) $(usbms_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ usbms_mod-disk_usbms.o + +mod-usbms.o: mod-usbms.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -DGRUB_FILE=\"mod-usbms.c\" -c -o $@ $< + +mod-usbms.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'usbms' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-usbms.lst: pre-usbms.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 usbms/' > $@ +else +def-usbms.lst: pre-usbms.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 usbms/' > $@ +endif + +und-usbms.lst: pre-usbms.o + echo 'usbms' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +usbms_mod-disk_usbms.o: disk/usbms.c $(disk/usbms.c_DEPENDENCIES) + $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -DGRUB_FILE=\"disk/usbms.c\" -MD -c -o $@ $< +-include usbms_mod-disk_usbms.d + +clean-module-usbms_mod-disk_usbms-extra.1: + rm -f cmd-usbms_mod-disk_usbms.lst fs-usbms_mod-disk_usbms.lst partmap-usbms_mod-disk_usbms.lst handler-usbms_mod-disk_usbms.lst parttool-usbms_mod-disk_usbms.lst video-usbms_mod-disk_usbms.lst terminal-usbms_mod-disk_usbms.lst + +CLEAN_MODULE_TARGETS += clean-module-usbms_mod-disk_usbms-extra.1 + +COMMANDFILES += cmd-usbms_mod-disk_usbms.lst +FSFILES += fs-usbms_mod-disk_usbms.lst +PARTTOOLFILES += parttool-usbms_mod-disk_usbms.lst +PARTMAPFILES += partmap-usbms_mod-disk_usbms.lst +HANDLERFILES += handler-usbms_mod-disk_usbms.lst +TERMINALFILES += terminal-usbms_mod-disk_usbms.lst +VIDEOFILES += video-usbms_mod-disk_usbms.lst + +cmd-usbms_mod-disk_usbms.lst: disk/usbms.c $(disk/usbms.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh usbms > $@ || (rm -f $@; exit 1) + +fs-usbms_mod-disk_usbms.lst: disk/usbms.c $(disk/usbms.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh usbms > $@ || (rm -f $@; exit 1) + +parttool-usbms_mod-disk_usbms.lst: disk/usbms.c $(disk/usbms.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh usbms > $@ || (rm -f $@; exit 1) + +partmap-usbms_mod-disk_usbms.lst: disk/usbms.c $(disk/usbms.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh usbms > $@ || (rm -f $@; exit 1) + +handler-usbms_mod-disk_usbms.lst: disk/usbms.c $(disk/usbms.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh usbms > $@ || (rm -f $@; exit 1) + +terminal-usbms_mod-disk_usbms.lst: disk/usbms.c $(disk/usbms.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh usbms > $@ || (rm -f $@; exit 1) + +video-usbms_mod-disk_usbms.lst: disk/usbms.c $(disk/usbms.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh usbms > $@ || (rm -f $@; exit 1) + +usbms_mod_CFLAGS = $(COMMON_CFLAGS) +usbms_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For usb_keyboard.mod +pkglib_MODULES += usb_keyboard.mod +usb_keyboard_mod_SOURCES = term/usb_keyboard.c + +clean-module-usb_keyboard.mod.1: + rm -f usb_keyboard.mod mod-usb_keyboard.o mod-usb_keyboard.c pre-usb_keyboard.o usb_keyboard_mod-term_usb_keyboard.o und-usb_keyboard.lst + +CLEAN_MODULE_TARGETS += clean-module-usb_keyboard.mod.1 + +clean-module-usb_keyboard.mod-symbol.1: + rm -f def-usb_keyboard.lst + +CLEAN_MODULE_TARGETS += clean-module-usb_keyboard.mod-symbol.1 +DEFSYMFILES += def-usb_keyboard.lst +mostlyclean-module-usb_keyboard.mod.1: + rm -f usb_keyboard_mod-term_usb_keyboard.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-usb_keyboard.mod.1 +UNDSYMFILES += und-usb_keyboard.lst + +ifeq ($(TARGET_NO_MODULES), yes) +usb_keyboard.mod: pre-usb_keyboard.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(usb_keyboard_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-usb_keyboard.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +usb_keyboard.mod: pre-usb_keyboard.o mod-usb_keyboard.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(usb_keyboard_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-usb_keyboard.o mod-usb_keyboard.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +usb_keyboard.mod: pre-usb_keyboard.o mod-usb_keyboard.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(usb_keyboard_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-usb_keyboard.o mod-usb_keyboard.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-usb_keyboard.o: $(usb_keyboard_mod_DEPENDENCIES) usb_keyboard_mod-term_usb_keyboard.o + -rm -f $@ + $(TARGET_CC) $(usb_keyboard_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ usb_keyboard_mod-term_usb_keyboard.o + +mod-usb_keyboard.o: mod-usb_keyboard.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_keyboard_mod_CFLAGS) -DGRUB_FILE=\"mod-usb_keyboard.c\" -c -o $@ $< + +mod-usb_keyboard.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'usb_keyboard' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-usb_keyboard.lst: pre-usb_keyboard.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 usb_keyboard/' > $@ +else +def-usb_keyboard.lst: pre-usb_keyboard.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 usb_keyboard/' > $@ +endif + +und-usb_keyboard.lst: pre-usb_keyboard.o + echo 'usb_keyboard' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +usb_keyboard_mod-term_usb_keyboard.o: term/usb_keyboard.c $(term/usb_keyboard.c_DEPENDENCIES) + $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_keyboard_mod_CFLAGS) -DGRUB_FILE=\"term/usb_keyboard.c\" -MD -c -o $@ $< +-include usb_keyboard_mod-term_usb_keyboard.d + +clean-module-usb_keyboard_mod-term_usb_keyboard-extra.1: + rm -f cmd-usb_keyboard_mod-term_usb_keyboard.lst fs-usb_keyboard_mod-term_usb_keyboard.lst partmap-usb_keyboard_mod-term_usb_keyboard.lst handler-usb_keyboard_mod-term_usb_keyboard.lst parttool-usb_keyboard_mod-term_usb_keyboard.lst video-usb_keyboard_mod-term_usb_keyboard.lst terminal-usb_keyboard_mod-term_usb_keyboard.lst + +CLEAN_MODULE_TARGETS += clean-module-usb_keyboard_mod-term_usb_keyboard-extra.1 + +COMMANDFILES += cmd-usb_keyboard_mod-term_usb_keyboard.lst +FSFILES += fs-usb_keyboard_mod-term_usb_keyboard.lst +PARTTOOLFILES += parttool-usb_keyboard_mod-term_usb_keyboard.lst +PARTMAPFILES += partmap-usb_keyboard_mod-term_usb_keyboard.lst +HANDLERFILES += handler-usb_keyboard_mod-term_usb_keyboard.lst +TERMINALFILES += terminal-usb_keyboard_mod-term_usb_keyboard.lst +VIDEOFILES += video-usb_keyboard_mod-term_usb_keyboard.lst + +cmd-usb_keyboard_mod-term_usb_keyboard.lst: term/usb_keyboard.c $(term/usb_keyboard.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_keyboard_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh usb_keyboard > $@ || (rm -f $@; exit 1) + +fs-usb_keyboard_mod-term_usb_keyboard.lst: term/usb_keyboard.c $(term/usb_keyboard.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_keyboard_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh usb_keyboard > $@ || (rm -f $@; exit 1) + +parttool-usb_keyboard_mod-term_usb_keyboard.lst: term/usb_keyboard.c $(term/usb_keyboard.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_keyboard_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh usb_keyboard > $@ || (rm -f $@; exit 1) + +partmap-usb_keyboard_mod-term_usb_keyboard.lst: term/usb_keyboard.c $(term/usb_keyboard.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_keyboard_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh usb_keyboard > $@ || (rm -f $@; exit 1) + +handler-usb_keyboard_mod-term_usb_keyboard.lst: term/usb_keyboard.c $(term/usb_keyboard.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_keyboard_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh usb_keyboard > $@ || (rm -f $@; exit 1) + +terminal-usb_keyboard_mod-term_usb_keyboard.lst: term/usb_keyboard.c $(term/usb_keyboard.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_keyboard_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh usb_keyboard > $@ || (rm -f $@; exit 1) + +video-usb_keyboard_mod-term_usb_keyboard.lst: term/usb_keyboard.c $(term/usb_keyboard.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_keyboard_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh usb_keyboard > $@ || (rm -f $@; exit 1) + +usb_keyboard_mod_CFLAGS = $(COMMON_CFLAGS) +usb_keyboard_mod_LDFLAGS = $(COMMON_LDFLAGS) + +sbin_SCRIPTS += grub-install +grub_install_SOURCES = util/grub-install.in +CLEANFILES += grub-install + +grub-install: util/grub-install.in $(util/grub-install.in_DEPENDENCIES) config.status + ./config.status --file=-:util/grub-install.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + +CLEANFILES += kernel.img $(kernel_img_OBJECTS) +ifeq ($(kernel_img_RELOCATABLE),yes) +kernel.img: $(kernel_img_DEPENDENCIES) $(kernel_img_OBJECTS) + $(TARGET_CC) -Wl,-r,-d -o $@ $(kernel_img_OBJECTS) $(TARGET_LDFLAGS) $(kernel_img_LDFLAGS) + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K start -R .note -R .comment $@; fi +else +kernel.img: $(kernel_img_DEPENDENCIES) $(kernel_img_OBJECTS) + $(TARGET_CC) -o $@ $(kernel_img_OBJECTS) $(TARGET_LDFLAGS) $(kernel_img_LDFLAGS) + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) -R .rel.dyn -R .reginfo -R .note -R .comment $@; fi +endif + --- grub2-1.98+20100804.orig/conf/common.mk +++ grub2-1.98+20100804/conf/common.mk @@ -0,0 +1,13747 @@ +# -*- makefile -*- +# Generated by genmk.rb, please don't edit! + +# Used by various components. These rules need to precede them. +script/lexer.c_DEPENDENCIES = grub_script.tab.h grub_script.yy.h + +sbin_UTILITIES += grub-mkdevicemap +grub_mkdevicemap_SOURCES = gnulib/progname.c util/grub-mkdevicemap.c \ + util/deviceiter.c \ + util/misc.c kern/emu/misc.c \ + kern/env.c kern/err.c kern/list.c kern/misc.c kern/emu/mm.c + +clean-utility-grub-mkdevicemap.1: + rm -f grub-mkdevicemap$(EXEEXT) grub_mkdevicemap-gnulib_progname.o grub_mkdevicemap-util_grub_mkdevicemap.o grub_mkdevicemap-util_deviceiter.o grub_mkdevicemap-util_misc.o grub_mkdevicemap-kern_emu_misc.o grub_mkdevicemap-kern_env.o grub_mkdevicemap-kern_err.o grub_mkdevicemap-kern_list.o grub_mkdevicemap-kern_misc.o grub_mkdevicemap-kern_emu_mm.o + +CLEAN_UTILITY_TARGETS += clean-utility-grub-mkdevicemap.1 + +mostlyclean-utility-grub-mkdevicemap.1: + rm -f grub_mkdevicemap-gnulib_progname.d grub_mkdevicemap-util_grub_mkdevicemap.d grub_mkdevicemap-util_deviceiter.d grub_mkdevicemap-util_misc.d grub_mkdevicemap-kern_emu_misc.d grub_mkdevicemap-kern_env.d grub_mkdevicemap-kern_err.d grub_mkdevicemap-kern_list.d grub_mkdevicemap-kern_misc.d grub_mkdevicemap-kern_emu_mm.d + +MOSTLYCLEAN_UTILITY_TARGETS += mostlyclean-utility-grub-mkdevicemap.1 + +grub_mkdevicemap_OBJECTS += grub_mkdevicemap-gnulib_progname.o grub_mkdevicemap-util_grub_mkdevicemap.o grub_mkdevicemap-util_deviceiter.o grub_mkdevicemap-util_misc.o grub_mkdevicemap-kern_emu_misc.o grub_mkdevicemap-kern_env.o grub_mkdevicemap-kern_err.o grub_mkdevicemap-kern_list.o grub_mkdevicemap-kern_misc.o grub_mkdevicemap-kern_emu_mm.o + +grub_mkdevicemap-gnulib_progname.o: gnulib/progname.c $(gnulib/progname.c_DEPENDENCIES) + $(CC) -Ignulib -I$(srcdir)/gnulib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkdevicemap_CFLAGS) -DGRUB_FILE=\"gnulib/progname.c\" -MD -c -o $@ $< +-include grub_mkdevicemap-gnulib_progname.d + +grub_mkdevicemap-util_grub_mkdevicemap.o: util/grub-mkdevicemap.c $(util/grub-mkdevicemap.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkdevicemap_CFLAGS) -DGRUB_FILE=\"util/grub-mkdevicemap.c\" -MD -c -o $@ $< +-include grub_mkdevicemap-util_grub_mkdevicemap.d + +grub_mkdevicemap-util_deviceiter.o: util/deviceiter.c $(util/deviceiter.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkdevicemap_CFLAGS) -DGRUB_FILE=\"util/deviceiter.c\" -MD -c -o $@ $< +-include grub_mkdevicemap-util_deviceiter.d + +grub_mkdevicemap-util_misc.o: util/misc.c $(util/misc.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkdevicemap_CFLAGS) -DGRUB_FILE=\"util/misc.c\" -MD -c -o $@ $< +-include grub_mkdevicemap-util_misc.d + +grub_mkdevicemap-kern_emu_misc.o: kern/emu/misc.c $(kern/emu/misc.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkdevicemap_CFLAGS) -DGRUB_FILE=\"kern/emu/misc.c\" -MD -c -o $@ $< +-include grub_mkdevicemap-kern_emu_misc.d + +grub_mkdevicemap-kern_env.o: kern/env.c $(kern/env.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkdevicemap_CFLAGS) -DGRUB_FILE=\"kern/env.c\" -MD -c -o $@ $< +-include grub_mkdevicemap-kern_env.d + +grub_mkdevicemap-kern_err.o: kern/err.c $(kern/err.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkdevicemap_CFLAGS) -DGRUB_FILE=\"kern/err.c\" -MD -c -o $@ $< +-include grub_mkdevicemap-kern_err.d + +grub_mkdevicemap-kern_list.o: kern/list.c $(kern/list.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkdevicemap_CFLAGS) -DGRUB_FILE=\"kern/list.c\" -MD -c -o $@ $< +-include grub_mkdevicemap-kern_list.d + +grub_mkdevicemap-kern_misc.o: kern/misc.c $(kern/misc.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkdevicemap_CFLAGS) -DGRUB_FILE=\"kern/misc.c\" -MD -c -o $@ $< +-include grub_mkdevicemap-kern_misc.d + +grub_mkdevicemap-kern_emu_mm.o: kern/emu/mm.c $(kern/emu/mm.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkdevicemap_CFLAGS) -DGRUB_FILE=\"kern/emu/mm.c\" -MD -c -o $@ $< +-include grub_mkdevicemap-kern_emu_mm.d + + +ifeq ($(target_cpu)-$(platform), sparc64-ieee1275) +grub_mkdevicemap_SOURCES += util/ieee1275/ofpath.c util/ieee1275/devicemap.c + +clean-utility-grub-mkdevicemap.2: + rm -f grub-mkdevicemap$(EXEEXT) grub_mkdevicemap-util_ieee1275_ofpath.o grub_mkdevicemap-util_ieee1275_devicemap.o + +CLEAN_UTILITY_TARGETS += clean-utility-grub-mkdevicemap.2 + +mostlyclean-utility-grub-mkdevicemap.2: + rm -f grub_mkdevicemap-util_ieee1275_ofpath.d grub_mkdevicemap-util_ieee1275_devicemap.d + +MOSTLYCLEAN_UTILITY_TARGETS += mostlyclean-utility-grub-mkdevicemap.2 + +grub_mkdevicemap_OBJECTS += grub_mkdevicemap-util_ieee1275_ofpath.o grub_mkdevicemap-util_ieee1275_devicemap.o + +grub_mkdevicemap-util_ieee1275_ofpath.o: util/ieee1275/ofpath.c $(util/ieee1275/ofpath.c_DEPENDENCIES) + $(CC) -Iutil/ieee1275 -I$(srcdir)/util/ieee1275 $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkdevicemap_CFLAGS) -DGRUB_FILE=\"util/ieee1275/ofpath.c\" -MD -c -o $@ $< +-include grub_mkdevicemap-util_ieee1275_ofpath.d + +grub_mkdevicemap-util_ieee1275_devicemap.o: util/ieee1275/devicemap.c $(util/ieee1275/devicemap.c_DEPENDENCIES) + $(CC) -Iutil/ieee1275 -I$(srcdir)/util/ieee1275 $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkdevicemap_CFLAGS) -DGRUB_FILE=\"util/ieee1275/devicemap.c\" -MD -c -o $@ $< +-include grub_mkdevicemap-util_ieee1275_devicemap.d + +else +grub_mkdevicemap_SOURCES += util/devicemap.c + +clean-utility-grub-mkdevicemap.3: + rm -f grub-mkdevicemap$(EXEEXT) grub_mkdevicemap-util_devicemap.o + +CLEAN_UTILITY_TARGETS += clean-utility-grub-mkdevicemap.3 + +mostlyclean-utility-grub-mkdevicemap.3: + rm -f grub_mkdevicemap-util_devicemap.d + +MOSTLYCLEAN_UTILITY_TARGETS += mostlyclean-utility-grub-mkdevicemap.3 + +grub_mkdevicemap_OBJECTS += grub_mkdevicemap-util_devicemap.o + +grub_mkdevicemap-util_devicemap.o: util/devicemap.c $(util/devicemap.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkdevicemap_CFLAGS) -DGRUB_FILE=\"util/devicemap.c\" -MD -c -o $@ $< +-include grub_mkdevicemap-util_devicemap.d + +endif + +# For grub-mkimage. +bin_UTILITIES += grub-mkimage +grub_mkimage_SOURCES = gnulib/progname.c util/grub-mkimage.c util/misc.c \ + util/resolve.c kern/emu/misc.c lib/LzmaEnc.c lib/LzFind.c + +clean-utility-grub-mkimage.1: + rm -f grub-mkimage$(EXEEXT) grub_mkimage-gnulib_progname.o grub_mkimage-util_grub_mkimage.o grub_mkimage-util_misc.o grub_mkimage-util_resolve.o grub_mkimage-kern_emu_misc.o grub_mkimage-lib_LzmaEnc.o grub_mkimage-lib_LzFind.o + +CLEAN_UTILITY_TARGETS += clean-utility-grub-mkimage.1 + +mostlyclean-utility-grub-mkimage.1: + rm -f grub_mkimage-gnulib_progname.d grub_mkimage-util_grub_mkimage.d grub_mkimage-util_misc.d grub_mkimage-util_resolve.d grub_mkimage-kern_emu_misc.d grub_mkimage-lib_LzmaEnc.d grub_mkimage-lib_LzFind.d + +MOSTLYCLEAN_UTILITY_TARGETS += mostlyclean-utility-grub-mkimage.1 + +grub_mkimage_OBJECTS += grub_mkimage-gnulib_progname.o grub_mkimage-util_grub_mkimage.o grub_mkimage-util_misc.o grub_mkimage-util_resolve.o grub_mkimage-kern_emu_misc.o grub_mkimage-lib_LzmaEnc.o grub_mkimage-lib_LzFind.o + +grub_mkimage-gnulib_progname.o: gnulib/progname.c $(gnulib/progname.c_DEPENDENCIES) + $(CC) -Ignulib -I$(srcdir)/gnulib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkimage_CFLAGS) -DGRUB_FILE=\"gnulib/progname.c\" -MD -c -o $@ $< +-include grub_mkimage-gnulib_progname.d + +grub_mkimage-util_grub_mkimage.o: util/grub-mkimage.c $(util/grub-mkimage.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkimage_CFLAGS) -DGRUB_FILE=\"util/grub-mkimage.c\" -MD -c -o $@ $< +-include grub_mkimage-util_grub_mkimage.d + +grub_mkimage-util_misc.o: util/misc.c $(util/misc.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkimage_CFLAGS) -DGRUB_FILE=\"util/misc.c\" -MD -c -o $@ $< +-include grub_mkimage-util_misc.d + +grub_mkimage-util_resolve.o: util/resolve.c $(util/resolve.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkimage_CFLAGS) -DGRUB_FILE=\"util/resolve.c\" -MD -c -o $@ $< +-include grub_mkimage-util_resolve.d + +grub_mkimage-kern_emu_misc.o: kern/emu/misc.c $(kern/emu/misc.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkimage_CFLAGS) -DGRUB_FILE=\"kern/emu/misc.c\" -MD -c -o $@ $< +-include grub_mkimage-kern_emu_misc.d + +grub_mkimage-lib_LzmaEnc.o: lib/LzmaEnc.c $(lib/LzmaEnc.c_DEPENDENCIES) + $(CC) -Ilib -I$(srcdir)/lib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkimage_CFLAGS) -DGRUB_FILE=\"lib/LzmaEnc.c\" -MD -c -o $@ $< +-include grub_mkimage-lib_LzmaEnc.d + +grub_mkimage-lib_LzFind.o: lib/LzFind.c $(lib/LzFind.c_DEPENDENCIES) + $(CC) -Ilib -I$(srcdir)/lib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkimage_CFLAGS) -DGRUB_FILE=\"lib/LzFind.c\" -MD -c -o $@ $< +-include grub_mkimage-lib_LzFind.d + +util/grub-mkimage.c_DEPENDENCIES = Makefile + +# For grub-probe. +sbin_UTILITIES += grub-probe +util/grub-probe.c_DEPENDENCIES = grub_probe_init.h +grub_probe_SOURCES = gnulib/progname.c util/grub-probe.c \ + kern/emu/hostdisk.c util/misc.c kern/emu/misc.c kern/emu/getroot.c kern/emu/mm.c \ + kern/device.c kern/disk.c kern/err.c kern/misc.c \ + kern/partition.c kern/file.c kern/list.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/nilfs2.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 \ + \ + $(GRUB_CONTRIB)/zfs/zfs.c \ + $(GRUB_CONTRIB)/zfs/zfs_lzjb.c \ + $(GRUB_CONTRIB)/zfs/zfs_sha256.c \ + $(GRUB_CONTRIB)/zfs/zfs_fletcher.c \ + \ + partmap/msdos.c partmap/bsdlabel.c partmap/apple.c \ + partmap/sun.c partmap/sunpc.c partmap/gpt.c \ + kern/fs.c kern/env.c fs/fshelp.c \ + disk/raid.c disk/raid5_recover.c disk/raid6_recover.c \ + disk/mdraid_linux.c disk/lvm.c grub_probe_init.c + +clean-utility-grub-probe.1: + rm -f grub-probe$(EXEEXT) grub_probe-gnulib_progname.o grub_probe-util_grub_probe.o grub_probe-kern_emu_hostdisk.o grub_probe-util_misc.o grub_probe-kern_emu_misc.o grub_probe-kern_emu_getroot.o grub_probe-kern_emu_mm.o grub_probe-kern_device.o grub_probe-kern_disk.o grub_probe-kern_err.o grub_probe-kern_misc.o grub_probe-kern_partition.o grub_probe-kern_file.o grub_probe-kern_list.o grub_probe-fs_affs.o grub_probe-fs_cpio.o grub_probe-fs_fat.o grub_probe-fs_ext2.o grub_probe-fs_hfs.o grub_probe-fs_hfsplus.o grub_probe-fs_iso9660.o grub_probe-fs_udf.o grub_probe-fs_jfs.o grub_probe-fs_minix.o grub_probe-fs_nilfs2.o grub_probe-fs_ntfs.o grub_probe-fs_ntfscomp.o grub_probe-fs_reiserfs.o grub_probe-fs_sfs.o grub_probe-fs_ufs.o grub_probe-fs_ufs2.o grub_probe-fs_xfs.o grub_probe-fs_afs.o grub_probe-fs_afs_be.o grub_probe-fs_befs.o grub_probe-fs_befs_be.o grub_probe-fs_tar.o grub_probe-__GRUB_CONTRIB__zfs_zfs.o grub_probe-__GRUB_CONTRIB__zfs_zfs_lzjb.o grub_probe-__GRUB_CONTRIB__zfs_zfs_sha256.o grub_probe-__GRUB_CONTRIB__zfs_zfs_fletcher.o grub_probe-partmap_msdos.o grub_probe-partmap_bsdlabel.o grub_probe-partmap_apple.o grub_probe-partmap_sun.o grub_probe-partmap_sunpc.o grub_probe-partmap_gpt.o grub_probe-kern_fs.o grub_probe-kern_env.o grub_probe-fs_fshelp.o grub_probe-disk_raid.o grub_probe-disk_raid5_recover.o grub_probe-disk_raid6_recover.o grub_probe-disk_mdraid_linux.o grub_probe-disk_lvm.o grub_probe-grub_probe_init.o + +CLEAN_UTILITY_TARGETS += clean-utility-grub-probe.1 + +mostlyclean-utility-grub-probe.1: + rm -f grub_probe-gnulib_progname.d grub_probe-util_grub_probe.d grub_probe-kern_emu_hostdisk.d grub_probe-util_misc.d grub_probe-kern_emu_misc.d grub_probe-kern_emu_getroot.d grub_probe-kern_emu_mm.d grub_probe-kern_device.d grub_probe-kern_disk.d grub_probe-kern_err.d grub_probe-kern_misc.d grub_probe-kern_partition.d grub_probe-kern_file.d grub_probe-kern_list.d grub_probe-fs_affs.d grub_probe-fs_cpio.d grub_probe-fs_fat.d grub_probe-fs_ext2.d grub_probe-fs_hfs.d grub_probe-fs_hfsplus.d grub_probe-fs_iso9660.d grub_probe-fs_udf.d grub_probe-fs_jfs.d grub_probe-fs_minix.d grub_probe-fs_nilfs2.d grub_probe-fs_ntfs.d grub_probe-fs_ntfscomp.d grub_probe-fs_reiserfs.d grub_probe-fs_sfs.d grub_probe-fs_ufs.d grub_probe-fs_ufs2.d grub_probe-fs_xfs.d grub_probe-fs_afs.d grub_probe-fs_afs_be.d grub_probe-fs_befs.d grub_probe-fs_befs_be.d grub_probe-fs_tar.d grub_probe-__GRUB_CONTRIB__zfs_zfs.d grub_probe-__GRUB_CONTRIB__zfs_zfs_lzjb.d grub_probe-__GRUB_CONTRIB__zfs_zfs_sha256.d grub_probe-__GRUB_CONTRIB__zfs_zfs_fletcher.d grub_probe-partmap_msdos.d grub_probe-partmap_bsdlabel.d grub_probe-partmap_apple.d grub_probe-partmap_sun.d grub_probe-partmap_sunpc.d grub_probe-partmap_gpt.d grub_probe-kern_fs.d grub_probe-kern_env.d grub_probe-fs_fshelp.d grub_probe-disk_raid.d grub_probe-disk_raid5_recover.d grub_probe-disk_raid6_recover.d grub_probe-disk_mdraid_linux.d grub_probe-disk_lvm.d grub_probe-grub_probe_init.d + +MOSTLYCLEAN_UTILITY_TARGETS += mostlyclean-utility-grub-probe.1 + +grub_probe_OBJECTS += grub_probe-gnulib_progname.o grub_probe-util_grub_probe.o grub_probe-kern_emu_hostdisk.o grub_probe-util_misc.o grub_probe-kern_emu_misc.o grub_probe-kern_emu_getroot.o grub_probe-kern_emu_mm.o grub_probe-kern_device.o grub_probe-kern_disk.o grub_probe-kern_err.o grub_probe-kern_misc.o grub_probe-kern_partition.o grub_probe-kern_file.o grub_probe-kern_list.o grub_probe-fs_affs.o grub_probe-fs_cpio.o grub_probe-fs_fat.o grub_probe-fs_ext2.o grub_probe-fs_hfs.o grub_probe-fs_hfsplus.o grub_probe-fs_iso9660.o grub_probe-fs_udf.o grub_probe-fs_jfs.o grub_probe-fs_minix.o grub_probe-fs_nilfs2.o grub_probe-fs_ntfs.o grub_probe-fs_ntfscomp.o grub_probe-fs_reiserfs.o grub_probe-fs_sfs.o grub_probe-fs_ufs.o grub_probe-fs_ufs2.o grub_probe-fs_xfs.o grub_probe-fs_afs.o grub_probe-fs_afs_be.o grub_probe-fs_befs.o grub_probe-fs_befs_be.o grub_probe-fs_tar.o grub_probe-__GRUB_CONTRIB__zfs_zfs.o grub_probe-__GRUB_CONTRIB__zfs_zfs_lzjb.o grub_probe-__GRUB_CONTRIB__zfs_zfs_sha256.o grub_probe-__GRUB_CONTRIB__zfs_zfs_fletcher.o grub_probe-partmap_msdos.o grub_probe-partmap_bsdlabel.o grub_probe-partmap_apple.o grub_probe-partmap_sun.o grub_probe-partmap_sunpc.o grub_probe-partmap_gpt.o grub_probe-kern_fs.o grub_probe-kern_env.o grub_probe-fs_fshelp.o grub_probe-disk_raid.o grub_probe-disk_raid5_recover.o grub_probe-disk_raid6_recover.o grub_probe-disk_mdraid_linux.o grub_probe-disk_lvm.o grub_probe-grub_probe_init.o + +grub_probe-gnulib_progname.o: gnulib/progname.c $(gnulib/progname.c_DEPENDENCIES) + $(CC) -Ignulib -I$(srcdir)/gnulib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"gnulib/progname.c\" -MD -c -o $@ $< +-include grub_probe-gnulib_progname.d + +grub_probe-util_grub_probe.o: util/grub-probe.c $(util/grub-probe.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"util/grub-probe.c\" -MD -c -o $@ $< +-include grub_probe-util_grub_probe.d + +grub_probe-kern_emu_hostdisk.o: kern/emu/hostdisk.c $(kern/emu/hostdisk.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"kern/emu/hostdisk.c\" -MD -c -o $@ $< +-include grub_probe-kern_emu_hostdisk.d + +grub_probe-util_misc.o: util/misc.c $(util/misc.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"util/misc.c\" -MD -c -o $@ $< +-include grub_probe-util_misc.d + +grub_probe-kern_emu_misc.o: kern/emu/misc.c $(kern/emu/misc.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"kern/emu/misc.c\" -MD -c -o $@ $< +-include grub_probe-kern_emu_misc.d + +grub_probe-kern_emu_getroot.o: kern/emu/getroot.c $(kern/emu/getroot.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"kern/emu/getroot.c\" -MD -c -o $@ $< +-include grub_probe-kern_emu_getroot.d + +grub_probe-kern_emu_mm.o: kern/emu/mm.c $(kern/emu/mm.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"kern/emu/mm.c\" -MD -c -o $@ $< +-include grub_probe-kern_emu_mm.d + +grub_probe-kern_device.o: kern/device.c $(kern/device.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"kern/device.c\" -MD -c -o $@ $< +-include grub_probe-kern_device.d + +grub_probe-kern_disk.o: kern/disk.c $(kern/disk.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"kern/disk.c\" -MD -c -o $@ $< +-include grub_probe-kern_disk.d + +grub_probe-kern_err.o: kern/err.c $(kern/err.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"kern/err.c\" -MD -c -o $@ $< +-include grub_probe-kern_err.d + +grub_probe-kern_misc.o: kern/misc.c $(kern/misc.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"kern/misc.c\" -MD -c -o $@ $< +-include grub_probe-kern_misc.d + +grub_probe-kern_partition.o: kern/partition.c $(kern/partition.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"kern/partition.c\" -MD -c -o $@ $< +-include grub_probe-kern_partition.d + +grub_probe-kern_file.o: kern/file.c $(kern/file.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"kern/file.c\" -MD -c -o $@ $< +-include grub_probe-kern_file.d + +grub_probe-kern_list.o: kern/list.c $(kern/list.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"kern/list.c\" -MD -c -o $@ $< +-include grub_probe-kern_list.d + +grub_probe-fs_affs.o: fs/affs.c $(fs/affs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"fs/affs.c\" -MD -c -o $@ $< +-include grub_probe-fs_affs.d + +grub_probe-fs_cpio.o: fs/cpio.c $(fs/cpio.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"fs/cpio.c\" -MD -c -o $@ $< +-include grub_probe-fs_cpio.d + +grub_probe-fs_fat.o: fs/fat.c $(fs/fat.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"fs/fat.c\" -MD -c -o $@ $< +-include grub_probe-fs_fat.d + +grub_probe-fs_ext2.o: fs/ext2.c $(fs/ext2.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"fs/ext2.c\" -MD -c -o $@ $< +-include grub_probe-fs_ext2.d + +grub_probe-fs_hfs.o: fs/hfs.c $(fs/hfs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"fs/hfs.c\" -MD -c -o $@ $< +-include grub_probe-fs_hfs.d + +grub_probe-fs_hfsplus.o: fs/hfsplus.c $(fs/hfsplus.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"fs/hfsplus.c\" -MD -c -o $@ $< +-include grub_probe-fs_hfsplus.d + +grub_probe-fs_iso9660.o: fs/iso9660.c $(fs/iso9660.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"fs/iso9660.c\" -MD -c -o $@ $< +-include grub_probe-fs_iso9660.d + +grub_probe-fs_udf.o: fs/udf.c $(fs/udf.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"fs/udf.c\" -MD -c -o $@ $< +-include grub_probe-fs_udf.d + +grub_probe-fs_jfs.o: fs/jfs.c $(fs/jfs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"fs/jfs.c\" -MD -c -o $@ $< +-include grub_probe-fs_jfs.d + +grub_probe-fs_minix.o: fs/minix.c $(fs/minix.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"fs/minix.c\" -MD -c -o $@ $< +-include grub_probe-fs_minix.d + +grub_probe-fs_nilfs2.o: fs/nilfs2.c $(fs/nilfs2.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"fs/nilfs2.c\" -MD -c -o $@ $< +-include grub_probe-fs_nilfs2.d + +grub_probe-fs_ntfs.o: fs/ntfs.c $(fs/ntfs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"fs/ntfs.c\" -MD -c -o $@ $< +-include grub_probe-fs_ntfs.d + +grub_probe-fs_ntfscomp.o: fs/ntfscomp.c $(fs/ntfscomp.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"fs/ntfscomp.c\" -MD -c -o $@ $< +-include grub_probe-fs_ntfscomp.d + +grub_probe-fs_reiserfs.o: fs/reiserfs.c $(fs/reiserfs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"fs/reiserfs.c\" -MD -c -o $@ $< +-include grub_probe-fs_reiserfs.d + +grub_probe-fs_sfs.o: fs/sfs.c $(fs/sfs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"fs/sfs.c\" -MD -c -o $@ $< +-include grub_probe-fs_sfs.d + +grub_probe-fs_ufs.o: fs/ufs.c $(fs/ufs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"fs/ufs.c\" -MD -c -o $@ $< +-include grub_probe-fs_ufs.d + +grub_probe-fs_ufs2.o: fs/ufs2.c $(fs/ufs2.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"fs/ufs2.c\" -MD -c -o $@ $< +-include grub_probe-fs_ufs2.d + +grub_probe-fs_xfs.o: fs/xfs.c $(fs/xfs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"fs/xfs.c\" -MD -c -o $@ $< +-include grub_probe-fs_xfs.d + +grub_probe-fs_afs.o: fs/afs.c $(fs/afs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"fs/afs.c\" -MD -c -o $@ $< +-include grub_probe-fs_afs.d + +grub_probe-fs_afs_be.o: fs/afs_be.c $(fs/afs_be.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"fs/afs_be.c\" -MD -c -o $@ $< +-include grub_probe-fs_afs_be.d + +grub_probe-fs_befs.o: fs/befs.c $(fs/befs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"fs/befs.c\" -MD -c -o $@ $< +-include grub_probe-fs_befs.d + +grub_probe-fs_befs_be.o: fs/befs_be.c $(fs/befs_be.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"fs/befs_be.c\" -MD -c -o $@ $< +-include grub_probe-fs_befs_be.d + +grub_probe-fs_tar.o: fs/tar.c $(fs/tar.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"fs/tar.c\" -MD -c -o $@ $< +-include grub_probe-fs_tar.d + +grub_probe-__GRUB_CONTRIB__zfs_zfs.o: $(GRUB_CONTRIB)/zfs/zfs.c $($(GRUB_CONTRIB)/zfs/zfs.c_DEPENDENCIES) + $(CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/zfs/zfs.c\" -MD -c -o $@ $< +-include grub_probe-__GRUB_CONTRIB__zfs_zfs.d + +grub_probe-__GRUB_CONTRIB__zfs_zfs_lzjb.o: $(GRUB_CONTRIB)/zfs/zfs_lzjb.c $($(GRUB_CONTRIB)/zfs/zfs_lzjb.c_DEPENDENCIES) + $(CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/zfs/zfs_lzjb.c\" -MD -c -o $@ $< +-include grub_probe-__GRUB_CONTRIB__zfs_zfs_lzjb.d + +grub_probe-__GRUB_CONTRIB__zfs_zfs_sha256.o: $(GRUB_CONTRIB)/zfs/zfs_sha256.c $($(GRUB_CONTRIB)/zfs/zfs_sha256.c_DEPENDENCIES) + $(CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/zfs/zfs_sha256.c\" -MD -c -o $@ $< +-include grub_probe-__GRUB_CONTRIB__zfs_zfs_sha256.d + +grub_probe-__GRUB_CONTRIB__zfs_zfs_fletcher.o: $(GRUB_CONTRIB)/zfs/zfs_fletcher.c $($(GRUB_CONTRIB)/zfs/zfs_fletcher.c_DEPENDENCIES) + $(CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/zfs/zfs_fletcher.c\" -MD -c -o $@ $< +-include grub_probe-__GRUB_CONTRIB__zfs_zfs_fletcher.d + +grub_probe-partmap_msdos.o: partmap/msdos.c $(partmap/msdos.c_DEPENDENCIES) + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"partmap/msdos.c\" -MD -c -o $@ $< +-include grub_probe-partmap_msdos.d + +grub_probe-partmap_bsdlabel.o: partmap/bsdlabel.c $(partmap/bsdlabel.c_DEPENDENCIES) + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"partmap/bsdlabel.c\" -MD -c -o $@ $< +-include grub_probe-partmap_bsdlabel.d + +grub_probe-partmap_apple.o: partmap/apple.c $(partmap/apple.c_DEPENDENCIES) + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"partmap/apple.c\" -MD -c -o $@ $< +-include grub_probe-partmap_apple.d + +grub_probe-partmap_sun.o: partmap/sun.c $(partmap/sun.c_DEPENDENCIES) + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"partmap/sun.c\" -MD -c -o $@ $< +-include grub_probe-partmap_sun.d + +grub_probe-partmap_sunpc.o: partmap/sunpc.c $(partmap/sunpc.c_DEPENDENCIES) + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"partmap/sunpc.c\" -MD -c -o $@ $< +-include grub_probe-partmap_sunpc.d + +grub_probe-partmap_gpt.o: partmap/gpt.c $(partmap/gpt.c_DEPENDENCIES) + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"partmap/gpt.c\" -MD -c -o $@ $< +-include grub_probe-partmap_gpt.d + +grub_probe-kern_fs.o: kern/fs.c $(kern/fs.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"kern/fs.c\" -MD -c -o $@ $< +-include grub_probe-kern_fs.d + +grub_probe-kern_env.o: kern/env.c $(kern/env.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"kern/env.c\" -MD -c -o $@ $< +-include grub_probe-kern_env.d + +grub_probe-fs_fshelp.o: fs/fshelp.c $(fs/fshelp.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"fs/fshelp.c\" -MD -c -o $@ $< +-include grub_probe-fs_fshelp.d + +grub_probe-disk_raid.o: disk/raid.c $(disk/raid.c_DEPENDENCIES) + $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"disk/raid.c\" -MD -c -o $@ $< +-include grub_probe-disk_raid.d + +grub_probe-disk_raid5_recover.o: disk/raid5_recover.c $(disk/raid5_recover.c_DEPENDENCIES) + $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"disk/raid5_recover.c\" -MD -c -o $@ $< +-include grub_probe-disk_raid5_recover.d + +grub_probe-disk_raid6_recover.o: disk/raid6_recover.c $(disk/raid6_recover.c_DEPENDENCIES) + $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"disk/raid6_recover.c\" -MD -c -o $@ $< +-include grub_probe-disk_raid6_recover.d + +grub_probe-disk_mdraid_linux.o: disk/mdraid_linux.c $(disk/mdraid_linux.c_DEPENDENCIES) + $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"disk/mdraid_linux.c\" -MD -c -o $@ $< +-include grub_probe-disk_mdraid_linux.d + +grub_probe-disk_lvm.o: disk/lvm.c $(disk/lvm.c_DEPENDENCIES) + $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"disk/lvm.c\" -MD -c -o $@ $< +-include grub_probe-disk_lvm.d + +grub_probe-grub_probe_init.o: grub_probe_init.c $(grub_probe_init.c_DEPENDENCIES) + $(CC) -I. -I$(srcdir)/. $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_probe_CFLAGS) -DGRUB_FILE=\"grub_probe_init.c\" -MD -c -o $@ $< +-include grub_probe-grub_probe_init.d + +grub_probe_CFLAGS = -I$(GRUB_CONTRIB)/zfs/include + +ifeq ($(enable_grub_fstest), yes) +bin_UTILITIES += grub-fstest +endif + +# For grub-fstest. +util/grub-fstest.c_DEPENDENCIES = grub_fstest_init.h +grub_fstest_SOURCES = gnulib/progname.c util/grub-fstest.c kern/emu/hostfs.c \ + util/misc.c kern/emu/misc.c kern/emu/mm.c \ + kern/file.c kern/device.c kern/disk.c kern/err.c kern/misc.c \ + disk/host.c disk/loopback.c kern/list.c kern/command.c \ + lib/arg.c commands/extcmd.c normal/datetime.c normal/misc.c \ + lib/hexdump.c lib/crc.c commands/blocklist.c commands/ls.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/nilfs2.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 \ + \ + $(GRUB_CONTRIB)/zfs/zfs.c \ + $(GRUB_CONTRIB)/zfs/zfs_lzjb.c \ + $(GRUB_CONTRIB)/zfs/zfs_sha256.c \ + $(GRUB_CONTRIB)/zfs/zfs_fletcher.c \ + \ + kern/partition.c partmap/msdos.c partmap/bsdlabel.c \ + partmap/apple.c partmap/sun.c partmap/sunpc.c partmap/gpt.c \ + kern/fs.c kern/env.c fs/fshelp.c disk/raid.c \ + disk/raid5_recover.c disk/raid6_recover.c \ + disk/mdraid_linux.c disk/dmraid_nvidia.c disk/lvm.c \ + grub_fstest_init.c + +clean-utility-grub-fstest.1: + rm -f grub-fstest$(EXEEXT) grub_fstest-gnulib_progname.o grub_fstest-util_grub_fstest.o grub_fstest-kern_emu_hostfs.o grub_fstest-util_misc.o grub_fstest-kern_emu_misc.o grub_fstest-kern_emu_mm.o grub_fstest-kern_file.o grub_fstest-kern_device.o grub_fstest-kern_disk.o grub_fstest-kern_err.o grub_fstest-kern_misc.o grub_fstest-disk_host.o grub_fstest-disk_loopback.o grub_fstest-kern_list.o grub_fstest-kern_command.o grub_fstest-lib_arg.o grub_fstest-commands_extcmd.o grub_fstest-normal_datetime.o grub_fstest-normal_misc.o grub_fstest-lib_hexdump.o grub_fstest-lib_crc.o grub_fstest-commands_blocklist.o grub_fstest-commands_ls.o grub_fstest-fs_affs.o grub_fstest-fs_cpio.o grub_fstest-fs_fat.o grub_fstest-fs_ext2.o grub_fstest-fs_hfs.o grub_fstest-fs_hfsplus.o grub_fstest-fs_iso9660.o grub_fstest-fs_udf.o grub_fstest-fs_jfs.o grub_fstest-fs_minix.o grub_fstest-fs_nilfs2.o grub_fstest-fs_ntfs.o grub_fstest-fs_ntfscomp.o grub_fstest-fs_reiserfs.o grub_fstest-fs_sfs.o grub_fstest-fs_ufs.o grub_fstest-fs_ufs2.o grub_fstest-fs_xfs.o grub_fstest-fs_afs.o grub_fstest-fs_afs_be.o grub_fstest-fs_befs.o grub_fstest-fs_befs_be.o grub_fstest-fs_tar.o grub_fstest-__GRUB_CONTRIB__zfs_zfs.o grub_fstest-__GRUB_CONTRIB__zfs_zfs_lzjb.o grub_fstest-__GRUB_CONTRIB__zfs_zfs_sha256.o grub_fstest-__GRUB_CONTRIB__zfs_zfs_fletcher.o grub_fstest-kern_partition.o grub_fstest-partmap_msdos.o grub_fstest-partmap_bsdlabel.o grub_fstest-partmap_apple.o grub_fstest-partmap_sun.o grub_fstest-partmap_sunpc.o grub_fstest-partmap_gpt.o grub_fstest-kern_fs.o grub_fstest-kern_env.o grub_fstest-fs_fshelp.o grub_fstest-disk_raid.o grub_fstest-disk_raid5_recover.o grub_fstest-disk_raid6_recover.o grub_fstest-disk_mdraid_linux.o grub_fstest-disk_dmraid_nvidia.o grub_fstest-disk_lvm.o grub_fstest-grub_fstest_init.o + +CLEAN_UTILITY_TARGETS += clean-utility-grub-fstest.1 + +mostlyclean-utility-grub-fstest.1: + rm -f grub_fstest-gnulib_progname.d grub_fstest-util_grub_fstest.d grub_fstest-kern_emu_hostfs.d grub_fstest-util_misc.d grub_fstest-kern_emu_misc.d grub_fstest-kern_emu_mm.d grub_fstest-kern_file.d grub_fstest-kern_device.d grub_fstest-kern_disk.d grub_fstest-kern_err.d grub_fstest-kern_misc.d grub_fstest-disk_host.d grub_fstest-disk_loopback.d grub_fstest-kern_list.d grub_fstest-kern_command.d grub_fstest-lib_arg.d grub_fstest-commands_extcmd.d grub_fstest-normal_datetime.d grub_fstest-normal_misc.d grub_fstest-lib_hexdump.d grub_fstest-lib_crc.d grub_fstest-commands_blocklist.d grub_fstest-commands_ls.d grub_fstest-fs_affs.d grub_fstest-fs_cpio.d grub_fstest-fs_fat.d grub_fstest-fs_ext2.d grub_fstest-fs_hfs.d grub_fstest-fs_hfsplus.d grub_fstest-fs_iso9660.d grub_fstest-fs_udf.d grub_fstest-fs_jfs.d grub_fstest-fs_minix.d grub_fstest-fs_nilfs2.d grub_fstest-fs_ntfs.d grub_fstest-fs_ntfscomp.d grub_fstest-fs_reiserfs.d grub_fstest-fs_sfs.d grub_fstest-fs_ufs.d grub_fstest-fs_ufs2.d grub_fstest-fs_xfs.d grub_fstest-fs_afs.d grub_fstest-fs_afs_be.d grub_fstest-fs_befs.d grub_fstest-fs_befs_be.d grub_fstest-fs_tar.d grub_fstest-__GRUB_CONTRIB__zfs_zfs.d grub_fstest-__GRUB_CONTRIB__zfs_zfs_lzjb.d grub_fstest-__GRUB_CONTRIB__zfs_zfs_sha256.d grub_fstest-__GRUB_CONTRIB__zfs_zfs_fletcher.d grub_fstest-kern_partition.d grub_fstest-partmap_msdos.d grub_fstest-partmap_bsdlabel.d grub_fstest-partmap_apple.d grub_fstest-partmap_sun.d grub_fstest-partmap_sunpc.d grub_fstest-partmap_gpt.d grub_fstest-kern_fs.d grub_fstest-kern_env.d grub_fstest-fs_fshelp.d grub_fstest-disk_raid.d grub_fstest-disk_raid5_recover.d grub_fstest-disk_raid6_recover.d grub_fstest-disk_mdraid_linux.d grub_fstest-disk_dmraid_nvidia.d grub_fstest-disk_lvm.d grub_fstest-grub_fstest_init.d + +MOSTLYCLEAN_UTILITY_TARGETS += mostlyclean-utility-grub-fstest.1 + +grub_fstest_OBJECTS += grub_fstest-gnulib_progname.o grub_fstest-util_grub_fstest.o grub_fstest-kern_emu_hostfs.o grub_fstest-util_misc.o grub_fstest-kern_emu_misc.o grub_fstest-kern_emu_mm.o grub_fstest-kern_file.o grub_fstest-kern_device.o grub_fstest-kern_disk.o grub_fstest-kern_err.o grub_fstest-kern_misc.o grub_fstest-disk_host.o grub_fstest-disk_loopback.o grub_fstest-kern_list.o grub_fstest-kern_command.o grub_fstest-lib_arg.o grub_fstest-commands_extcmd.o grub_fstest-normal_datetime.o grub_fstest-normal_misc.o grub_fstest-lib_hexdump.o grub_fstest-lib_crc.o grub_fstest-commands_blocklist.o grub_fstest-commands_ls.o grub_fstest-fs_affs.o grub_fstest-fs_cpio.o grub_fstest-fs_fat.o grub_fstest-fs_ext2.o grub_fstest-fs_hfs.o grub_fstest-fs_hfsplus.o grub_fstest-fs_iso9660.o grub_fstest-fs_udf.o grub_fstest-fs_jfs.o grub_fstest-fs_minix.o grub_fstest-fs_nilfs2.o grub_fstest-fs_ntfs.o grub_fstest-fs_ntfscomp.o grub_fstest-fs_reiserfs.o grub_fstest-fs_sfs.o grub_fstest-fs_ufs.o grub_fstest-fs_ufs2.o grub_fstest-fs_xfs.o grub_fstest-fs_afs.o grub_fstest-fs_afs_be.o grub_fstest-fs_befs.o grub_fstest-fs_befs_be.o grub_fstest-fs_tar.o grub_fstest-__GRUB_CONTRIB__zfs_zfs.o grub_fstest-__GRUB_CONTRIB__zfs_zfs_lzjb.o grub_fstest-__GRUB_CONTRIB__zfs_zfs_sha256.o grub_fstest-__GRUB_CONTRIB__zfs_zfs_fletcher.o grub_fstest-kern_partition.o grub_fstest-partmap_msdos.o grub_fstest-partmap_bsdlabel.o grub_fstest-partmap_apple.o grub_fstest-partmap_sun.o grub_fstest-partmap_sunpc.o grub_fstest-partmap_gpt.o grub_fstest-kern_fs.o grub_fstest-kern_env.o grub_fstest-fs_fshelp.o grub_fstest-disk_raid.o grub_fstest-disk_raid5_recover.o grub_fstest-disk_raid6_recover.o grub_fstest-disk_mdraid_linux.o grub_fstest-disk_dmraid_nvidia.o grub_fstest-disk_lvm.o grub_fstest-grub_fstest_init.o + +grub_fstest-gnulib_progname.o: gnulib/progname.c $(gnulib/progname.c_DEPENDENCIES) + $(CC) -Ignulib -I$(srcdir)/gnulib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"gnulib/progname.c\" -MD -c -o $@ $< +-include grub_fstest-gnulib_progname.d + +grub_fstest-util_grub_fstest.o: util/grub-fstest.c $(util/grub-fstest.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"util/grub-fstest.c\" -MD -c -o $@ $< +-include grub_fstest-util_grub_fstest.d + +grub_fstest-kern_emu_hostfs.o: kern/emu/hostfs.c $(kern/emu/hostfs.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"kern/emu/hostfs.c\" -MD -c -o $@ $< +-include grub_fstest-kern_emu_hostfs.d + +grub_fstest-util_misc.o: util/misc.c $(util/misc.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"util/misc.c\" -MD -c -o $@ $< +-include grub_fstest-util_misc.d + +grub_fstest-kern_emu_misc.o: kern/emu/misc.c $(kern/emu/misc.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"kern/emu/misc.c\" -MD -c -o $@ $< +-include grub_fstest-kern_emu_misc.d + +grub_fstest-kern_emu_mm.o: kern/emu/mm.c $(kern/emu/mm.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"kern/emu/mm.c\" -MD -c -o $@ $< +-include grub_fstest-kern_emu_mm.d + +grub_fstest-kern_file.o: kern/file.c $(kern/file.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"kern/file.c\" -MD -c -o $@ $< +-include grub_fstest-kern_file.d + +grub_fstest-kern_device.o: kern/device.c $(kern/device.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"kern/device.c\" -MD -c -o $@ $< +-include grub_fstest-kern_device.d + +grub_fstest-kern_disk.o: kern/disk.c $(kern/disk.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"kern/disk.c\" -MD -c -o $@ $< +-include grub_fstest-kern_disk.d + +grub_fstest-kern_err.o: kern/err.c $(kern/err.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"kern/err.c\" -MD -c -o $@ $< +-include grub_fstest-kern_err.d + +grub_fstest-kern_misc.o: kern/misc.c $(kern/misc.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"kern/misc.c\" -MD -c -o $@ $< +-include grub_fstest-kern_misc.d + +grub_fstest-disk_host.o: disk/host.c $(disk/host.c_DEPENDENCIES) + $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"disk/host.c\" -MD -c -o $@ $< +-include grub_fstest-disk_host.d + +grub_fstest-disk_loopback.o: disk/loopback.c $(disk/loopback.c_DEPENDENCIES) + $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"disk/loopback.c\" -MD -c -o $@ $< +-include grub_fstest-disk_loopback.d + +grub_fstest-kern_list.o: kern/list.c $(kern/list.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"kern/list.c\" -MD -c -o $@ $< +-include grub_fstest-kern_list.d + +grub_fstest-kern_command.o: kern/command.c $(kern/command.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"kern/command.c\" -MD -c -o $@ $< +-include grub_fstest-kern_command.d + +grub_fstest-lib_arg.o: lib/arg.c $(lib/arg.c_DEPENDENCIES) + $(CC) -Ilib -I$(srcdir)/lib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"lib/arg.c\" -MD -c -o $@ $< +-include grub_fstest-lib_arg.d + +grub_fstest-commands_extcmd.o: commands/extcmd.c $(commands/extcmd.c_DEPENDENCIES) + $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"commands/extcmd.c\" -MD -c -o $@ $< +-include grub_fstest-commands_extcmd.d + +grub_fstest-normal_datetime.o: normal/datetime.c $(normal/datetime.c_DEPENDENCIES) + $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"normal/datetime.c\" -MD -c -o $@ $< +-include grub_fstest-normal_datetime.d + +grub_fstest-normal_misc.o: normal/misc.c $(normal/misc.c_DEPENDENCIES) + $(CC) -Inormal -I$(srcdir)/normal $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"normal/misc.c\" -MD -c -o $@ $< +-include grub_fstest-normal_misc.d + +grub_fstest-lib_hexdump.o: lib/hexdump.c $(lib/hexdump.c_DEPENDENCIES) + $(CC) -Ilib -I$(srcdir)/lib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"lib/hexdump.c\" -MD -c -o $@ $< +-include grub_fstest-lib_hexdump.d + +grub_fstest-lib_crc.o: lib/crc.c $(lib/crc.c_DEPENDENCIES) + $(CC) -Ilib -I$(srcdir)/lib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"lib/crc.c\" -MD -c -o $@ $< +-include grub_fstest-lib_crc.d + +grub_fstest-commands_blocklist.o: commands/blocklist.c $(commands/blocklist.c_DEPENDENCIES) + $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"commands/blocklist.c\" -MD -c -o $@ $< +-include grub_fstest-commands_blocklist.d + +grub_fstest-commands_ls.o: commands/ls.c $(commands/ls.c_DEPENDENCIES) + $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"commands/ls.c\" -MD -c -o $@ $< +-include grub_fstest-commands_ls.d + +grub_fstest-fs_affs.o: fs/affs.c $(fs/affs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"fs/affs.c\" -MD -c -o $@ $< +-include grub_fstest-fs_affs.d + +grub_fstest-fs_cpio.o: fs/cpio.c $(fs/cpio.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"fs/cpio.c\" -MD -c -o $@ $< +-include grub_fstest-fs_cpio.d + +grub_fstest-fs_fat.o: fs/fat.c $(fs/fat.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"fs/fat.c\" -MD -c -o $@ $< +-include grub_fstest-fs_fat.d + +grub_fstest-fs_ext2.o: fs/ext2.c $(fs/ext2.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"fs/ext2.c\" -MD -c -o $@ $< +-include grub_fstest-fs_ext2.d + +grub_fstest-fs_hfs.o: fs/hfs.c $(fs/hfs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"fs/hfs.c\" -MD -c -o $@ $< +-include grub_fstest-fs_hfs.d + +grub_fstest-fs_hfsplus.o: fs/hfsplus.c $(fs/hfsplus.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"fs/hfsplus.c\" -MD -c -o $@ $< +-include grub_fstest-fs_hfsplus.d + +grub_fstest-fs_iso9660.o: fs/iso9660.c $(fs/iso9660.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"fs/iso9660.c\" -MD -c -o $@ $< +-include grub_fstest-fs_iso9660.d + +grub_fstest-fs_udf.o: fs/udf.c $(fs/udf.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"fs/udf.c\" -MD -c -o $@ $< +-include grub_fstest-fs_udf.d + +grub_fstest-fs_jfs.o: fs/jfs.c $(fs/jfs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"fs/jfs.c\" -MD -c -o $@ $< +-include grub_fstest-fs_jfs.d + +grub_fstest-fs_minix.o: fs/minix.c $(fs/minix.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"fs/minix.c\" -MD -c -o $@ $< +-include grub_fstest-fs_minix.d + +grub_fstest-fs_nilfs2.o: fs/nilfs2.c $(fs/nilfs2.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"fs/nilfs2.c\" -MD -c -o $@ $< +-include grub_fstest-fs_nilfs2.d + +grub_fstest-fs_ntfs.o: fs/ntfs.c $(fs/ntfs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"fs/ntfs.c\" -MD -c -o $@ $< +-include grub_fstest-fs_ntfs.d + +grub_fstest-fs_ntfscomp.o: fs/ntfscomp.c $(fs/ntfscomp.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"fs/ntfscomp.c\" -MD -c -o $@ $< +-include grub_fstest-fs_ntfscomp.d + +grub_fstest-fs_reiserfs.o: fs/reiserfs.c $(fs/reiserfs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"fs/reiserfs.c\" -MD -c -o $@ $< +-include grub_fstest-fs_reiserfs.d + +grub_fstest-fs_sfs.o: fs/sfs.c $(fs/sfs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"fs/sfs.c\" -MD -c -o $@ $< +-include grub_fstest-fs_sfs.d + +grub_fstest-fs_ufs.o: fs/ufs.c $(fs/ufs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"fs/ufs.c\" -MD -c -o $@ $< +-include grub_fstest-fs_ufs.d + +grub_fstest-fs_ufs2.o: fs/ufs2.c $(fs/ufs2.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"fs/ufs2.c\" -MD -c -o $@ $< +-include grub_fstest-fs_ufs2.d + +grub_fstest-fs_xfs.o: fs/xfs.c $(fs/xfs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"fs/xfs.c\" -MD -c -o $@ $< +-include grub_fstest-fs_xfs.d + +grub_fstest-fs_afs.o: fs/afs.c $(fs/afs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"fs/afs.c\" -MD -c -o $@ $< +-include grub_fstest-fs_afs.d + +grub_fstest-fs_afs_be.o: fs/afs_be.c $(fs/afs_be.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"fs/afs_be.c\" -MD -c -o $@ $< +-include grub_fstest-fs_afs_be.d + +grub_fstest-fs_befs.o: fs/befs.c $(fs/befs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"fs/befs.c\" -MD -c -o $@ $< +-include grub_fstest-fs_befs.d + +grub_fstest-fs_befs_be.o: fs/befs_be.c $(fs/befs_be.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"fs/befs_be.c\" -MD -c -o $@ $< +-include grub_fstest-fs_befs_be.d + +grub_fstest-fs_tar.o: fs/tar.c $(fs/tar.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"fs/tar.c\" -MD -c -o $@ $< +-include grub_fstest-fs_tar.d + +grub_fstest-__GRUB_CONTRIB__zfs_zfs.o: $(GRUB_CONTRIB)/zfs/zfs.c $($(GRUB_CONTRIB)/zfs/zfs.c_DEPENDENCIES) + $(CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/zfs/zfs.c\" -MD -c -o $@ $< +-include grub_fstest-__GRUB_CONTRIB__zfs_zfs.d + +grub_fstest-__GRUB_CONTRIB__zfs_zfs_lzjb.o: $(GRUB_CONTRIB)/zfs/zfs_lzjb.c $($(GRUB_CONTRIB)/zfs/zfs_lzjb.c_DEPENDENCIES) + $(CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/zfs/zfs_lzjb.c\" -MD -c -o $@ $< +-include grub_fstest-__GRUB_CONTRIB__zfs_zfs_lzjb.d + +grub_fstest-__GRUB_CONTRIB__zfs_zfs_sha256.o: $(GRUB_CONTRIB)/zfs/zfs_sha256.c $($(GRUB_CONTRIB)/zfs/zfs_sha256.c_DEPENDENCIES) + $(CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/zfs/zfs_sha256.c\" -MD -c -o $@ $< +-include grub_fstest-__GRUB_CONTRIB__zfs_zfs_sha256.d + +grub_fstest-__GRUB_CONTRIB__zfs_zfs_fletcher.o: $(GRUB_CONTRIB)/zfs/zfs_fletcher.c $($(GRUB_CONTRIB)/zfs/zfs_fletcher.c_DEPENDENCIES) + $(CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/zfs/zfs_fletcher.c\" -MD -c -o $@ $< +-include grub_fstest-__GRUB_CONTRIB__zfs_zfs_fletcher.d + +grub_fstest-kern_partition.o: kern/partition.c $(kern/partition.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"kern/partition.c\" -MD -c -o $@ $< +-include grub_fstest-kern_partition.d + +grub_fstest-partmap_msdos.o: partmap/msdos.c $(partmap/msdos.c_DEPENDENCIES) + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"partmap/msdos.c\" -MD -c -o $@ $< +-include grub_fstest-partmap_msdos.d + +grub_fstest-partmap_bsdlabel.o: partmap/bsdlabel.c $(partmap/bsdlabel.c_DEPENDENCIES) + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"partmap/bsdlabel.c\" -MD -c -o $@ $< +-include grub_fstest-partmap_bsdlabel.d + +grub_fstest-partmap_apple.o: partmap/apple.c $(partmap/apple.c_DEPENDENCIES) + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"partmap/apple.c\" -MD -c -o $@ $< +-include grub_fstest-partmap_apple.d + +grub_fstest-partmap_sun.o: partmap/sun.c $(partmap/sun.c_DEPENDENCIES) + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"partmap/sun.c\" -MD -c -o $@ $< +-include grub_fstest-partmap_sun.d + +grub_fstest-partmap_sunpc.o: partmap/sunpc.c $(partmap/sunpc.c_DEPENDENCIES) + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"partmap/sunpc.c\" -MD -c -o $@ $< +-include grub_fstest-partmap_sunpc.d + +grub_fstest-partmap_gpt.o: partmap/gpt.c $(partmap/gpt.c_DEPENDENCIES) + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"partmap/gpt.c\" -MD -c -o $@ $< +-include grub_fstest-partmap_gpt.d + +grub_fstest-kern_fs.o: kern/fs.c $(kern/fs.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"kern/fs.c\" -MD -c -o $@ $< +-include grub_fstest-kern_fs.d + +grub_fstest-kern_env.o: kern/env.c $(kern/env.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"kern/env.c\" -MD -c -o $@ $< +-include grub_fstest-kern_env.d + +grub_fstest-fs_fshelp.o: fs/fshelp.c $(fs/fshelp.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"fs/fshelp.c\" -MD -c -o $@ $< +-include grub_fstest-fs_fshelp.d + +grub_fstest-disk_raid.o: disk/raid.c $(disk/raid.c_DEPENDENCIES) + $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"disk/raid.c\" -MD -c -o $@ $< +-include grub_fstest-disk_raid.d + +grub_fstest-disk_raid5_recover.o: disk/raid5_recover.c $(disk/raid5_recover.c_DEPENDENCIES) + $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"disk/raid5_recover.c\" -MD -c -o $@ $< +-include grub_fstest-disk_raid5_recover.d + +grub_fstest-disk_raid6_recover.o: disk/raid6_recover.c $(disk/raid6_recover.c_DEPENDENCIES) + $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"disk/raid6_recover.c\" -MD -c -o $@ $< +-include grub_fstest-disk_raid6_recover.d + +grub_fstest-disk_mdraid_linux.o: disk/mdraid_linux.c $(disk/mdraid_linux.c_DEPENDENCIES) + $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"disk/mdraid_linux.c\" -MD -c -o $@ $< +-include grub_fstest-disk_mdraid_linux.d + +grub_fstest-disk_dmraid_nvidia.o: disk/dmraid_nvidia.c $(disk/dmraid_nvidia.c_DEPENDENCIES) + $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"disk/dmraid_nvidia.c\" -MD -c -o $@ $< +-include grub_fstest-disk_dmraid_nvidia.d + +grub_fstest-disk_lvm.o: disk/lvm.c $(disk/lvm.c_DEPENDENCIES) + $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"disk/lvm.c\" -MD -c -o $@ $< +-include grub_fstest-disk_lvm.d + +grub_fstest-grub_fstest_init.o: grub_fstest_init.c $(grub_fstest_init.c_DEPENDENCIES) + $(CC) -I. -I$(srcdir)/. $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_fstest_CFLAGS) -DGRUB_FILE=\"grub_fstest_init.c\" -MD -c -o $@ $< +-include grub_fstest-grub_fstest_init.d + + +# For grub-mkfont. +ifeq ($(enable_grub_mkfont), yes) +bin_UTILITIES += grub-mkfont +grub_mkfont_SOURCES = gnulib/progname.c util/grub-mkfont.c util/misc.c \ + unidata.c kern/emu/misc.c + +clean-utility-grub-mkfont.1: + rm -f grub-mkfont$(EXEEXT) grub_mkfont-gnulib_progname.o grub_mkfont-util_grub_mkfont.o grub_mkfont-util_misc.o grub_mkfont-unidata.o grub_mkfont-kern_emu_misc.o + +CLEAN_UTILITY_TARGETS += clean-utility-grub-mkfont.1 + +mostlyclean-utility-grub-mkfont.1: + rm -f grub_mkfont-gnulib_progname.d grub_mkfont-util_grub_mkfont.d grub_mkfont-util_misc.d grub_mkfont-unidata.d grub_mkfont-kern_emu_misc.d + +MOSTLYCLEAN_UTILITY_TARGETS += mostlyclean-utility-grub-mkfont.1 + +grub_mkfont_OBJECTS += grub_mkfont-gnulib_progname.o grub_mkfont-util_grub_mkfont.o grub_mkfont-util_misc.o grub_mkfont-unidata.o grub_mkfont-kern_emu_misc.o + +grub_mkfont-gnulib_progname.o: gnulib/progname.c $(gnulib/progname.c_DEPENDENCIES) + $(CC) -Ignulib -I$(srcdir)/gnulib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkfont_CFLAGS) -DGRUB_FILE=\"gnulib/progname.c\" -MD -c -o $@ $< +-include grub_mkfont-gnulib_progname.d + +grub_mkfont-util_grub_mkfont.o: util/grub-mkfont.c $(util/grub-mkfont.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkfont_CFLAGS) -DGRUB_FILE=\"util/grub-mkfont.c\" -MD -c -o $@ $< +-include grub_mkfont-util_grub_mkfont.d + +grub_mkfont-util_misc.o: util/misc.c $(util/misc.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkfont_CFLAGS) -DGRUB_FILE=\"util/misc.c\" -MD -c -o $@ $< +-include grub_mkfont-util_misc.d + +grub_mkfont-unidata.o: unidata.c $(unidata.c_DEPENDENCIES) + $(CC) -I. -I$(srcdir)/. $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkfont_CFLAGS) -DGRUB_FILE=\"unidata.c\" -MD -c -o $@ $< +-include grub_mkfont-unidata.d + +grub_mkfont-kern_emu_misc.o: kern/emu/misc.c $(kern/emu/misc.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkfont_CFLAGS) -DGRUB_FILE=\"kern/emu/misc.c\" -MD -c -o $@ $< +-include grub_mkfont-kern_emu_misc.d + +grub_mkfont_CFLAGS = $(freetype_cflags) +grub_mkfont_LDFLAGS = $(freetype_libs) +endif + +# For grub-mkrelpath. +bin_UTILITIES += grub-mkrelpath +grub_mkrelpath_SOURCES = gnulib/progname.c util/grub-mkrelpath.c util/misc.c kern/emu/misc.c + +clean-utility-grub-mkrelpath.1: + rm -f grub-mkrelpath$(EXEEXT) grub_mkrelpath-gnulib_progname.o grub_mkrelpath-util_grub_mkrelpath.o grub_mkrelpath-util_misc.o grub_mkrelpath-kern_emu_misc.o + +CLEAN_UTILITY_TARGETS += clean-utility-grub-mkrelpath.1 + +mostlyclean-utility-grub-mkrelpath.1: + rm -f grub_mkrelpath-gnulib_progname.d grub_mkrelpath-util_grub_mkrelpath.d grub_mkrelpath-util_misc.d grub_mkrelpath-kern_emu_misc.d + +MOSTLYCLEAN_UTILITY_TARGETS += mostlyclean-utility-grub-mkrelpath.1 + +grub_mkrelpath_OBJECTS += grub_mkrelpath-gnulib_progname.o grub_mkrelpath-util_grub_mkrelpath.o grub_mkrelpath-util_misc.o grub_mkrelpath-kern_emu_misc.o + +grub_mkrelpath-gnulib_progname.o: gnulib/progname.c $(gnulib/progname.c_DEPENDENCIES) + $(CC) -Ignulib -I$(srcdir)/gnulib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkrelpath_CFLAGS) -DGRUB_FILE=\"gnulib/progname.c\" -MD -c -o $@ $< +-include grub_mkrelpath-gnulib_progname.d + +grub_mkrelpath-util_grub_mkrelpath.o: util/grub-mkrelpath.c $(util/grub-mkrelpath.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkrelpath_CFLAGS) -DGRUB_FILE=\"util/grub-mkrelpath.c\" -MD -c -o $@ $< +-include grub_mkrelpath-util_grub_mkrelpath.d + +grub_mkrelpath-util_misc.o: util/misc.c $(util/misc.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkrelpath_CFLAGS) -DGRUB_FILE=\"util/misc.c\" -MD -c -o $@ $< +-include grub_mkrelpath-util_misc.d + +grub_mkrelpath-kern_emu_misc.o: kern/emu/misc.c $(kern/emu/misc.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkrelpath_CFLAGS) -DGRUB_FILE=\"kern/emu/misc.c\" -MD -c -o $@ $< +-include grub_mkrelpath-kern_emu_misc.d + + +bin_UTILITIES += grub-bin2h +grub_bin2h_SOURCES = gnulib/progname.c util/bin2h.c + +clean-utility-grub-bin2h.1: + rm -f grub-bin2h$(EXEEXT) grub_bin2h-gnulib_progname.o grub_bin2h-util_bin2h.o + +CLEAN_UTILITY_TARGETS += clean-utility-grub-bin2h.1 + +mostlyclean-utility-grub-bin2h.1: + rm -f grub_bin2h-gnulib_progname.d grub_bin2h-util_bin2h.d + +MOSTLYCLEAN_UTILITY_TARGETS += mostlyclean-utility-grub-bin2h.1 + +grub_bin2h_OBJECTS += grub_bin2h-gnulib_progname.o grub_bin2h-util_bin2h.o + +grub_bin2h-gnulib_progname.o: gnulib/progname.c $(gnulib/progname.c_DEPENDENCIES) + $(CC) -Ignulib -I$(srcdir)/gnulib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_bin2h_CFLAGS) -DGRUB_FILE=\"gnulib/progname.c\" -MD -c -o $@ $< +-include grub_bin2h-gnulib_progname.d + +grub_bin2h-util_bin2h.o: util/bin2h.c $(util/bin2h.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_bin2h_CFLAGS) -DGRUB_FILE=\"util/bin2h.c\" -MD -c -o $@ $< +-include grub_bin2h-util_bin2h.d + + +# For the lexer. +grub_script.yy.c grub_script.yy.h: script/yylex.l + $(LEX) -o grub_script.yy.c --header-file=grub_script.yy.h $(srcdir)/script/yylex.l +DISTCLEANFILES += grub_script.yy.c grub_script.yy.h + +# For grub-script-check. +bin_UTILITIES += grub-script-check +grub_script_check_SOURCES = gnulib/progname.c gnulib/getdelim.c gnulib/getline.c \ + util/grub-script-check.c util/misc.c kern/emu/misc.c kern/emu/mm.c \ + script/main.c script/script.c script/function.c script/lexer.c \ + kern/err.c kern/list.c \ + kern/misc.c kern/env.c grub_script.tab.c \ + grub_script.yy.c + +clean-utility-grub-script-check.1: + rm -f grub-script-check$(EXEEXT) grub_script_check-gnulib_progname.o grub_script_check-gnulib_getdelim.o grub_script_check-gnulib_getline.o grub_script_check-util_grub_script_check.o grub_script_check-util_misc.o grub_script_check-kern_emu_misc.o grub_script_check-kern_emu_mm.o grub_script_check-script_main.o grub_script_check-script_script.o grub_script_check-script_function.o grub_script_check-script_lexer.o grub_script_check-kern_err.o grub_script_check-kern_list.o grub_script_check-kern_misc.o grub_script_check-kern_env.o grub_script_check-grub_script_tab.o grub_script_check-grub_script_yy.o + +CLEAN_UTILITY_TARGETS += clean-utility-grub-script-check.1 + +mostlyclean-utility-grub-script-check.1: + rm -f grub_script_check-gnulib_progname.d grub_script_check-gnulib_getdelim.d grub_script_check-gnulib_getline.d grub_script_check-util_grub_script_check.d grub_script_check-util_misc.d grub_script_check-kern_emu_misc.d grub_script_check-kern_emu_mm.d grub_script_check-script_main.d grub_script_check-script_script.d grub_script_check-script_function.d grub_script_check-script_lexer.d grub_script_check-kern_err.d grub_script_check-kern_list.d grub_script_check-kern_misc.d grub_script_check-kern_env.d grub_script_check-grub_script_tab.d grub_script_check-grub_script_yy.d + +MOSTLYCLEAN_UTILITY_TARGETS += mostlyclean-utility-grub-script-check.1 + +grub_script_check_OBJECTS += grub_script_check-gnulib_progname.o grub_script_check-gnulib_getdelim.o grub_script_check-gnulib_getline.o grub_script_check-util_grub_script_check.o grub_script_check-util_misc.o grub_script_check-kern_emu_misc.o grub_script_check-kern_emu_mm.o grub_script_check-script_main.o grub_script_check-script_script.o grub_script_check-script_function.o grub_script_check-script_lexer.o grub_script_check-kern_err.o grub_script_check-kern_list.o grub_script_check-kern_misc.o grub_script_check-kern_env.o grub_script_check-grub_script_tab.o grub_script_check-grub_script_yy.o + +grub_script_check-gnulib_progname.o: gnulib/progname.c $(gnulib/progname.c_DEPENDENCIES) + $(CC) -Ignulib -I$(srcdir)/gnulib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_script_check_CFLAGS) -DGRUB_FILE=\"gnulib/progname.c\" -MD -c -o $@ $< +-include grub_script_check-gnulib_progname.d + +grub_script_check-gnulib_getdelim.o: gnulib/getdelim.c $(gnulib/getdelim.c_DEPENDENCIES) + $(CC) -Ignulib -I$(srcdir)/gnulib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_script_check_CFLAGS) -DGRUB_FILE=\"gnulib/getdelim.c\" -MD -c -o $@ $< +-include grub_script_check-gnulib_getdelim.d + +grub_script_check-gnulib_getline.o: gnulib/getline.c $(gnulib/getline.c_DEPENDENCIES) + $(CC) -Ignulib -I$(srcdir)/gnulib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_script_check_CFLAGS) -DGRUB_FILE=\"gnulib/getline.c\" -MD -c -o $@ $< +-include grub_script_check-gnulib_getline.d + +grub_script_check-util_grub_script_check.o: util/grub-script-check.c $(util/grub-script-check.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_script_check_CFLAGS) -DGRUB_FILE=\"util/grub-script-check.c\" -MD -c -o $@ $< +-include grub_script_check-util_grub_script_check.d + +grub_script_check-util_misc.o: util/misc.c $(util/misc.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_script_check_CFLAGS) -DGRUB_FILE=\"util/misc.c\" -MD -c -o $@ $< +-include grub_script_check-util_misc.d + +grub_script_check-kern_emu_misc.o: kern/emu/misc.c $(kern/emu/misc.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_script_check_CFLAGS) -DGRUB_FILE=\"kern/emu/misc.c\" -MD -c -o $@ $< +-include grub_script_check-kern_emu_misc.d + +grub_script_check-kern_emu_mm.o: kern/emu/mm.c $(kern/emu/mm.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_script_check_CFLAGS) -DGRUB_FILE=\"kern/emu/mm.c\" -MD -c -o $@ $< +-include grub_script_check-kern_emu_mm.d + +grub_script_check-script_main.o: script/main.c $(script/main.c_DEPENDENCIES) + $(CC) -Iscript -I$(srcdir)/script $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_script_check_CFLAGS) -DGRUB_FILE=\"script/main.c\" -MD -c -o $@ $< +-include grub_script_check-script_main.d + +grub_script_check-script_script.o: script/script.c $(script/script.c_DEPENDENCIES) + $(CC) -Iscript -I$(srcdir)/script $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_script_check_CFLAGS) -DGRUB_FILE=\"script/script.c\" -MD -c -o $@ $< +-include grub_script_check-script_script.d + +grub_script_check-script_function.o: script/function.c $(script/function.c_DEPENDENCIES) + $(CC) -Iscript -I$(srcdir)/script $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_script_check_CFLAGS) -DGRUB_FILE=\"script/function.c\" -MD -c -o $@ $< +-include grub_script_check-script_function.d + +grub_script_check-script_lexer.o: script/lexer.c $(script/lexer.c_DEPENDENCIES) + $(CC) -Iscript -I$(srcdir)/script $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_script_check_CFLAGS) -DGRUB_FILE=\"script/lexer.c\" -MD -c -o $@ $< +-include grub_script_check-script_lexer.d + +grub_script_check-kern_err.o: kern/err.c $(kern/err.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_script_check_CFLAGS) -DGRUB_FILE=\"kern/err.c\" -MD -c -o $@ $< +-include grub_script_check-kern_err.d + +grub_script_check-kern_list.o: kern/list.c $(kern/list.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_script_check_CFLAGS) -DGRUB_FILE=\"kern/list.c\" -MD -c -o $@ $< +-include grub_script_check-kern_list.d + +grub_script_check-kern_misc.o: kern/misc.c $(kern/misc.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_script_check_CFLAGS) -DGRUB_FILE=\"kern/misc.c\" -MD -c -o $@ $< +-include grub_script_check-kern_misc.d + +grub_script_check-kern_env.o: kern/env.c $(kern/env.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_script_check_CFLAGS) -DGRUB_FILE=\"kern/env.c\" -MD -c -o $@ $< +-include grub_script_check-kern_env.d + +grub_script_check-grub_script_tab.o: grub_script.tab.c $(grub_script.tab.c_DEPENDENCIES) + $(CC) -I. -I$(srcdir)/. $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_script_check_CFLAGS) -DGRUB_FILE=\"grub_script.tab.c\" -MD -c -o $@ $< +-include grub_script_check-grub_script_tab.d + +grub_script_check-grub_script_yy.o: grub_script.yy.c $(grub_script.yy.c_DEPENDENCIES) + $(CC) -I. -I$(srcdir)/. $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_script_check_CFLAGS) -DGRUB_FILE=\"grub_script.yy.c\" -MD -c -o $@ $< +-include grub_script_check-grub_script_yy.d + +grub_script_check_CFLAGS = $(GNULIB_UTIL_CFLAGS) +grub_script_check_DEPENDENCIES = grub_script.tab.h +MOSTLYCLEANFILES += symlist.c kernel_syms.lst +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 command.h i18n.h env_private.h libgcc.h + +ifneq ($(platform), emu) +kernel_img_HEADERS += machine/memory.h machine/loader.h +endif + +symlist.c: $(addprefix include/grub/,$(kernel_img_HEADERS)) config.h gensymlist.sh + /bin/sh gensymlist.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1) + +kernel_syms.lst: $(addprefix include/grub/,$(kernel_img_HEADERS)) config.h genkernsyms.sh + /bin/sh genkernsyms.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1) + +# For the parser. +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. +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 > $@ +DISTCLEANFILES += grub_probe_init.lst + +grub_probe_init.h: grub_probe_init.lst $(filter-out grub_probe_init.c,$(grub_probe_SOURCES)) geninitheader.sh + rm -f $@; sh $(srcdir)/geninitheader.sh $< > $@ +DISTCLEANFILES += grub_probe_init.h + +grub_probe_init.c: grub_probe_init.lst $(filter-out grub_probe_init.c,$(grub_probe_SOURCES)) geninit.sh grub_probe_init.h + rm -f $@; sh $(srcdir)/geninit.sh $< $(filter %.c,$^) > $@ +DISTCLEANFILES += grub_probe_init.c + +# For grub-setup. +grub_setup_init.lst: geninit.sh $(filter-out grub_setup_init.c,$(grub_setup_SOURCES)) + rm -f $@; grep GRUB_MOD_INIT $(filter %.c,$^) /dev/null > $@ +DISTCLEANFILES += grub_setup_init.lst + +grub_setup_init.h: grub_setup_init.lst $(filter-out grub_setup_init.c,$(grub_setup_SOURCES)) geninitheader.sh + rm -f $@; sh $(srcdir)/geninitheader.sh $< > $@ +DISTCLEANFILES += grub_setup_init.h + +grub_setup_init.c: grub_setup_init.lst $(filter-out grub_setup_init.c,$(grub_setup_SOURCES)) geninit.sh grub_setup_init.h + rm -f $@; sh $(srcdir)/geninit.sh $< $(filter %.c,$^) > $@ +DISTCLEANFILES += grub_setup_init.c + +# For grub-fstest. +grub_fstest_init.lst: geninit.sh $(filter-out grub_fstest_init.c,$(grub_fstest_SOURCES)) + rm -f $@; grep GRUB_MOD_INIT $(filter %.c,$^) /dev/null > $@ +DISTCLEANFILES += grub_fstest_init.lst + +grub_fstest_init.h: grub_fstest_init.lst $(filter-out grub_fstest_init.c,$(grub_fstest_SOURCES)) geninitheader.sh + rm -f $@; sh $(srcdir)/geninitheader.sh $< > $@ +DISTCLEANFILES += grub_fstest_init.h + +grub_fstest_init.c: grub_fstest_init.lst $(filter-out grub_fstest_init.c,$(grub_fstest_SOURCES)) geninit.sh grub_fstest_init.h + rm -f $@; sh $(srcdir)/geninit.sh $< $(filter %.c,$^) > $@ +DISTCLEANFILES += grub_fstest_init.c + +# for grub-editenv +bin_UTILITIES += grub-editenv +grub_editenv_SOURCES = gnulib/progname.c util/grub-editenv.c lib/envblk.c util/misc.c kern/emu/misc.c kern/emu/mm.c kern/misc.c kern/err.c + +clean-utility-grub-editenv.1: + rm -f grub-editenv$(EXEEXT) grub_editenv-gnulib_progname.o grub_editenv-util_grub_editenv.o grub_editenv-lib_envblk.o grub_editenv-util_misc.o grub_editenv-kern_emu_misc.o grub_editenv-kern_emu_mm.o grub_editenv-kern_misc.o grub_editenv-kern_err.o + +CLEAN_UTILITY_TARGETS += clean-utility-grub-editenv.1 + +mostlyclean-utility-grub-editenv.1: + rm -f grub_editenv-gnulib_progname.d grub_editenv-util_grub_editenv.d grub_editenv-lib_envblk.d grub_editenv-util_misc.d grub_editenv-kern_emu_misc.d grub_editenv-kern_emu_mm.d grub_editenv-kern_misc.d grub_editenv-kern_err.d + +MOSTLYCLEAN_UTILITY_TARGETS += mostlyclean-utility-grub-editenv.1 + +grub_editenv_OBJECTS += grub_editenv-gnulib_progname.o grub_editenv-util_grub_editenv.o grub_editenv-lib_envblk.o grub_editenv-util_misc.o grub_editenv-kern_emu_misc.o grub_editenv-kern_emu_mm.o grub_editenv-kern_misc.o grub_editenv-kern_err.o + +grub_editenv-gnulib_progname.o: gnulib/progname.c $(gnulib/progname.c_DEPENDENCIES) + $(CC) -Ignulib -I$(srcdir)/gnulib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_editenv_CFLAGS) -DGRUB_FILE=\"gnulib/progname.c\" -MD -c -o $@ $< +-include grub_editenv-gnulib_progname.d + +grub_editenv-util_grub_editenv.o: util/grub-editenv.c $(util/grub-editenv.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_editenv_CFLAGS) -DGRUB_FILE=\"util/grub-editenv.c\" -MD -c -o $@ $< +-include grub_editenv-util_grub_editenv.d + +grub_editenv-lib_envblk.o: lib/envblk.c $(lib/envblk.c_DEPENDENCIES) + $(CC) -Ilib -I$(srcdir)/lib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_editenv_CFLAGS) -DGRUB_FILE=\"lib/envblk.c\" -MD -c -o $@ $< +-include grub_editenv-lib_envblk.d + +grub_editenv-util_misc.o: util/misc.c $(util/misc.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_editenv_CFLAGS) -DGRUB_FILE=\"util/misc.c\" -MD -c -o $@ $< +-include grub_editenv-util_misc.d + +grub_editenv-kern_emu_misc.o: kern/emu/misc.c $(kern/emu/misc.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_editenv_CFLAGS) -DGRUB_FILE=\"kern/emu/misc.c\" -MD -c -o $@ $< +-include grub_editenv-kern_emu_misc.d + +grub_editenv-kern_emu_mm.o: kern/emu/mm.c $(kern/emu/mm.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_editenv_CFLAGS) -DGRUB_FILE=\"kern/emu/mm.c\" -MD -c -o $@ $< +-include grub_editenv-kern_emu_mm.d + +grub_editenv-kern_misc.o: kern/misc.c $(kern/misc.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_editenv_CFLAGS) -DGRUB_FILE=\"kern/misc.c\" -MD -c -o $@ $< +-include grub_editenv-kern_misc.d + +grub_editenv-kern_err.o: kern/err.c $(kern/err.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_editenv_CFLAGS) -DGRUB_FILE=\"kern/err.c\" -MD -c -o $@ $< +-include grub_editenv-kern_err.d + +CLEANFILES += grub-editenv + +# Needed for genmk.rb to work +ifeq (0,1) +bin_UTILITIES += grub-macho2img grub-pe2elf +endif + +grub_pe2elf_SOURCES = gnulib/progname.c util/grub-pe2elf.c util/misc.c kern/emu/misc.c + +clean-utility-grub-pe2elf.1: + rm -f grub-pe2elf$(EXEEXT) grub_pe2elf-gnulib_progname.o grub_pe2elf-util_grub_pe2elf.o grub_pe2elf-util_misc.o grub_pe2elf-kern_emu_misc.o + +CLEAN_UTILITY_TARGETS += clean-utility-grub-pe2elf.1 + +mostlyclean-utility-grub-pe2elf.1: + rm -f grub_pe2elf-gnulib_progname.d grub_pe2elf-util_grub_pe2elf.d grub_pe2elf-util_misc.d grub_pe2elf-kern_emu_misc.d + +MOSTLYCLEAN_UTILITY_TARGETS += mostlyclean-utility-grub-pe2elf.1 + +grub_pe2elf_OBJECTS += grub_pe2elf-gnulib_progname.o grub_pe2elf-util_grub_pe2elf.o grub_pe2elf-util_misc.o grub_pe2elf-kern_emu_misc.o + +grub_pe2elf-gnulib_progname.o: gnulib/progname.c $(gnulib/progname.c_DEPENDENCIES) + $(CC) -Ignulib -I$(srcdir)/gnulib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_pe2elf_CFLAGS) -DGRUB_FILE=\"gnulib/progname.c\" -MD -c -o $@ $< +-include grub_pe2elf-gnulib_progname.d + +grub_pe2elf-util_grub_pe2elf.o: util/grub-pe2elf.c $(util/grub-pe2elf.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_pe2elf_CFLAGS) -DGRUB_FILE=\"util/grub-pe2elf.c\" -MD -c -o $@ $< +-include grub_pe2elf-util_grub_pe2elf.d + +grub_pe2elf-util_misc.o: util/misc.c $(util/misc.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_pe2elf_CFLAGS) -DGRUB_FILE=\"util/misc.c\" -MD -c -o $@ $< +-include grub_pe2elf-util_misc.d + +grub_pe2elf-kern_emu_misc.o: kern/emu/misc.c $(kern/emu/misc.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_pe2elf_CFLAGS) -DGRUB_FILE=\"kern/emu/misc.c\" -MD -c -o $@ $< +-include grub_pe2elf-kern_emu_misc.d + +CLEANFILES += grub-pe2elf + +grub_macho2img_SOURCES = util/grub-macho2img.c + +clean-utility-grub-macho2img.1: + rm -f grub-macho2img$(EXEEXT) grub_macho2img-util_grub_macho2img.o + +CLEAN_UTILITY_TARGETS += clean-utility-grub-macho2img.1 + +mostlyclean-utility-grub-macho2img.1: + rm -f grub_macho2img-util_grub_macho2img.d + +MOSTLYCLEAN_UTILITY_TARGETS += mostlyclean-utility-grub-macho2img.1 + +grub_macho2img_OBJECTS += grub_macho2img-util_grub_macho2img.o + +grub_macho2img-util_grub_macho2img.o: util/grub-macho2img.c $(util/grub-macho2img.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_macho2img_CFLAGS) -DGRUB_FILE=\"util/grub-macho2img.c\" -MD -c -o $@ $< +-include grub_macho2img-util_grub_macho2img.d + +CLEANFILES += grub-macho2img + +# For grub-mkconfig +grub-mkconfig: util/grub-mkconfig.in config.status + ./config.status --file=$@:$< + chmod +x $@ +sbin_SCRIPTS += grub-mkconfig +CLEANFILES += grub-mkconfig + +grub-mkconfig_lib: util/grub-mkconfig_lib.in config.status + ./config.status --file=$@:$< + chmod +x $@ +lib_SCRIPTS += grub-mkconfig_lib +CLEANFILES += grub-mkconfig_lib + +update-grub_lib: util/update-grub_lib.in config.status + ./config.status --file=$@:$< + chmod +x $@ +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 $@ +grub-mkconfig_SCRIPTS = 00_header 30_os-prober 40_custom 41_custom +ifneq (, $(host_kernel)) +grub-mkconfig_SCRIPTS += 10_$(host_kernel) +endif +ifeq (linux, $(host_kernel)) +grub-mkconfig_SCRIPTS += 20_linux_xen +endif + +CLEANFILES += $(grub-mkconfig_SCRIPTS) + +grub-mkconfig_DATA += util/grub.d/README + +# For grub-set-default. +grub-set-default: util/grub-set-default.in config.status + ./config.status --file=$@:$< + chmod +x $@ +sbin_SCRIPTS += grub-set-default +CLEANFILES += grub-set-default + +# For grub-reboot. +grub-reboot: util/grub-reboot.in config.status + ./config.status --file=$@:$< + chmod +x $@ +sbin_SCRIPTS += grub-reboot +CLEANFILES += grub-reboot + +# Filing systems. +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 + +# For fshelp.mod. +fshelp_mod_SOURCES = fs/fshelp.c + +clean-module-fshelp.mod.1: + rm -f fshelp.mod mod-fshelp.o mod-fshelp.c pre-fshelp.o fshelp_mod-fs_fshelp.o und-fshelp.lst + +CLEAN_MODULE_TARGETS += clean-module-fshelp.mod.1 + +clean-module-fshelp.mod-symbol.1: + rm -f def-fshelp.lst + +CLEAN_MODULE_TARGETS += clean-module-fshelp.mod-symbol.1 +DEFSYMFILES += def-fshelp.lst +mostlyclean-module-fshelp.mod.1: + rm -f fshelp_mod-fs_fshelp.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-fshelp.mod.1 +UNDSYMFILES += und-fshelp.lst + +ifeq ($(TARGET_NO_MODULES), yes) +fshelp.mod: pre-fshelp.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(fshelp_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-fshelp.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +fshelp.mod: pre-fshelp.o mod-fshelp.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(fshelp_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-fshelp.o mod-fshelp.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +fshelp.mod: pre-fshelp.o mod-fshelp.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(fshelp_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-fshelp.o mod-fshelp.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-fshelp.o: $(fshelp_mod_DEPENDENCIES) fshelp_mod-fs_fshelp.o + -rm -f $@ + $(TARGET_CC) $(fshelp_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ fshelp_mod-fs_fshelp.o + +mod-fshelp.o: mod-fshelp.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(fshelp_mod_CFLAGS) -DGRUB_FILE=\"mod-fshelp.c\" -c -o $@ $< + +mod-fshelp.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'fshelp' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-fshelp.lst: pre-fshelp.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 fshelp/' > $@ +else +def-fshelp.lst: pre-fshelp.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 fshelp/' > $@ +endif + +und-fshelp.lst: pre-fshelp.o + echo 'fshelp' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +fshelp_mod-fs_fshelp.o: fs/fshelp.c $(fs/fshelp.c_DEPENDENCIES) + $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(fshelp_mod_CFLAGS) -DGRUB_FILE=\"fs/fshelp.c\" -MD -c -o $@ $< +-include fshelp_mod-fs_fshelp.d + +clean-module-fshelp_mod-fs_fshelp-extra.1: + rm -f cmd-fshelp_mod-fs_fshelp.lst fs-fshelp_mod-fs_fshelp.lst partmap-fshelp_mod-fs_fshelp.lst handler-fshelp_mod-fs_fshelp.lst parttool-fshelp_mod-fs_fshelp.lst video-fshelp_mod-fs_fshelp.lst terminal-fshelp_mod-fs_fshelp.lst + +CLEAN_MODULE_TARGETS += clean-module-fshelp_mod-fs_fshelp-extra.1 + +COMMANDFILES += cmd-fshelp_mod-fs_fshelp.lst +FSFILES += fs-fshelp_mod-fs_fshelp.lst +PARTTOOLFILES += parttool-fshelp_mod-fs_fshelp.lst +PARTMAPFILES += partmap-fshelp_mod-fs_fshelp.lst +HANDLERFILES += handler-fshelp_mod-fs_fshelp.lst +TERMINALFILES += terminal-fshelp_mod-fs_fshelp.lst +VIDEOFILES += video-fshelp_mod-fs_fshelp.lst + +cmd-fshelp_mod-fs_fshelp.lst: fs/fshelp.c $(fs/fshelp.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(fshelp_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh fshelp > $@ || (rm -f $@; exit 1) + +fs-fshelp_mod-fs_fshelp.lst: fs/fshelp.c $(fs/fshelp.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(fshelp_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh fshelp > $@ || (rm -f $@; exit 1) + +parttool-fshelp_mod-fs_fshelp.lst: fs/fshelp.c $(fs/fshelp.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(fshelp_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh fshelp > $@ || (rm -f $@; exit 1) + +partmap-fshelp_mod-fs_fshelp.lst: fs/fshelp.c $(fs/fshelp.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(fshelp_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh fshelp > $@ || (rm -f $@; exit 1) + +handler-fshelp_mod-fs_fshelp.lst: fs/fshelp.c $(fs/fshelp.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(fshelp_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh fshelp > $@ || (rm -f $@; exit 1) + +terminal-fshelp_mod-fs_fshelp.lst: fs/fshelp.c $(fs/fshelp.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(fshelp_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh fshelp > $@ || (rm -f $@; exit 1) + +video-fshelp_mod-fs_fshelp.lst: fs/fshelp.c $(fs/fshelp.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(fshelp_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh fshelp > $@ || (rm -f $@; exit 1) + +fshelp_mod_CFLAGS = $(COMMON_CFLAGS) +fshelp_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For fat.mod. +fat_mod_SOURCES = fs/fat.c + +clean-module-fat.mod.1: + rm -f fat.mod mod-fat.o mod-fat.c pre-fat.o fat_mod-fs_fat.o und-fat.lst + +CLEAN_MODULE_TARGETS += clean-module-fat.mod.1 + +clean-module-fat.mod-symbol.1: + rm -f def-fat.lst + +CLEAN_MODULE_TARGETS += clean-module-fat.mod-symbol.1 +DEFSYMFILES += def-fat.lst +mostlyclean-module-fat.mod.1: + rm -f fat_mod-fs_fat.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-fat.mod.1 +UNDSYMFILES += und-fat.lst + +ifeq ($(TARGET_NO_MODULES), yes) +fat.mod: pre-fat.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(fat_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-fat.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +fat.mod: pre-fat.o mod-fat.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(fat_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-fat.o mod-fat.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +fat.mod: pre-fat.o mod-fat.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(fat_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-fat.o mod-fat.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-fat.o: $(fat_mod_DEPENDENCIES) fat_mod-fs_fat.o + -rm -f $@ + $(TARGET_CC) $(fat_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ fat_mod-fs_fat.o + +mod-fat.o: mod-fat.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(fat_mod_CFLAGS) -DGRUB_FILE=\"mod-fat.c\" -c -o $@ $< + +mod-fat.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'fat' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-fat.lst: pre-fat.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 fat/' > $@ +else +def-fat.lst: pre-fat.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 fat/' > $@ +endif + +und-fat.lst: pre-fat.o + echo 'fat' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +fat_mod-fs_fat.o: fs/fat.c $(fs/fat.c_DEPENDENCIES) + $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(fat_mod_CFLAGS) -DGRUB_FILE=\"fs/fat.c\" -MD -c -o $@ $< +-include fat_mod-fs_fat.d + +clean-module-fat_mod-fs_fat-extra.1: + rm -f cmd-fat_mod-fs_fat.lst fs-fat_mod-fs_fat.lst partmap-fat_mod-fs_fat.lst handler-fat_mod-fs_fat.lst parttool-fat_mod-fs_fat.lst video-fat_mod-fs_fat.lst terminal-fat_mod-fs_fat.lst + +CLEAN_MODULE_TARGETS += clean-module-fat_mod-fs_fat-extra.1 + +COMMANDFILES += cmd-fat_mod-fs_fat.lst +FSFILES += fs-fat_mod-fs_fat.lst +PARTTOOLFILES += parttool-fat_mod-fs_fat.lst +PARTMAPFILES += partmap-fat_mod-fs_fat.lst +HANDLERFILES += handler-fat_mod-fs_fat.lst +TERMINALFILES += terminal-fat_mod-fs_fat.lst +VIDEOFILES += video-fat_mod-fs_fat.lst + +cmd-fat_mod-fs_fat.lst: fs/fat.c $(fs/fat.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(fat_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh fat > $@ || (rm -f $@; exit 1) + +fs-fat_mod-fs_fat.lst: fs/fat.c $(fs/fat.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(fat_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh fat > $@ || (rm -f $@; exit 1) + +parttool-fat_mod-fs_fat.lst: fs/fat.c $(fs/fat.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(fat_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh fat > $@ || (rm -f $@; exit 1) + +partmap-fat_mod-fs_fat.lst: fs/fat.c $(fs/fat.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(fat_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh fat > $@ || (rm -f $@; exit 1) + +handler-fat_mod-fs_fat.lst: fs/fat.c $(fs/fat.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(fat_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh fat > $@ || (rm -f $@; exit 1) + +terminal-fat_mod-fs_fat.lst: fs/fat.c $(fs/fat.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(fat_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh fat > $@ || (rm -f $@; exit 1) + +video-fat_mod-fs_fat.lst: fs/fat.c $(fs/fat.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(fat_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh fat > $@ || (rm -f $@; exit 1) + +fat_mod_CFLAGS = $(COMMON_CFLAGS) +fat_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For ufs1.mod. +ufs1_mod_SOURCES = fs/ufs.c + +clean-module-ufs1.mod.1: + rm -f ufs1.mod mod-ufs1.o mod-ufs1.c pre-ufs1.o ufs1_mod-fs_ufs.o und-ufs1.lst + +CLEAN_MODULE_TARGETS += clean-module-ufs1.mod.1 + +clean-module-ufs1.mod-symbol.1: + rm -f def-ufs1.lst + +CLEAN_MODULE_TARGETS += clean-module-ufs1.mod-symbol.1 +DEFSYMFILES += def-ufs1.lst +mostlyclean-module-ufs1.mod.1: + rm -f ufs1_mod-fs_ufs.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-ufs1.mod.1 +UNDSYMFILES += und-ufs1.lst + +ifeq ($(TARGET_NO_MODULES), yes) +ufs1.mod: pre-ufs1.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ufs1_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ufs1.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +ufs1.mod: pre-ufs1.o mod-ufs1.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ufs1_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ufs1.o mod-ufs1.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ufs1.mod: pre-ufs1.o mod-ufs1.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(ufs1_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-ufs1.o mod-ufs1.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-ufs1.o: $(ufs1_mod_DEPENDENCIES) ufs1_mod-fs_ufs.o + -rm -f $@ + $(TARGET_CC) $(ufs1_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ ufs1_mod-fs_ufs.o + +mod-ufs1.o: mod-ufs1.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ufs1_mod_CFLAGS) -DGRUB_FILE=\"mod-ufs1.c\" -c -o $@ $< + +mod-ufs1.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'ufs1' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-ufs1.lst: pre-ufs1.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 ufs1/' > $@ +else +def-ufs1.lst: pre-ufs1.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 ufs1/' > $@ +endif + +und-ufs1.lst: pre-ufs1.o + echo 'ufs1' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +ufs1_mod-fs_ufs.o: fs/ufs.c $(fs/ufs.c_DEPENDENCIES) + $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ufs1_mod_CFLAGS) -DGRUB_FILE=\"fs/ufs.c\" -MD -c -o $@ $< +-include ufs1_mod-fs_ufs.d + +clean-module-ufs1_mod-fs_ufs-extra.1: + rm -f cmd-ufs1_mod-fs_ufs.lst fs-ufs1_mod-fs_ufs.lst partmap-ufs1_mod-fs_ufs.lst handler-ufs1_mod-fs_ufs.lst parttool-ufs1_mod-fs_ufs.lst video-ufs1_mod-fs_ufs.lst terminal-ufs1_mod-fs_ufs.lst + +CLEAN_MODULE_TARGETS += clean-module-ufs1_mod-fs_ufs-extra.1 + +COMMANDFILES += cmd-ufs1_mod-fs_ufs.lst +FSFILES += fs-ufs1_mod-fs_ufs.lst +PARTTOOLFILES += parttool-ufs1_mod-fs_ufs.lst +PARTMAPFILES += partmap-ufs1_mod-fs_ufs.lst +HANDLERFILES += handler-ufs1_mod-fs_ufs.lst +TERMINALFILES += terminal-ufs1_mod-fs_ufs.lst +VIDEOFILES += video-ufs1_mod-fs_ufs.lst + +cmd-ufs1_mod-fs_ufs.lst: fs/ufs.c $(fs/ufs.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ufs1_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh ufs1 > $@ || (rm -f $@; exit 1) + +fs-ufs1_mod-fs_ufs.lst: fs/ufs.c $(fs/ufs.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ufs1_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh ufs1 > $@ || (rm -f $@; exit 1) + +parttool-ufs1_mod-fs_ufs.lst: fs/ufs.c $(fs/ufs.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ufs1_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh ufs1 > $@ || (rm -f $@; exit 1) + +partmap-ufs1_mod-fs_ufs.lst: fs/ufs.c $(fs/ufs.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ufs1_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh ufs1 > $@ || (rm -f $@; exit 1) + +handler-ufs1_mod-fs_ufs.lst: fs/ufs.c $(fs/ufs.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ufs1_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh ufs1 > $@ || (rm -f $@; exit 1) + +terminal-ufs1_mod-fs_ufs.lst: fs/ufs.c $(fs/ufs.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ufs1_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh ufs1 > $@ || (rm -f $@; exit 1) + +video-ufs1_mod-fs_ufs.lst: fs/ufs.c $(fs/ufs.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ufs1_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh ufs1 > $@ || (rm -f $@; exit 1) + +ufs1_mod_CFLAGS = $(COMMON_CFLAGS) +ufs1_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For ufs2.mod. +ufs2_mod_SOURCES = fs/ufs2.c + +clean-module-ufs2.mod.1: + rm -f ufs2.mod mod-ufs2.o mod-ufs2.c pre-ufs2.o ufs2_mod-fs_ufs2.o und-ufs2.lst + +CLEAN_MODULE_TARGETS += clean-module-ufs2.mod.1 + +clean-module-ufs2.mod-symbol.1: + rm -f def-ufs2.lst + +CLEAN_MODULE_TARGETS += clean-module-ufs2.mod-symbol.1 +DEFSYMFILES += def-ufs2.lst +mostlyclean-module-ufs2.mod.1: + rm -f ufs2_mod-fs_ufs2.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-ufs2.mod.1 +UNDSYMFILES += und-ufs2.lst + +ifeq ($(TARGET_NO_MODULES), yes) +ufs2.mod: pre-ufs2.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ufs2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ufs2.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +ufs2.mod: pre-ufs2.o mod-ufs2.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ufs2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ufs2.o mod-ufs2.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ufs2.mod: pre-ufs2.o mod-ufs2.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(ufs2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-ufs2.o mod-ufs2.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-ufs2.o: $(ufs2_mod_DEPENDENCIES) ufs2_mod-fs_ufs2.o + -rm -f $@ + $(TARGET_CC) $(ufs2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ ufs2_mod-fs_ufs2.o + +mod-ufs2.o: mod-ufs2.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ufs2_mod_CFLAGS) -DGRUB_FILE=\"mod-ufs2.c\" -c -o $@ $< + +mod-ufs2.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'ufs2' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-ufs2.lst: pre-ufs2.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 ufs2/' > $@ +else +def-ufs2.lst: pre-ufs2.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 ufs2/' > $@ +endif + +und-ufs2.lst: pre-ufs2.o + echo 'ufs2' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +ufs2_mod-fs_ufs2.o: fs/ufs2.c $(fs/ufs2.c_DEPENDENCIES) + $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ufs2_mod_CFLAGS) -DGRUB_FILE=\"fs/ufs2.c\" -MD -c -o $@ $< +-include ufs2_mod-fs_ufs2.d + +clean-module-ufs2_mod-fs_ufs2-extra.1: + rm -f cmd-ufs2_mod-fs_ufs2.lst fs-ufs2_mod-fs_ufs2.lst partmap-ufs2_mod-fs_ufs2.lst handler-ufs2_mod-fs_ufs2.lst parttool-ufs2_mod-fs_ufs2.lst video-ufs2_mod-fs_ufs2.lst terminal-ufs2_mod-fs_ufs2.lst + +CLEAN_MODULE_TARGETS += clean-module-ufs2_mod-fs_ufs2-extra.1 + +COMMANDFILES += cmd-ufs2_mod-fs_ufs2.lst +FSFILES += fs-ufs2_mod-fs_ufs2.lst +PARTTOOLFILES += parttool-ufs2_mod-fs_ufs2.lst +PARTMAPFILES += partmap-ufs2_mod-fs_ufs2.lst +HANDLERFILES += handler-ufs2_mod-fs_ufs2.lst +TERMINALFILES += terminal-ufs2_mod-fs_ufs2.lst +VIDEOFILES += video-ufs2_mod-fs_ufs2.lst + +cmd-ufs2_mod-fs_ufs2.lst: fs/ufs2.c $(fs/ufs2.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ufs2_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh ufs2 > $@ || (rm -f $@; exit 1) + +fs-ufs2_mod-fs_ufs2.lst: fs/ufs2.c $(fs/ufs2.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ufs2_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh ufs2 > $@ || (rm -f $@; exit 1) + +parttool-ufs2_mod-fs_ufs2.lst: fs/ufs2.c $(fs/ufs2.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ufs2_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh ufs2 > $@ || (rm -f $@; exit 1) + +partmap-ufs2_mod-fs_ufs2.lst: fs/ufs2.c $(fs/ufs2.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ufs2_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh ufs2 > $@ || (rm -f $@; exit 1) + +handler-ufs2_mod-fs_ufs2.lst: fs/ufs2.c $(fs/ufs2.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ufs2_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh ufs2 > $@ || (rm -f $@; exit 1) + +terminal-ufs2_mod-fs_ufs2.lst: fs/ufs2.c $(fs/ufs2.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ufs2_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh ufs2 > $@ || (rm -f $@; exit 1) + +video-ufs2_mod-fs_ufs2.lst: fs/ufs2.c $(fs/ufs2.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ufs2_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh ufs2 > $@ || (rm -f $@; exit 1) + +ufs2_mod_CFLAGS = $(COMMON_CFLAGS) +ufs2_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For ext2.mod. +ext2_mod_SOURCES = fs/ext2.c + +clean-module-ext2.mod.1: + rm -f ext2.mod mod-ext2.o mod-ext2.c pre-ext2.o ext2_mod-fs_ext2.o und-ext2.lst + +CLEAN_MODULE_TARGETS += clean-module-ext2.mod.1 + +clean-module-ext2.mod-symbol.1: + rm -f def-ext2.lst + +CLEAN_MODULE_TARGETS += clean-module-ext2.mod-symbol.1 +DEFSYMFILES += def-ext2.lst +mostlyclean-module-ext2.mod.1: + rm -f ext2_mod-fs_ext2.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-ext2.mod.1 +UNDSYMFILES += und-ext2.lst + +ifeq ($(TARGET_NO_MODULES), yes) +ext2.mod: pre-ext2.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ext2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ext2.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +ext2.mod: pre-ext2.o mod-ext2.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ext2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ext2.o mod-ext2.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ext2.mod: pre-ext2.o mod-ext2.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(ext2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-ext2.o mod-ext2.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-ext2.o: $(ext2_mod_DEPENDENCIES) ext2_mod-fs_ext2.o + -rm -f $@ + $(TARGET_CC) $(ext2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ ext2_mod-fs_ext2.o + +mod-ext2.o: mod-ext2.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ext2_mod_CFLAGS) -DGRUB_FILE=\"mod-ext2.c\" -c -o $@ $< + +mod-ext2.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'ext2' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-ext2.lst: pre-ext2.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 ext2/' > $@ +else +def-ext2.lst: pre-ext2.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 ext2/' > $@ +endif + +und-ext2.lst: pre-ext2.o + echo 'ext2' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +ext2_mod-fs_ext2.o: fs/ext2.c $(fs/ext2.c_DEPENDENCIES) + $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ext2_mod_CFLAGS) -DGRUB_FILE=\"fs/ext2.c\" -MD -c -o $@ $< +-include ext2_mod-fs_ext2.d + +clean-module-ext2_mod-fs_ext2-extra.1: + rm -f cmd-ext2_mod-fs_ext2.lst fs-ext2_mod-fs_ext2.lst partmap-ext2_mod-fs_ext2.lst handler-ext2_mod-fs_ext2.lst parttool-ext2_mod-fs_ext2.lst video-ext2_mod-fs_ext2.lst terminal-ext2_mod-fs_ext2.lst + +CLEAN_MODULE_TARGETS += clean-module-ext2_mod-fs_ext2-extra.1 + +COMMANDFILES += cmd-ext2_mod-fs_ext2.lst +FSFILES += fs-ext2_mod-fs_ext2.lst +PARTTOOLFILES += parttool-ext2_mod-fs_ext2.lst +PARTMAPFILES += partmap-ext2_mod-fs_ext2.lst +HANDLERFILES += handler-ext2_mod-fs_ext2.lst +TERMINALFILES += terminal-ext2_mod-fs_ext2.lst +VIDEOFILES += video-ext2_mod-fs_ext2.lst + +cmd-ext2_mod-fs_ext2.lst: fs/ext2.c $(fs/ext2.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ext2_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh ext2 > $@ || (rm -f $@; exit 1) + +fs-ext2_mod-fs_ext2.lst: fs/ext2.c $(fs/ext2.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ext2_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh ext2 > $@ || (rm -f $@; exit 1) + +parttool-ext2_mod-fs_ext2.lst: fs/ext2.c $(fs/ext2.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ext2_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh ext2 > $@ || (rm -f $@; exit 1) + +partmap-ext2_mod-fs_ext2.lst: fs/ext2.c $(fs/ext2.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ext2_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh ext2 > $@ || (rm -f $@; exit 1) + +handler-ext2_mod-fs_ext2.lst: fs/ext2.c $(fs/ext2.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ext2_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh ext2 > $@ || (rm -f $@; exit 1) + +terminal-ext2_mod-fs_ext2.lst: fs/ext2.c $(fs/ext2.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ext2_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh ext2 > $@ || (rm -f $@; exit 1) + +video-ext2_mod-fs_ext2.lst: fs/ext2.c $(fs/ext2.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ext2_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh ext2 > $@ || (rm -f $@; exit 1) + +ext2_mod_CFLAGS = $(COMMON_CFLAGS) +ext2_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For ntfs.mod. +ntfs_mod_SOURCES = fs/ntfs.c + +clean-module-ntfs.mod.1: + rm -f ntfs.mod mod-ntfs.o mod-ntfs.c pre-ntfs.o ntfs_mod-fs_ntfs.o und-ntfs.lst + +CLEAN_MODULE_TARGETS += clean-module-ntfs.mod.1 + +clean-module-ntfs.mod-symbol.1: + rm -f def-ntfs.lst + +CLEAN_MODULE_TARGETS += clean-module-ntfs.mod-symbol.1 +DEFSYMFILES += def-ntfs.lst +mostlyclean-module-ntfs.mod.1: + rm -f ntfs_mod-fs_ntfs.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-ntfs.mod.1 +UNDSYMFILES += und-ntfs.lst + +ifeq ($(TARGET_NO_MODULES), yes) +ntfs.mod: pre-ntfs.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ntfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ntfs.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +ntfs.mod: pre-ntfs.o mod-ntfs.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ntfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ntfs.o mod-ntfs.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ntfs.mod: pre-ntfs.o mod-ntfs.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(ntfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-ntfs.o mod-ntfs.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-ntfs.o: $(ntfs_mod_DEPENDENCIES) ntfs_mod-fs_ntfs.o + -rm -f $@ + $(TARGET_CC) $(ntfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ ntfs_mod-fs_ntfs.o + +mod-ntfs.o: mod-ntfs.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ntfs_mod_CFLAGS) -DGRUB_FILE=\"mod-ntfs.c\" -c -o $@ $< + +mod-ntfs.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'ntfs' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-ntfs.lst: pre-ntfs.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 ntfs/' > $@ +else +def-ntfs.lst: pre-ntfs.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 ntfs/' > $@ +endif + +und-ntfs.lst: pre-ntfs.o + echo 'ntfs' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +ntfs_mod-fs_ntfs.o: fs/ntfs.c $(fs/ntfs.c_DEPENDENCIES) + $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ntfs_mod_CFLAGS) -DGRUB_FILE=\"fs/ntfs.c\" -MD -c -o $@ $< +-include ntfs_mod-fs_ntfs.d + +clean-module-ntfs_mod-fs_ntfs-extra.1: + rm -f cmd-ntfs_mod-fs_ntfs.lst fs-ntfs_mod-fs_ntfs.lst partmap-ntfs_mod-fs_ntfs.lst handler-ntfs_mod-fs_ntfs.lst parttool-ntfs_mod-fs_ntfs.lst video-ntfs_mod-fs_ntfs.lst terminal-ntfs_mod-fs_ntfs.lst + +CLEAN_MODULE_TARGETS += clean-module-ntfs_mod-fs_ntfs-extra.1 + +COMMANDFILES += cmd-ntfs_mod-fs_ntfs.lst +FSFILES += fs-ntfs_mod-fs_ntfs.lst +PARTTOOLFILES += parttool-ntfs_mod-fs_ntfs.lst +PARTMAPFILES += partmap-ntfs_mod-fs_ntfs.lst +HANDLERFILES += handler-ntfs_mod-fs_ntfs.lst +TERMINALFILES += terminal-ntfs_mod-fs_ntfs.lst +VIDEOFILES += video-ntfs_mod-fs_ntfs.lst + +cmd-ntfs_mod-fs_ntfs.lst: fs/ntfs.c $(fs/ntfs.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ntfs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh ntfs > $@ || (rm -f $@; exit 1) + +fs-ntfs_mod-fs_ntfs.lst: fs/ntfs.c $(fs/ntfs.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ntfs_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh ntfs > $@ || (rm -f $@; exit 1) + +parttool-ntfs_mod-fs_ntfs.lst: fs/ntfs.c $(fs/ntfs.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ntfs_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh ntfs > $@ || (rm -f $@; exit 1) + +partmap-ntfs_mod-fs_ntfs.lst: fs/ntfs.c $(fs/ntfs.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ntfs_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh ntfs > $@ || (rm -f $@; exit 1) + +handler-ntfs_mod-fs_ntfs.lst: fs/ntfs.c $(fs/ntfs.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ntfs_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh ntfs > $@ || (rm -f $@; exit 1) + +terminal-ntfs_mod-fs_ntfs.lst: fs/ntfs.c $(fs/ntfs.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ntfs_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh ntfs > $@ || (rm -f $@; exit 1) + +video-ntfs_mod-fs_ntfs.lst: fs/ntfs.c $(fs/ntfs.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ntfs_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh ntfs > $@ || (rm -f $@; exit 1) + +ntfs_mod_CFLAGS = $(COMMON_CFLAGS) +ntfs_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For ntfscomp.mod. +ntfscomp_mod_SOURCES = fs/ntfscomp.c + +clean-module-ntfscomp.mod.1: + rm -f ntfscomp.mod mod-ntfscomp.o mod-ntfscomp.c pre-ntfscomp.o ntfscomp_mod-fs_ntfscomp.o und-ntfscomp.lst + +CLEAN_MODULE_TARGETS += clean-module-ntfscomp.mod.1 + +clean-module-ntfscomp.mod-symbol.1: + rm -f def-ntfscomp.lst + +CLEAN_MODULE_TARGETS += clean-module-ntfscomp.mod-symbol.1 +DEFSYMFILES += def-ntfscomp.lst +mostlyclean-module-ntfscomp.mod.1: + rm -f ntfscomp_mod-fs_ntfscomp.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-ntfscomp.mod.1 +UNDSYMFILES += und-ntfscomp.lst + +ifeq ($(TARGET_NO_MODULES), yes) +ntfscomp.mod: pre-ntfscomp.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ntfscomp_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ntfscomp.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +ntfscomp.mod: pre-ntfscomp.o mod-ntfscomp.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ntfscomp_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ntfscomp.o mod-ntfscomp.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ntfscomp.mod: pre-ntfscomp.o mod-ntfscomp.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(ntfscomp_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-ntfscomp.o mod-ntfscomp.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-ntfscomp.o: $(ntfscomp_mod_DEPENDENCIES) ntfscomp_mod-fs_ntfscomp.o + -rm -f $@ + $(TARGET_CC) $(ntfscomp_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ ntfscomp_mod-fs_ntfscomp.o + +mod-ntfscomp.o: mod-ntfscomp.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ntfscomp_mod_CFLAGS) -DGRUB_FILE=\"mod-ntfscomp.c\" -c -o $@ $< + +mod-ntfscomp.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'ntfscomp' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-ntfscomp.lst: pre-ntfscomp.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 ntfscomp/' > $@ +else +def-ntfscomp.lst: pre-ntfscomp.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 ntfscomp/' > $@ +endif + +und-ntfscomp.lst: pre-ntfscomp.o + echo 'ntfscomp' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +ntfscomp_mod-fs_ntfscomp.o: fs/ntfscomp.c $(fs/ntfscomp.c_DEPENDENCIES) + $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ntfscomp_mod_CFLAGS) -DGRUB_FILE=\"fs/ntfscomp.c\" -MD -c -o $@ $< +-include ntfscomp_mod-fs_ntfscomp.d + +clean-module-ntfscomp_mod-fs_ntfscomp-extra.1: + rm -f cmd-ntfscomp_mod-fs_ntfscomp.lst fs-ntfscomp_mod-fs_ntfscomp.lst partmap-ntfscomp_mod-fs_ntfscomp.lst handler-ntfscomp_mod-fs_ntfscomp.lst parttool-ntfscomp_mod-fs_ntfscomp.lst video-ntfscomp_mod-fs_ntfscomp.lst terminal-ntfscomp_mod-fs_ntfscomp.lst + +CLEAN_MODULE_TARGETS += clean-module-ntfscomp_mod-fs_ntfscomp-extra.1 + +COMMANDFILES += cmd-ntfscomp_mod-fs_ntfscomp.lst +FSFILES += fs-ntfscomp_mod-fs_ntfscomp.lst +PARTTOOLFILES += parttool-ntfscomp_mod-fs_ntfscomp.lst +PARTMAPFILES += partmap-ntfscomp_mod-fs_ntfscomp.lst +HANDLERFILES += handler-ntfscomp_mod-fs_ntfscomp.lst +TERMINALFILES += terminal-ntfscomp_mod-fs_ntfscomp.lst +VIDEOFILES += video-ntfscomp_mod-fs_ntfscomp.lst + +cmd-ntfscomp_mod-fs_ntfscomp.lst: fs/ntfscomp.c $(fs/ntfscomp.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ntfscomp_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh ntfscomp > $@ || (rm -f $@; exit 1) + +fs-ntfscomp_mod-fs_ntfscomp.lst: fs/ntfscomp.c $(fs/ntfscomp.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ntfscomp_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh ntfscomp > $@ || (rm -f $@; exit 1) + +parttool-ntfscomp_mod-fs_ntfscomp.lst: fs/ntfscomp.c $(fs/ntfscomp.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ntfscomp_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh ntfscomp > $@ || (rm -f $@; exit 1) + +partmap-ntfscomp_mod-fs_ntfscomp.lst: fs/ntfscomp.c $(fs/ntfscomp.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ntfscomp_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh ntfscomp > $@ || (rm -f $@; exit 1) + +handler-ntfscomp_mod-fs_ntfscomp.lst: fs/ntfscomp.c $(fs/ntfscomp.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ntfscomp_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh ntfscomp > $@ || (rm -f $@; exit 1) + +terminal-ntfscomp_mod-fs_ntfscomp.lst: fs/ntfscomp.c $(fs/ntfscomp.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ntfscomp_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh ntfscomp > $@ || (rm -f $@; exit 1) + +video-ntfscomp_mod-fs_ntfscomp.lst: fs/ntfscomp.c $(fs/ntfscomp.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ntfscomp_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh ntfscomp > $@ || (rm -f $@; exit 1) + +ntfscomp_mod_CFLAGS = $(COMMON_CFLAGS) +ntfscomp_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For minix.mod. +minix_mod_SOURCES = fs/minix.c + +clean-module-minix.mod.1: + rm -f minix.mod mod-minix.o mod-minix.c pre-minix.o minix_mod-fs_minix.o und-minix.lst + +CLEAN_MODULE_TARGETS += clean-module-minix.mod.1 + +clean-module-minix.mod-symbol.1: + rm -f def-minix.lst + +CLEAN_MODULE_TARGETS += clean-module-minix.mod-symbol.1 +DEFSYMFILES += def-minix.lst +mostlyclean-module-minix.mod.1: + rm -f minix_mod-fs_minix.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-minix.mod.1 +UNDSYMFILES += und-minix.lst + +ifeq ($(TARGET_NO_MODULES), yes) +minix.mod: pre-minix.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(minix_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-minix.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +minix.mod: pre-minix.o mod-minix.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(minix_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-minix.o mod-minix.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +minix.mod: pre-minix.o mod-minix.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(minix_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-minix.o mod-minix.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-minix.o: $(minix_mod_DEPENDENCIES) minix_mod-fs_minix.o + -rm -f $@ + $(TARGET_CC) $(minix_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ minix_mod-fs_minix.o + +mod-minix.o: mod-minix.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(minix_mod_CFLAGS) -DGRUB_FILE=\"mod-minix.c\" -c -o $@ $< + +mod-minix.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'minix' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-minix.lst: pre-minix.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 minix/' > $@ +else +def-minix.lst: pre-minix.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 minix/' > $@ +endif + +und-minix.lst: pre-minix.o + echo 'minix' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +minix_mod-fs_minix.o: fs/minix.c $(fs/minix.c_DEPENDENCIES) + $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(minix_mod_CFLAGS) -DGRUB_FILE=\"fs/minix.c\" -MD -c -o $@ $< +-include minix_mod-fs_minix.d + +clean-module-minix_mod-fs_minix-extra.1: + rm -f cmd-minix_mod-fs_minix.lst fs-minix_mod-fs_minix.lst partmap-minix_mod-fs_minix.lst handler-minix_mod-fs_minix.lst parttool-minix_mod-fs_minix.lst video-minix_mod-fs_minix.lst terminal-minix_mod-fs_minix.lst + +CLEAN_MODULE_TARGETS += clean-module-minix_mod-fs_minix-extra.1 + +COMMANDFILES += cmd-minix_mod-fs_minix.lst +FSFILES += fs-minix_mod-fs_minix.lst +PARTTOOLFILES += parttool-minix_mod-fs_minix.lst +PARTMAPFILES += partmap-minix_mod-fs_minix.lst +HANDLERFILES += handler-minix_mod-fs_minix.lst +TERMINALFILES += terminal-minix_mod-fs_minix.lst +VIDEOFILES += video-minix_mod-fs_minix.lst + +cmd-minix_mod-fs_minix.lst: fs/minix.c $(fs/minix.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(minix_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh minix > $@ || (rm -f $@; exit 1) + +fs-minix_mod-fs_minix.lst: fs/minix.c $(fs/minix.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(minix_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh minix > $@ || (rm -f $@; exit 1) + +parttool-minix_mod-fs_minix.lst: fs/minix.c $(fs/minix.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(minix_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh minix > $@ || (rm -f $@; exit 1) + +partmap-minix_mod-fs_minix.lst: fs/minix.c $(fs/minix.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(minix_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh minix > $@ || (rm -f $@; exit 1) + +handler-minix_mod-fs_minix.lst: fs/minix.c $(fs/minix.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(minix_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh minix > $@ || (rm -f $@; exit 1) + +terminal-minix_mod-fs_minix.lst: fs/minix.c $(fs/minix.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(minix_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh minix > $@ || (rm -f $@; exit 1) + +video-minix_mod-fs_minix.lst: fs/minix.c $(fs/minix.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(minix_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh minix > $@ || (rm -f $@; exit 1) + +minix_mod_CFLAGS = $(COMMON_CFLAGS) +minix_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For nilfs2.mod. +pkglib_MODULES += nilfs2.mod +nilfs2_mod_SOURCES = fs/nilfs2.c + +clean-module-nilfs2.mod.1: + rm -f nilfs2.mod mod-nilfs2.o mod-nilfs2.c pre-nilfs2.o nilfs2_mod-fs_nilfs2.o und-nilfs2.lst + +CLEAN_MODULE_TARGETS += clean-module-nilfs2.mod.1 + +clean-module-nilfs2.mod-symbol.1: + rm -f def-nilfs2.lst + +CLEAN_MODULE_TARGETS += clean-module-nilfs2.mod-symbol.1 +DEFSYMFILES += def-nilfs2.lst +mostlyclean-module-nilfs2.mod.1: + rm -f nilfs2_mod-fs_nilfs2.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-nilfs2.mod.1 +UNDSYMFILES += und-nilfs2.lst + +ifeq ($(TARGET_NO_MODULES), yes) +nilfs2.mod: pre-nilfs2.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(nilfs2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-nilfs2.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +nilfs2.mod: pre-nilfs2.o mod-nilfs2.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(nilfs2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-nilfs2.o mod-nilfs2.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +nilfs2.mod: pre-nilfs2.o mod-nilfs2.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(nilfs2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-nilfs2.o mod-nilfs2.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-nilfs2.o: $(nilfs2_mod_DEPENDENCIES) nilfs2_mod-fs_nilfs2.o + -rm -f $@ + $(TARGET_CC) $(nilfs2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ nilfs2_mod-fs_nilfs2.o + +mod-nilfs2.o: mod-nilfs2.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(nilfs2_mod_CFLAGS) -DGRUB_FILE=\"mod-nilfs2.c\" -c -o $@ $< + +mod-nilfs2.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'nilfs2' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-nilfs2.lst: pre-nilfs2.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 nilfs2/' > $@ +else +def-nilfs2.lst: pre-nilfs2.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 nilfs2/' > $@ +endif + +und-nilfs2.lst: pre-nilfs2.o + echo 'nilfs2' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +nilfs2_mod-fs_nilfs2.o: fs/nilfs2.c $(fs/nilfs2.c_DEPENDENCIES) + $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(nilfs2_mod_CFLAGS) -DGRUB_FILE=\"fs/nilfs2.c\" -MD -c -o $@ $< +-include nilfs2_mod-fs_nilfs2.d + +clean-module-nilfs2_mod-fs_nilfs2-extra.1: + rm -f cmd-nilfs2_mod-fs_nilfs2.lst fs-nilfs2_mod-fs_nilfs2.lst partmap-nilfs2_mod-fs_nilfs2.lst handler-nilfs2_mod-fs_nilfs2.lst parttool-nilfs2_mod-fs_nilfs2.lst video-nilfs2_mod-fs_nilfs2.lst terminal-nilfs2_mod-fs_nilfs2.lst + +CLEAN_MODULE_TARGETS += clean-module-nilfs2_mod-fs_nilfs2-extra.1 + +COMMANDFILES += cmd-nilfs2_mod-fs_nilfs2.lst +FSFILES += fs-nilfs2_mod-fs_nilfs2.lst +PARTTOOLFILES += parttool-nilfs2_mod-fs_nilfs2.lst +PARTMAPFILES += partmap-nilfs2_mod-fs_nilfs2.lst +HANDLERFILES += handler-nilfs2_mod-fs_nilfs2.lst +TERMINALFILES += terminal-nilfs2_mod-fs_nilfs2.lst +VIDEOFILES += video-nilfs2_mod-fs_nilfs2.lst + +cmd-nilfs2_mod-fs_nilfs2.lst: fs/nilfs2.c $(fs/nilfs2.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(nilfs2_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh nilfs2 > $@ || (rm -f $@; exit 1) + +fs-nilfs2_mod-fs_nilfs2.lst: fs/nilfs2.c $(fs/nilfs2.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(nilfs2_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh nilfs2 > $@ || (rm -f $@; exit 1) + +parttool-nilfs2_mod-fs_nilfs2.lst: fs/nilfs2.c $(fs/nilfs2.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(nilfs2_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh nilfs2 > $@ || (rm -f $@; exit 1) + +partmap-nilfs2_mod-fs_nilfs2.lst: fs/nilfs2.c $(fs/nilfs2.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(nilfs2_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh nilfs2 > $@ || (rm -f $@; exit 1) + +handler-nilfs2_mod-fs_nilfs2.lst: fs/nilfs2.c $(fs/nilfs2.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(nilfs2_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh nilfs2 > $@ || (rm -f $@; exit 1) + +terminal-nilfs2_mod-fs_nilfs2.lst: fs/nilfs2.c $(fs/nilfs2.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(nilfs2_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh nilfs2 > $@ || (rm -f $@; exit 1) + +video-nilfs2_mod-fs_nilfs2.lst: fs/nilfs2.c $(fs/nilfs2.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(nilfs2_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh nilfs2 > $@ || (rm -f $@; exit 1) + +nilfs2_mod_CFLAGS = $(COMMON_CFLAGS) +nilfs2_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For hfs.mod. +hfs_mod_SOURCES = fs/hfs.c + +clean-module-hfs.mod.1: + rm -f hfs.mod mod-hfs.o mod-hfs.c pre-hfs.o hfs_mod-fs_hfs.o und-hfs.lst + +CLEAN_MODULE_TARGETS += clean-module-hfs.mod.1 + +clean-module-hfs.mod-symbol.1: + rm -f def-hfs.lst + +CLEAN_MODULE_TARGETS += clean-module-hfs.mod-symbol.1 +DEFSYMFILES += def-hfs.lst +mostlyclean-module-hfs.mod.1: + rm -f hfs_mod-fs_hfs.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-hfs.mod.1 +UNDSYMFILES += und-hfs.lst + +ifeq ($(TARGET_NO_MODULES), yes) +hfs.mod: pre-hfs.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(hfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-hfs.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +hfs.mod: pre-hfs.o mod-hfs.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(hfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-hfs.o mod-hfs.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +hfs.mod: pre-hfs.o mod-hfs.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(hfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-hfs.o mod-hfs.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-hfs.o: $(hfs_mod_DEPENDENCIES) hfs_mod-fs_hfs.o + -rm -f $@ + $(TARGET_CC) $(hfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ hfs_mod-fs_hfs.o + +mod-hfs.o: mod-hfs.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hfs_mod_CFLAGS) -DGRUB_FILE=\"mod-hfs.c\" -c -o $@ $< + +mod-hfs.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'hfs' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-hfs.lst: pre-hfs.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 hfs/' > $@ +else +def-hfs.lst: pre-hfs.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 hfs/' > $@ +endif + +und-hfs.lst: pre-hfs.o + echo 'hfs' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +hfs_mod-fs_hfs.o: fs/hfs.c $(fs/hfs.c_DEPENDENCIES) + $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hfs_mod_CFLAGS) -DGRUB_FILE=\"fs/hfs.c\" -MD -c -o $@ $< +-include hfs_mod-fs_hfs.d + +clean-module-hfs_mod-fs_hfs-extra.1: + rm -f cmd-hfs_mod-fs_hfs.lst fs-hfs_mod-fs_hfs.lst partmap-hfs_mod-fs_hfs.lst handler-hfs_mod-fs_hfs.lst parttool-hfs_mod-fs_hfs.lst video-hfs_mod-fs_hfs.lst terminal-hfs_mod-fs_hfs.lst + +CLEAN_MODULE_TARGETS += clean-module-hfs_mod-fs_hfs-extra.1 + +COMMANDFILES += cmd-hfs_mod-fs_hfs.lst +FSFILES += fs-hfs_mod-fs_hfs.lst +PARTTOOLFILES += parttool-hfs_mod-fs_hfs.lst +PARTMAPFILES += partmap-hfs_mod-fs_hfs.lst +HANDLERFILES += handler-hfs_mod-fs_hfs.lst +TERMINALFILES += terminal-hfs_mod-fs_hfs.lst +VIDEOFILES += video-hfs_mod-fs_hfs.lst + +cmd-hfs_mod-fs_hfs.lst: fs/hfs.c $(fs/hfs.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hfs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh hfs > $@ || (rm -f $@; exit 1) + +fs-hfs_mod-fs_hfs.lst: fs/hfs.c $(fs/hfs.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(hfs_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh hfs > $@ || (rm -f $@; exit 1) + +parttool-hfs_mod-fs_hfs.lst: fs/hfs.c $(fs/hfs.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hfs_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh hfs > $@ || (rm -f $@; exit 1) + +partmap-hfs_mod-fs_hfs.lst: fs/hfs.c $(fs/hfs.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(hfs_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh hfs > $@ || (rm -f $@; exit 1) + +handler-hfs_mod-fs_hfs.lst: fs/hfs.c $(fs/hfs.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hfs_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh hfs > $@ || (rm -f $@; exit 1) + +terminal-hfs_mod-fs_hfs.lst: fs/hfs.c $(fs/hfs.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hfs_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh hfs > $@ || (rm -f $@; exit 1) + +video-hfs_mod-fs_hfs.lst: fs/hfs.c $(fs/hfs.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(hfs_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh hfs > $@ || (rm -f $@; exit 1) + +hfs_mod_CFLAGS = $(COMMON_CFLAGS) +hfs_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For jfs.mod. +jfs_mod_SOURCES = fs/jfs.c + +clean-module-jfs.mod.1: + rm -f jfs.mod mod-jfs.o mod-jfs.c pre-jfs.o jfs_mod-fs_jfs.o und-jfs.lst + +CLEAN_MODULE_TARGETS += clean-module-jfs.mod.1 + +clean-module-jfs.mod-symbol.1: + rm -f def-jfs.lst + +CLEAN_MODULE_TARGETS += clean-module-jfs.mod-symbol.1 +DEFSYMFILES += def-jfs.lst +mostlyclean-module-jfs.mod.1: + rm -f jfs_mod-fs_jfs.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-jfs.mod.1 +UNDSYMFILES += und-jfs.lst + +ifeq ($(TARGET_NO_MODULES), yes) +jfs.mod: pre-jfs.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(jfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-jfs.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +jfs.mod: pre-jfs.o mod-jfs.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(jfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-jfs.o mod-jfs.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +jfs.mod: pre-jfs.o mod-jfs.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(jfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-jfs.o mod-jfs.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-jfs.o: $(jfs_mod_DEPENDENCIES) jfs_mod-fs_jfs.o + -rm -f $@ + $(TARGET_CC) $(jfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ jfs_mod-fs_jfs.o + +mod-jfs.o: mod-jfs.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(jfs_mod_CFLAGS) -DGRUB_FILE=\"mod-jfs.c\" -c -o $@ $< + +mod-jfs.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'jfs' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-jfs.lst: pre-jfs.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 jfs/' > $@ +else +def-jfs.lst: pre-jfs.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 jfs/' > $@ +endif + +und-jfs.lst: pre-jfs.o + echo 'jfs' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +jfs_mod-fs_jfs.o: fs/jfs.c $(fs/jfs.c_DEPENDENCIES) + $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(jfs_mod_CFLAGS) -DGRUB_FILE=\"fs/jfs.c\" -MD -c -o $@ $< +-include jfs_mod-fs_jfs.d + +clean-module-jfs_mod-fs_jfs-extra.1: + rm -f cmd-jfs_mod-fs_jfs.lst fs-jfs_mod-fs_jfs.lst partmap-jfs_mod-fs_jfs.lst handler-jfs_mod-fs_jfs.lst parttool-jfs_mod-fs_jfs.lst video-jfs_mod-fs_jfs.lst terminal-jfs_mod-fs_jfs.lst + +CLEAN_MODULE_TARGETS += clean-module-jfs_mod-fs_jfs-extra.1 + +COMMANDFILES += cmd-jfs_mod-fs_jfs.lst +FSFILES += fs-jfs_mod-fs_jfs.lst +PARTTOOLFILES += parttool-jfs_mod-fs_jfs.lst +PARTMAPFILES += partmap-jfs_mod-fs_jfs.lst +HANDLERFILES += handler-jfs_mod-fs_jfs.lst +TERMINALFILES += terminal-jfs_mod-fs_jfs.lst +VIDEOFILES += video-jfs_mod-fs_jfs.lst + +cmd-jfs_mod-fs_jfs.lst: fs/jfs.c $(fs/jfs.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(jfs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh jfs > $@ || (rm -f $@; exit 1) + +fs-jfs_mod-fs_jfs.lst: fs/jfs.c $(fs/jfs.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(jfs_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh jfs > $@ || (rm -f $@; exit 1) + +parttool-jfs_mod-fs_jfs.lst: fs/jfs.c $(fs/jfs.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(jfs_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh jfs > $@ || (rm -f $@; exit 1) + +partmap-jfs_mod-fs_jfs.lst: fs/jfs.c $(fs/jfs.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(jfs_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh jfs > $@ || (rm -f $@; exit 1) + +handler-jfs_mod-fs_jfs.lst: fs/jfs.c $(fs/jfs.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(jfs_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh jfs > $@ || (rm -f $@; exit 1) + +terminal-jfs_mod-fs_jfs.lst: fs/jfs.c $(fs/jfs.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(jfs_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh jfs > $@ || (rm -f $@; exit 1) + +video-jfs_mod-fs_jfs.lst: fs/jfs.c $(fs/jfs.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(jfs_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh jfs > $@ || (rm -f $@; exit 1) + +jfs_mod_CFLAGS = $(COMMON_CFLAGS) +jfs_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For iso9660.mod. +iso9660_mod_SOURCES = fs/iso9660.c + +clean-module-iso9660.mod.1: + rm -f iso9660.mod mod-iso9660.o mod-iso9660.c pre-iso9660.o iso9660_mod-fs_iso9660.o und-iso9660.lst + +CLEAN_MODULE_TARGETS += clean-module-iso9660.mod.1 + +clean-module-iso9660.mod-symbol.1: + rm -f def-iso9660.lst + +CLEAN_MODULE_TARGETS += clean-module-iso9660.mod-symbol.1 +DEFSYMFILES += def-iso9660.lst +mostlyclean-module-iso9660.mod.1: + rm -f iso9660_mod-fs_iso9660.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-iso9660.mod.1 +UNDSYMFILES += und-iso9660.lst + +ifeq ($(TARGET_NO_MODULES), yes) +iso9660.mod: pre-iso9660.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(iso9660_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-iso9660.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +iso9660.mod: pre-iso9660.o mod-iso9660.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(iso9660_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-iso9660.o mod-iso9660.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +iso9660.mod: pre-iso9660.o mod-iso9660.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(iso9660_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-iso9660.o mod-iso9660.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-iso9660.o: $(iso9660_mod_DEPENDENCIES) iso9660_mod-fs_iso9660.o + -rm -f $@ + $(TARGET_CC) $(iso9660_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ iso9660_mod-fs_iso9660.o + +mod-iso9660.o: mod-iso9660.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(iso9660_mod_CFLAGS) -DGRUB_FILE=\"mod-iso9660.c\" -c -o $@ $< + +mod-iso9660.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'iso9660' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-iso9660.lst: pre-iso9660.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 iso9660/' > $@ +else +def-iso9660.lst: pre-iso9660.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 iso9660/' > $@ +endif + +und-iso9660.lst: pre-iso9660.o + echo 'iso9660' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +iso9660_mod-fs_iso9660.o: fs/iso9660.c $(fs/iso9660.c_DEPENDENCIES) + $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(iso9660_mod_CFLAGS) -DGRUB_FILE=\"fs/iso9660.c\" -MD -c -o $@ $< +-include iso9660_mod-fs_iso9660.d + +clean-module-iso9660_mod-fs_iso9660-extra.1: + rm -f cmd-iso9660_mod-fs_iso9660.lst fs-iso9660_mod-fs_iso9660.lst partmap-iso9660_mod-fs_iso9660.lst handler-iso9660_mod-fs_iso9660.lst parttool-iso9660_mod-fs_iso9660.lst video-iso9660_mod-fs_iso9660.lst terminal-iso9660_mod-fs_iso9660.lst + +CLEAN_MODULE_TARGETS += clean-module-iso9660_mod-fs_iso9660-extra.1 + +COMMANDFILES += cmd-iso9660_mod-fs_iso9660.lst +FSFILES += fs-iso9660_mod-fs_iso9660.lst +PARTTOOLFILES += parttool-iso9660_mod-fs_iso9660.lst +PARTMAPFILES += partmap-iso9660_mod-fs_iso9660.lst +HANDLERFILES += handler-iso9660_mod-fs_iso9660.lst +TERMINALFILES += terminal-iso9660_mod-fs_iso9660.lst +VIDEOFILES += video-iso9660_mod-fs_iso9660.lst + +cmd-iso9660_mod-fs_iso9660.lst: fs/iso9660.c $(fs/iso9660.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(iso9660_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh iso9660 > $@ || (rm -f $@; exit 1) + +fs-iso9660_mod-fs_iso9660.lst: fs/iso9660.c $(fs/iso9660.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(iso9660_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh iso9660 > $@ || (rm -f $@; exit 1) + +parttool-iso9660_mod-fs_iso9660.lst: fs/iso9660.c $(fs/iso9660.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(iso9660_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh iso9660 > $@ || (rm -f $@; exit 1) + +partmap-iso9660_mod-fs_iso9660.lst: fs/iso9660.c $(fs/iso9660.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(iso9660_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh iso9660 > $@ || (rm -f $@; exit 1) + +handler-iso9660_mod-fs_iso9660.lst: fs/iso9660.c $(fs/iso9660.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(iso9660_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh iso9660 > $@ || (rm -f $@; exit 1) + +terminal-iso9660_mod-fs_iso9660.lst: fs/iso9660.c $(fs/iso9660.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(iso9660_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh iso9660 > $@ || (rm -f $@; exit 1) + +video-iso9660_mod-fs_iso9660.lst: fs/iso9660.c $(fs/iso9660.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(iso9660_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh iso9660 > $@ || (rm -f $@; exit 1) + +iso9660_mod_CFLAGS = $(COMMON_CFLAGS) +iso9660_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For xfs.mod. +xfs_mod_SOURCES = fs/xfs.c + +clean-module-xfs.mod.1: + rm -f xfs.mod mod-xfs.o mod-xfs.c pre-xfs.o xfs_mod-fs_xfs.o und-xfs.lst + +CLEAN_MODULE_TARGETS += clean-module-xfs.mod.1 + +clean-module-xfs.mod-symbol.1: + rm -f def-xfs.lst + +CLEAN_MODULE_TARGETS += clean-module-xfs.mod-symbol.1 +DEFSYMFILES += def-xfs.lst +mostlyclean-module-xfs.mod.1: + rm -f xfs_mod-fs_xfs.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-xfs.mod.1 +UNDSYMFILES += und-xfs.lst + +ifeq ($(TARGET_NO_MODULES), yes) +xfs.mod: pre-xfs.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(xfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-xfs.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +xfs.mod: pre-xfs.o mod-xfs.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(xfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-xfs.o mod-xfs.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +xfs.mod: pre-xfs.o mod-xfs.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(xfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-xfs.o mod-xfs.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-xfs.o: $(xfs_mod_DEPENDENCIES) xfs_mod-fs_xfs.o + -rm -f $@ + $(TARGET_CC) $(xfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ xfs_mod-fs_xfs.o + +mod-xfs.o: mod-xfs.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xfs_mod_CFLAGS) -DGRUB_FILE=\"mod-xfs.c\" -c -o $@ $< + +mod-xfs.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'xfs' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-xfs.lst: pre-xfs.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 xfs/' > $@ +else +def-xfs.lst: pre-xfs.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 xfs/' > $@ +endif + +und-xfs.lst: pre-xfs.o + echo 'xfs' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +xfs_mod-fs_xfs.o: fs/xfs.c $(fs/xfs.c_DEPENDENCIES) + $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xfs_mod_CFLAGS) -DGRUB_FILE=\"fs/xfs.c\" -MD -c -o $@ $< +-include xfs_mod-fs_xfs.d + +clean-module-xfs_mod-fs_xfs-extra.1: + rm -f cmd-xfs_mod-fs_xfs.lst fs-xfs_mod-fs_xfs.lst partmap-xfs_mod-fs_xfs.lst handler-xfs_mod-fs_xfs.lst parttool-xfs_mod-fs_xfs.lst video-xfs_mod-fs_xfs.lst terminal-xfs_mod-fs_xfs.lst + +CLEAN_MODULE_TARGETS += clean-module-xfs_mod-fs_xfs-extra.1 + +COMMANDFILES += cmd-xfs_mod-fs_xfs.lst +FSFILES += fs-xfs_mod-fs_xfs.lst +PARTTOOLFILES += parttool-xfs_mod-fs_xfs.lst +PARTMAPFILES += partmap-xfs_mod-fs_xfs.lst +HANDLERFILES += handler-xfs_mod-fs_xfs.lst +TERMINALFILES += terminal-xfs_mod-fs_xfs.lst +VIDEOFILES += video-xfs_mod-fs_xfs.lst + +cmd-xfs_mod-fs_xfs.lst: fs/xfs.c $(fs/xfs.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xfs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh xfs > $@ || (rm -f $@; exit 1) + +fs-xfs_mod-fs_xfs.lst: fs/xfs.c $(fs/xfs.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xfs_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh xfs > $@ || (rm -f $@; exit 1) + +parttool-xfs_mod-fs_xfs.lst: fs/xfs.c $(fs/xfs.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xfs_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh xfs > $@ || (rm -f $@; exit 1) + +partmap-xfs_mod-fs_xfs.lst: fs/xfs.c $(fs/xfs.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xfs_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh xfs > $@ || (rm -f $@; exit 1) + +handler-xfs_mod-fs_xfs.lst: fs/xfs.c $(fs/xfs.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xfs_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh xfs > $@ || (rm -f $@; exit 1) + +terminal-xfs_mod-fs_xfs.lst: fs/xfs.c $(fs/xfs.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xfs_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh xfs > $@ || (rm -f $@; exit 1) + +video-xfs_mod-fs_xfs.lst: fs/xfs.c $(fs/xfs.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xfs_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh xfs > $@ || (rm -f $@; exit 1) + +xfs_mod_CFLAGS = $(COMMON_CFLAGS) +xfs_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For affs.mod. +affs_mod_SOURCES = fs/affs.c + +clean-module-affs.mod.1: + rm -f affs.mod mod-affs.o mod-affs.c pre-affs.o affs_mod-fs_affs.o und-affs.lst + +CLEAN_MODULE_TARGETS += clean-module-affs.mod.1 + +clean-module-affs.mod-symbol.1: + rm -f def-affs.lst + +CLEAN_MODULE_TARGETS += clean-module-affs.mod-symbol.1 +DEFSYMFILES += def-affs.lst +mostlyclean-module-affs.mod.1: + rm -f affs_mod-fs_affs.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-affs.mod.1 +UNDSYMFILES += und-affs.lst + +ifeq ($(TARGET_NO_MODULES), yes) +affs.mod: pre-affs.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(affs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-affs.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +affs.mod: pre-affs.o mod-affs.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(affs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-affs.o mod-affs.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +affs.mod: pre-affs.o mod-affs.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(affs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-affs.o mod-affs.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-affs.o: $(affs_mod_DEPENDENCIES) affs_mod-fs_affs.o + -rm -f $@ + $(TARGET_CC) $(affs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ affs_mod-fs_affs.o + +mod-affs.o: mod-affs.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(affs_mod_CFLAGS) -DGRUB_FILE=\"mod-affs.c\" -c -o $@ $< + +mod-affs.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'affs' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-affs.lst: pre-affs.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 affs/' > $@ +else +def-affs.lst: pre-affs.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 affs/' > $@ +endif + +und-affs.lst: pre-affs.o + echo 'affs' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +affs_mod-fs_affs.o: fs/affs.c $(fs/affs.c_DEPENDENCIES) + $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(affs_mod_CFLAGS) -DGRUB_FILE=\"fs/affs.c\" -MD -c -o $@ $< +-include affs_mod-fs_affs.d + +clean-module-affs_mod-fs_affs-extra.1: + rm -f cmd-affs_mod-fs_affs.lst fs-affs_mod-fs_affs.lst partmap-affs_mod-fs_affs.lst handler-affs_mod-fs_affs.lst parttool-affs_mod-fs_affs.lst video-affs_mod-fs_affs.lst terminal-affs_mod-fs_affs.lst + +CLEAN_MODULE_TARGETS += clean-module-affs_mod-fs_affs-extra.1 + +COMMANDFILES += cmd-affs_mod-fs_affs.lst +FSFILES += fs-affs_mod-fs_affs.lst +PARTTOOLFILES += parttool-affs_mod-fs_affs.lst +PARTMAPFILES += partmap-affs_mod-fs_affs.lst +HANDLERFILES += handler-affs_mod-fs_affs.lst +TERMINALFILES += terminal-affs_mod-fs_affs.lst +VIDEOFILES += video-affs_mod-fs_affs.lst + +cmd-affs_mod-fs_affs.lst: fs/affs.c $(fs/affs.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(affs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh affs > $@ || (rm -f $@; exit 1) + +fs-affs_mod-fs_affs.lst: fs/affs.c $(fs/affs.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(affs_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh affs > $@ || (rm -f $@; exit 1) + +parttool-affs_mod-fs_affs.lst: fs/affs.c $(fs/affs.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(affs_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh affs > $@ || (rm -f $@; exit 1) + +partmap-affs_mod-fs_affs.lst: fs/affs.c $(fs/affs.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(affs_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh affs > $@ || (rm -f $@; exit 1) + +handler-affs_mod-fs_affs.lst: fs/affs.c $(fs/affs.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(affs_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh affs > $@ || (rm -f $@; exit 1) + +terminal-affs_mod-fs_affs.lst: fs/affs.c $(fs/affs.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(affs_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh affs > $@ || (rm -f $@; exit 1) + +video-affs_mod-fs_affs.lst: fs/affs.c $(fs/affs.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(affs_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh affs > $@ || (rm -f $@; exit 1) + +affs_mod_CFLAGS = $(COMMON_CFLAGS) +affs_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For sfs.mod. +sfs_mod_SOURCES = fs/sfs.c + +clean-module-sfs.mod.1: + rm -f sfs.mod mod-sfs.o mod-sfs.c pre-sfs.o sfs_mod-fs_sfs.o und-sfs.lst + +CLEAN_MODULE_TARGETS += clean-module-sfs.mod.1 + +clean-module-sfs.mod-symbol.1: + rm -f def-sfs.lst + +CLEAN_MODULE_TARGETS += clean-module-sfs.mod-symbol.1 +DEFSYMFILES += def-sfs.lst +mostlyclean-module-sfs.mod.1: + rm -f sfs_mod-fs_sfs.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-sfs.mod.1 +UNDSYMFILES += und-sfs.lst + +ifeq ($(TARGET_NO_MODULES), yes) +sfs.mod: pre-sfs.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(sfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-sfs.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +sfs.mod: pre-sfs.o mod-sfs.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(sfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-sfs.o mod-sfs.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +sfs.mod: pre-sfs.o mod-sfs.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(sfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-sfs.o mod-sfs.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-sfs.o: $(sfs_mod_DEPENDENCIES) sfs_mod-fs_sfs.o + -rm -f $@ + $(TARGET_CC) $(sfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ sfs_mod-fs_sfs.o + +mod-sfs.o: mod-sfs.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(sfs_mod_CFLAGS) -DGRUB_FILE=\"mod-sfs.c\" -c -o $@ $< + +mod-sfs.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'sfs' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-sfs.lst: pre-sfs.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 sfs/' > $@ +else +def-sfs.lst: pre-sfs.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 sfs/' > $@ +endif + +und-sfs.lst: pre-sfs.o + echo 'sfs' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +sfs_mod-fs_sfs.o: fs/sfs.c $(fs/sfs.c_DEPENDENCIES) + $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(sfs_mod_CFLAGS) -DGRUB_FILE=\"fs/sfs.c\" -MD -c -o $@ $< +-include sfs_mod-fs_sfs.d + +clean-module-sfs_mod-fs_sfs-extra.1: + rm -f cmd-sfs_mod-fs_sfs.lst fs-sfs_mod-fs_sfs.lst partmap-sfs_mod-fs_sfs.lst handler-sfs_mod-fs_sfs.lst parttool-sfs_mod-fs_sfs.lst video-sfs_mod-fs_sfs.lst terminal-sfs_mod-fs_sfs.lst + +CLEAN_MODULE_TARGETS += clean-module-sfs_mod-fs_sfs-extra.1 + +COMMANDFILES += cmd-sfs_mod-fs_sfs.lst +FSFILES += fs-sfs_mod-fs_sfs.lst +PARTTOOLFILES += parttool-sfs_mod-fs_sfs.lst +PARTMAPFILES += partmap-sfs_mod-fs_sfs.lst +HANDLERFILES += handler-sfs_mod-fs_sfs.lst +TERMINALFILES += terminal-sfs_mod-fs_sfs.lst +VIDEOFILES += video-sfs_mod-fs_sfs.lst + +cmd-sfs_mod-fs_sfs.lst: fs/sfs.c $(fs/sfs.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(sfs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh sfs > $@ || (rm -f $@; exit 1) + +fs-sfs_mod-fs_sfs.lst: fs/sfs.c $(fs/sfs.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(sfs_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh sfs > $@ || (rm -f $@; exit 1) + +parttool-sfs_mod-fs_sfs.lst: fs/sfs.c $(fs/sfs.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(sfs_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh sfs > $@ || (rm -f $@; exit 1) + +partmap-sfs_mod-fs_sfs.lst: fs/sfs.c $(fs/sfs.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(sfs_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh sfs > $@ || (rm -f $@; exit 1) + +handler-sfs_mod-fs_sfs.lst: fs/sfs.c $(fs/sfs.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(sfs_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh sfs > $@ || (rm -f $@; exit 1) + +terminal-sfs_mod-fs_sfs.lst: fs/sfs.c $(fs/sfs.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(sfs_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh sfs > $@ || (rm -f $@; exit 1) + +video-sfs_mod-fs_sfs.lst: fs/sfs.c $(fs/sfs.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(sfs_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh sfs > $@ || (rm -f $@; exit 1) + +sfs_mod_CFLAGS = $(COMMON_CFLAGS) +sfs_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For hfsplus.mod. +hfsplus_mod_SOURCES = fs/hfsplus.c + +clean-module-hfsplus.mod.1: + rm -f hfsplus.mod mod-hfsplus.o mod-hfsplus.c pre-hfsplus.o hfsplus_mod-fs_hfsplus.o und-hfsplus.lst + +CLEAN_MODULE_TARGETS += clean-module-hfsplus.mod.1 + +clean-module-hfsplus.mod-symbol.1: + rm -f def-hfsplus.lst + +CLEAN_MODULE_TARGETS += clean-module-hfsplus.mod-symbol.1 +DEFSYMFILES += def-hfsplus.lst +mostlyclean-module-hfsplus.mod.1: + rm -f hfsplus_mod-fs_hfsplus.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-hfsplus.mod.1 +UNDSYMFILES += und-hfsplus.lst + +ifeq ($(TARGET_NO_MODULES), yes) +hfsplus.mod: pre-hfsplus.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(hfsplus_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-hfsplus.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +hfsplus.mod: pre-hfsplus.o mod-hfsplus.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(hfsplus_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-hfsplus.o mod-hfsplus.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +hfsplus.mod: pre-hfsplus.o mod-hfsplus.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(hfsplus_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-hfsplus.o mod-hfsplus.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-hfsplus.o: $(hfsplus_mod_DEPENDENCIES) hfsplus_mod-fs_hfsplus.o + -rm -f $@ + $(TARGET_CC) $(hfsplus_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ hfsplus_mod-fs_hfsplus.o + +mod-hfsplus.o: mod-hfsplus.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hfsplus_mod_CFLAGS) -DGRUB_FILE=\"mod-hfsplus.c\" -c -o $@ $< + +mod-hfsplus.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'hfsplus' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-hfsplus.lst: pre-hfsplus.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 hfsplus/' > $@ +else +def-hfsplus.lst: pre-hfsplus.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 hfsplus/' > $@ +endif + +und-hfsplus.lst: pre-hfsplus.o + echo 'hfsplus' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +hfsplus_mod-fs_hfsplus.o: fs/hfsplus.c $(fs/hfsplus.c_DEPENDENCIES) + $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hfsplus_mod_CFLAGS) -DGRUB_FILE=\"fs/hfsplus.c\" -MD -c -o $@ $< +-include hfsplus_mod-fs_hfsplus.d + +clean-module-hfsplus_mod-fs_hfsplus-extra.1: + rm -f cmd-hfsplus_mod-fs_hfsplus.lst fs-hfsplus_mod-fs_hfsplus.lst partmap-hfsplus_mod-fs_hfsplus.lst handler-hfsplus_mod-fs_hfsplus.lst parttool-hfsplus_mod-fs_hfsplus.lst video-hfsplus_mod-fs_hfsplus.lst terminal-hfsplus_mod-fs_hfsplus.lst + +CLEAN_MODULE_TARGETS += clean-module-hfsplus_mod-fs_hfsplus-extra.1 + +COMMANDFILES += cmd-hfsplus_mod-fs_hfsplus.lst +FSFILES += fs-hfsplus_mod-fs_hfsplus.lst +PARTTOOLFILES += parttool-hfsplus_mod-fs_hfsplus.lst +PARTMAPFILES += partmap-hfsplus_mod-fs_hfsplus.lst +HANDLERFILES += handler-hfsplus_mod-fs_hfsplus.lst +TERMINALFILES += terminal-hfsplus_mod-fs_hfsplus.lst +VIDEOFILES += video-hfsplus_mod-fs_hfsplus.lst + +cmd-hfsplus_mod-fs_hfsplus.lst: fs/hfsplus.c $(fs/hfsplus.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hfsplus_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh hfsplus > $@ || (rm -f $@; exit 1) + +fs-hfsplus_mod-fs_hfsplus.lst: fs/hfsplus.c $(fs/hfsplus.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(hfsplus_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh hfsplus > $@ || (rm -f $@; exit 1) + +parttool-hfsplus_mod-fs_hfsplus.lst: fs/hfsplus.c $(fs/hfsplus.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hfsplus_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh hfsplus > $@ || (rm -f $@; exit 1) + +partmap-hfsplus_mod-fs_hfsplus.lst: fs/hfsplus.c $(fs/hfsplus.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(hfsplus_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh hfsplus > $@ || (rm -f $@; exit 1) + +handler-hfsplus_mod-fs_hfsplus.lst: fs/hfsplus.c $(fs/hfsplus.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hfsplus_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh hfsplus > $@ || (rm -f $@; exit 1) + +terminal-hfsplus_mod-fs_hfsplus.lst: fs/hfsplus.c $(fs/hfsplus.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hfsplus_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh hfsplus > $@ || (rm -f $@; exit 1) + +video-hfsplus_mod-fs_hfsplus.lst: fs/hfsplus.c $(fs/hfsplus.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(hfsplus_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh hfsplus > $@ || (rm -f $@; exit 1) + +hfsplus_mod_CFLAGS = $(COMMON_CFLAGS) +hfsplus_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For reiserfs.mod. +reiserfs_mod_SOURCES = fs/reiserfs.c + +clean-module-reiserfs.mod.1: + rm -f reiserfs.mod mod-reiserfs.o mod-reiserfs.c pre-reiserfs.o reiserfs_mod-fs_reiserfs.o und-reiserfs.lst + +CLEAN_MODULE_TARGETS += clean-module-reiserfs.mod.1 + +clean-module-reiserfs.mod-symbol.1: + rm -f def-reiserfs.lst + +CLEAN_MODULE_TARGETS += clean-module-reiserfs.mod-symbol.1 +DEFSYMFILES += def-reiserfs.lst +mostlyclean-module-reiserfs.mod.1: + rm -f reiserfs_mod-fs_reiserfs.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-reiserfs.mod.1 +UNDSYMFILES += und-reiserfs.lst + +ifeq ($(TARGET_NO_MODULES), yes) +reiserfs.mod: pre-reiserfs.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(reiserfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-reiserfs.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +reiserfs.mod: pre-reiserfs.o mod-reiserfs.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(reiserfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-reiserfs.o mod-reiserfs.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +reiserfs.mod: pre-reiserfs.o mod-reiserfs.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(reiserfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-reiserfs.o mod-reiserfs.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-reiserfs.o: $(reiserfs_mod_DEPENDENCIES) reiserfs_mod-fs_reiserfs.o + -rm -f $@ + $(TARGET_CC) $(reiserfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ reiserfs_mod-fs_reiserfs.o + +mod-reiserfs.o: mod-reiserfs.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(reiserfs_mod_CFLAGS) -DGRUB_FILE=\"mod-reiserfs.c\" -c -o $@ $< + +mod-reiserfs.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'reiserfs' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-reiserfs.lst: pre-reiserfs.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 reiserfs/' > $@ +else +def-reiserfs.lst: pre-reiserfs.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 reiserfs/' > $@ +endif + +und-reiserfs.lst: pre-reiserfs.o + echo 'reiserfs' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +reiserfs_mod-fs_reiserfs.o: fs/reiserfs.c $(fs/reiserfs.c_DEPENDENCIES) + $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(reiserfs_mod_CFLAGS) -DGRUB_FILE=\"fs/reiserfs.c\" -MD -c -o $@ $< +-include reiserfs_mod-fs_reiserfs.d + +clean-module-reiserfs_mod-fs_reiserfs-extra.1: + rm -f cmd-reiserfs_mod-fs_reiserfs.lst fs-reiserfs_mod-fs_reiserfs.lst partmap-reiserfs_mod-fs_reiserfs.lst handler-reiserfs_mod-fs_reiserfs.lst parttool-reiserfs_mod-fs_reiserfs.lst video-reiserfs_mod-fs_reiserfs.lst terminal-reiserfs_mod-fs_reiserfs.lst + +CLEAN_MODULE_TARGETS += clean-module-reiserfs_mod-fs_reiserfs-extra.1 + +COMMANDFILES += cmd-reiserfs_mod-fs_reiserfs.lst +FSFILES += fs-reiserfs_mod-fs_reiserfs.lst +PARTTOOLFILES += parttool-reiserfs_mod-fs_reiserfs.lst +PARTMAPFILES += partmap-reiserfs_mod-fs_reiserfs.lst +HANDLERFILES += handler-reiserfs_mod-fs_reiserfs.lst +TERMINALFILES += terminal-reiserfs_mod-fs_reiserfs.lst +VIDEOFILES += video-reiserfs_mod-fs_reiserfs.lst + +cmd-reiserfs_mod-fs_reiserfs.lst: fs/reiserfs.c $(fs/reiserfs.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(reiserfs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh reiserfs > $@ || (rm -f $@; exit 1) + +fs-reiserfs_mod-fs_reiserfs.lst: fs/reiserfs.c $(fs/reiserfs.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(reiserfs_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh reiserfs > $@ || (rm -f $@; exit 1) + +parttool-reiserfs_mod-fs_reiserfs.lst: fs/reiserfs.c $(fs/reiserfs.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(reiserfs_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh reiserfs > $@ || (rm -f $@; exit 1) + +partmap-reiserfs_mod-fs_reiserfs.lst: fs/reiserfs.c $(fs/reiserfs.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(reiserfs_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh reiserfs > $@ || (rm -f $@; exit 1) + +handler-reiserfs_mod-fs_reiserfs.lst: fs/reiserfs.c $(fs/reiserfs.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(reiserfs_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh reiserfs > $@ || (rm -f $@; exit 1) + +terminal-reiserfs_mod-fs_reiserfs.lst: fs/reiserfs.c $(fs/reiserfs.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(reiserfs_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh reiserfs > $@ || (rm -f $@; exit 1) + +video-reiserfs_mod-fs_reiserfs.lst: fs/reiserfs.c $(fs/reiserfs.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(reiserfs_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh reiserfs > $@ || (rm -f $@; exit 1) + +reiserfs_mod_CFLAGS = $(COMMON_CFLAGS) +reiserfs_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For cpio.mod. +cpio_mod_SOURCES = fs/cpio.c + +clean-module-cpio.mod.1: + rm -f cpio.mod mod-cpio.o mod-cpio.c pre-cpio.o cpio_mod-fs_cpio.o und-cpio.lst + +CLEAN_MODULE_TARGETS += clean-module-cpio.mod.1 + +clean-module-cpio.mod-symbol.1: + rm -f def-cpio.lst + +CLEAN_MODULE_TARGETS += clean-module-cpio.mod-symbol.1 +DEFSYMFILES += def-cpio.lst +mostlyclean-module-cpio.mod.1: + rm -f cpio_mod-fs_cpio.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-cpio.mod.1 +UNDSYMFILES += und-cpio.lst + +ifeq ($(TARGET_NO_MODULES), yes) +cpio.mod: pre-cpio.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(cpio_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-cpio.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +cpio.mod: pre-cpio.o mod-cpio.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(cpio_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-cpio.o mod-cpio.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +cpio.mod: pre-cpio.o mod-cpio.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(cpio_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-cpio.o mod-cpio.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-cpio.o: $(cpio_mod_DEPENDENCIES) cpio_mod-fs_cpio.o + -rm -f $@ + $(TARGET_CC) $(cpio_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ cpio_mod-fs_cpio.o + +mod-cpio.o: mod-cpio.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cpio_mod_CFLAGS) -DGRUB_FILE=\"mod-cpio.c\" -c -o $@ $< + +mod-cpio.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'cpio' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-cpio.lst: pre-cpio.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 cpio/' > $@ +else +def-cpio.lst: pre-cpio.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 cpio/' > $@ +endif + +und-cpio.lst: pre-cpio.o + echo 'cpio' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +cpio_mod-fs_cpio.o: fs/cpio.c $(fs/cpio.c_DEPENDENCIES) + $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cpio_mod_CFLAGS) -DGRUB_FILE=\"fs/cpio.c\" -MD -c -o $@ $< +-include cpio_mod-fs_cpio.d + +clean-module-cpio_mod-fs_cpio-extra.1: + rm -f cmd-cpio_mod-fs_cpio.lst fs-cpio_mod-fs_cpio.lst partmap-cpio_mod-fs_cpio.lst handler-cpio_mod-fs_cpio.lst parttool-cpio_mod-fs_cpio.lst video-cpio_mod-fs_cpio.lst terminal-cpio_mod-fs_cpio.lst + +CLEAN_MODULE_TARGETS += clean-module-cpio_mod-fs_cpio-extra.1 + +COMMANDFILES += cmd-cpio_mod-fs_cpio.lst +FSFILES += fs-cpio_mod-fs_cpio.lst +PARTTOOLFILES += parttool-cpio_mod-fs_cpio.lst +PARTMAPFILES += partmap-cpio_mod-fs_cpio.lst +HANDLERFILES += handler-cpio_mod-fs_cpio.lst +TERMINALFILES += terminal-cpio_mod-fs_cpio.lst +VIDEOFILES += video-cpio_mod-fs_cpio.lst + +cmd-cpio_mod-fs_cpio.lst: fs/cpio.c $(fs/cpio.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cpio_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh cpio > $@ || (rm -f $@; exit 1) + +fs-cpio_mod-fs_cpio.lst: fs/cpio.c $(fs/cpio.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(cpio_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh cpio > $@ || (rm -f $@; exit 1) + +parttool-cpio_mod-fs_cpio.lst: fs/cpio.c $(fs/cpio.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cpio_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh cpio > $@ || (rm -f $@; exit 1) + +partmap-cpio_mod-fs_cpio.lst: fs/cpio.c $(fs/cpio.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(cpio_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh cpio > $@ || (rm -f $@; exit 1) + +handler-cpio_mod-fs_cpio.lst: fs/cpio.c $(fs/cpio.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cpio_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh cpio > $@ || (rm -f $@; exit 1) + +terminal-cpio_mod-fs_cpio.lst: fs/cpio.c $(fs/cpio.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cpio_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh cpio > $@ || (rm -f $@; exit 1) + +video-cpio_mod-fs_cpio.lst: fs/cpio.c $(fs/cpio.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(cpio_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh cpio > $@ || (rm -f $@; exit 1) + +cpio_mod_CFLAGS = $(COMMON_CFLAGS) +cpio_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For tar.mod. +tar_mod_SOURCES = fs/tar.c + +clean-module-tar.mod.1: + rm -f tar.mod mod-tar.o mod-tar.c pre-tar.o tar_mod-fs_tar.o und-tar.lst + +CLEAN_MODULE_TARGETS += clean-module-tar.mod.1 + +clean-module-tar.mod-symbol.1: + rm -f def-tar.lst + +CLEAN_MODULE_TARGETS += clean-module-tar.mod-symbol.1 +DEFSYMFILES += def-tar.lst +mostlyclean-module-tar.mod.1: + rm -f tar_mod-fs_tar.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-tar.mod.1 +UNDSYMFILES += und-tar.lst + +ifeq ($(TARGET_NO_MODULES), yes) +tar.mod: pre-tar.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(tar_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-tar.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +tar.mod: pre-tar.o mod-tar.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(tar_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-tar.o mod-tar.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +tar.mod: pre-tar.o mod-tar.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(tar_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-tar.o mod-tar.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-tar.o: $(tar_mod_DEPENDENCIES) tar_mod-fs_tar.o + -rm -f $@ + $(TARGET_CC) $(tar_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ tar_mod-fs_tar.o + +mod-tar.o: mod-tar.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(tar_mod_CFLAGS) -DGRUB_FILE=\"mod-tar.c\" -c -o $@ $< + +mod-tar.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'tar' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-tar.lst: pre-tar.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 tar/' > $@ +else +def-tar.lst: pre-tar.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 tar/' > $@ +endif + +und-tar.lst: pre-tar.o + echo 'tar' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +tar_mod-fs_tar.o: fs/tar.c $(fs/tar.c_DEPENDENCIES) + $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(tar_mod_CFLAGS) -DGRUB_FILE=\"fs/tar.c\" -MD -c -o $@ $< +-include tar_mod-fs_tar.d + +clean-module-tar_mod-fs_tar-extra.1: + rm -f cmd-tar_mod-fs_tar.lst fs-tar_mod-fs_tar.lst partmap-tar_mod-fs_tar.lst handler-tar_mod-fs_tar.lst parttool-tar_mod-fs_tar.lst video-tar_mod-fs_tar.lst terminal-tar_mod-fs_tar.lst + +CLEAN_MODULE_TARGETS += clean-module-tar_mod-fs_tar-extra.1 + +COMMANDFILES += cmd-tar_mod-fs_tar.lst +FSFILES += fs-tar_mod-fs_tar.lst +PARTTOOLFILES += parttool-tar_mod-fs_tar.lst +PARTMAPFILES += partmap-tar_mod-fs_tar.lst +HANDLERFILES += handler-tar_mod-fs_tar.lst +TERMINALFILES += terminal-tar_mod-fs_tar.lst +VIDEOFILES += video-tar_mod-fs_tar.lst + +cmd-tar_mod-fs_tar.lst: fs/tar.c $(fs/tar.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(tar_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh tar > $@ || (rm -f $@; exit 1) + +fs-tar_mod-fs_tar.lst: fs/tar.c $(fs/tar.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(tar_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh tar > $@ || (rm -f $@; exit 1) + +parttool-tar_mod-fs_tar.lst: fs/tar.c $(fs/tar.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(tar_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh tar > $@ || (rm -f $@; exit 1) + +partmap-tar_mod-fs_tar.lst: fs/tar.c $(fs/tar.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(tar_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh tar > $@ || (rm -f $@; exit 1) + +handler-tar_mod-fs_tar.lst: fs/tar.c $(fs/tar.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(tar_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh tar > $@ || (rm -f $@; exit 1) + +terminal-tar_mod-fs_tar.lst: fs/tar.c $(fs/tar.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(tar_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh tar > $@ || (rm -f $@; exit 1) + +video-tar_mod-fs_tar.lst: fs/tar.c $(fs/tar.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(tar_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh tar > $@ || (rm -f $@; exit 1) + +tar_mod_CFLAGS = $(COMMON_CFLAGS) +tar_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For udf.mod. +udf_mod_SOURCES = fs/udf.c + +clean-module-udf.mod.1: + rm -f udf.mod mod-udf.o mod-udf.c pre-udf.o udf_mod-fs_udf.o und-udf.lst + +CLEAN_MODULE_TARGETS += clean-module-udf.mod.1 + +clean-module-udf.mod-symbol.1: + rm -f def-udf.lst + +CLEAN_MODULE_TARGETS += clean-module-udf.mod-symbol.1 +DEFSYMFILES += def-udf.lst +mostlyclean-module-udf.mod.1: + rm -f udf_mod-fs_udf.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-udf.mod.1 +UNDSYMFILES += und-udf.lst + +ifeq ($(TARGET_NO_MODULES), yes) +udf.mod: pre-udf.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(udf_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-udf.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +udf.mod: pre-udf.o mod-udf.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(udf_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-udf.o mod-udf.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +udf.mod: pre-udf.o mod-udf.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(udf_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-udf.o mod-udf.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-udf.o: $(udf_mod_DEPENDENCIES) udf_mod-fs_udf.o + -rm -f $@ + $(TARGET_CC) $(udf_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ udf_mod-fs_udf.o + +mod-udf.o: mod-udf.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(udf_mod_CFLAGS) -DGRUB_FILE=\"mod-udf.c\" -c -o $@ $< + +mod-udf.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'udf' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-udf.lst: pre-udf.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 udf/' > $@ +else +def-udf.lst: pre-udf.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 udf/' > $@ +endif + +und-udf.lst: pre-udf.o + echo 'udf' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +udf_mod-fs_udf.o: fs/udf.c $(fs/udf.c_DEPENDENCIES) + $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(udf_mod_CFLAGS) -DGRUB_FILE=\"fs/udf.c\" -MD -c -o $@ $< +-include udf_mod-fs_udf.d + +clean-module-udf_mod-fs_udf-extra.1: + rm -f cmd-udf_mod-fs_udf.lst fs-udf_mod-fs_udf.lst partmap-udf_mod-fs_udf.lst handler-udf_mod-fs_udf.lst parttool-udf_mod-fs_udf.lst video-udf_mod-fs_udf.lst terminal-udf_mod-fs_udf.lst + +CLEAN_MODULE_TARGETS += clean-module-udf_mod-fs_udf-extra.1 + +COMMANDFILES += cmd-udf_mod-fs_udf.lst +FSFILES += fs-udf_mod-fs_udf.lst +PARTTOOLFILES += parttool-udf_mod-fs_udf.lst +PARTMAPFILES += partmap-udf_mod-fs_udf.lst +HANDLERFILES += handler-udf_mod-fs_udf.lst +TERMINALFILES += terminal-udf_mod-fs_udf.lst +VIDEOFILES += video-udf_mod-fs_udf.lst + +cmd-udf_mod-fs_udf.lst: fs/udf.c $(fs/udf.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(udf_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh udf > $@ || (rm -f $@; exit 1) + +fs-udf_mod-fs_udf.lst: fs/udf.c $(fs/udf.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(udf_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh udf > $@ || (rm -f $@; exit 1) + +parttool-udf_mod-fs_udf.lst: fs/udf.c $(fs/udf.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(udf_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh udf > $@ || (rm -f $@; exit 1) + +partmap-udf_mod-fs_udf.lst: fs/udf.c $(fs/udf.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(udf_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh udf > $@ || (rm -f $@; exit 1) + +handler-udf_mod-fs_udf.lst: fs/udf.c $(fs/udf.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(udf_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh udf > $@ || (rm -f $@; exit 1) + +terminal-udf_mod-fs_udf.lst: fs/udf.c $(fs/udf.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(udf_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh udf > $@ || (rm -f $@; exit 1) + +video-udf_mod-fs_udf.lst: fs/udf.c $(fs/udf.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(udf_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh udf > $@ || (rm -f $@; exit 1) + +udf_mod_CFLAGS = $(COMMON_CFLAGS) +udf_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For afs.mod. +afs_mod_SOURCES = fs/afs.c + +clean-module-afs.mod.1: + rm -f afs.mod mod-afs.o mod-afs.c pre-afs.o afs_mod-fs_afs.o und-afs.lst + +CLEAN_MODULE_TARGETS += clean-module-afs.mod.1 + +clean-module-afs.mod-symbol.1: + rm -f def-afs.lst + +CLEAN_MODULE_TARGETS += clean-module-afs.mod-symbol.1 +DEFSYMFILES += def-afs.lst +mostlyclean-module-afs.mod.1: + rm -f afs_mod-fs_afs.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-afs.mod.1 +UNDSYMFILES += und-afs.lst + +ifeq ($(TARGET_NO_MODULES), yes) +afs.mod: pre-afs.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(afs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-afs.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +afs.mod: pre-afs.o mod-afs.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(afs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-afs.o mod-afs.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +afs.mod: pre-afs.o mod-afs.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(afs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-afs.o mod-afs.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-afs.o: $(afs_mod_DEPENDENCIES) afs_mod-fs_afs.o + -rm -f $@ + $(TARGET_CC) $(afs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ afs_mod-fs_afs.o + +mod-afs.o: mod-afs.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(afs_mod_CFLAGS) -DGRUB_FILE=\"mod-afs.c\" -c -o $@ $< + +mod-afs.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'afs' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-afs.lst: pre-afs.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 afs/' > $@ +else +def-afs.lst: pre-afs.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 afs/' > $@ +endif + +und-afs.lst: pre-afs.o + echo 'afs' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +afs_mod-fs_afs.o: fs/afs.c $(fs/afs.c_DEPENDENCIES) + $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(afs_mod_CFLAGS) -DGRUB_FILE=\"fs/afs.c\" -MD -c -o $@ $< +-include afs_mod-fs_afs.d + +clean-module-afs_mod-fs_afs-extra.1: + rm -f cmd-afs_mod-fs_afs.lst fs-afs_mod-fs_afs.lst partmap-afs_mod-fs_afs.lst handler-afs_mod-fs_afs.lst parttool-afs_mod-fs_afs.lst video-afs_mod-fs_afs.lst terminal-afs_mod-fs_afs.lst + +CLEAN_MODULE_TARGETS += clean-module-afs_mod-fs_afs-extra.1 + +COMMANDFILES += cmd-afs_mod-fs_afs.lst +FSFILES += fs-afs_mod-fs_afs.lst +PARTTOOLFILES += parttool-afs_mod-fs_afs.lst +PARTMAPFILES += partmap-afs_mod-fs_afs.lst +HANDLERFILES += handler-afs_mod-fs_afs.lst +TERMINALFILES += terminal-afs_mod-fs_afs.lst +VIDEOFILES += video-afs_mod-fs_afs.lst + +cmd-afs_mod-fs_afs.lst: fs/afs.c $(fs/afs.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(afs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh afs > $@ || (rm -f $@; exit 1) + +fs-afs_mod-fs_afs.lst: fs/afs.c $(fs/afs.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(afs_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh afs > $@ || (rm -f $@; exit 1) + +parttool-afs_mod-fs_afs.lst: fs/afs.c $(fs/afs.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(afs_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh afs > $@ || (rm -f $@; exit 1) + +partmap-afs_mod-fs_afs.lst: fs/afs.c $(fs/afs.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(afs_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh afs > $@ || (rm -f $@; exit 1) + +handler-afs_mod-fs_afs.lst: fs/afs.c $(fs/afs.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(afs_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh afs > $@ || (rm -f $@; exit 1) + +terminal-afs_mod-fs_afs.lst: fs/afs.c $(fs/afs.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(afs_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh afs > $@ || (rm -f $@; exit 1) + +video-afs_mod-fs_afs.lst: fs/afs.c $(fs/afs.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(afs_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh afs > $@ || (rm -f $@; exit 1) + +afs_mod_CFLAGS = $(COMMON_CFLAGS) +afs_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For afs_be.mod. +afs_be_mod_SOURCES = fs/afs_be.c + +clean-module-afs_be.mod.1: + rm -f afs_be.mod mod-afs_be.o mod-afs_be.c pre-afs_be.o afs_be_mod-fs_afs_be.o und-afs_be.lst + +CLEAN_MODULE_TARGETS += clean-module-afs_be.mod.1 + +clean-module-afs_be.mod-symbol.1: + rm -f def-afs_be.lst + +CLEAN_MODULE_TARGETS += clean-module-afs_be.mod-symbol.1 +DEFSYMFILES += def-afs_be.lst +mostlyclean-module-afs_be.mod.1: + rm -f afs_be_mod-fs_afs_be.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-afs_be.mod.1 +UNDSYMFILES += und-afs_be.lst + +ifeq ($(TARGET_NO_MODULES), yes) +afs_be.mod: pre-afs_be.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(afs_be_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-afs_be.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +afs_be.mod: pre-afs_be.o mod-afs_be.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(afs_be_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-afs_be.o mod-afs_be.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +afs_be.mod: pre-afs_be.o mod-afs_be.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(afs_be_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-afs_be.o mod-afs_be.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-afs_be.o: $(afs_be_mod_DEPENDENCIES) afs_be_mod-fs_afs_be.o + -rm -f $@ + $(TARGET_CC) $(afs_be_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ afs_be_mod-fs_afs_be.o + +mod-afs_be.o: mod-afs_be.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(afs_be_mod_CFLAGS) -DGRUB_FILE=\"mod-afs_be.c\" -c -o $@ $< + +mod-afs_be.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'afs_be' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-afs_be.lst: pre-afs_be.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 afs_be/' > $@ +else +def-afs_be.lst: pre-afs_be.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 afs_be/' > $@ +endif + +und-afs_be.lst: pre-afs_be.o + echo 'afs_be' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +afs_be_mod-fs_afs_be.o: fs/afs_be.c $(fs/afs_be.c_DEPENDENCIES) + $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(afs_be_mod_CFLAGS) -DGRUB_FILE=\"fs/afs_be.c\" -MD -c -o $@ $< +-include afs_be_mod-fs_afs_be.d + +clean-module-afs_be_mod-fs_afs_be-extra.1: + rm -f cmd-afs_be_mod-fs_afs_be.lst fs-afs_be_mod-fs_afs_be.lst partmap-afs_be_mod-fs_afs_be.lst handler-afs_be_mod-fs_afs_be.lst parttool-afs_be_mod-fs_afs_be.lst video-afs_be_mod-fs_afs_be.lst terminal-afs_be_mod-fs_afs_be.lst + +CLEAN_MODULE_TARGETS += clean-module-afs_be_mod-fs_afs_be-extra.1 + +COMMANDFILES += cmd-afs_be_mod-fs_afs_be.lst +FSFILES += fs-afs_be_mod-fs_afs_be.lst +PARTTOOLFILES += parttool-afs_be_mod-fs_afs_be.lst +PARTMAPFILES += partmap-afs_be_mod-fs_afs_be.lst +HANDLERFILES += handler-afs_be_mod-fs_afs_be.lst +TERMINALFILES += terminal-afs_be_mod-fs_afs_be.lst +VIDEOFILES += video-afs_be_mod-fs_afs_be.lst + +cmd-afs_be_mod-fs_afs_be.lst: fs/afs_be.c $(fs/afs_be.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(afs_be_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh afs_be > $@ || (rm -f $@; exit 1) + +fs-afs_be_mod-fs_afs_be.lst: fs/afs_be.c $(fs/afs_be.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(afs_be_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh afs_be > $@ || (rm -f $@; exit 1) + +parttool-afs_be_mod-fs_afs_be.lst: fs/afs_be.c $(fs/afs_be.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(afs_be_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh afs_be > $@ || (rm -f $@; exit 1) + +partmap-afs_be_mod-fs_afs_be.lst: fs/afs_be.c $(fs/afs_be.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(afs_be_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh afs_be > $@ || (rm -f $@; exit 1) + +handler-afs_be_mod-fs_afs_be.lst: fs/afs_be.c $(fs/afs_be.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(afs_be_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh afs_be > $@ || (rm -f $@; exit 1) + +terminal-afs_be_mod-fs_afs_be.lst: fs/afs_be.c $(fs/afs_be.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(afs_be_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh afs_be > $@ || (rm -f $@; exit 1) + +video-afs_be_mod-fs_afs_be.lst: fs/afs_be.c $(fs/afs_be.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(afs_be_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh afs_be > $@ || (rm -f $@; exit 1) + +afs_be_mod_CFLAGS = $(COMMON_CFLAGS) +afs_be_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For befs.mod. +befs_mod_SOURCES = fs/befs.c + +clean-module-befs.mod.1: + rm -f befs.mod mod-befs.o mod-befs.c pre-befs.o befs_mod-fs_befs.o und-befs.lst + +CLEAN_MODULE_TARGETS += clean-module-befs.mod.1 + +clean-module-befs.mod-symbol.1: + rm -f def-befs.lst + +CLEAN_MODULE_TARGETS += clean-module-befs.mod-symbol.1 +DEFSYMFILES += def-befs.lst +mostlyclean-module-befs.mod.1: + rm -f befs_mod-fs_befs.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-befs.mod.1 +UNDSYMFILES += und-befs.lst + +ifeq ($(TARGET_NO_MODULES), yes) +befs.mod: pre-befs.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(befs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-befs.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +befs.mod: pre-befs.o mod-befs.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(befs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-befs.o mod-befs.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +befs.mod: pre-befs.o mod-befs.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(befs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-befs.o mod-befs.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-befs.o: $(befs_mod_DEPENDENCIES) befs_mod-fs_befs.o + -rm -f $@ + $(TARGET_CC) $(befs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ befs_mod-fs_befs.o + +mod-befs.o: mod-befs.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(befs_mod_CFLAGS) -DGRUB_FILE=\"mod-befs.c\" -c -o $@ $< + +mod-befs.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'befs' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-befs.lst: pre-befs.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 befs/' > $@ +else +def-befs.lst: pre-befs.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 befs/' > $@ +endif + +und-befs.lst: pre-befs.o + echo 'befs' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +befs_mod-fs_befs.o: fs/befs.c $(fs/befs.c_DEPENDENCIES) + $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(befs_mod_CFLAGS) -DGRUB_FILE=\"fs/befs.c\" -MD -c -o $@ $< +-include befs_mod-fs_befs.d + +clean-module-befs_mod-fs_befs-extra.1: + rm -f cmd-befs_mod-fs_befs.lst fs-befs_mod-fs_befs.lst partmap-befs_mod-fs_befs.lst handler-befs_mod-fs_befs.lst parttool-befs_mod-fs_befs.lst video-befs_mod-fs_befs.lst terminal-befs_mod-fs_befs.lst + +CLEAN_MODULE_TARGETS += clean-module-befs_mod-fs_befs-extra.1 + +COMMANDFILES += cmd-befs_mod-fs_befs.lst +FSFILES += fs-befs_mod-fs_befs.lst +PARTTOOLFILES += parttool-befs_mod-fs_befs.lst +PARTMAPFILES += partmap-befs_mod-fs_befs.lst +HANDLERFILES += handler-befs_mod-fs_befs.lst +TERMINALFILES += terminal-befs_mod-fs_befs.lst +VIDEOFILES += video-befs_mod-fs_befs.lst + +cmd-befs_mod-fs_befs.lst: fs/befs.c $(fs/befs.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(befs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh befs > $@ || (rm -f $@; exit 1) + +fs-befs_mod-fs_befs.lst: fs/befs.c $(fs/befs.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(befs_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh befs > $@ || (rm -f $@; exit 1) + +parttool-befs_mod-fs_befs.lst: fs/befs.c $(fs/befs.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(befs_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh befs > $@ || (rm -f $@; exit 1) + +partmap-befs_mod-fs_befs.lst: fs/befs.c $(fs/befs.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(befs_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh befs > $@ || (rm -f $@; exit 1) + +handler-befs_mod-fs_befs.lst: fs/befs.c $(fs/befs.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(befs_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh befs > $@ || (rm -f $@; exit 1) + +terminal-befs_mod-fs_befs.lst: fs/befs.c $(fs/befs.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(befs_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh befs > $@ || (rm -f $@; exit 1) + +video-befs_mod-fs_befs.lst: fs/befs.c $(fs/befs.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(befs_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh befs > $@ || (rm -f $@; exit 1) + +befs_mod_CFLAGS = $(COMMON_CFLAGS) +befs_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For befs_be.mod. +befs_be_mod_SOURCES = fs/befs_be.c + +clean-module-befs_be.mod.1: + rm -f befs_be.mod mod-befs_be.o mod-befs_be.c pre-befs_be.o befs_be_mod-fs_befs_be.o und-befs_be.lst + +CLEAN_MODULE_TARGETS += clean-module-befs_be.mod.1 + +clean-module-befs_be.mod-symbol.1: + rm -f def-befs_be.lst + +CLEAN_MODULE_TARGETS += clean-module-befs_be.mod-symbol.1 +DEFSYMFILES += def-befs_be.lst +mostlyclean-module-befs_be.mod.1: + rm -f befs_be_mod-fs_befs_be.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-befs_be.mod.1 +UNDSYMFILES += und-befs_be.lst + +ifeq ($(TARGET_NO_MODULES), yes) +befs_be.mod: pre-befs_be.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(befs_be_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-befs_be.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +befs_be.mod: pre-befs_be.o mod-befs_be.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(befs_be_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-befs_be.o mod-befs_be.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +befs_be.mod: pre-befs_be.o mod-befs_be.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(befs_be_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-befs_be.o mod-befs_be.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-befs_be.o: $(befs_be_mod_DEPENDENCIES) befs_be_mod-fs_befs_be.o + -rm -f $@ + $(TARGET_CC) $(befs_be_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ befs_be_mod-fs_befs_be.o + +mod-befs_be.o: mod-befs_be.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(befs_be_mod_CFLAGS) -DGRUB_FILE=\"mod-befs_be.c\" -c -o $@ $< + +mod-befs_be.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'befs_be' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-befs_be.lst: pre-befs_be.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 befs_be/' > $@ +else +def-befs_be.lst: pre-befs_be.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 befs_be/' > $@ +endif + +und-befs_be.lst: pre-befs_be.o + echo 'befs_be' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +befs_be_mod-fs_befs_be.o: fs/befs_be.c $(fs/befs_be.c_DEPENDENCIES) + $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(befs_be_mod_CFLAGS) -DGRUB_FILE=\"fs/befs_be.c\" -MD -c -o $@ $< +-include befs_be_mod-fs_befs_be.d + +clean-module-befs_be_mod-fs_befs_be-extra.1: + rm -f cmd-befs_be_mod-fs_befs_be.lst fs-befs_be_mod-fs_befs_be.lst partmap-befs_be_mod-fs_befs_be.lst handler-befs_be_mod-fs_befs_be.lst parttool-befs_be_mod-fs_befs_be.lst video-befs_be_mod-fs_befs_be.lst terminal-befs_be_mod-fs_befs_be.lst + +CLEAN_MODULE_TARGETS += clean-module-befs_be_mod-fs_befs_be-extra.1 + +COMMANDFILES += cmd-befs_be_mod-fs_befs_be.lst +FSFILES += fs-befs_be_mod-fs_befs_be.lst +PARTTOOLFILES += parttool-befs_be_mod-fs_befs_be.lst +PARTMAPFILES += partmap-befs_be_mod-fs_befs_be.lst +HANDLERFILES += handler-befs_be_mod-fs_befs_be.lst +TERMINALFILES += terminal-befs_be_mod-fs_befs_be.lst +VIDEOFILES += video-befs_be_mod-fs_befs_be.lst + +cmd-befs_be_mod-fs_befs_be.lst: fs/befs_be.c $(fs/befs_be.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(befs_be_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh befs_be > $@ || (rm -f $@; exit 1) + +fs-befs_be_mod-fs_befs_be.lst: fs/befs_be.c $(fs/befs_be.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(befs_be_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh befs_be > $@ || (rm -f $@; exit 1) + +parttool-befs_be_mod-fs_befs_be.lst: fs/befs_be.c $(fs/befs_be.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(befs_be_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh befs_be > $@ || (rm -f $@; exit 1) + +partmap-befs_be_mod-fs_befs_be.lst: fs/befs_be.c $(fs/befs_be.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(befs_be_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh befs_be > $@ || (rm -f $@; exit 1) + +handler-befs_be_mod-fs_befs_be.lst: fs/befs_be.c $(fs/befs_be.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(befs_be_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh befs_be > $@ || (rm -f $@; exit 1) + +terminal-befs_be_mod-fs_befs_be.lst: fs/befs_be.c $(fs/befs_be.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(befs_be_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh befs_be > $@ || (rm -f $@; exit 1) + +video-befs_be_mod-fs_befs_be.lst: fs/befs_be.c $(fs/befs_be.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs -I$(srcdir)/fs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(befs_be_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh befs_be > $@ || (rm -f $@; exit 1) + +befs_be_mod_CFLAGS = $(COMMON_CFLAGS) +befs_be_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# Partition maps. + +pkglib_MODULES += part_amiga.mod +part_amiga_mod_SOURCES = partmap/amiga.c + +clean-module-part_amiga.mod.1: + rm -f part_amiga.mod mod-part_amiga.o mod-part_amiga.c pre-part_amiga.o part_amiga_mod-partmap_amiga.o und-part_amiga.lst + +CLEAN_MODULE_TARGETS += clean-module-part_amiga.mod.1 + +clean-module-part_amiga.mod-symbol.1: + rm -f def-part_amiga.lst + +CLEAN_MODULE_TARGETS += clean-module-part_amiga.mod-symbol.1 +DEFSYMFILES += def-part_amiga.lst +mostlyclean-module-part_amiga.mod.1: + rm -f part_amiga_mod-partmap_amiga.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-part_amiga.mod.1 +UNDSYMFILES += und-part_amiga.lst + +ifeq ($(TARGET_NO_MODULES), yes) +part_amiga.mod: pre-part_amiga.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(part_amiga_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-part_amiga.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +part_amiga.mod: pre-part_amiga.o mod-part_amiga.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(part_amiga_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-part_amiga.o mod-part_amiga.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +part_amiga.mod: pre-part_amiga.o mod-part_amiga.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(part_amiga_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-part_amiga.o mod-part_amiga.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-part_amiga.o: $(part_amiga_mod_DEPENDENCIES) part_amiga_mod-partmap_amiga.o + -rm -f $@ + $(TARGET_CC) $(part_amiga_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ part_amiga_mod-partmap_amiga.o + +mod-part_amiga.o: mod-part_amiga.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_amiga_mod_CFLAGS) -DGRUB_FILE=\"mod-part_amiga.c\" -c -o $@ $< + +mod-part_amiga.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'part_amiga' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-part_amiga.lst: pre-part_amiga.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 part_amiga/' > $@ +else +def-part_amiga.lst: pre-part_amiga.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 part_amiga/' > $@ +endif + +und-part_amiga.lst: pre-part_amiga.o + echo 'part_amiga' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +part_amiga_mod-partmap_amiga.o: partmap/amiga.c $(partmap/amiga.c_DEPENDENCIES) + $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_amiga_mod_CFLAGS) -DGRUB_FILE=\"partmap/amiga.c\" -MD -c -o $@ $< +-include part_amiga_mod-partmap_amiga.d + +clean-module-part_amiga_mod-partmap_amiga-extra.1: + rm -f cmd-part_amiga_mod-partmap_amiga.lst fs-part_amiga_mod-partmap_amiga.lst partmap-part_amiga_mod-partmap_amiga.lst handler-part_amiga_mod-partmap_amiga.lst parttool-part_amiga_mod-partmap_amiga.lst video-part_amiga_mod-partmap_amiga.lst terminal-part_amiga_mod-partmap_amiga.lst + +CLEAN_MODULE_TARGETS += clean-module-part_amiga_mod-partmap_amiga-extra.1 + +COMMANDFILES += cmd-part_amiga_mod-partmap_amiga.lst +FSFILES += fs-part_amiga_mod-partmap_amiga.lst +PARTTOOLFILES += parttool-part_amiga_mod-partmap_amiga.lst +PARTMAPFILES += partmap-part_amiga_mod-partmap_amiga.lst +HANDLERFILES += handler-part_amiga_mod-partmap_amiga.lst +TERMINALFILES += terminal-part_amiga_mod-partmap_amiga.lst +VIDEOFILES += video-part_amiga_mod-partmap_amiga.lst + +cmd-part_amiga_mod-partmap_amiga.lst: partmap/amiga.c $(partmap/amiga.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_amiga_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh part_amiga > $@ || (rm -f $@; exit 1) + +fs-part_amiga_mod-partmap_amiga.lst: partmap/amiga.c $(partmap/amiga.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(part_amiga_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh part_amiga > $@ || (rm -f $@; exit 1) + +parttool-part_amiga_mod-partmap_amiga.lst: partmap/amiga.c $(partmap/amiga.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_amiga_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh part_amiga > $@ || (rm -f $@; exit 1) + +partmap-part_amiga_mod-partmap_amiga.lst: partmap/amiga.c $(partmap/amiga.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(part_amiga_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh part_amiga > $@ || (rm -f $@; exit 1) + +handler-part_amiga_mod-partmap_amiga.lst: partmap/amiga.c $(partmap/amiga.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_amiga_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh part_amiga > $@ || (rm -f $@; exit 1) + +terminal-part_amiga_mod-partmap_amiga.lst: partmap/amiga.c $(partmap/amiga.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_amiga_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh part_amiga > $@ || (rm -f $@; exit 1) + +video-part_amiga_mod-partmap_amiga.lst: partmap/amiga.c $(partmap/amiga.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(part_amiga_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh part_amiga > $@ || (rm -f $@; exit 1) + +part_amiga_mod_CFLAGS = $(COMMON_CFLAGS) +part_amiga_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += part_apple.mod +part_apple_mod_SOURCES = partmap/apple.c + +clean-module-part_apple.mod.1: + rm -f part_apple.mod mod-part_apple.o mod-part_apple.c pre-part_apple.o part_apple_mod-partmap_apple.o und-part_apple.lst + +CLEAN_MODULE_TARGETS += clean-module-part_apple.mod.1 + +clean-module-part_apple.mod-symbol.1: + rm -f def-part_apple.lst + +CLEAN_MODULE_TARGETS += clean-module-part_apple.mod-symbol.1 +DEFSYMFILES += def-part_apple.lst +mostlyclean-module-part_apple.mod.1: + rm -f part_apple_mod-partmap_apple.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-part_apple.mod.1 +UNDSYMFILES += und-part_apple.lst + +ifeq ($(TARGET_NO_MODULES), yes) +part_apple.mod: pre-part_apple.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(part_apple_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-part_apple.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +part_apple.mod: pre-part_apple.o mod-part_apple.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(part_apple_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-part_apple.o mod-part_apple.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +part_apple.mod: pre-part_apple.o mod-part_apple.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(part_apple_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-part_apple.o mod-part_apple.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-part_apple.o: $(part_apple_mod_DEPENDENCIES) part_apple_mod-partmap_apple.o + -rm -f $@ + $(TARGET_CC) $(part_apple_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ part_apple_mod-partmap_apple.o + +mod-part_apple.o: mod-part_apple.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_apple_mod_CFLAGS) -DGRUB_FILE=\"mod-part_apple.c\" -c -o $@ $< + +mod-part_apple.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'part_apple' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-part_apple.lst: pre-part_apple.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 part_apple/' > $@ +else +def-part_apple.lst: pre-part_apple.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 part_apple/' > $@ +endif + +und-part_apple.lst: pre-part_apple.o + echo 'part_apple' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +part_apple_mod-partmap_apple.o: partmap/apple.c $(partmap/apple.c_DEPENDENCIES) + $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_apple_mod_CFLAGS) -DGRUB_FILE=\"partmap/apple.c\" -MD -c -o $@ $< +-include part_apple_mod-partmap_apple.d + +clean-module-part_apple_mod-partmap_apple-extra.1: + rm -f cmd-part_apple_mod-partmap_apple.lst fs-part_apple_mod-partmap_apple.lst partmap-part_apple_mod-partmap_apple.lst handler-part_apple_mod-partmap_apple.lst parttool-part_apple_mod-partmap_apple.lst video-part_apple_mod-partmap_apple.lst terminal-part_apple_mod-partmap_apple.lst + +CLEAN_MODULE_TARGETS += clean-module-part_apple_mod-partmap_apple-extra.1 + +COMMANDFILES += cmd-part_apple_mod-partmap_apple.lst +FSFILES += fs-part_apple_mod-partmap_apple.lst +PARTTOOLFILES += parttool-part_apple_mod-partmap_apple.lst +PARTMAPFILES += partmap-part_apple_mod-partmap_apple.lst +HANDLERFILES += handler-part_apple_mod-partmap_apple.lst +TERMINALFILES += terminal-part_apple_mod-partmap_apple.lst +VIDEOFILES += video-part_apple_mod-partmap_apple.lst + +cmd-part_apple_mod-partmap_apple.lst: partmap/apple.c $(partmap/apple.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_apple_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh part_apple > $@ || (rm -f $@; exit 1) + +fs-part_apple_mod-partmap_apple.lst: partmap/apple.c $(partmap/apple.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(part_apple_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh part_apple > $@ || (rm -f $@; exit 1) + +parttool-part_apple_mod-partmap_apple.lst: partmap/apple.c $(partmap/apple.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_apple_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh part_apple > $@ || (rm -f $@; exit 1) + +partmap-part_apple_mod-partmap_apple.lst: partmap/apple.c $(partmap/apple.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(part_apple_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh part_apple > $@ || (rm -f $@; exit 1) + +handler-part_apple_mod-partmap_apple.lst: partmap/apple.c $(partmap/apple.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_apple_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh part_apple > $@ || (rm -f $@; exit 1) + +terminal-part_apple_mod-partmap_apple.lst: partmap/apple.c $(partmap/apple.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_apple_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh part_apple > $@ || (rm -f $@; exit 1) + +video-part_apple_mod-partmap_apple.lst: partmap/apple.c $(partmap/apple.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(part_apple_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh part_apple > $@ || (rm -f $@; exit 1) + +part_apple_mod_CFLAGS = $(COMMON_CFLAGS) +part_apple_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += part_msdos.mod +part_msdos_mod_SOURCES = partmap/msdos.c + +clean-module-part_msdos.mod.1: + rm -f part_msdos.mod mod-part_msdos.o mod-part_msdos.c pre-part_msdos.o part_msdos_mod-partmap_msdos.o und-part_msdos.lst + +CLEAN_MODULE_TARGETS += clean-module-part_msdos.mod.1 + +clean-module-part_msdos.mod-symbol.1: + rm -f def-part_msdos.lst + +CLEAN_MODULE_TARGETS += clean-module-part_msdos.mod-symbol.1 +DEFSYMFILES += def-part_msdos.lst +mostlyclean-module-part_msdos.mod.1: + rm -f part_msdos_mod-partmap_msdos.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-part_msdos.mod.1 +UNDSYMFILES += und-part_msdos.lst + +ifeq ($(TARGET_NO_MODULES), yes) +part_msdos.mod: pre-part_msdos.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(part_msdos_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-part_msdos.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +part_msdos.mod: pre-part_msdos.o mod-part_msdos.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(part_msdos_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-part_msdos.o mod-part_msdos.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +part_msdos.mod: pre-part_msdos.o mod-part_msdos.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(part_msdos_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-part_msdos.o mod-part_msdos.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-part_msdos.o: $(part_msdos_mod_DEPENDENCIES) part_msdos_mod-partmap_msdos.o + -rm -f $@ + $(TARGET_CC) $(part_msdos_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ part_msdos_mod-partmap_msdos.o + +mod-part_msdos.o: mod-part_msdos.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_msdos_mod_CFLAGS) -DGRUB_FILE=\"mod-part_msdos.c\" -c -o $@ $< + +mod-part_msdos.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'part_msdos' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-part_msdos.lst: pre-part_msdos.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 part_msdos/' > $@ +else +def-part_msdos.lst: pre-part_msdos.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 part_msdos/' > $@ +endif + +und-part_msdos.lst: pre-part_msdos.o + echo 'part_msdos' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +part_msdos_mod-partmap_msdos.o: partmap/msdos.c $(partmap/msdos.c_DEPENDENCIES) + $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_msdos_mod_CFLAGS) -DGRUB_FILE=\"partmap/msdos.c\" -MD -c -o $@ $< +-include part_msdos_mod-partmap_msdos.d + +clean-module-part_msdos_mod-partmap_msdos-extra.1: + rm -f cmd-part_msdos_mod-partmap_msdos.lst fs-part_msdos_mod-partmap_msdos.lst partmap-part_msdos_mod-partmap_msdos.lst handler-part_msdos_mod-partmap_msdos.lst parttool-part_msdos_mod-partmap_msdos.lst video-part_msdos_mod-partmap_msdos.lst terminal-part_msdos_mod-partmap_msdos.lst + +CLEAN_MODULE_TARGETS += clean-module-part_msdos_mod-partmap_msdos-extra.1 + +COMMANDFILES += cmd-part_msdos_mod-partmap_msdos.lst +FSFILES += fs-part_msdos_mod-partmap_msdos.lst +PARTTOOLFILES += parttool-part_msdos_mod-partmap_msdos.lst +PARTMAPFILES += partmap-part_msdos_mod-partmap_msdos.lst +HANDLERFILES += handler-part_msdos_mod-partmap_msdos.lst +TERMINALFILES += terminal-part_msdos_mod-partmap_msdos.lst +VIDEOFILES += video-part_msdos_mod-partmap_msdos.lst + +cmd-part_msdos_mod-partmap_msdos.lst: partmap/msdos.c $(partmap/msdos.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_msdos_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh part_msdos > $@ || (rm -f $@; exit 1) + +fs-part_msdos_mod-partmap_msdos.lst: partmap/msdos.c $(partmap/msdos.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(part_msdos_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh part_msdos > $@ || (rm -f $@; exit 1) + +parttool-part_msdos_mod-partmap_msdos.lst: partmap/msdos.c $(partmap/msdos.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_msdos_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh part_msdos > $@ || (rm -f $@; exit 1) + +partmap-part_msdos_mod-partmap_msdos.lst: partmap/msdos.c $(partmap/msdos.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(part_msdos_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh part_msdos > $@ || (rm -f $@; exit 1) + +handler-part_msdos_mod-partmap_msdos.lst: partmap/msdos.c $(partmap/msdos.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_msdos_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh part_msdos > $@ || (rm -f $@; exit 1) + +terminal-part_msdos_mod-partmap_msdos.lst: partmap/msdos.c $(partmap/msdos.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_msdos_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh part_msdos > $@ || (rm -f $@; exit 1) + +video-part_msdos_mod-partmap_msdos.lst: partmap/msdos.c $(partmap/msdos.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(part_msdos_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh part_msdos > $@ || (rm -f $@; exit 1) + +part_msdos_mod_CFLAGS = $(COMMON_CFLAGS) +part_msdos_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += part_sun.mod +part_sun_mod_SOURCES = partmap/sun.c + +clean-module-part_sun.mod.1: + rm -f part_sun.mod mod-part_sun.o mod-part_sun.c pre-part_sun.o part_sun_mod-partmap_sun.o und-part_sun.lst + +CLEAN_MODULE_TARGETS += clean-module-part_sun.mod.1 + +clean-module-part_sun.mod-symbol.1: + rm -f def-part_sun.lst + +CLEAN_MODULE_TARGETS += clean-module-part_sun.mod-symbol.1 +DEFSYMFILES += def-part_sun.lst +mostlyclean-module-part_sun.mod.1: + rm -f part_sun_mod-partmap_sun.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-part_sun.mod.1 +UNDSYMFILES += und-part_sun.lst + +ifeq ($(TARGET_NO_MODULES), yes) +part_sun.mod: pre-part_sun.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(part_sun_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-part_sun.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +part_sun.mod: pre-part_sun.o mod-part_sun.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(part_sun_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-part_sun.o mod-part_sun.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +part_sun.mod: pre-part_sun.o mod-part_sun.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(part_sun_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-part_sun.o mod-part_sun.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-part_sun.o: $(part_sun_mod_DEPENDENCIES) part_sun_mod-partmap_sun.o + -rm -f $@ + $(TARGET_CC) $(part_sun_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ part_sun_mod-partmap_sun.o + +mod-part_sun.o: mod-part_sun.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_sun_mod_CFLAGS) -DGRUB_FILE=\"mod-part_sun.c\" -c -o $@ $< + +mod-part_sun.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'part_sun' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-part_sun.lst: pre-part_sun.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 part_sun/' > $@ +else +def-part_sun.lst: pre-part_sun.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 part_sun/' > $@ +endif + +und-part_sun.lst: pre-part_sun.o + echo 'part_sun' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +part_sun_mod-partmap_sun.o: partmap/sun.c $(partmap/sun.c_DEPENDENCIES) + $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_sun_mod_CFLAGS) -DGRUB_FILE=\"partmap/sun.c\" -MD -c -o $@ $< +-include part_sun_mod-partmap_sun.d + +clean-module-part_sun_mod-partmap_sun-extra.1: + rm -f cmd-part_sun_mod-partmap_sun.lst fs-part_sun_mod-partmap_sun.lst partmap-part_sun_mod-partmap_sun.lst handler-part_sun_mod-partmap_sun.lst parttool-part_sun_mod-partmap_sun.lst video-part_sun_mod-partmap_sun.lst terminal-part_sun_mod-partmap_sun.lst + +CLEAN_MODULE_TARGETS += clean-module-part_sun_mod-partmap_sun-extra.1 + +COMMANDFILES += cmd-part_sun_mod-partmap_sun.lst +FSFILES += fs-part_sun_mod-partmap_sun.lst +PARTTOOLFILES += parttool-part_sun_mod-partmap_sun.lst +PARTMAPFILES += partmap-part_sun_mod-partmap_sun.lst +HANDLERFILES += handler-part_sun_mod-partmap_sun.lst +TERMINALFILES += terminal-part_sun_mod-partmap_sun.lst +VIDEOFILES += video-part_sun_mod-partmap_sun.lst + +cmd-part_sun_mod-partmap_sun.lst: partmap/sun.c $(partmap/sun.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_sun_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh part_sun > $@ || (rm -f $@; exit 1) + +fs-part_sun_mod-partmap_sun.lst: partmap/sun.c $(partmap/sun.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(part_sun_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh part_sun > $@ || (rm -f $@; exit 1) + +parttool-part_sun_mod-partmap_sun.lst: partmap/sun.c $(partmap/sun.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_sun_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh part_sun > $@ || (rm -f $@; exit 1) + +partmap-part_sun_mod-partmap_sun.lst: partmap/sun.c $(partmap/sun.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(part_sun_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh part_sun > $@ || (rm -f $@; exit 1) + +handler-part_sun_mod-partmap_sun.lst: partmap/sun.c $(partmap/sun.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_sun_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh part_sun > $@ || (rm -f $@; exit 1) + +terminal-part_sun_mod-partmap_sun.lst: partmap/sun.c $(partmap/sun.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_sun_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh part_sun > $@ || (rm -f $@; exit 1) + +video-part_sun_mod-partmap_sun.lst: partmap/sun.c $(partmap/sun.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(part_sun_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh part_sun > $@ || (rm -f $@; exit 1) + +part_sun_mod_CFLAGS = $(COMMON_CFLAGS) +part_sun_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += part_acorn.mod +part_acorn_mod_SOURCES = partmap/acorn.c + +clean-module-part_acorn.mod.1: + rm -f part_acorn.mod mod-part_acorn.o mod-part_acorn.c pre-part_acorn.o part_acorn_mod-partmap_acorn.o und-part_acorn.lst + +CLEAN_MODULE_TARGETS += clean-module-part_acorn.mod.1 + +clean-module-part_acorn.mod-symbol.1: + rm -f def-part_acorn.lst + +CLEAN_MODULE_TARGETS += clean-module-part_acorn.mod-symbol.1 +DEFSYMFILES += def-part_acorn.lst +mostlyclean-module-part_acorn.mod.1: + rm -f part_acorn_mod-partmap_acorn.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-part_acorn.mod.1 +UNDSYMFILES += und-part_acorn.lst + +ifeq ($(TARGET_NO_MODULES), yes) +part_acorn.mod: pre-part_acorn.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(part_acorn_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-part_acorn.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +part_acorn.mod: pre-part_acorn.o mod-part_acorn.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(part_acorn_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-part_acorn.o mod-part_acorn.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +part_acorn.mod: pre-part_acorn.o mod-part_acorn.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(part_acorn_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-part_acorn.o mod-part_acorn.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-part_acorn.o: $(part_acorn_mod_DEPENDENCIES) part_acorn_mod-partmap_acorn.o + -rm -f $@ + $(TARGET_CC) $(part_acorn_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ part_acorn_mod-partmap_acorn.o + +mod-part_acorn.o: mod-part_acorn.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_acorn_mod_CFLAGS) -DGRUB_FILE=\"mod-part_acorn.c\" -c -o $@ $< + +mod-part_acorn.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'part_acorn' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-part_acorn.lst: pre-part_acorn.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 part_acorn/' > $@ +else +def-part_acorn.lst: pre-part_acorn.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 part_acorn/' > $@ +endif + +und-part_acorn.lst: pre-part_acorn.o + echo 'part_acorn' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +part_acorn_mod-partmap_acorn.o: partmap/acorn.c $(partmap/acorn.c_DEPENDENCIES) + $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_acorn_mod_CFLAGS) -DGRUB_FILE=\"partmap/acorn.c\" -MD -c -o $@ $< +-include part_acorn_mod-partmap_acorn.d + +clean-module-part_acorn_mod-partmap_acorn-extra.1: + rm -f cmd-part_acorn_mod-partmap_acorn.lst fs-part_acorn_mod-partmap_acorn.lst partmap-part_acorn_mod-partmap_acorn.lst handler-part_acorn_mod-partmap_acorn.lst parttool-part_acorn_mod-partmap_acorn.lst video-part_acorn_mod-partmap_acorn.lst terminal-part_acorn_mod-partmap_acorn.lst + +CLEAN_MODULE_TARGETS += clean-module-part_acorn_mod-partmap_acorn-extra.1 + +COMMANDFILES += cmd-part_acorn_mod-partmap_acorn.lst +FSFILES += fs-part_acorn_mod-partmap_acorn.lst +PARTTOOLFILES += parttool-part_acorn_mod-partmap_acorn.lst +PARTMAPFILES += partmap-part_acorn_mod-partmap_acorn.lst +HANDLERFILES += handler-part_acorn_mod-partmap_acorn.lst +TERMINALFILES += terminal-part_acorn_mod-partmap_acorn.lst +VIDEOFILES += video-part_acorn_mod-partmap_acorn.lst + +cmd-part_acorn_mod-partmap_acorn.lst: partmap/acorn.c $(partmap/acorn.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_acorn_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh part_acorn > $@ || (rm -f $@; exit 1) + +fs-part_acorn_mod-partmap_acorn.lst: partmap/acorn.c $(partmap/acorn.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(part_acorn_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh part_acorn > $@ || (rm -f $@; exit 1) + +parttool-part_acorn_mod-partmap_acorn.lst: partmap/acorn.c $(partmap/acorn.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_acorn_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh part_acorn > $@ || (rm -f $@; exit 1) + +partmap-part_acorn_mod-partmap_acorn.lst: partmap/acorn.c $(partmap/acorn.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(part_acorn_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh part_acorn > $@ || (rm -f $@; exit 1) + +handler-part_acorn_mod-partmap_acorn.lst: partmap/acorn.c $(partmap/acorn.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_acorn_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh part_acorn > $@ || (rm -f $@; exit 1) + +terminal-part_acorn_mod-partmap_acorn.lst: partmap/acorn.c $(partmap/acorn.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_acorn_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh part_acorn > $@ || (rm -f $@; exit 1) + +video-part_acorn_mod-partmap_acorn.lst: partmap/acorn.c $(partmap/acorn.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(part_acorn_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh part_acorn > $@ || (rm -f $@; exit 1) + +part_acorn_mod_CFLAGS = $(COMMON_CFLAGS) +part_acorn_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += part_gpt.mod +part_gpt_mod_SOURCES = partmap/gpt.c + +clean-module-part_gpt.mod.1: + rm -f part_gpt.mod mod-part_gpt.o mod-part_gpt.c pre-part_gpt.o part_gpt_mod-partmap_gpt.o und-part_gpt.lst + +CLEAN_MODULE_TARGETS += clean-module-part_gpt.mod.1 + +clean-module-part_gpt.mod-symbol.1: + rm -f def-part_gpt.lst + +CLEAN_MODULE_TARGETS += clean-module-part_gpt.mod-symbol.1 +DEFSYMFILES += def-part_gpt.lst +mostlyclean-module-part_gpt.mod.1: + rm -f part_gpt_mod-partmap_gpt.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-part_gpt.mod.1 +UNDSYMFILES += und-part_gpt.lst + +ifeq ($(TARGET_NO_MODULES), yes) +part_gpt.mod: pre-part_gpt.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(part_gpt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-part_gpt.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +part_gpt.mod: pre-part_gpt.o mod-part_gpt.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(part_gpt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-part_gpt.o mod-part_gpt.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +part_gpt.mod: pre-part_gpt.o mod-part_gpt.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(part_gpt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-part_gpt.o mod-part_gpt.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-part_gpt.o: $(part_gpt_mod_DEPENDENCIES) part_gpt_mod-partmap_gpt.o + -rm -f $@ + $(TARGET_CC) $(part_gpt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ part_gpt_mod-partmap_gpt.o + +mod-part_gpt.o: mod-part_gpt.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_gpt_mod_CFLAGS) -DGRUB_FILE=\"mod-part_gpt.c\" -c -o $@ $< + +mod-part_gpt.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'part_gpt' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-part_gpt.lst: pre-part_gpt.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 part_gpt/' > $@ +else +def-part_gpt.lst: pre-part_gpt.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 part_gpt/' > $@ +endif + +und-part_gpt.lst: pre-part_gpt.o + echo 'part_gpt' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +part_gpt_mod-partmap_gpt.o: partmap/gpt.c $(partmap/gpt.c_DEPENDENCIES) + $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_gpt_mod_CFLAGS) -DGRUB_FILE=\"partmap/gpt.c\" -MD -c -o $@ $< +-include part_gpt_mod-partmap_gpt.d + +clean-module-part_gpt_mod-partmap_gpt-extra.1: + rm -f cmd-part_gpt_mod-partmap_gpt.lst fs-part_gpt_mod-partmap_gpt.lst partmap-part_gpt_mod-partmap_gpt.lst handler-part_gpt_mod-partmap_gpt.lst parttool-part_gpt_mod-partmap_gpt.lst video-part_gpt_mod-partmap_gpt.lst terminal-part_gpt_mod-partmap_gpt.lst + +CLEAN_MODULE_TARGETS += clean-module-part_gpt_mod-partmap_gpt-extra.1 + +COMMANDFILES += cmd-part_gpt_mod-partmap_gpt.lst +FSFILES += fs-part_gpt_mod-partmap_gpt.lst +PARTTOOLFILES += parttool-part_gpt_mod-partmap_gpt.lst +PARTMAPFILES += partmap-part_gpt_mod-partmap_gpt.lst +HANDLERFILES += handler-part_gpt_mod-partmap_gpt.lst +TERMINALFILES += terminal-part_gpt_mod-partmap_gpt.lst +VIDEOFILES += video-part_gpt_mod-partmap_gpt.lst + +cmd-part_gpt_mod-partmap_gpt.lst: partmap/gpt.c $(partmap/gpt.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_gpt_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh part_gpt > $@ || (rm -f $@; exit 1) + +fs-part_gpt_mod-partmap_gpt.lst: partmap/gpt.c $(partmap/gpt.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(part_gpt_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh part_gpt > $@ || (rm -f $@; exit 1) + +parttool-part_gpt_mod-partmap_gpt.lst: partmap/gpt.c $(partmap/gpt.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_gpt_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh part_gpt > $@ || (rm -f $@; exit 1) + +partmap-part_gpt_mod-partmap_gpt.lst: partmap/gpt.c $(partmap/gpt.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(part_gpt_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh part_gpt > $@ || (rm -f $@; exit 1) + +handler-part_gpt_mod-partmap_gpt.lst: partmap/gpt.c $(partmap/gpt.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_gpt_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh part_gpt > $@ || (rm -f $@; exit 1) + +terminal-part_gpt_mod-partmap_gpt.lst: partmap/gpt.c $(partmap/gpt.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_gpt_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh part_gpt > $@ || (rm -f $@; exit 1) + +video-part_gpt_mod-partmap_gpt.lst: partmap/gpt.c $(partmap/gpt.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(part_gpt_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh part_gpt > $@ || (rm -f $@; exit 1) + +part_gpt_mod_CFLAGS = $(COMMON_CFLAGS) +part_gpt_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += part_bsd.mod +part_bsd_mod_SOURCES = partmap/bsdlabel.c + +clean-module-part_bsd.mod.1: + rm -f part_bsd.mod mod-part_bsd.o mod-part_bsd.c pre-part_bsd.o part_bsd_mod-partmap_bsdlabel.o und-part_bsd.lst + +CLEAN_MODULE_TARGETS += clean-module-part_bsd.mod.1 + +clean-module-part_bsd.mod-symbol.1: + rm -f def-part_bsd.lst + +CLEAN_MODULE_TARGETS += clean-module-part_bsd.mod-symbol.1 +DEFSYMFILES += def-part_bsd.lst +mostlyclean-module-part_bsd.mod.1: + rm -f part_bsd_mod-partmap_bsdlabel.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-part_bsd.mod.1 +UNDSYMFILES += und-part_bsd.lst + +ifeq ($(TARGET_NO_MODULES), yes) +part_bsd.mod: pre-part_bsd.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(part_bsd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-part_bsd.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +part_bsd.mod: pre-part_bsd.o mod-part_bsd.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(part_bsd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-part_bsd.o mod-part_bsd.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +part_bsd.mod: pre-part_bsd.o mod-part_bsd.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(part_bsd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-part_bsd.o mod-part_bsd.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-part_bsd.o: $(part_bsd_mod_DEPENDENCIES) part_bsd_mod-partmap_bsdlabel.o + -rm -f $@ + $(TARGET_CC) $(part_bsd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ part_bsd_mod-partmap_bsdlabel.o + +mod-part_bsd.o: mod-part_bsd.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_bsd_mod_CFLAGS) -DGRUB_FILE=\"mod-part_bsd.c\" -c -o $@ $< + +mod-part_bsd.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'part_bsd' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-part_bsd.lst: pre-part_bsd.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 part_bsd/' > $@ +else +def-part_bsd.lst: pre-part_bsd.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 part_bsd/' > $@ +endif + +und-part_bsd.lst: pre-part_bsd.o + echo 'part_bsd' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +part_bsd_mod-partmap_bsdlabel.o: partmap/bsdlabel.c $(partmap/bsdlabel.c_DEPENDENCIES) + $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_bsd_mod_CFLAGS) -DGRUB_FILE=\"partmap/bsdlabel.c\" -MD -c -o $@ $< +-include part_bsd_mod-partmap_bsdlabel.d + +clean-module-part_bsd_mod-partmap_bsdlabel-extra.1: + rm -f cmd-part_bsd_mod-partmap_bsdlabel.lst fs-part_bsd_mod-partmap_bsdlabel.lst partmap-part_bsd_mod-partmap_bsdlabel.lst handler-part_bsd_mod-partmap_bsdlabel.lst parttool-part_bsd_mod-partmap_bsdlabel.lst video-part_bsd_mod-partmap_bsdlabel.lst terminal-part_bsd_mod-partmap_bsdlabel.lst + +CLEAN_MODULE_TARGETS += clean-module-part_bsd_mod-partmap_bsdlabel-extra.1 + +COMMANDFILES += cmd-part_bsd_mod-partmap_bsdlabel.lst +FSFILES += fs-part_bsd_mod-partmap_bsdlabel.lst +PARTTOOLFILES += parttool-part_bsd_mod-partmap_bsdlabel.lst +PARTMAPFILES += partmap-part_bsd_mod-partmap_bsdlabel.lst +HANDLERFILES += handler-part_bsd_mod-partmap_bsdlabel.lst +TERMINALFILES += terminal-part_bsd_mod-partmap_bsdlabel.lst +VIDEOFILES += video-part_bsd_mod-partmap_bsdlabel.lst + +cmd-part_bsd_mod-partmap_bsdlabel.lst: partmap/bsdlabel.c $(partmap/bsdlabel.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_bsd_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh part_bsd > $@ || (rm -f $@; exit 1) + +fs-part_bsd_mod-partmap_bsdlabel.lst: partmap/bsdlabel.c $(partmap/bsdlabel.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(part_bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh part_bsd > $@ || (rm -f $@; exit 1) + +parttool-part_bsd_mod-partmap_bsdlabel.lst: partmap/bsdlabel.c $(partmap/bsdlabel.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh part_bsd > $@ || (rm -f $@; exit 1) + +partmap-part_bsd_mod-partmap_bsdlabel.lst: partmap/bsdlabel.c $(partmap/bsdlabel.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(part_bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh part_bsd > $@ || (rm -f $@; exit 1) + +handler-part_bsd_mod-partmap_bsdlabel.lst: partmap/bsdlabel.c $(partmap/bsdlabel.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh part_bsd > $@ || (rm -f $@; exit 1) + +terminal-part_bsd_mod-partmap_bsdlabel.lst: partmap/bsdlabel.c $(partmap/bsdlabel.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh part_bsd > $@ || (rm -f $@; exit 1) + +video-part_bsd_mod-partmap_bsdlabel.lst: partmap/bsdlabel.c $(partmap/bsdlabel.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(part_bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh part_bsd > $@ || (rm -f $@; exit 1) + +part_bsd_mod_CFLAGS = $(COMMON_CFLAGS) +part_bsd_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += part_sunpc.mod +part_sunpc_mod_SOURCES = partmap/sunpc.c + +clean-module-part_sunpc.mod.1: + rm -f part_sunpc.mod mod-part_sunpc.o mod-part_sunpc.c pre-part_sunpc.o part_sunpc_mod-partmap_sunpc.o und-part_sunpc.lst + +CLEAN_MODULE_TARGETS += clean-module-part_sunpc.mod.1 + +clean-module-part_sunpc.mod-symbol.1: + rm -f def-part_sunpc.lst + +CLEAN_MODULE_TARGETS += clean-module-part_sunpc.mod-symbol.1 +DEFSYMFILES += def-part_sunpc.lst +mostlyclean-module-part_sunpc.mod.1: + rm -f part_sunpc_mod-partmap_sunpc.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-part_sunpc.mod.1 +UNDSYMFILES += und-part_sunpc.lst + +ifeq ($(TARGET_NO_MODULES), yes) +part_sunpc.mod: pre-part_sunpc.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(part_sunpc_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-part_sunpc.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +part_sunpc.mod: pre-part_sunpc.o mod-part_sunpc.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(part_sunpc_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-part_sunpc.o mod-part_sunpc.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +part_sunpc.mod: pre-part_sunpc.o mod-part_sunpc.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(part_sunpc_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-part_sunpc.o mod-part_sunpc.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-part_sunpc.o: $(part_sunpc_mod_DEPENDENCIES) part_sunpc_mod-partmap_sunpc.o + -rm -f $@ + $(TARGET_CC) $(part_sunpc_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ part_sunpc_mod-partmap_sunpc.o + +mod-part_sunpc.o: mod-part_sunpc.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_sunpc_mod_CFLAGS) -DGRUB_FILE=\"mod-part_sunpc.c\" -c -o $@ $< + +mod-part_sunpc.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'part_sunpc' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-part_sunpc.lst: pre-part_sunpc.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 part_sunpc/' > $@ +else +def-part_sunpc.lst: pre-part_sunpc.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 part_sunpc/' > $@ +endif + +und-part_sunpc.lst: pre-part_sunpc.o + echo 'part_sunpc' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +part_sunpc_mod-partmap_sunpc.o: partmap/sunpc.c $(partmap/sunpc.c_DEPENDENCIES) + $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_sunpc_mod_CFLAGS) -DGRUB_FILE=\"partmap/sunpc.c\" -MD -c -o $@ $< +-include part_sunpc_mod-partmap_sunpc.d + +clean-module-part_sunpc_mod-partmap_sunpc-extra.1: + rm -f cmd-part_sunpc_mod-partmap_sunpc.lst fs-part_sunpc_mod-partmap_sunpc.lst partmap-part_sunpc_mod-partmap_sunpc.lst handler-part_sunpc_mod-partmap_sunpc.lst parttool-part_sunpc_mod-partmap_sunpc.lst video-part_sunpc_mod-partmap_sunpc.lst terminal-part_sunpc_mod-partmap_sunpc.lst + +CLEAN_MODULE_TARGETS += clean-module-part_sunpc_mod-partmap_sunpc-extra.1 + +COMMANDFILES += cmd-part_sunpc_mod-partmap_sunpc.lst +FSFILES += fs-part_sunpc_mod-partmap_sunpc.lst +PARTTOOLFILES += parttool-part_sunpc_mod-partmap_sunpc.lst +PARTMAPFILES += partmap-part_sunpc_mod-partmap_sunpc.lst +HANDLERFILES += handler-part_sunpc_mod-partmap_sunpc.lst +TERMINALFILES += terminal-part_sunpc_mod-partmap_sunpc.lst +VIDEOFILES += video-part_sunpc_mod-partmap_sunpc.lst + +cmd-part_sunpc_mod-partmap_sunpc.lst: partmap/sunpc.c $(partmap/sunpc.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_sunpc_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh part_sunpc > $@ || (rm -f $@; exit 1) + +fs-part_sunpc_mod-partmap_sunpc.lst: partmap/sunpc.c $(partmap/sunpc.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(part_sunpc_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh part_sunpc > $@ || (rm -f $@; exit 1) + +parttool-part_sunpc_mod-partmap_sunpc.lst: partmap/sunpc.c $(partmap/sunpc.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_sunpc_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh part_sunpc > $@ || (rm -f $@; exit 1) + +partmap-part_sunpc_mod-partmap_sunpc.lst: partmap/sunpc.c $(partmap/sunpc.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(part_sunpc_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh part_sunpc > $@ || (rm -f $@; exit 1) + +handler-part_sunpc_mod-partmap_sunpc.lst: partmap/sunpc.c $(partmap/sunpc.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_sunpc_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh part_sunpc > $@ || (rm -f $@; exit 1) + +terminal-part_sunpc_mod-partmap_sunpc.lst: partmap/sunpc.c $(partmap/sunpc.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(part_sunpc_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh part_sunpc > $@ || (rm -f $@; exit 1) + +video-part_sunpc_mod-partmap_sunpc.lst: partmap/sunpc.c $(partmap/sunpc.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ipartmap -I$(srcdir)/partmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(part_sunpc_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh part_sunpc > $@ || (rm -f $@; exit 1) + +part_sunpc_mod_CFLAGS = $(COMMON_CFLAGS) +part_sunpc_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# Special disk structures and generic drivers + +pkglib_MODULES += raid.mod raid5rec.mod raid6rec.mod mdraid.mod dm_nv.mod \ + lvm.mod scsi.mod + +# For raid.mod +raid_mod_SOURCES = disk/raid.c + +clean-module-raid.mod.1: + rm -f raid.mod mod-raid.o mod-raid.c pre-raid.o raid_mod-disk_raid.o und-raid.lst + +CLEAN_MODULE_TARGETS += clean-module-raid.mod.1 + +clean-module-raid.mod-symbol.1: + rm -f def-raid.lst + +CLEAN_MODULE_TARGETS += clean-module-raid.mod-symbol.1 +DEFSYMFILES += def-raid.lst +mostlyclean-module-raid.mod.1: + rm -f raid_mod-disk_raid.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-raid.mod.1 +UNDSYMFILES += und-raid.lst + +ifeq ($(TARGET_NO_MODULES), yes) +raid.mod: pre-raid.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(raid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-raid.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +raid.mod: pre-raid.o mod-raid.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(raid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-raid.o mod-raid.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +raid.mod: pre-raid.o mod-raid.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(raid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-raid.o mod-raid.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-raid.o: $(raid_mod_DEPENDENCIES) raid_mod-disk_raid.o + -rm -f $@ + $(TARGET_CC) $(raid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ raid_mod-disk_raid.o + +mod-raid.o: mod-raid.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(raid_mod_CFLAGS) -DGRUB_FILE=\"mod-raid.c\" -c -o $@ $< + +mod-raid.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'raid' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-raid.lst: pre-raid.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 raid/' > $@ +else +def-raid.lst: pre-raid.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 raid/' > $@ +endif + +und-raid.lst: pre-raid.o + echo 'raid' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +raid_mod-disk_raid.o: disk/raid.c $(disk/raid.c_DEPENDENCIES) + $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(raid_mod_CFLAGS) -DGRUB_FILE=\"disk/raid.c\" -MD -c -o $@ $< +-include raid_mod-disk_raid.d + +clean-module-raid_mod-disk_raid-extra.1: + rm -f cmd-raid_mod-disk_raid.lst fs-raid_mod-disk_raid.lst partmap-raid_mod-disk_raid.lst handler-raid_mod-disk_raid.lst parttool-raid_mod-disk_raid.lst video-raid_mod-disk_raid.lst terminal-raid_mod-disk_raid.lst + +CLEAN_MODULE_TARGETS += clean-module-raid_mod-disk_raid-extra.1 + +COMMANDFILES += cmd-raid_mod-disk_raid.lst +FSFILES += fs-raid_mod-disk_raid.lst +PARTTOOLFILES += parttool-raid_mod-disk_raid.lst +PARTMAPFILES += partmap-raid_mod-disk_raid.lst +HANDLERFILES += handler-raid_mod-disk_raid.lst +TERMINALFILES += terminal-raid_mod-disk_raid.lst +VIDEOFILES += video-raid_mod-disk_raid.lst + +cmd-raid_mod-disk_raid.lst: disk/raid.c $(disk/raid.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(raid_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh raid > $@ || (rm -f $@; exit 1) + +fs-raid_mod-disk_raid.lst: disk/raid.c $(disk/raid.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(raid_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh raid > $@ || (rm -f $@; exit 1) + +parttool-raid_mod-disk_raid.lst: disk/raid.c $(disk/raid.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(raid_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh raid > $@ || (rm -f $@; exit 1) + +partmap-raid_mod-disk_raid.lst: disk/raid.c $(disk/raid.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(raid_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh raid > $@ || (rm -f $@; exit 1) + +handler-raid_mod-disk_raid.lst: disk/raid.c $(disk/raid.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(raid_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh raid > $@ || (rm -f $@; exit 1) + +terminal-raid_mod-disk_raid.lst: disk/raid.c $(disk/raid.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(raid_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh raid > $@ || (rm -f $@; exit 1) + +video-raid_mod-disk_raid.lst: disk/raid.c $(disk/raid.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(raid_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh raid > $@ || (rm -f $@; exit 1) + +raid_mod_CFLAGS = $(COMMON_CFLAGS) +raid_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For raid5rec.mod +raid5rec_mod_SOURCES = disk/raid5_recover.c + +clean-module-raid5rec.mod.1: + rm -f raid5rec.mod mod-raid5rec.o mod-raid5rec.c pre-raid5rec.o raid5rec_mod-disk_raid5_recover.o und-raid5rec.lst + +CLEAN_MODULE_TARGETS += clean-module-raid5rec.mod.1 + +clean-module-raid5rec.mod-symbol.1: + rm -f def-raid5rec.lst + +CLEAN_MODULE_TARGETS += clean-module-raid5rec.mod-symbol.1 +DEFSYMFILES += def-raid5rec.lst +mostlyclean-module-raid5rec.mod.1: + rm -f raid5rec_mod-disk_raid5_recover.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-raid5rec.mod.1 +UNDSYMFILES += und-raid5rec.lst + +ifeq ($(TARGET_NO_MODULES), yes) +raid5rec.mod: pre-raid5rec.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(raid5rec_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-raid5rec.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +raid5rec.mod: pre-raid5rec.o mod-raid5rec.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(raid5rec_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-raid5rec.o mod-raid5rec.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +raid5rec.mod: pre-raid5rec.o mod-raid5rec.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(raid5rec_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-raid5rec.o mod-raid5rec.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-raid5rec.o: $(raid5rec_mod_DEPENDENCIES) raid5rec_mod-disk_raid5_recover.o + -rm -f $@ + $(TARGET_CC) $(raid5rec_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ raid5rec_mod-disk_raid5_recover.o + +mod-raid5rec.o: mod-raid5rec.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(raid5rec_mod_CFLAGS) -DGRUB_FILE=\"mod-raid5rec.c\" -c -o $@ $< + +mod-raid5rec.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'raid5rec' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-raid5rec.lst: pre-raid5rec.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 raid5rec/' > $@ +else +def-raid5rec.lst: pre-raid5rec.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 raid5rec/' > $@ +endif + +und-raid5rec.lst: pre-raid5rec.o + echo 'raid5rec' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +raid5rec_mod-disk_raid5_recover.o: disk/raid5_recover.c $(disk/raid5_recover.c_DEPENDENCIES) + $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(raid5rec_mod_CFLAGS) -DGRUB_FILE=\"disk/raid5_recover.c\" -MD -c -o $@ $< +-include raid5rec_mod-disk_raid5_recover.d + +clean-module-raid5rec_mod-disk_raid5_recover-extra.1: + rm -f cmd-raid5rec_mod-disk_raid5_recover.lst fs-raid5rec_mod-disk_raid5_recover.lst partmap-raid5rec_mod-disk_raid5_recover.lst handler-raid5rec_mod-disk_raid5_recover.lst parttool-raid5rec_mod-disk_raid5_recover.lst video-raid5rec_mod-disk_raid5_recover.lst terminal-raid5rec_mod-disk_raid5_recover.lst + +CLEAN_MODULE_TARGETS += clean-module-raid5rec_mod-disk_raid5_recover-extra.1 + +COMMANDFILES += cmd-raid5rec_mod-disk_raid5_recover.lst +FSFILES += fs-raid5rec_mod-disk_raid5_recover.lst +PARTTOOLFILES += parttool-raid5rec_mod-disk_raid5_recover.lst +PARTMAPFILES += partmap-raid5rec_mod-disk_raid5_recover.lst +HANDLERFILES += handler-raid5rec_mod-disk_raid5_recover.lst +TERMINALFILES += terminal-raid5rec_mod-disk_raid5_recover.lst +VIDEOFILES += video-raid5rec_mod-disk_raid5_recover.lst + +cmd-raid5rec_mod-disk_raid5_recover.lst: disk/raid5_recover.c $(disk/raid5_recover.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(raid5rec_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh raid5rec > $@ || (rm -f $@; exit 1) + +fs-raid5rec_mod-disk_raid5_recover.lst: disk/raid5_recover.c $(disk/raid5_recover.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(raid5rec_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh raid5rec > $@ || (rm -f $@; exit 1) + +parttool-raid5rec_mod-disk_raid5_recover.lst: disk/raid5_recover.c $(disk/raid5_recover.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(raid5rec_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh raid5rec > $@ || (rm -f $@; exit 1) + +partmap-raid5rec_mod-disk_raid5_recover.lst: disk/raid5_recover.c $(disk/raid5_recover.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(raid5rec_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh raid5rec > $@ || (rm -f $@; exit 1) + +handler-raid5rec_mod-disk_raid5_recover.lst: disk/raid5_recover.c $(disk/raid5_recover.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(raid5rec_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh raid5rec > $@ || (rm -f $@; exit 1) + +terminal-raid5rec_mod-disk_raid5_recover.lst: disk/raid5_recover.c $(disk/raid5_recover.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(raid5rec_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh raid5rec > $@ || (rm -f $@; exit 1) + +video-raid5rec_mod-disk_raid5_recover.lst: disk/raid5_recover.c $(disk/raid5_recover.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(raid5rec_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh raid5rec > $@ || (rm -f $@; exit 1) + +raid5rec_mod_CFLAGS = $(COMMON_CFLAGS) +raid5rec_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For raid6rec.mod +raid6rec_mod_SOURCES = disk/raid6_recover.c + +clean-module-raid6rec.mod.1: + rm -f raid6rec.mod mod-raid6rec.o mod-raid6rec.c pre-raid6rec.o raid6rec_mod-disk_raid6_recover.o und-raid6rec.lst + +CLEAN_MODULE_TARGETS += clean-module-raid6rec.mod.1 + +clean-module-raid6rec.mod-symbol.1: + rm -f def-raid6rec.lst + +CLEAN_MODULE_TARGETS += clean-module-raid6rec.mod-symbol.1 +DEFSYMFILES += def-raid6rec.lst +mostlyclean-module-raid6rec.mod.1: + rm -f raid6rec_mod-disk_raid6_recover.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-raid6rec.mod.1 +UNDSYMFILES += und-raid6rec.lst + +ifeq ($(TARGET_NO_MODULES), yes) +raid6rec.mod: pre-raid6rec.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(raid6rec_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-raid6rec.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +raid6rec.mod: pre-raid6rec.o mod-raid6rec.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(raid6rec_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-raid6rec.o mod-raid6rec.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +raid6rec.mod: pre-raid6rec.o mod-raid6rec.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(raid6rec_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-raid6rec.o mod-raid6rec.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-raid6rec.o: $(raid6rec_mod_DEPENDENCIES) raid6rec_mod-disk_raid6_recover.o + -rm -f $@ + $(TARGET_CC) $(raid6rec_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ raid6rec_mod-disk_raid6_recover.o + +mod-raid6rec.o: mod-raid6rec.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(raid6rec_mod_CFLAGS) -DGRUB_FILE=\"mod-raid6rec.c\" -c -o $@ $< + +mod-raid6rec.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'raid6rec' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-raid6rec.lst: pre-raid6rec.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 raid6rec/' > $@ +else +def-raid6rec.lst: pre-raid6rec.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 raid6rec/' > $@ +endif + +und-raid6rec.lst: pre-raid6rec.o + echo 'raid6rec' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +raid6rec_mod-disk_raid6_recover.o: disk/raid6_recover.c $(disk/raid6_recover.c_DEPENDENCIES) + $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(raid6rec_mod_CFLAGS) -DGRUB_FILE=\"disk/raid6_recover.c\" -MD -c -o $@ $< +-include raid6rec_mod-disk_raid6_recover.d + +clean-module-raid6rec_mod-disk_raid6_recover-extra.1: + rm -f cmd-raid6rec_mod-disk_raid6_recover.lst fs-raid6rec_mod-disk_raid6_recover.lst partmap-raid6rec_mod-disk_raid6_recover.lst handler-raid6rec_mod-disk_raid6_recover.lst parttool-raid6rec_mod-disk_raid6_recover.lst video-raid6rec_mod-disk_raid6_recover.lst terminal-raid6rec_mod-disk_raid6_recover.lst + +CLEAN_MODULE_TARGETS += clean-module-raid6rec_mod-disk_raid6_recover-extra.1 + +COMMANDFILES += cmd-raid6rec_mod-disk_raid6_recover.lst +FSFILES += fs-raid6rec_mod-disk_raid6_recover.lst +PARTTOOLFILES += parttool-raid6rec_mod-disk_raid6_recover.lst +PARTMAPFILES += partmap-raid6rec_mod-disk_raid6_recover.lst +HANDLERFILES += handler-raid6rec_mod-disk_raid6_recover.lst +TERMINALFILES += terminal-raid6rec_mod-disk_raid6_recover.lst +VIDEOFILES += video-raid6rec_mod-disk_raid6_recover.lst + +cmd-raid6rec_mod-disk_raid6_recover.lst: disk/raid6_recover.c $(disk/raid6_recover.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(raid6rec_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh raid6rec > $@ || (rm -f $@; exit 1) + +fs-raid6rec_mod-disk_raid6_recover.lst: disk/raid6_recover.c $(disk/raid6_recover.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(raid6rec_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh raid6rec > $@ || (rm -f $@; exit 1) + +parttool-raid6rec_mod-disk_raid6_recover.lst: disk/raid6_recover.c $(disk/raid6_recover.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(raid6rec_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh raid6rec > $@ || (rm -f $@; exit 1) + +partmap-raid6rec_mod-disk_raid6_recover.lst: disk/raid6_recover.c $(disk/raid6_recover.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(raid6rec_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh raid6rec > $@ || (rm -f $@; exit 1) + +handler-raid6rec_mod-disk_raid6_recover.lst: disk/raid6_recover.c $(disk/raid6_recover.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(raid6rec_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh raid6rec > $@ || (rm -f $@; exit 1) + +terminal-raid6rec_mod-disk_raid6_recover.lst: disk/raid6_recover.c $(disk/raid6_recover.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(raid6rec_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh raid6rec > $@ || (rm -f $@; exit 1) + +video-raid6rec_mod-disk_raid6_recover.lst: disk/raid6_recover.c $(disk/raid6_recover.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(raid6rec_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh raid6rec > $@ || (rm -f $@; exit 1) + +raid6rec_mod_CFLAGS = $(COMMON_CFLAGS) +raid6rec_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For mdraid.mod +mdraid_mod_SOURCES = disk/mdraid_linux.c + +clean-module-mdraid.mod.1: + rm -f mdraid.mod mod-mdraid.o mod-mdraid.c pre-mdraid.o mdraid_mod-disk_mdraid_linux.o und-mdraid.lst + +CLEAN_MODULE_TARGETS += clean-module-mdraid.mod.1 + +clean-module-mdraid.mod-symbol.1: + rm -f def-mdraid.lst + +CLEAN_MODULE_TARGETS += clean-module-mdraid.mod-symbol.1 +DEFSYMFILES += def-mdraid.lst +mostlyclean-module-mdraid.mod.1: + rm -f mdraid_mod-disk_mdraid_linux.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-mdraid.mod.1 +UNDSYMFILES += und-mdraid.lst + +ifeq ($(TARGET_NO_MODULES), yes) +mdraid.mod: pre-mdraid.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(mdraid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-mdraid.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +mdraid.mod: pre-mdraid.o mod-mdraid.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(mdraid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-mdraid.o mod-mdraid.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +mdraid.mod: pre-mdraid.o mod-mdraid.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(mdraid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-mdraid.o mod-mdraid.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-mdraid.o: $(mdraid_mod_DEPENDENCIES) mdraid_mod-disk_mdraid_linux.o + -rm -f $@ + $(TARGET_CC) $(mdraid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ mdraid_mod-disk_mdraid_linux.o + +mod-mdraid.o: mod-mdraid.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mdraid_mod_CFLAGS) -DGRUB_FILE=\"mod-mdraid.c\" -c -o $@ $< + +mod-mdraid.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'mdraid' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-mdraid.lst: pre-mdraid.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 mdraid/' > $@ +else +def-mdraid.lst: pre-mdraid.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 mdraid/' > $@ +endif + +und-mdraid.lst: pre-mdraid.o + echo 'mdraid' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +mdraid_mod-disk_mdraid_linux.o: disk/mdraid_linux.c $(disk/mdraid_linux.c_DEPENDENCIES) + $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mdraid_mod_CFLAGS) -DGRUB_FILE=\"disk/mdraid_linux.c\" -MD -c -o $@ $< +-include mdraid_mod-disk_mdraid_linux.d + +clean-module-mdraid_mod-disk_mdraid_linux-extra.1: + rm -f cmd-mdraid_mod-disk_mdraid_linux.lst fs-mdraid_mod-disk_mdraid_linux.lst partmap-mdraid_mod-disk_mdraid_linux.lst handler-mdraid_mod-disk_mdraid_linux.lst parttool-mdraid_mod-disk_mdraid_linux.lst video-mdraid_mod-disk_mdraid_linux.lst terminal-mdraid_mod-disk_mdraid_linux.lst + +CLEAN_MODULE_TARGETS += clean-module-mdraid_mod-disk_mdraid_linux-extra.1 + +COMMANDFILES += cmd-mdraid_mod-disk_mdraid_linux.lst +FSFILES += fs-mdraid_mod-disk_mdraid_linux.lst +PARTTOOLFILES += parttool-mdraid_mod-disk_mdraid_linux.lst +PARTMAPFILES += partmap-mdraid_mod-disk_mdraid_linux.lst +HANDLERFILES += handler-mdraid_mod-disk_mdraid_linux.lst +TERMINALFILES += terminal-mdraid_mod-disk_mdraid_linux.lst +VIDEOFILES += video-mdraid_mod-disk_mdraid_linux.lst + +cmd-mdraid_mod-disk_mdraid_linux.lst: disk/mdraid_linux.c $(disk/mdraid_linux.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mdraid_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh mdraid > $@ || (rm -f $@; exit 1) + +fs-mdraid_mod-disk_mdraid_linux.lst: disk/mdraid_linux.c $(disk/mdraid_linux.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mdraid_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh mdraid > $@ || (rm -f $@; exit 1) + +parttool-mdraid_mod-disk_mdraid_linux.lst: disk/mdraid_linux.c $(disk/mdraid_linux.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mdraid_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh mdraid > $@ || (rm -f $@; exit 1) + +partmap-mdraid_mod-disk_mdraid_linux.lst: disk/mdraid_linux.c $(disk/mdraid_linux.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mdraid_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh mdraid > $@ || (rm -f $@; exit 1) + +handler-mdraid_mod-disk_mdraid_linux.lst: disk/mdraid_linux.c $(disk/mdraid_linux.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mdraid_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh mdraid > $@ || (rm -f $@; exit 1) + +terminal-mdraid_mod-disk_mdraid_linux.lst: disk/mdraid_linux.c $(disk/mdraid_linux.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mdraid_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh mdraid > $@ || (rm -f $@; exit 1) + +video-mdraid_mod-disk_mdraid_linux.lst: disk/mdraid_linux.c $(disk/mdraid_linux.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mdraid_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh mdraid > $@ || (rm -f $@; exit 1) + +mdraid_mod_CFLAGS = $(COMMON_CFLAGS) +mdraid_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For dm_nv.mod +dm_nv_mod_SOURCES = disk/dmraid_nvidia.c + +clean-module-dm_nv.mod.1: + rm -f dm_nv.mod mod-dm_nv.o mod-dm_nv.c pre-dm_nv.o dm_nv_mod-disk_dmraid_nvidia.o und-dm_nv.lst + +CLEAN_MODULE_TARGETS += clean-module-dm_nv.mod.1 + +clean-module-dm_nv.mod-symbol.1: + rm -f def-dm_nv.lst + +CLEAN_MODULE_TARGETS += clean-module-dm_nv.mod-symbol.1 +DEFSYMFILES += def-dm_nv.lst +mostlyclean-module-dm_nv.mod.1: + rm -f dm_nv_mod-disk_dmraid_nvidia.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-dm_nv.mod.1 +UNDSYMFILES += und-dm_nv.lst + +ifeq ($(TARGET_NO_MODULES), yes) +dm_nv.mod: pre-dm_nv.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(dm_nv_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-dm_nv.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +dm_nv.mod: pre-dm_nv.o mod-dm_nv.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(dm_nv_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-dm_nv.o mod-dm_nv.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +dm_nv.mod: pre-dm_nv.o mod-dm_nv.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(dm_nv_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-dm_nv.o mod-dm_nv.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-dm_nv.o: $(dm_nv_mod_DEPENDENCIES) dm_nv_mod-disk_dmraid_nvidia.o + -rm -f $@ + $(TARGET_CC) $(dm_nv_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ dm_nv_mod-disk_dmraid_nvidia.o + +mod-dm_nv.o: mod-dm_nv.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(dm_nv_mod_CFLAGS) -DGRUB_FILE=\"mod-dm_nv.c\" -c -o $@ $< + +mod-dm_nv.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'dm_nv' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-dm_nv.lst: pre-dm_nv.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 dm_nv/' > $@ +else +def-dm_nv.lst: pre-dm_nv.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 dm_nv/' > $@ +endif + +und-dm_nv.lst: pre-dm_nv.o + echo 'dm_nv' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +dm_nv_mod-disk_dmraid_nvidia.o: disk/dmraid_nvidia.c $(disk/dmraid_nvidia.c_DEPENDENCIES) + $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(dm_nv_mod_CFLAGS) -DGRUB_FILE=\"disk/dmraid_nvidia.c\" -MD -c -o $@ $< +-include dm_nv_mod-disk_dmraid_nvidia.d + +clean-module-dm_nv_mod-disk_dmraid_nvidia-extra.1: + rm -f cmd-dm_nv_mod-disk_dmraid_nvidia.lst fs-dm_nv_mod-disk_dmraid_nvidia.lst partmap-dm_nv_mod-disk_dmraid_nvidia.lst handler-dm_nv_mod-disk_dmraid_nvidia.lst parttool-dm_nv_mod-disk_dmraid_nvidia.lst video-dm_nv_mod-disk_dmraid_nvidia.lst terminal-dm_nv_mod-disk_dmraid_nvidia.lst + +CLEAN_MODULE_TARGETS += clean-module-dm_nv_mod-disk_dmraid_nvidia-extra.1 + +COMMANDFILES += cmd-dm_nv_mod-disk_dmraid_nvidia.lst +FSFILES += fs-dm_nv_mod-disk_dmraid_nvidia.lst +PARTTOOLFILES += parttool-dm_nv_mod-disk_dmraid_nvidia.lst +PARTMAPFILES += partmap-dm_nv_mod-disk_dmraid_nvidia.lst +HANDLERFILES += handler-dm_nv_mod-disk_dmraid_nvidia.lst +TERMINALFILES += terminal-dm_nv_mod-disk_dmraid_nvidia.lst +VIDEOFILES += video-dm_nv_mod-disk_dmraid_nvidia.lst + +cmd-dm_nv_mod-disk_dmraid_nvidia.lst: disk/dmraid_nvidia.c $(disk/dmraid_nvidia.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(dm_nv_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh dm_nv > $@ || (rm -f $@; exit 1) + +fs-dm_nv_mod-disk_dmraid_nvidia.lst: disk/dmraid_nvidia.c $(disk/dmraid_nvidia.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(dm_nv_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh dm_nv > $@ || (rm -f $@; exit 1) + +parttool-dm_nv_mod-disk_dmraid_nvidia.lst: disk/dmraid_nvidia.c $(disk/dmraid_nvidia.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(dm_nv_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh dm_nv > $@ || (rm -f $@; exit 1) + +partmap-dm_nv_mod-disk_dmraid_nvidia.lst: disk/dmraid_nvidia.c $(disk/dmraid_nvidia.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(dm_nv_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh dm_nv > $@ || (rm -f $@; exit 1) + +handler-dm_nv_mod-disk_dmraid_nvidia.lst: disk/dmraid_nvidia.c $(disk/dmraid_nvidia.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(dm_nv_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh dm_nv > $@ || (rm -f $@; exit 1) + +terminal-dm_nv_mod-disk_dmraid_nvidia.lst: disk/dmraid_nvidia.c $(disk/dmraid_nvidia.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(dm_nv_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh dm_nv > $@ || (rm -f $@; exit 1) + +video-dm_nv_mod-disk_dmraid_nvidia.lst: disk/dmraid_nvidia.c $(disk/dmraid_nvidia.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(dm_nv_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh dm_nv > $@ || (rm -f $@; exit 1) + +dm_nv_mod_CFLAGS = $(COMMON_CFLAGS) +dm_nv_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For lvm.mod +lvm_mod_SOURCES = disk/lvm.c + +clean-module-lvm.mod.1: + rm -f lvm.mod mod-lvm.o mod-lvm.c pre-lvm.o lvm_mod-disk_lvm.o und-lvm.lst + +CLEAN_MODULE_TARGETS += clean-module-lvm.mod.1 + +clean-module-lvm.mod-symbol.1: + rm -f def-lvm.lst + +CLEAN_MODULE_TARGETS += clean-module-lvm.mod-symbol.1 +DEFSYMFILES += def-lvm.lst +mostlyclean-module-lvm.mod.1: + rm -f lvm_mod-disk_lvm.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-lvm.mod.1 +UNDSYMFILES += und-lvm.lst + +ifeq ($(TARGET_NO_MODULES), yes) +lvm.mod: pre-lvm.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(lvm_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-lvm.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +lvm.mod: pre-lvm.o mod-lvm.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(lvm_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-lvm.o mod-lvm.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +lvm.mod: pre-lvm.o mod-lvm.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(lvm_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-lvm.o mod-lvm.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-lvm.o: $(lvm_mod_DEPENDENCIES) lvm_mod-disk_lvm.o + -rm -f $@ + $(TARGET_CC) $(lvm_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ lvm_mod-disk_lvm.o + +mod-lvm.o: mod-lvm.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lvm_mod_CFLAGS) -DGRUB_FILE=\"mod-lvm.c\" -c -o $@ $< + +mod-lvm.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'lvm' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-lvm.lst: pre-lvm.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 lvm/' > $@ +else +def-lvm.lst: pre-lvm.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 lvm/' > $@ +endif + +und-lvm.lst: pre-lvm.o + echo 'lvm' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +lvm_mod-disk_lvm.o: disk/lvm.c $(disk/lvm.c_DEPENDENCIES) + $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lvm_mod_CFLAGS) -DGRUB_FILE=\"disk/lvm.c\" -MD -c -o $@ $< +-include lvm_mod-disk_lvm.d + +clean-module-lvm_mod-disk_lvm-extra.1: + rm -f cmd-lvm_mod-disk_lvm.lst fs-lvm_mod-disk_lvm.lst partmap-lvm_mod-disk_lvm.lst handler-lvm_mod-disk_lvm.lst parttool-lvm_mod-disk_lvm.lst video-lvm_mod-disk_lvm.lst terminal-lvm_mod-disk_lvm.lst + +CLEAN_MODULE_TARGETS += clean-module-lvm_mod-disk_lvm-extra.1 + +COMMANDFILES += cmd-lvm_mod-disk_lvm.lst +FSFILES += fs-lvm_mod-disk_lvm.lst +PARTTOOLFILES += parttool-lvm_mod-disk_lvm.lst +PARTMAPFILES += partmap-lvm_mod-disk_lvm.lst +HANDLERFILES += handler-lvm_mod-disk_lvm.lst +TERMINALFILES += terminal-lvm_mod-disk_lvm.lst +VIDEOFILES += video-lvm_mod-disk_lvm.lst + +cmd-lvm_mod-disk_lvm.lst: disk/lvm.c $(disk/lvm.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lvm_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh lvm > $@ || (rm -f $@; exit 1) + +fs-lvm_mod-disk_lvm.lst: disk/lvm.c $(disk/lvm.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(lvm_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh lvm > $@ || (rm -f $@; exit 1) + +parttool-lvm_mod-disk_lvm.lst: disk/lvm.c $(disk/lvm.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lvm_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh lvm > $@ || (rm -f $@; exit 1) + +partmap-lvm_mod-disk_lvm.lst: disk/lvm.c $(disk/lvm.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(lvm_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh lvm > $@ || (rm -f $@; exit 1) + +handler-lvm_mod-disk_lvm.lst: disk/lvm.c $(disk/lvm.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lvm_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh lvm > $@ || (rm -f $@; exit 1) + +terminal-lvm_mod-disk_lvm.lst: disk/lvm.c $(disk/lvm.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lvm_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh lvm > $@ || (rm -f $@; exit 1) + +video-lvm_mod-disk_lvm.lst: disk/lvm.c $(disk/lvm.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(lvm_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh lvm > $@ || (rm -f $@; exit 1) + +lvm_mod_CFLAGS = $(COMMON_CFLAGS) +lvm_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For scsi.mod +scsi_mod_SOURCES = disk/scsi.c + +clean-module-scsi.mod.1: + rm -f scsi.mod mod-scsi.o mod-scsi.c pre-scsi.o scsi_mod-disk_scsi.o und-scsi.lst + +CLEAN_MODULE_TARGETS += clean-module-scsi.mod.1 + +clean-module-scsi.mod-symbol.1: + rm -f def-scsi.lst + +CLEAN_MODULE_TARGETS += clean-module-scsi.mod-symbol.1 +DEFSYMFILES += def-scsi.lst +mostlyclean-module-scsi.mod.1: + rm -f scsi_mod-disk_scsi.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-scsi.mod.1 +UNDSYMFILES += und-scsi.lst + +ifeq ($(TARGET_NO_MODULES), yes) +scsi.mod: pre-scsi.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(scsi_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-scsi.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +scsi.mod: pre-scsi.o mod-scsi.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(scsi_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-scsi.o mod-scsi.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +scsi.mod: pre-scsi.o mod-scsi.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(scsi_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-scsi.o mod-scsi.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-scsi.o: $(scsi_mod_DEPENDENCIES) scsi_mod-disk_scsi.o + -rm -f $@ + $(TARGET_CC) $(scsi_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ scsi_mod-disk_scsi.o + +mod-scsi.o: mod-scsi.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(scsi_mod_CFLAGS) -DGRUB_FILE=\"mod-scsi.c\" -c -o $@ $< + +mod-scsi.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'scsi' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-scsi.lst: pre-scsi.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 scsi/' > $@ +else +def-scsi.lst: pre-scsi.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 scsi/' > $@ +endif + +und-scsi.lst: pre-scsi.o + echo 'scsi' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +scsi_mod-disk_scsi.o: disk/scsi.c $(disk/scsi.c_DEPENDENCIES) + $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(scsi_mod_CFLAGS) -DGRUB_FILE=\"disk/scsi.c\" -MD -c -o $@ $< +-include scsi_mod-disk_scsi.d + +clean-module-scsi_mod-disk_scsi-extra.1: + rm -f cmd-scsi_mod-disk_scsi.lst fs-scsi_mod-disk_scsi.lst partmap-scsi_mod-disk_scsi.lst handler-scsi_mod-disk_scsi.lst parttool-scsi_mod-disk_scsi.lst video-scsi_mod-disk_scsi.lst terminal-scsi_mod-disk_scsi.lst + +CLEAN_MODULE_TARGETS += clean-module-scsi_mod-disk_scsi-extra.1 + +COMMANDFILES += cmd-scsi_mod-disk_scsi.lst +FSFILES += fs-scsi_mod-disk_scsi.lst +PARTTOOLFILES += parttool-scsi_mod-disk_scsi.lst +PARTMAPFILES += partmap-scsi_mod-disk_scsi.lst +HANDLERFILES += handler-scsi_mod-disk_scsi.lst +TERMINALFILES += terminal-scsi_mod-disk_scsi.lst +VIDEOFILES += video-scsi_mod-disk_scsi.lst + +cmd-scsi_mod-disk_scsi.lst: disk/scsi.c $(disk/scsi.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(scsi_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh scsi > $@ || (rm -f $@; exit 1) + +fs-scsi_mod-disk_scsi.lst: disk/scsi.c $(disk/scsi.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(scsi_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh scsi > $@ || (rm -f $@; exit 1) + +parttool-scsi_mod-disk_scsi.lst: disk/scsi.c $(disk/scsi.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(scsi_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh scsi > $@ || (rm -f $@; exit 1) + +partmap-scsi_mod-disk_scsi.lst: disk/scsi.c $(disk/scsi.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(scsi_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh scsi > $@ || (rm -f $@; exit 1) + +handler-scsi_mod-disk_scsi.lst: disk/scsi.c $(disk/scsi.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(scsi_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh scsi > $@ || (rm -f $@; exit 1) + +terminal-scsi_mod-disk_scsi.lst: disk/scsi.c $(disk/scsi.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(scsi_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh scsi > $@ || (rm -f $@; exit 1) + +video-scsi_mod-disk_scsi.lst: disk/scsi.c $(disk/scsi.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(scsi_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh scsi > $@ || (rm -f $@; exit 1) + +scsi_mod_CFLAGS = $(COMMON_CFLAGS) +scsi_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# Commands. +pkglib_MODULES += minicmd.mod extcmd.mod hello.mod \ + ls.mod cmp.mod cat.mod help.mod search.mod loopback.mod \ + configfile.mod echo.mod \ + test.mod blocklist.mod hexdump.mod \ + read.mod sleep.mod loadenv.mod crc.mod parttool.mod \ + msdospart.mod memrw.mod normal.mod \ + gptsync.mod true.mod probe.mod password.mod \ + keystatus.mod + +# For password.mod. +password_mod_SOURCES = commands/password.c + +clean-module-password.mod.1: + rm -f password.mod mod-password.o mod-password.c pre-password.o password_mod-commands_password.o und-password.lst + +CLEAN_MODULE_TARGETS += clean-module-password.mod.1 + +clean-module-password.mod-symbol.1: + rm -f def-password.lst + +CLEAN_MODULE_TARGETS += clean-module-password.mod-symbol.1 +DEFSYMFILES += def-password.lst +mostlyclean-module-password.mod.1: + rm -f password_mod-commands_password.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-password.mod.1 +UNDSYMFILES += und-password.lst + +ifeq ($(TARGET_NO_MODULES), yes) +password.mod: pre-password.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(password_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-password.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +password.mod: pre-password.o mod-password.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(password_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-password.o mod-password.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +password.mod: pre-password.o mod-password.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(password_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-password.o mod-password.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-password.o: $(password_mod_DEPENDENCIES) password_mod-commands_password.o + -rm -f $@ + $(TARGET_CC) $(password_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ password_mod-commands_password.o + +mod-password.o: mod-password.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(password_mod_CFLAGS) -DGRUB_FILE=\"mod-password.c\" -c -o $@ $< + +mod-password.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'password' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-password.lst: pre-password.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 password/' > $@ +else +def-password.lst: pre-password.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 password/' > $@ +endif + +und-password.lst: pre-password.o + echo 'password' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +password_mod-commands_password.o: commands/password.c $(commands/password.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(password_mod_CFLAGS) -DGRUB_FILE=\"commands/password.c\" -MD -c -o $@ $< +-include password_mod-commands_password.d + +clean-module-password_mod-commands_password-extra.1: + rm -f cmd-password_mod-commands_password.lst fs-password_mod-commands_password.lst partmap-password_mod-commands_password.lst handler-password_mod-commands_password.lst parttool-password_mod-commands_password.lst video-password_mod-commands_password.lst terminal-password_mod-commands_password.lst + +CLEAN_MODULE_TARGETS += clean-module-password_mod-commands_password-extra.1 + +COMMANDFILES += cmd-password_mod-commands_password.lst +FSFILES += fs-password_mod-commands_password.lst +PARTTOOLFILES += parttool-password_mod-commands_password.lst +PARTMAPFILES += partmap-password_mod-commands_password.lst +HANDLERFILES += handler-password_mod-commands_password.lst +TERMINALFILES += terminal-password_mod-commands_password.lst +VIDEOFILES += video-password_mod-commands_password.lst + +cmd-password_mod-commands_password.lst: commands/password.c $(commands/password.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(password_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh password > $@ || (rm -f $@; exit 1) + +fs-password_mod-commands_password.lst: commands/password.c $(commands/password.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(password_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh password > $@ || (rm -f $@; exit 1) + +parttool-password_mod-commands_password.lst: commands/password.c $(commands/password.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(password_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh password > $@ || (rm -f $@; exit 1) + +partmap-password_mod-commands_password.lst: commands/password.c $(commands/password.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(password_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh password > $@ || (rm -f $@; exit 1) + +handler-password_mod-commands_password.lst: commands/password.c $(commands/password.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(password_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh password > $@ || (rm -f $@; exit 1) + +terminal-password_mod-commands_password.lst: commands/password.c $(commands/password.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(password_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh password > $@ || (rm -f $@; exit 1) + +video-password_mod-commands_password.lst: commands/password.c $(commands/password.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(password_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh password > $@ || (rm -f $@; exit 1) + +password_mod_CFLAGS = $(COMMON_CFLAGS) +password_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For gptsync.mod. +gptsync_mod_SOURCES = commands/gptsync.c + +clean-module-gptsync.mod.1: + rm -f gptsync.mod mod-gptsync.o mod-gptsync.c pre-gptsync.o gptsync_mod-commands_gptsync.o und-gptsync.lst + +CLEAN_MODULE_TARGETS += clean-module-gptsync.mod.1 + +clean-module-gptsync.mod-symbol.1: + rm -f def-gptsync.lst + +CLEAN_MODULE_TARGETS += clean-module-gptsync.mod-symbol.1 +DEFSYMFILES += def-gptsync.lst +mostlyclean-module-gptsync.mod.1: + rm -f gptsync_mod-commands_gptsync.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-gptsync.mod.1 +UNDSYMFILES += und-gptsync.lst + +ifeq ($(TARGET_NO_MODULES), yes) +gptsync.mod: pre-gptsync.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gptsync_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gptsync.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +gptsync.mod: pre-gptsync.o mod-gptsync.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gptsync_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gptsync.o mod-gptsync.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +gptsync.mod: pre-gptsync.o mod-gptsync.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(gptsync_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-gptsync.o mod-gptsync.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-gptsync.o: $(gptsync_mod_DEPENDENCIES) gptsync_mod-commands_gptsync.o + -rm -f $@ + $(TARGET_CC) $(gptsync_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ gptsync_mod-commands_gptsync.o + +mod-gptsync.o: mod-gptsync.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gptsync_mod_CFLAGS) -DGRUB_FILE=\"mod-gptsync.c\" -c -o $@ $< + +mod-gptsync.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gptsync' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-gptsync.lst: pre-gptsync.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gptsync/' > $@ +else +def-gptsync.lst: pre-gptsync.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 gptsync/' > $@ +endif + +und-gptsync.lst: pre-gptsync.o + echo 'gptsync' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gptsync_mod-commands_gptsync.o: commands/gptsync.c $(commands/gptsync.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gptsync_mod_CFLAGS) -DGRUB_FILE=\"commands/gptsync.c\" -MD -c -o $@ $< +-include gptsync_mod-commands_gptsync.d + +clean-module-gptsync_mod-commands_gptsync-extra.1: + rm -f cmd-gptsync_mod-commands_gptsync.lst fs-gptsync_mod-commands_gptsync.lst partmap-gptsync_mod-commands_gptsync.lst handler-gptsync_mod-commands_gptsync.lst parttool-gptsync_mod-commands_gptsync.lst video-gptsync_mod-commands_gptsync.lst terminal-gptsync_mod-commands_gptsync.lst + +CLEAN_MODULE_TARGETS += clean-module-gptsync_mod-commands_gptsync-extra.1 + +COMMANDFILES += cmd-gptsync_mod-commands_gptsync.lst +FSFILES += fs-gptsync_mod-commands_gptsync.lst +PARTTOOLFILES += parttool-gptsync_mod-commands_gptsync.lst +PARTMAPFILES += partmap-gptsync_mod-commands_gptsync.lst +HANDLERFILES += handler-gptsync_mod-commands_gptsync.lst +TERMINALFILES += terminal-gptsync_mod-commands_gptsync.lst +VIDEOFILES += video-gptsync_mod-commands_gptsync.lst + +cmd-gptsync_mod-commands_gptsync.lst: commands/gptsync.c $(commands/gptsync.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gptsync_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gptsync > $@ || (rm -f $@; exit 1) + +fs-gptsync_mod-commands_gptsync.lst: commands/gptsync.c $(commands/gptsync.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gptsync_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gptsync > $@ || (rm -f $@; exit 1) + +parttool-gptsync_mod-commands_gptsync.lst: commands/gptsync.c $(commands/gptsync.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gptsync_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gptsync > $@ || (rm -f $@; exit 1) + +partmap-gptsync_mod-commands_gptsync.lst: commands/gptsync.c $(commands/gptsync.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gptsync_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gptsync > $@ || (rm -f $@; exit 1) + +handler-gptsync_mod-commands_gptsync.lst: commands/gptsync.c $(commands/gptsync.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gptsync_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gptsync > $@ || (rm -f $@; exit 1) + +terminal-gptsync_mod-commands_gptsync.lst: commands/gptsync.c $(commands/gptsync.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gptsync_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gptsync > $@ || (rm -f $@; exit 1) + +video-gptsync_mod-commands_gptsync.lst: commands/gptsync.c $(commands/gptsync.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gptsync_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gptsync > $@ || (rm -f $@; exit 1) + +gptsync_mod_CFLAGS = $(COMMON_CFLAGS) +gptsync_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For minicmd.mod. +minicmd_mod_SOURCES = commands/minicmd.c + +clean-module-minicmd.mod.1: + rm -f minicmd.mod mod-minicmd.o mod-minicmd.c pre-minicmd.o minicmd_mod-commands_minicmd.o und-minicmd.lst + +CLEAN_MODULE_TARGETS += clean-module-minicmd.mod.1 + +clean-module-minicmd.mod-symbol.1: + rm -f def-minicmd.lst + +CLEAN_MODULE_TARGETS += clean-module-minicmd.mod-symbol.1 +DEFSYMFILES += def-minicmd.lst +mostlyclean-module-minicmd.mod.1: + rm -f minicmd_mod-commands_minicmd.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-minicmd.mod.1 +UNDSYMFILES += und-minicmd.lst + +ifeq ($(TARGET_NO_MODULES), yes) +minicmd.mod: pre-minicmd.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(minicmd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-minicmd.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +minicmd.mod: pre-minicmd.o mod-minicmd.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(minicmd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-minicmd.o mod-minicmd.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +minicmd.mod: pre-minicmd.o mod-minicmd.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(minicmd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-minicmd.o mod-minicmd.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-minicmd.o: $(minicmd_mod_DEPENDENCIES) minicmd_mod-commands_minicmd.o + -rm -f $@ + $(TARGET_CC) $(minicmd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ minicmd_mod-commands_minicmd.o + +mod-minicmd.o: mod-minicmd.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(minicmd_mod_CFLAGS) -DGRUB_FILE=\"mod-minicmd.c\" -c -o $@ $< + +mod-minicmd.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'minicmd' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-minicmd.lst: pre-minicmd.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 minicmd/' > $@ +else +def-minicmd.lst: pre-minicmd.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 minicmd/' > $@ +endif + +und-minicmd.lst: pre-minicmd.o + echo 'minicmd' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +minicmd_mod-commands_minicmd.o: commands/minicmd.c $(commands/minicmd.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(minicmd_mod_CFLAGS) -DGRUB_FILE=\"commands/minicmd.c\" -MD -c -o $@ $< +-include minicmd_mod-commands_minicmd.d + +clean-module-minicmd_mod-commands_minicmd-extra.1: + rm -f cmd-minicmd_mod-commands_minicmd.lst fs-minicmd_mod-commands_minicmd.lst partmap-minicmd_mod-commands_minicmd.lst handler-minicmd_mod-commands_minicmd.lst parttool-minicmd_mod-commands_minicmd.lst video-minicmd_mod-commands_minicmd.lst terminal-minicmd_mod-commands_minicmd.lst + +CLEAN_MODULE_TARGETS += clean-module-minicmd_mod-commands_minicmd-extra.1 + +COMMANDFILES += cmd-minicmd_mod-commands_minicmd.lst +FSFILES += fs-minicmd_mod-commands_minicmd.lst +PARTTOOLFILES += parttool-minicmd_mod-commands_minicmd.lst +PARTMAPFILES += partmap-minicmd_mod-commands_minicmd.lst +HANDLERFILES += handler-minicmd_mod-commands_minicmd.lst +TERMINALFILES += terminal-minicmd_mod-commands_minicmd.lst +VIDEOFILES += video-minicmd_mod-commands_minicmd.lst + +cmd-minicmd_mod-commands_minicmd.lst: commands/minicmd.c $(commands/minicmd.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(minicmd_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh minicmd > $@ || (rm -f $@; exit 1) + +fs-minicmd_mod-commands_minicmd.lst: commands/minicmd.c $(commands/minicmd.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(minicmd_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh minicmd > $@ || (rm -f $@; exit 1) + +parttool-minicmd_mod-commands_minicmd.lst: commands/minicmd.c $(commands/minicmd.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(minicmd_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh minicmd > $@ || (rm -f $@; exit 1) + +partmap-minicmd_mod-commands_minicmd.lst: commands/minicmd.c $(commands/minicmd.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(minicmd_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh minicmd > $@ || (rm -f $@; exit 1) + +handler-minicmd_mod-commands_minicmd.lst: commands/minicmd.c $(commands/minicmd.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(minicmd_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh minicmd > $@ || (rm -f $@; exit 1) + +terminal-minicmd_mod-commands_minicmd.lst: commands/minicmd.c $(commands/minicmd.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(minicmd_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh minicmd > $@ || (rm -f $@; exit 1) + +video-minicmd_mod-commands_minicmd.lst: commands/minicmd.c $(commands/minicmd.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(minicmd_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh minicmd > $@ || (rm -f $@; exit 1) + +minicmd_mod_CFLAGS = $(COMMON_CFLAGS) +minicmd_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For extcmd.mod. +extcmd_mod_SOURCES = commands/extcmd.c lib/arg.c + +clean-module-extcmd.mod.1: + rm -f extcmd.mod mod-extcmd.o mod-extcmd.c pre-extcmd.o extcmd_mod-commands_extcmd.o extcmd_mod-lib_arg.o und-extcmd.lst + +CLEAN_MODULE_TARGETS += clean-module-extcmd.mod.1 + +clean-module-extcmd.mod-symbol.1: + rm -f def-extcmd.lst + +CLEAN_MODULE_TARGETS += clean-module-extcmd.mod-symbol.1 +DEFSYMFILES += def-extcmd.lst +mostlyclean-module-extcmd.mod.1: + rm -f extcmd_mod-commands_extcmd.d extcmd_mod-lib_arg.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-extcmd.mod.1 +UNDSYMFILES += und-extcmd.lst + +ifeq ($(TARGET_NO_MODULES), yes) +extcmd.mod: pre-extcmd.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(extcmd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-extcmd.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +extcmd.mod: pre-extcmd.o mod-extcmd.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(extcmd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-extcmd.o mod-extcmd.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +extcmd.mod: pre-extcmd.o mod-extcmd.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(extcmd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-extcmd.o mod-extcmd.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-extcmd.o: $(extcmd_mod_DEPENDENCIES) extcmd_mod-commands_extcmd.o extcmd_mod-lib_arg.o + -rm -f $@ + $(TARGET_CC) $(extcmd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ extcmd_mod-commands_extcmd.o extcmd_mod-lib_arg.o + +mod-extcmd.o: mod-extcmd.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(extcmd_mod_CFLAGS) -DGRUB_FILE=\"mod-extcmd.c\" -c -o $@ $< + +mod-extcmd.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'extcmd' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-extcmd.lst: pre-extcmd.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 extcmd/' > $@ +else +def-extcmd.lst: pre-extcmd.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 extcmd/' > $@ +endif + +und-extcmd.lst: pre-extcmd.o + echo 'extcmd' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +extcmd_mod-commands_extcmd.o: commands/extcmd.c $(commands/extcmd.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(extcmd_mod_CFLAGS) -DGRUB_FILE=\"commands/extcmd.c\" -MD -c -o $@ $< +-include extcmd_mod-commands_extcmd.d + +clean-module-extcmd_mod-commands_extcmd-extra.1: + rm -f cmd-extcmd_mod-commands_extcmd.lst fs-extcmd_mod-commands_extcmd.lst partmap-extcmd_mod-commands_extcmd.lst handler-extcmd_mod-commands_extcmd.lst parttool-extcmd_mod-commands_extcmd.lst video-extcmd_mod-commands_extcmd.lst terminal-extcmd_mod-commands_extcmd.lst + +CLEAN_MODULE_TARGETS += clean-module-extcmd_mod-commands_extcmd-extra.1 + +COMMANDFILES += cmd-extcmd_mod-commands_extcmd.lst +FSFILES += fs-extcmd_mod-commands_extcmd.lst +PARTTOOLFILES += parttool-extcmd_mod-commands_extcmd.lst +PARTMAPFILES += partmap-extcmd_mod-commands_extcmd.lst +HANDLERFILES += handler-extcmd_mod-commands_extcmd.lst +TERMINALFILES += terminal-extcmd_mod-commands_extcmd.lst +VIDEOFILES += video-extcmd_mod-commands_extcmd.lst + +cmd-extcmd_mod-commands_extcmd.lst: commands/extcmd.c $(commands/extcmd.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(extcmd_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh extcmd > $@ || (rm -f $@; exit 1) + +fs-extcmd_mod-commands_extcmd.lst: commands/extcmd.c $(commands/extcmd.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(extcmd_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh extcmd > $@ || (rm -f $@; exit 1) + +parttool-extcmd_mod-commands_extcmd.lst: commands/extcmd.c $(commands/extcmd.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(extcmd_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh extcmd > $@ || (rm -f $@; exit 1) + +partmap-extcmd_mod-commands_extcmd.lst: commands/extcmd.c $(commands/extcmd.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(extcmd_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh extcmd > $@ || (rm -f $@; exit 1) + +handler-extcmd_mod-commands_extcmd.lst: commands/extcmd.c $(commands/extcmd.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(extcmd_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh extcmd > $@ || (rm -f $@; exit 1) + +terminal-extcmd_mod-commands_extcmd.lst: commands/extcmd.c $(commands/extcmd.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(extcmd_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh extcmd > $@ || (rm -f $@; exit 1) + +video-extcmd_mod-commands_extcmd.lst: commands/extcmd.c $(commands/extcmd.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(extcmd_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh extcmd > $@ || (rm -f $@; exit 1) + +extcmd_mod-lib_arg.o: lib/arg.c $(lib/arg.c_DEPENDENCIES) + $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(extcmd_mod_CFLAGS) -DGRUB_FILE=\"lib/arg.c\" -MD -c -o $@ $< +-include extcmd_mod-lib_arg.d + +clean-module-extcmd_mod-lib_arg-extra.1: + rm -f cmd-extcmd_mod-lib_arg.lst fs-extcmd_mod-lib_arg.lst partmap-extcmd_mod-lib_arg.lst handler-extcmd_mod-lib_arg.lst parttool-extcmd_mod-lib_arg.lst video-extcmd_mod-lib_arg.lst terminal-extcmd_mod-lib_arg.lst + +CLEAN_MODULE_TARGETS += clean-module-extcmd_mod-lib_arg-extra.1 + +COMMANDFILES += cmd-extcmd_mod-lib_arg.lst +FSFILES += fs-extcmd_mod-lib_arg.lst +PARTTOOLFILES += parttool-extcmd_mod-lib_arg.lst +PARTMAPFILES += partmap-extcmd_mod-lib_arg.lst +HANDLERFILES += handler-extcmd_mod-lib_arg.lst +TERMINALFILES += terminal-extcmd_mod-lib_arg.lst +VIDEOFILES += video-extcmd_mod-lib_arg.lst + +cmd-extcmd_mod-lib_arg.lst: lib/arg.c $(lib/arg.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(extcmd_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh extcmd > $@ || (rm -f $@; exit 1) + +fs-extcmd_mod-lib_arg.lst: lib/arg.c $(lib/arg.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(extcmd_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh extcmd > $@ || (rm -f $@; exit 1) + +parttool-extcmd_mod-lib_arg.lst: lib/arg.c $(lib/arg.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(extcmd_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh extcmd > $@ || (rm -f $@; exit 1) + +partmap-extcmd_mod-lib_arg.lst: lib/arg.c $(lib/arg.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(extcmd_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh extcmd > $@ || (rm -f $@; exit 1) + +handler-extcmd_mod-lib_arg.lst: lib/arg.c $(lib/arg.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(extcmd_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh extcmd > $@ || (rm -f $@; exit 1) + +terminal-extcmd_mod-lib_arg.lst: lib/arg.c $(lib/arg.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(extcmd_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh extcmd > $@ || (rm -f $@; exit 1) + +video-extcmd_mod-lib_arg.lst: lib/arg.c $(lib/arg.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(extcmd_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh extcmd > $@ || (rm -f $@; exit 1) + +extcmd_mod_CFLAGS = $(COMMON_CFLAGS) +extcmd_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For hello.mod. +hello_mod_SOURCES = hello/hello.c + +clean-module-hello.mod.1: + rm -f hello.mod mod-hello.o mod-hello.c pre-hello.o hello_mod-hello_hello.o und-hello.lst + +CLEAN_MODULE_TARGETS += clean-module-hello.mod.1 + +clean-module-hello.mod-symbol.1: + rm -f def-hello.lst + +CLEAN_MODULE_TARGETS += clean-module-hello.mod-symbol.1 +DEFSYMFILES += def-hello.lst +mostlyclean-module-hello.mod.1: + rm -f hello_mod-hello_hello.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-hello.mod.1 +UNDSYMFILES += und-hello.lst + +ifeq ($(TARGET_NO_MODULES), yes) +hello.mod: pre-hello.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(hello_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-hello.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +hello.mod: pre-hello.o mod-hello.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(hello_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-hello.o mod-hello.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +hello.mod: pre-hello.o mod-hello.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(hello_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-hello.o mod-hello.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-hello.o: $(hello_mod_DEPENDENCIES) hello_mod-hello_hello.o + -rm -f $@ + $(TARGET_CC) $(hello_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ hello_mod-hello_hello.o + +mod-hello.o: mod-hello.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hello_mod_CFLAGS) -DGRUB_FILE=\"mod-hello.c\" -c -o $@ $< + +mod-hello.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'hello' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-hello.lst: pre-hello.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 hello/' > $@ +else +def-hello.lst: pre-hello.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 hello/' > $@ +endif + +und-hello.lst: pre-hello.o + echo 'hello' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +hello_mod-hello_hello.o: hello/hello.c $(hello/hello.c_DEPENDENCIES) + $(TARGET_CC) -Ihello -I$(srcdir)/hello $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hello_mod_CFLAGS) -DGRUB_FILE=\"hello/hello.c\" -MD -c -o $@ $< +-include hello_mod-hello_hello.d + +clean-module-hello_mod-hello_hello-extra.1: + rm -f cmd-hello_mod-hello_hello.lst fs-hello_mod-hello_hello.lst partmap-hello_mod-hello_hello.lst handler-hello_mod-hello_hello.lst parttool-hello_mod-hello_hello.lst video-hello_mod-hello_hello.lst terminal-hello_mod-hello_hello.lst + +CLEAN_MODULE_TARGETS += clean-module-hello_mod-hello_hello-extra.1 + +COMMANDFILES += cmd-hello_mod-hello_hello.lst +FSFILES += fs-hello_mod-hello_hello.lst +PARTTOOLFILES += parttool-hello_mod-hello_hello.lst +PARTMAPFILES += partmap-hello_mod-hello_hello.lst +HANDLERFILES += handler-hello_mod-hello_hello.lst +TERMINALFILES += terminal-hello_mod-hello_hello.lst +VIDEOFILES += video-hello_mod-hello_hello.lst + +cmd-hello_mod-hello_hello.lst: hello/hello.c $(hello/hello.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ihello -I$(srcdir)/hello $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hello_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh hello > $@ || (rm -f $@; exit 1) + +fs-hello_mod-hello_hello.lst: hello/hello.c $(hello/hello.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ihello -I$(srcdir)/hello $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(hello_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh hello > $@ || (rm -f $@; exit 1) + +parttool-hello_mod-hello_hello.lst: hello/hello.c $(hello/hello.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ihello -I$(srcdir)/hello $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hello_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh hello > $@ || (rm -f $@; exit 1) + +partmap-hello_mod-hello_hello.lst: hello/hello.c $(hello/hello.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ihello -I$(srcdir)/hello $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(hello_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh hello > $@ || (rm -f $@; exit 1) + +handler-hello_mod-hello_hello.lst: hello/hello.c $(hello/hello.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ihello -I$(srcdir)/hello $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hello_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh hello > $@ || (rm -f $@; exit 1) + +terminal-hello_mod-hello_hello.lst: hello/hello.c $(hello/hello.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ihello -I$(srcdir)/hello $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hello_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh hello > $@ || (rm -f $@; exit 1) + +video-hello_mod-hello_hello.lst: hello/hello.c $(hello/hello.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ihello -I$(srcdir)/hello $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(hello_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh hello > $@ || (rm -f $@; exit 1) + +hello_mod_CFLAGS = $(COMMON_CFLAGS) +hello_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For gfxmenu.mod. +pkglib_MODULES += gfxmenu.mod +gfxmenu_mod_SOURCES = \ + gfxmenu/gfxmenu.c \ + gfxmenu/model.c \ + gfxmenu/view.c \ + gfxmenu/icon_manager.c \ + gfxmenu/theme_loader.c \ + gfxmenu/widget-box.c \ + gfxmenu/gui_canvas.c \ + gfxmenu/gui_circular_progress.c \ + gfxmenu/gui_box.c \ + gfxmenu/gui_label.c \ + gfxmenu/gui_list.c \ + gfxmenu/gui_image.c \ + gfxmenu/gui_progress_bar.c \ + gfxmenu/gui_util.c \ + gfxmenu/gui_string_util.c \ + gfxmenu/named_colors.c \ + gfxmenu/font.c + +clean-module-gfxmenu.mod.1: + rm -f gfxmenu.mod mod-gfxmenu.o mod-gfxmenu.c pre-gfxmenu.o gfxmenu_mod-gfxmenu_gfxmenu.o gfxmenu_mod-gfxmenu_model.o gfxmenu_mod-gfxmenu_view.o gfxmenu_mod-gfxmenu_icon_manager.o gfxmenu_mod-gfxmenu_theme_loader.o gfxmenu_mod-gfxmenu_widget_box.o gfxmenu_mod-gfxmenu_gui_canvas.o gfxmenu_mod-gfxmenu_gui_circular_progress.o gfxmenu_mod-gfxmenu_gui_box.o gfxmenu_mod-gfxmenu_gui_label.o gfxmenu_mod-gfxmenu_gui_list.o gfxmenu_mod-gfxmenu_gui_image.o gfxmenu_mod-gfxmenu_gui_progress_bar.o gfxmenu_mod-gfxmenu_gui_util.o gfxmenu_mod-gfxmenu_gui_string_util.o gfxmenu_mod-gfxmenu_named_colors.o gfxmenu_mod-gfxmenu_font.o und-gfxmenu.lst + +CLEAN_MODULE_TARGETS += clean-module-gfxmenu.mod.1 + +clean-module-gfxmenu.mod-symbol.1: + rm -f def-gfxmenu.lst + +CLEAN_MODULE_TARGETS += clean-module-gfxmenu.mod-symbol.1 +DEFSYMFILES += def-gfxmenu.lst +mostlyclean-module-gfxmenu.mod.1: + rm -f gfxmenu_mod-gfxmenu_gfxmenu.d gfxmenu_mod-gfxmenu_model.d gfxmenu_mod-gfxmenu_view.d gfxmenu_mod-gfxmenu_icon_manager.d gfxmenu_mod-gfxmenu_theme_loader.d gfxmenu_mod-gfxmenu_widget_box.d gfxmenu_mod-gfxmenu_gui_canvas.d gfxmenu_mod-gfxmenu_gui_circular_progress.d gfxmenu_mod-gfxmenu_gui_box.d gfxmenu_mod-gfxmenu_gui_label.d gfxmenu_mod-gfxmenu_gui_list.d gfxmenu_mod-gfxmenu_gui_image.d gfxmenu_mod-gfxmenu_gui_progress_bar.d gfxmenu_mod-gfxmenu_gui_util.d gfxmenu_mod-gfxmenu_gui_string_util.d gfxmenu_mod-gfxmenu_named_colors.d gfxmenu_mod-gfxmenu_font.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-gfxmenu.mod.1 +UNDSYMFILES += und-gfxmenu.lst + +ifeq ($(TARGET_NO_MODULES), yes) +gfxmenu.mod: pre-gfxmenu.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gfxmenu_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gfxmenu.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +gfxmenu.mod: pre-gfxmenu.o mod-gfxmenu.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gfxmenu_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gfxmenu.o mod-gfxmenu.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +gfxmenu.mod: pre-gfxmenu.o mod-gfxmenu.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(gfxmenu_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-gfxmenu.o mod-gfxmenu.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-gfxmenu.o: $(gfxmenu_mod_DEPENDENCIES) gfxmenu_mod-gfxmenu_gfxmenu.o gfxmenu_mod-gfxmenu_model.o gfxmenu_mod-gfxmenu_view.o gfxmenu_mod-gfxmenu_icon_manager.o gfxmenu_mod-gfxmenu_theme_loader.o gfxmenu_mod-gfxmenu_widget_box.o gfxmenu_mod-gfxmenu_gui_canvas.o gfxmenu_mod-gfxmenu_gui_circular_progress.o gfxmenu_mod-gfxmenu_gui_box.o gfxmenu_mod-gfxmenu_gui_label.o gfxmenu_mod-gfxmenu_gui_list.o gfxmenu_mod-gfxmenu_gui_image.o gfxmenu_mod-gfxmenu_gui_progress_bar.o gfxmenu_mod-gfxmenu_gui_util.o gfxmenu_mod-gfxmenu_gui_string_util.o gfxmenu_mod-gfxmenu_named_colors.o gfxmenu_mod-gfxmenu_font.o + -rm -f $@ + $(TARGET_CC) $(gfxmenu_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ gfxmenu_mod-gfxmenu_gfxmenu.o gfxmenu_mod-gfxmenu_model.o gfxmenu_mod-gfxmenu_view.o gfxmenu_mod-gfxmenu_icon_manager.o gfxmenu_mod-gfxmenu_theme_loader.o gfxmenu_mod-gfxmenu_widget_box.o gfxmenu_mod-gfxmenu_gui_canvas.o gfxmenu_mod-gfxmenu_gui_circular_progress.o gfxmenu_mod-gfxmenu_gui_box.o gfxmenu_mod-gfxmenu_gui_label.o gfxmenu_mod-gfxmenu_gui_list.o gfxmenu_mod-gfxmenu_gui_image.o gfxmenu_mod-gfxmenu_gui_progress_bar.o gfxmenu_mod-gfxmenu_gui_util.o gfxmenu_mod-gfxmenu_gui_string_util.o gfxmenu_mod-gfxmenu_named_colors.o gfxmenu_mod-gfxmenu_font.o + +mod-gfxmenu.o: mod-gfxmenu.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -DGRUB_FILE=\"mod-gfxmenu.c\" -c -o $@ $< + +mod-gfxmenu.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gfxmenu' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-gfxmenu.lst: pre-gfxmenu.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gfxmenu/' > $@ +else +def-gfxmenu.lst: pre-gfxmenu.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 gfxmenu/' > $@ +endif + +und-gfxmenu.lst: pre-gfxmenu.o + echo 'gfxmenu' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gfxmenu_mod-gfxmenu_gfxmenu.o: gfxmenu/gfxmenu.c $(gfxmenu/gfxmenu.c_DEPENDENCIES) + $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -DGRUB_FILE=\"gfxmenu/gfxmenu.c\" -MD -c -o $@ $< +-include gfxmenu_mod-gfxmenu_gfxmenu.d + +clean-module-gfxmenu_mod-gfxmenu_gfxmenu-extra.1: + rm -f cmd-gfxmenu_mod-gfxmenu_gfxmenu.lst fs-gfxmenu_mod-gfxmenu_gfxmenu.lst partmap-gfxmenu_mod-gfxmenu_gfxmenu.lst handler-gfxmenu_mod-gfxmenu_gfxmenu.lst parttool-gfxmenu_mod-gfxmenu_gfxmenu.lst video-gfxmenu_mod-gfxmenu_gfxmenu.lst terminal-gfxmenu_mod-gfxmenu_gfxmenu.lst + +CLEAN_MODULE_TARGETS += clean-module-gfxmenu_mod-gfxmenu_gfxmenu-extra.1 + +COMMANDFILES += cmd-gfxmenu_mod-gfxmenu_gfxmenu.lst +FSFILES += fs-gfxmenu_mod-gfxmenu_gfxmenu.lst +PARTTOOLFILES += parttool-gfxmenu_mod-gfxmenu_gfxmenu.lst +PARTMAPFILES += partmap-gfxmenu_mod-gfxmenu_gfxmenu.lst +HANDLERFILES += handler-gfxmenu_mod-gfxmenu_gfxmenu.lst +TERMINALFILES += terminal-gfxmenu_mod-gfxmenu_gfxmenu.lst +VIDEOFILES += video-gfxmenu_mod-gfxmenu_gfxmenu.lst + +cmd-gfxmenu_mod-gfxmenu_gfxmenu.lst: gfxmenu/gfxmenu.c $(gfxmenu/gfxmenu.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +fs-gfxmenu_mod-gfxmenu_gfxmenu.lst: gfxmenu/gfxmenu.c $(gfxmenu/gfxmenu.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +parttool-gfxmenu_mod-gfxmenu_gfxmenu.lst: gfxmenu/gfxmenu.c $(gfxmenu/gfxmenu.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +partmap-gfxmenu_mod-gfxmenu_gfxmenu.lst: gfxmenu/gfxmenu.c $(gfxmenu/gfxmenu.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +handler-gfxmenu_mod-gfxmenu_gfxmenu.lst: gfxmenu/gfxmenu.c $(gfxmenu/gfxmenu.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +terminal-gfxmenu_mod-gfxmenu_gfxmenu.lst: gfxmenu/gfxmenu.c $(gfxmenu/gfxmenu.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +video-gfxmenu_mod-gfxmenu_gfxmenu.lst: gfxmenu/gfxmenu.c $(gfxmenu/gfxmenu.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +gfxmenu_mod-gfxmenu_model.o: gfxmenu/model.c $(gfxmenu/model.c_DEPENDENCIES) + $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -DGRUB_FILE=\"gfxmenu/model.c\" -MD -c -o $@ $< +-include gfxmenu_mod-gfxmenu_model.d + +clean-module-gfxmenu_mod-gfxmenu_model-extra.1: + rm -f cmd-gfxmenu_mod-gfxmenu_model.lst fs-gfxmenu_mod-gfxmenu_model.lst partmap-gfxmenu_mod-gfxmenu_model.lst handler-gfxmenu_mod-gfxmenu_model.lst parttool-gfxmenu_mod-gfxmenu_model.lst video-gfxmenu_mod-gfxmenu_model.lst terminal-gfxmenu_mod-gfxmenu_model.lst + +CLEAN_MODULE_TARGETS += clean-module-gfxmenu_mod-gfxmenu_model-extra.1 + +COMMANDFILES += cmd-gfxmenu_mod-gfxmenu_model.lst +FSFILES += fs-gfxmenu_mod-gfxmenu_model.lst +PARTTOOLFILES += parttool-gfxmenu_mod-gfxmenu_model.lst +PARTMAPFILES += partmap-gfxmenu_mod-gfxmenu_model.lst +HANDLERFILES += handler-gfxmenu_mod-gfxmenu_model.lst +TERMINALFILES += terminal-gfxmenu_mod-gfxmenu_model.lst +VIDEOFILES += video-gfxmenu_mod-gfxmenu_model.lst + +cmd-gfxmenu_mod-gfxmenu_model.lst: gfxmenu/model.c $(gfxmenu/model.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +fs-gfxmenu_mod-gfxmenu_model.lst: gfxmenu/model.c $(gfxmenu/model.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +parttool-gfxmenu_mod-gfxmenu_model.lst: gfxmenu/model.c $(gfxmenu/model.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +partmap-gfxmenu_mod-gfxmenu_model.lst: gfxmenu/model.c $(gfxmenu/model.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +handler-gfxmenu_mod-gfxmenu_model.lst: gfxmenu/model.c $(gfxmenu/model.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +terminal-gfxmenu_mod-gfxmenu_model.lst: gfxmenu/model.c $(gfxmenu/model.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +video-gfxmenu_mod-gfxmenu_model.lst: gfxmenu/model.c $(gfxmenu/model.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +gfxmenu_mod-gfxmenu_view.o: gfxmenu/view.c $(gfxmenu/view.c_DEPENDENCIES) + $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -DGRUB_FILE=\"gfxmenu/view.c\" -MD -c -o $@ $< +-include gfxmenu_mod-gfxmenu_view.d + +clean-module-gfxmenu_mod-gfxmenu_view-extra.1: + rm -f cmd-gfxmenu_mod-gfxmenu_view.lst fs-gfxmenu_mod-gfxmenu_view.lst partmap-gfxmenu_mod-gfxmenu_view.lst handler-gfxmenu_mod-gfxmenu_view.lst parttool-gfxmenu_mod-gfxmenu_view.lst video-gfxmenu_mod-gfxmenu_view.lst terminal-gfxmenu_mod-gfxmenu_view.lst + +CLEAN_MODULE_TARGETS += clean-module-gfxmenu_mod-gfxmenu_view-extra.1 + +COMMANDFILES += cmd-gfxmenu_mod-gfxmenu_view.lst +FSFILES += fs-gfxmenu_mod-gfxmenu_view.lst +PARTTOOLFILES += parttool-gfxmenu_mod-gfxmenu_view.lst +PARTMAPFILES += partmap-gfxmenu_mod-gfxmenu_view.lst +HANDLERFILES += handler-gfxmenu_mod-gfxmenu_view.lst +TERMINALFILES += terminal-gfxmenu_mod-gfxmenu_view.lst +VIDEOFILES += video-gfxmenu_mod-gfxmenu_view.lst + +cmd-gfxmenu_mod-gfxmenu_view.lst: gfxmenu/view.c $(gfxmenu/view.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +fs-gfxmenu_mod-gfxmenu_view.lst: gfxmenu/view.c $(gfxmenu/view.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +parttool-gfxmenu_mod-gfxmenu_view.lst: gfxmenu/view.c $(gfxmenu/view.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +partmap-gfxmenu_mod-gfxmenu_view.lst: gfxmenu/view.c $(gfxmenu/view.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +handler-gfxmenu_mod-gfxmenu_view.lst: gfxmenu/view.c $(gfxmenu/view.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +terminal-gfxmenu_mod-gfxmenu_view.lst: gfxmenu/view.c $(gfxmenu/view.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +video-gfxmenu_mod-gfxmenu_view.lst: gfxmenu/view.c $(gfxmenu/view.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +gfxmenu_mod-gfxmenu_icon_manager.o: gfxmenu/icon_manager.c $(gfxmenu/icon_manager.c_DEPENDENCIES) + $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -DGRUB_FILE=\"gfxmenu/icon_manager.c\" -MD -c -o $@ $< +-include gfxmenu_mod-gfxmenu_icon_manager.d + +clean-module-gfxmenu_mod-gfxmenu_icon_manager-extra.1: + rm -f cmd-gfxmenu_mod-gfxmenu_icon_manager.lst fs-gfxmenu_mod-gfxmenu_icon_manager.lst partmap-gfxmenu_mod-gfxmenu_icon_manager.lst handler-gfxmenu_mod-gfxmenu_icon_manager.lst parttool-gfxmenu_mod-gfxmenu_icon_manager.lst video-gfxmenu_mod-gfxmenu_icon_manager.lst terminal-gfxmenu_mod-gfxmenu_icon_manager.lst + +CLEAN_MODULE_TARGETS += clean-module-gfxmenu_mod-gfxmenu_icon_manager-extra.1 + +COMMANDFILES += cmd-gfxmenu_mod-gfxmenu_icon_manager.lst +FSFILES += fs-gfxmenu_mod-gfxmenu_icon_manager.lst +PARTTOOLFILES += parttool-gfxmenu_mod-gfxmenu_icon_manager.lst +PARTMAPFILES += partmap-gfxmenu_mod-gfxmenu_icon_manager.lst +HANDLERFILES += handler-gfxmenu_mod-gfxmenu_icon_manager.lst +TERMINALFILES += terminal-gfxmenu_mod-gfxmenu_icon_manager.lst +VIDEOFILES += video-gfxmenu_mod-gfxmenu_icon_manager.lst + +cmd-gfxmenu_mod-gfxmenu_icon_manager.lst: gfxmenu/icon_manager.c $(gfxmenu/icon_manager.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +fs-gfxmenu_mod-gfxmenu_icon_manager.lst: gfxmenu/icon_manager.c $(gfxmenu/icon_manager.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +parttool-gfxmenu_mod-gfxmenu_icon_manager.lst: gfxmenu/icon_manager.c $(gfxmenu/icon_manager.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +partmap-gfxmenu_mod-gfxmenu_icon_manager.lst: gfxmenu/icon_manager.c $(gfxmenu/icon_manager.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +handler-gfxmenu_mod-gfxmenu_icon_manager.lst: gfxmenu/icon_manager.c $(gfxmenu/icon_manager.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +terminal-gfxmenu_mod-gfxmenu_icon_manager.lst: gfxmenu/icon_manager.c $(gfxmenu/icon_manager.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +video-gfxmenu_mod-gfxmenu_icon_manager.lst: gfxmenu/icon_manager.c $(gfxmenu/icon_manager.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +gfxmenu_mod-gfxmenu_theme_loader.o: gfxmenu/theme_loader.c $(gfxmenu/theme_loader.c_DEPENDENCIES) + $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -DGRUB_FILE=\"gfxmenu/theme_loader.c\" -MD -c -o $@ $< +-include gfxmenu_mod-gfxmenu_theme_loader.d + +clean-module-gfxmenu_mod-gfxmenu_theme_loader-extra.1: + rm -f cmd-gfxmenu_mod-gfxmenu_theme_loader.lst fs-gfxmenu_mod-gfxmenu_theme_loader.lst partmap-gfxmenu_mod-gfxmenu_theme_loader.lst handler-gfxmenu_mod-gfxmenu_theme_loader.lst parttool-gfxmenu_mod-gfxmenu_theme_loader.lst video-gfxmenu_mod-gfxmenu_theme_loader.lst terminal-gfxmenu_mod-gfxmenu_theme_loader.lst + +CLEAN_MODULE_TARGETS += clean-module-gfxmenu_mod-gfxmenu_theme_loader-extra.1 + +COMMANDFILES += cmd-gfxmenu_mod-gfxmenu_theme_loader.lst +FSFILES += fs-gfxmenu_mod-gfxmenu_theme_loader.lst +PARTTOOLFILES += parttool-gfxmenu_mod-gfxmenu_theme_loader.lst +PARTMAPFILES += partmap-gfxmenu_mod-gfxmenu_theme_loader.lst +HANDLERFILES += handler-gfxmenu_mod-gfxmenu_theme_loader.lst +TERMINALFILES += terminal-gfxmenu_mod-gfxmenu_theme_loader.lst +VIDEOFILES += video-gfxmenu_mod-gfxmenu_theme_loader.lst + +cmd-gfxmenu_mod-gfxmenu_theme_loader.lst: gfxmenu/theme_loader.c $(gfxmenu/theme_loader.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +fs-gfxmenu_mod-gfxmenu_theme_loader.lst: gfxmenu/theme_loader.c $(gfxmenu/theme_loader.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +parttool-gfxmenu_mod-gfxmenu_theme_loader.lst: gfxmenu/theme_loader.c $(gfxmenu/theme_loader.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +partmap-gfxmenu_mod-gfxmenu_theme_loader.lst: gfxmenu/theme_loader.c $(gfxmenu/theme_loader.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +handler-gfxmenu_mod-gfxmenu_theme_loader.lst: gfxmenu/theme_loader.c $(gfxmenu/theme_loader.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +terminal-gfxmenu_mod-gfxmenu_theme_loader.lst: gfxmenu/theme_loader.c $(gfxmenu/theme_loader.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +video-gfxmenu_mod-gfxmenu_theme_loader.lst: gfxmenu/theme_loader.c $(gfxmenu/theme_loader.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +gfxmenu_mod-gfxmenu_widget_box.o: gfxmenu/widget-box.c $(gfxmenu/widget-box.c_DEPENDENCIES) + $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -DGRUB_FILE=\"gfxmenu/widget-box.c\" -MD -c -o $@ $< +-include gfxmenu_mod-gfxmenu_widget_box.d + +clean-module-gfxmenu_mod-gfxmenu_widget_box-extra.1: + rm -f cmd-gfxmenu_mod-gfxmenu_widget_box.lst fs-gfxmenu_mod-gfxmenu_widget_box.lst partmap-gfxmenu_mod-gfxmenu_widget_box.lst handler-gfxmenu_mod-gfxmenu_widget_box.lst parttool-gfxmenu_mod-gfxmenu_widget_box.lst video-gfxmenu_mod-gfxmenu_widget_box.lst terminal-gfxmenu_mod-gfxmenu_widget_box.lst + +CLEAN_MODULE_TARGETS += clean-module-gfxmenu_mod-gfxmenu_widget_box-extra.1 + +COMMANDFILES += cmd-gfxmenu_mod-gfxmenu_widget_box.lst +FSFILES += fs-gfxmenu_mod-gfxmenu_widget_box.lst +PARTTOOLFILES += parttool-gfxmenu_mod-gfxmenu_widget_box.lst +PARTMAPFILES += partmap-gfxmenu_mod-gfxmenu_widget_box.lst +HANDLERFILES += handler-gfxmenu_mod-gfxmenu_widget_box.lst +TERMINALFILES += terminal-gfxmenu_mod-gfxmenu_widget_box.lst +VIDEOFILES += video-gfxmenu_mod-gfxmenu_widget_box.lst + +cmd-gfxmenu_mod-gfxmenu_widget_box.lst: gfxmenu/widget-box.c $(gfxmenu/widget-box.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +fs-gfxmenu_mod-gfxmenu_widget_box.lst: gfxmenu/widget-box.c $(gfxmenu/widget-box.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +parttool-gfxmenu_mod-gfxmenu_widget_box.lst: gfxmenu/widget-box.c $(gfxmenu/widget-box.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +partmap-gfxmenu_mod-gfxmenu_widget_box.lst: gfxmenu/widget-box.c $(gfxmenu/widget-box.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +handler-gfxmenu_mod-gfxmenu_widget_box.lst: gfxmenu/widget-box.c $(gfxmenu/widget-box.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +terminal-gfxmenu_mod-gfxmenu_widget_box.lst: gfxmenu/widget-box.c $(gfxmenu/widget-box.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +video-gfxmenu_mod-gfxmenu_widget_box.lst: gfxmenu/widget-box.c $(gfxmenu/widget-box.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +gfxmenu_mod-gfxmenu_gui_canvas.o: gfxmenu/gui_canvas.c $(gfxmenu/gui_canvas.c_DEPENDENCIES) + $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -DGRUB_FILE=\"gfxmenu/gui_canvas.c\" -MD -c -o $@ $< +-include gfxmenu_mod-gfxmenu_gui_canvas.d + +clean-module-gfxmenu_mod-gfxmenu_gui_canvas-extra.1: + rm -f cmd-gfxmenu_mod-gfxmenu_gui_canvas.lst fs-gfxmenu_mod-gfxmenu_gui_canvas.lst partmap-gfxmenu_mod-gfxmenu_gui_canvas.lst handler-gfxmenu_mod-gfxmenu_gui_canvas.lst parttool-gfxmenu_mod-gfxmenu_gui_canvas.lst video-gfxmenu_mod-gfxmenu_gui_canvas.lst terminal-gfxmenu_mod-gfxmenu_gui_canvas.lst + +CLEAN_MODULE_TARGETS += clean-module-gfxmenu_mod-gfxmenu_gui_canvas-extra.1 + +COMMANDFILES += cmd-gfxmenu_mod-gfxmenu_gui_canvas.lst +FSFILES += fs-gfxmenu_mod-gfxmenu_gui_canvas.lst +PARTTOOLFILES += parttool-gfxmenu_mod-gfxmenu_gui_canvas.lst +PARTMAPFILES += partmap-gfxmenu_mod-gfxmenu_gui_canvas.lst +HANDLERFILES += handler-gfxmenu_mod-gfxmenu_gui_canvas.lst +TERMINALFILES += terminal-gfxmenu_mod-gfxmenu_gui_canvas.lst +VIDEOFILES += video-gfxmenu_mod-gfxmenu_gui_canvas.lst + +cmd-gfxmenu_mod-gfxmenu_gui_canvas.lst: gfxmenu/gui_canvas.c $(gfxmenu/gui_canvas.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +fs-gfxmenu_mod-gfxmenu_gui_canvas.lst: gfxmenu/gui_canvas.c $(gfxmenu/gui_canvas.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +parttool-gfxmenu_mod-gfxmenu_gui_canvas.lst: gfxmenu/gui_canvas.c $(gfxmenu/gui_canvas.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +partmap-gfxmenu_mod-gfxmenu_gui_canvas.lst: gfxmenu/gui_canvas.c $(gfxmenu/gui_canvas.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +handler-gfxmenu_mod-gfxmenu_gui_canvas.lst: gfxmenu/gui_canvas.c $(gfxmenu/gui_canvas.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +terminal-gfxmenu_mod-gfxmenu_gui_canvas.lst: gfxmenu/gui_canvas.c $(gfxmenu/gui_canvas.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +video-gfxmenu_mod-gfxmenu_gui_canvas.lst: gfxmenu/gui_canvas.c $(gfxmenu/gui_canvas.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +gfxmenu_mod-gfxmenu_gui_circular_progress.o: gfxmenu/gui_circular_progress.c $(gfxmenu/gui_circular_progress.c_DEPENDENCIES) + $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -DGRUB_FILE=\"gfxmenu/gui_circular_progress.c\" -MD -c -o $@ $< +-include gfxmenu_mod-gfxmenu_gui_circular_progress.d + +clean-module-gfxmenu_mod-gfxmenu_gui_circular_progress-extra.1: + rm -f cmd-gfxmenu_mod-gfxmenu_gui_circular_progress.lst fs-gfxmenu_mod-gfxmenu_gui_circular_progress.lst partmap-gfxmenu_mod-gfxmenu_gui_circular_progress.lst handler-gfxmenu_mod-gfxmenu_gui_circular_progress.lst parttool-gfxmenu_mod-gfxmenu_gui_circular_progress.lst video-gfxmenu_mod-gfxmenu_gui_circular_progress.lst terminal-gfxmenu_mod-gfxmenu_gui_circular_progress.lst + +CLEAN_MODULE_TARGETS += clean-module-gfxmenu_mod-gfxmenu_gui_circular_progress-extra.1 + +COMMANDFILES += cmd-gfxmenu_mod-gfxmenu_gui_circular_progress.lst +FSFILES += fs-gfxmenu_mod-gfxmenu_gui_circular_progress.lst +PARTTOOLFILES += parttool-gfxmenu_mod-gfxmenu_gui_circular_progress.lst +PARTMAPFILES += partmap-gfxmenu_mod-gfxmenu_gui_circular_progress.lst +HANDLERFILES += handler-gfxmenu_mod-gfxmenu_gui_circular_progress.lst +TERMINALFILES += terminal-gfxmenu_mod-gfxmenu_gui_circular_progress.lst +VIDEOFILES += video-gfxmenu_mod-gfxmenu_gui_circular_progress.lst + +cmd-gfxmenu_mod-gfxmenu_gui_circular_progress.lst: gfxmenu/gui_circular_progress.c $(gfxmenu/gui_circular_progress.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +fs-gfxmenu_mod-gfxmenu_gui_circular_progress.lst: gfxmenu/gui_circular_progress.c $(gfxmenu/gui_circular_progress.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +parttool-gfxmenu_mod-gfxmenu_gui_circular_progress.lst: gfxmenu/gui_circular_progress.c $(gfxmenu/gui_circular_progress.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +partmap-gfxmenu_mod-gfxmenu_gui_circular_progress.lst: gfxmenu/gui_circular_progress.c $(gfxmenu/gui_circular_progress.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +handler-gfxmenu_mod-gfxmenu_gui_circular_progress.lst: gfxmenu/gui_circular_progress.c $(gfxmenu/gui_circular_progress.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +terminal-gfxmenu_mod-gfxmenu_gui_circular_progress.lst: gfxmenu/gui_circular_progress.c $(gfxmenu/gui_circular_progress.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +video-gfxmenu_mod-gfxmenu_gui_circular_progress.lst: gfxmenu/gui_circular_progress.c $(gfxmenu/gui_circular_progress.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +gfxmenu_mod-gfxmenu_gui_box.o: gfxmenu/gui_box.c $(gfxmenu/gui_box.c_DEPENDENCIES) + $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -DGRUB_FILE=\"gfxmenu/gui_box.c\" -MD -c -o $@ $< +-include gfxmenu_mod-gfxmenu_gui_box.d + +clean-module-gfxmenu_mod-gfxmenu_gui_box-extra.1: + rm -f cmd-gfxmenu_mod-gfxmenu_gui_box.lst fs-gfxmenu_mod-gfxmenu_gui_box.lst partmap-gfxmenu_mod-gfxmenu_gui_box.lst handler-gfxmenu_mod-gfxmenu_gui_box.lst parttool-gfxmenu_mod-gfxmenu_gui_box.lst video-gfxmenu_mod-gfxmenu_gui_box.lst terminal-gfxmenu_mod-gfxmenu_gui_box.lst + +CLEAN_MODULE_TARGETS += clean-module-gfxmenu_mod-gfxmenu_gui_box-extra.1 + +COMMANDFILES += cmd-gfxmenu_mod-gfxmenu_gui_box.lst +FSFILES += fs-gfxmenu_mod-gfxmenu_gui_box.lst +PARTTOOLFILES += parttool-gfxmenu_mod-gfxmenu_gui_box.lst +PARTMAPFILES += partmap-gfxmenu_mod-gfxmenu_gui_box.lst +HANDLERFILES += handler-gfxmenu_mod-gfxmenu_gui_box.lst +TERMINALFILES += terminal-gfxmenu_mod-gfxmenu_gui_box.lst +VIDEOFILES += video-gfxmenu_mod-gfxmenu_gui_box.lst + +cmd-gfxmenu_mod-gfxmenu_gui_box.lst: gfxmenu/gui_box.c $(gfxmenu/gui_box.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +fs-gfxmenu_mod-gfxmenu_gui_box.lst: gfxmenu/gui_box.c $(gfxmenu/gui_box.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +parttool-gfxmenu_mod-gfxmenu_gui_box.lst: gfxmenu/gui_box.c $(gfxmenu/gui_box.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +partmap-gfxmenu_mod-gfxmenu_gui_box.lst: gfxmenu/gui_box.c $(gfxmenu/gui_box.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +handler-gfxmenu_mod-gfxmenu_gui_box.lst: gfxmenu/gui_box.c $(gfxmenu/gui_box.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +terminal-gfxmenu_mod-gfxmenu_gui_box.lst: gfxmenu/gui_box.c $(gfxmenu/gui_box.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +video-gfxmenu_mod-gfxmenu_gui_box.lst: gfxmenu/gui_box.c $(gfxmenu/gui_box.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +gfxmenu_mod-gfxmenu_gui_label.o: gfxmenu/gui_label.c $(gfxmenu/gui_label.c_DEPENDENCIES) + $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -DGRUB_FILE=\"gfxmenu/gui_label.c\" -MD -c -o $@ $< +-include gfxmenu_mod-gfxmenu_gui_label.d + +clean-module-gfxmenu_mod-gfxmenu_gui_label-extra.1: + rm -f cmd-gfxmenu_mod-gfxmenu_gui_label.lst fs-gfxmenu_mod-gfxmenu_gui_label.lst partmap-gfxmenu_mod-gfxmenu_gui_label.lst handler-gfxmenu_mod-gfxmenu_gui_label.lst parttool-gfxmenu_mod-gfxmenu_gui_label.lst video-gfxmenu_mod-gfxmenu_gui_label.lst terminal-gfxmenu_mod-gfxmenu_gui_label.lst + +CLEAN_MODULE_TARGETS += clean-module-gfxmenu_mod-gfxmenu_gui_label-extra.1 + +COMMANDFILES += cmd-gfxmenu_mod-gfxmenu_gui_label.lst +FSFILES += fs-gfxmenu_mod-gfxmenu_gui_label.lst +PARTTOOLFILES += parttool-gfxmenu_mod-gfxmenu_gui_label.lst +PARTMAPFILES += partmap-gfxmenu_mod-gfxmenu_gui_label.lst +HANDLERFILES += handler-gfxmenu_mod-gfxmenu_gui_label.lst +TERMINALFILES += terminal-gfxmenu_mod-gfxmenu_gui_label.lst +VIDEOFILES += video-gfxmenu_mod-gfxmenu_gui_label.lst + +cmd-gfxmenu_mod-gfxmenu_gui_label.lst: gfxmenu/gui_label.c $(gfxmenu/gui_label.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +fs-gfxmenu_mod-gfxmenu_gui_label.lst: gfxmenu/gui_label.c $(gfxmenu/gui_label.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +parttool-gfxmenu_mod-gfxmenu_gui_label.lst: gfxmenu/gui_label.c $(gfxmenu/gui_label.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +partmap-gfxmenu_mod-gfxmenu_gui_label.lst: gfxmenu/gui_label.c $(gfxmenu/gui_label.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +handler-gfxmenu_mod-gfxmenu_gui_label.lst: gfxmenu/gui_label.c $(gfxmenu/gui_label.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +terminal-gfxmenu_mod-gfxmenu_gui_label.lst: gfxmenu/gui_label.c $(gfxmenu/gui_label.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +video-gfxmenu_mod-gfxmenu_gui_label.lst: gfxmenu/gui_label.c $(gfxmenu/gui_label.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +gfxmenu_mod-gfxmenu_gui_list.o: gfxmenu/gui_list.c $(gfxmenu/gui_list.c_DEPENDENCIES) + $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -DGRUB_FILE=\"gfxmenu/gui_list.c\" -MD -c -o $@ $< +-include gfxmenu_mod-gfxmenu_gui_list.d + +clean-module-gfxmenu_mod-gfxmenu_gui_list-extra.1: + rm -f cmd-gfxmenu_mod-gfxmenu_gui_list.lst fs-gfxmenu_mod-gfxmenu_gui_list.lst partmap-gfxmenu_mod-gfxmenu_gui_list.lst handler-gfxmenu_mod-gfxmenu_gui_list.lst parttool-gfxmenu_mod-gfxmenu_gui_list.lst video-gfxmenu_mod-gfxmenu_gui_list.lst terminal-gfxmenu_mod-gfxmenu_gui_list.lst + +CLEAN_MODULE_TARGETS += clean-module-gfxmenu_mod-gfxmenu_gui_list-extra.1 + +COMMANDFILES += cmd-gfxmenu_mod-gfxmenu_gui_list.lst +FSFILES += fs-gfxmenu_mod-gfxmenu_gui_list.lst +PARTTOOLFILES += parttool-gfxmenu_mod-gfxmenu_gui_list.lst +PARTMAPFILES += partmap-gfxmenu_mod-gfxmenu_gui_list.lst +HANDLERFILES += handler-gfxmenu_mod-gfxmenu_gui_list.lst +TERMINALFILES += terminal-gfxmenu_mod-gfxmenu_gui_list.lst +VIDEOFILES += video-gfxmenu_mod-gfxmenu_gui_list.lst + +cmd-gfxmenu_mod-gfxmenu_gui_list.lst: gfxmenu/gui_list.c $(gfxmenu/gui_list.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +fs-gfxmenu_mod-gfxmenu_gui_list.lst: gfxmenu/gui_list.c $(gfxmenu/gui_list.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +parttool-gfxmenu_mod-gfxmenu_gui_list.lst: gfxmenu/gui_list.c $(gfxmenu/gui_list.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +partmap-gfxmenu_mod-gfxmenu_gui_list.lst: gfxmenu/gui_list.c $(gfxmenu/gui_list.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +handler-gfxmenu_mod-gfxmenu_gui_list.lst: gfxmenu/gui_list.c $(gfxmenu/gui_list.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +terminal-gfxmenu_mod-gfxmenu_gui_list.lst: gfxmenu/gui_list.c $(gfxmenu/gui_list.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +video-gfxmenu_mod-gfxmenu_gui_list.lst: gfxmenu/gui_list.c $(gfxmenu/gui_list.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +gfxmenu_mod-gfxmenu_gui_image.o: gfxmenu/gui_image.c $(gfxmenu/gui_image.c_DEPENDENCIES) + $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -DGRUB_FILE=\"gfxmenu/gui_image.c\" -MD -c -o $@ $< +-include gfxmenu_mod-gfxmenu_gui_image.d + +clean-module-gfxmenu_mod-gfxmenu_gui_image-extra.1: + rm -f cmd-gfxmenu_mod-gfxmenu_gui_image.lst fs-gfxmenu_mod-gfxmenu_gui_image.lst partmap-gfxmenu_mod-gfxmenu_gui_image.lst handler-gfxmenu_mod-gfxmenu_gui_image.lst parttool-gfxmenu_mod-gfxmenu_gui_image.lst video-gfxmenu_mod-gfxmenu_gui_image.lst terminal-gfxmenu_mod-gfxmenu_gui_image.lst + +CLEAN_MODULE_TARGETS += clean-module-gfxmenu_mod-gfxmenu_gui_image-extra.1 + +COMMANDFILES += cmd-gfxmenu_mod-gfxmenu_gui_image.lst +FSFILES += fs-gfxmenu_mod-gfxmenu_gui_image.lst +PARTTOOLFILES += parttool-gfxmenu_mod-gfxmenu_gui_image.lst +PARTMAPFILES += partmap-gfxmenu_mod-gfxmenu_gui_image.lst +HANDLERFILES += handler-gfxmenu_mod-gfxmenu_gui_image.lst +TERMINALFILES += terminal-gfxmenu_mod-gfxmenu_gui_image.lst +VIDEOFILES += video-gfxmenu_mod-gfxmenu_gui_image.lst + +cmd-gfxmenu_mod-gfxmenu_gui_image.lst: gfxmenu/gui_image.c $(gfxmenu/gui_image.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +fs-gfxmenu_mod-gfxmenu_gui_image.lst: gfxmenu/gui_image.c $(gfxmenu/gui_image.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +parttool-gfxmenu_mod-gfxmenu_gui_image.lst: gfxmenu/gui_image.c $(gfxmenu/gui_image.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +partmap-gfxmenu_mod-gfxmenu_gui_image.lst: gfxmenu/gui_image.c $(gfxmenu/gui_image.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +handler-gfxmenu_mod-gfxmenu_gui_image.lst: gfxmenu/gui_image.c $(gfxmenu/gui_image.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +terminal-gfxmenu_mod-gfxmenu_gui_image.lst: gfxmenu/gui_image.c $(gfxmenu/gui_image.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +video-gfxmenu_mod-gfxmenu_gui_image.lst: gfxmenu/gui_image.c $(gfxmenu/gui_image.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +gfxmenu_mod-gfxmenu_gui_progress_bar.o: gfxmenu/gui_progress_bar.c $(gfxmenu/gui_progress_bar.c_DEPENDENCIES) + $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -DGRUB_FILE=\"gfxmenu/gui_progress_bar.c\" -MD -c -o $@ $< +-include gfxmenu_mod-gfxmenu_gui_progress_bar.d + +clean-module-gfxmenu_mod-gfxmenu_gui_progress_bar-extra.1: + rm -f cmd-gfxmenu_mod-gfxmenu_gui_progress_bar.lst fs-gfxmenu_mod-gfxmenu_gui_progress_bar.lst partmap-gfxmenu_mod-gfxmenu_gui_progress_bar.lst handler-gfxmenu_mod-gfxmenu_gui_progress_bar.lst parttool-gfxmenu_mod-gfxmenu_gui_progress_bar.lst video-gfxmenu_mod-gfxmenu_gui_progress_bar.lst terminal-gfxmenu_mod-gfxmenu_gui_progress_bar.lst + +CLEAN_MODULE_TARGETS += clean-module-gfxmenu_mod-gfxmenu_gui_progress_bar-extra.1 + +COMMANDFILES += cmd-gfxmenu_mod-gfxmenu_gui_progress_bar.lst +FSFILES += fs-gfxmenu_mod-gfxmenu_gui_progress_bar.lst +PARTTOOLFILES += parttool-gfxmenu_mod-gfxmenu_gui_progress_bar.lst +PARTMAPFILES += partmap-gfxmenu_mod-gfxmenu_gui_progress_bar.lst +HANDLERFILES += handler-gfxmenu_mod-gfxmenu_gui_progress_bar.lst +TERMINALFILES += terminal-gfxmenu_mod-gfxmenu_gui_progress_bar.lst +VIDEOFILES += video-gfxmenu_mod-gfxmenu_gui_progress_bar.lst + +cmd-gfxmenu_mod-gfxmenu_gui_progress_bar.lst: gfxmenu/gui_progress_bar.c $(gfxmenu/gui_progress_bar.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +fs-gfxmenu_mod-gfxmenu_gui_progress_bar.lst: gfxmenu/gui_progress_bar.c $(gfxmenu/gui_progress_bar.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +parttool-gfxmenu_mod-gfxmenu_gui_progress_bar.lst: gfxmenu/gui_progress_bar.c $(gfxmenu/gui_progress_bar.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +partmap-gfxmenu_mod-gfxmenu_gui_progress_bar.lst: gfxmenu/gui_progress_bar.c $(gfxmenu/gui_progress_bar.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +handler-gfxmenu_mod-gfxmenu_gui_progress_bar.lst: gfxmenu/gui_progress_bar.c $(gfxmenu/gui_progress_bar.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +terminal-gfxmenu_mod-gfxmenu_gui_progress_bar.lst: gfxmenu/gui_progress_bar.c $(gfxmenu/gui_progress_bar.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +video-gfxmenu_mod-gfxmenu_gui_progress_bar.lst: gfxmenu/gui_progress_bar.c $(gfxmenu/gui_progress_bar.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +gfxmenu_mod-gfxmenu_gui_util.o: gfxmenu/gui_util.c $(gfxmenu/gui_util.c_DEPENDENCIES) + $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -DGRUB_FILE=\"gfxmenu/gui_util.c\" -MD -c -o $@ $< +-include gfxmenu_mod-gfxmenu_gui_util.d + +clean-module-gfxmenu_mod-gfxmenu_gui_util-extra.1: + rm -f cmd-gfxmenu_mod-gfxmenu_gui_util.lst fs-gfxmenu_mod-gfxmenu_gui_util.lst partmap-gfxmenu_mod-gfxmenu_gui_util.lst handler-gfxmenu_mod-gfxmenu_gui_util.lst parttool-gfxmenu_mod-gfxmenu_gui_util.lst video-gfxmenu_mod-gfxmenu_gui_util.lst terminal-gfxmenu_mod-gfxmenu_gui_util.lst + +CLEAN_MODULE_TARGETS += clean-module-gfxmenu_mod-gfxmenu_gui_util-extra.1 + +COMMANDFILES += cmd-gfxmenu_mod-gfxmenu_gui_util.lst +FSFILES += fs-gfxmenu_mod-gfxmenu_gui_util.lst +PARTTOOLFILES += parttool-gfxmenu_mod-gfxmenu_gui_util.lst +PARTMAPFILES += partmap-gfxmenu_mod-gfxmenu_gui_util.lst +HANDLERFILES += handler-gfxmenu_mod-gfxmenu_gui_util.lst +TERMINALFILES += terminal-gfxmenu_mod-gfxmenu_gui_util.lst +VIDEOFILES += video-gfxmenu_mod-gfxmenu_gui_util.lst + +cmd-gfxmenu_mod-gfxmenu_gui_util.lst: gfxmenu/gui_util.c $(gfxmenu/gui_util.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +fs-gfxmenu_mod-gfxmenu_gui_util.lst: gfxmenu/gui_util.c $(gfxmenu/gui_util.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +parttool-gfxmenu_mod-gfxmenu_gui_util.lst: gfxmenu/gui_util.c $(gfxmenu/gui_util.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +partmap-gfxmenu_mod-gfxmenu_gui_util.lst: gfxmenu/gui_util.c $(gfxmenu/gui_util.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +handler-gfxmenu_mod-gfxmenu_gui_util.lst: gfxmenu/gui_util.c $(gfxmenu/gui_util.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +terminal-gfxmenu_mod-gfxmenu_gui_util.lst: gfxmenu/gui_util.c $(gfxmenu/gui_util.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +video-gfxmenu_mod-gfxmenu_gui_util.lst: gfxmenu/gui_util.c $(gfxmenu/gui_util.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +gfxmenu_mod-gfxmenu_gui_string_util.o: gfxmenu/gui_string_util.c $(gfxmenu/gui_string_util.c_DEPENDENCIES) + $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -DGRUB_FILE=\"gfxmenu/gui_string_util.c\" -MD -c -o $@ $< +-include gfxmenu_mod-gfxmenu_gui_string_util.d + +clean-module-gfxmenu_mod-gfxmenu_gui_string_util-extra.1: + rm -f cmd-gfxmenu_mod-gfxmenu_gui_string_util.lst fs-gfxmenu_mod-gfxmenu_gui_string_util.lst partmap-gfxmenu_mod-gfxmenu_gui_string_util.lst handler-gfxmenu_mod-gfxmenu_gui_string_util.lst parttool-gfxmenu_mod-gfxmenu_gui_string_util.lst video-gfxmenu_mod-gfxmenu_gui_string_util.lst terminal-gfxmenu_mod-gfxmenu_gui_string_util.lst + +CLEAN_MODULE_TARGETS += clean-module-gfxmenu_mod-gfxmenu_gui_string_util-extra.1 + +COMMANDFILES += cmd-gfxmenu_mod-gfxmenu_gui_string_util.lst +FSFILES += fs-gfxmenu_mod-gfxmenu_gui_string_util.lst +PARTTOOLFILES += parttool-gfxmenu_mod-gfxmenu_gui_string_util.lst +PARTMAPFILES += partmap-gfxmenu_mod-gfxmenu_gui_string_util.lst +HANDLERFILES += handler-gfxmenu_mod-gfxmenu_gui_string_util.lst +TERMINALFILES += terminal-gfxmenu_mod-gfxmenu_gui_string_util.lst +VIDEOFILES += video-gfxmenu_mod-gfxmenu_gui_string_util.lst + +cmd-gfxmenu_mod-gfxmenu_gui_string_util.lst: gfxmenu/gui_string_util.c $(gfxmenu/gui_string_util.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +fs-gfxmenu_mod-gfxmenu_gui_string_util.lst: gfxmenu/gui_string_util.c $(gfxmenu/gui_string_util.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +parttool-gfxmenu_mod-gfxmenu_gui_string_util.lst: gfxmenu/gui_string_util.c $(gfxmenu/gui_string_util.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +partmap-gfxmenu_mod-gfxmenu_gui_string_util.lst: gfxmenu/gui_string_util.c $(gfxmenu/gui_string_util.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +handler-gfxmenu_mod-gfxmenu_gui_string_util.lst: gfxmenu/gui_string_util.c $(gfxmenu/gui_string_util.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +terminal-gfxmenu_mod-gfxmenu_gui_string_util.lst: gfxmenu/gui_string_util.c $(gfxmenu/gui_string_util.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +video-gfxmenu_mod-gfxmenu_gui_string_util.lst: gfxmenu/gui_string_util.c $(gfxmenu/gui_string_util.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +gfxmenu_mod-gfxmenu_named_colors.o: gfxmenu/named_colors.c $(gfxmenu/named_colors.c_DEPENDENCIES) + $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -DGRUB_FILE=\"gfxmenu/named_colors.c\" -MD -c -o $@ $< +-include gfxmenu_mod-gfxmenu_named_colors.d + +clean-module-gfxmenu_mod-gfxmenu_named_colors-extra.1: + rm -f cmd-gfxmenu_mod-gfxmenu_named_colors.lst fs-gfxmenu_mod-gfxmenu_named_colors.lst partmap-gfxmenu_mod-gfxmenu_named_colors.lst handler-gfxmenu_mod-gfxmenu_named_colors.lst parttool-gfxmenu_mod-gfxmenu_named_colors.lst video-gfxmenu_mod-gfxmenu_named_colors.lst terminal-gfxmenu_mod-gfxmenu_named_colors.lst + +CLEAN_MODULE_TARGETS += clean-module-gfxmenu_mod-gfxmenu_named_colors-extra.1 + +COMMANDFILES += cmd-gfxmenu_mod-gfxmenu_named_colors.lst +FSFILES += fs-gfxmenu_mod-gfxmenu_named_colors.lst +PARTTOOLFILES += parttool-gfxmenu_mod-gfxmenu_named_colors.lst +PARTMAPFILES += partmap-gfxmenu_mod-gfxmenu_named_colors.lst +HANDLERFILES += handler-gfxmenu_mod-gfxmenu_named_colors.lst +TERMINALFILES += terminal-gfxmenu_mod-gfxmenu_named_colors.lst +VIDEOFILES += video-gfxmenu_mod-gfxmenu_named_colors.lst + +cmd-gfxmenu_mod-gfxmenu_named_colors.lst: gfxmenu/named_colors.c $(gfxmenu/named_colors.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +fs-gfxmenu_mod-gfxmenu_named_colors.lst: gfxmenu/named_colors.c $(gfxmenu/named_colors.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +parttool-gfxmenu_mod-gfxmenu_named_colors.lst: gfxmenu/named_colors.c $(gfxmenu/named_colors.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +partmap-gfxmenu_mod-gfxmenu_named_colors.lst: gfxmenu/named_colors.c $(gfxmenu/named_colors.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +handler-gfxmenu_mod-gfxmenu_named_colors.lst: gfxmenu/named_colors.c $(gfxmenu/named_colors.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +terminal-gfxmenu_mod-gfxmenu_named_colors.lst: gfxmenu/named_colors.c $(gfxmenu/named_colors.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +video-gfxmenu_mod-gfxmenu_named_colors.lst: gfxmenu/named_colors.c $(gfxmenu/named_colors.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +gfxmenu_mod-gfxmenu_font.o: gfxmenu/font.c $(gfxmenu/font.c_DEPENDENCIES) + $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -DGRUB_FILE=\"gfxmenu/font.c\" -MD -c -o $@ $< +-include gfxmenu_mod-gfxmenu_font.d + +clean-module-gfxmenu_mod-gfxmenu_font-extra.1: + rm -f cmd-gfxmenu_mod-gfxmenu_font.lst fs-gfxmenu_mod-gfxmenu_font.lst partmap-gfxmenu_mod-gfxmenu_font.lst handler-gfxmenu_mod-gfxmenu_font.lst parttool-gfxmenu_mod-gfxmenu_font.lst video-gfxmenu_mod-gfxmenu_font.lst terminal-gfxmenu_mod-gfxmenu_font.lst + +CLEAN_MODULE_TARGETS += clean-module-gfxmenu_mod-gfxmenu_font-extra.1 + +COMMANDFILES += cmd-gfxmenu_mod-gfxmenu_font.lst +FSFILES += fs-gfxmenu_mod-gfxmenu_font.lst +PARTTOOLFILES += parttool-gfxmenu_mod-gfxmenu_font.lst +PARTMAPFILES += partmap-gfxmenu_mod-gfxmenu_font.lst +HANDLERFILES += handler-gfxmenu_mod-gfxmenu_font.lst +TERMINALFILES += terminal-gfxmenu_mod-gfxmenu_font.lst +VIDEOFILES += video-gfxmenu_mod-gfxmenu_font.lst + +cmd-gfxmenu_mod-gfxmenu_font.lst: gfxmenu/font.c $(gfxmenu/font.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +fs-gfxmenu_mod-gfxmenu_font.lst: gfxmenu/font.c $(gfxmenu/font.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +parttool-gfxmenu_mod-gfxmenu_font.lst: gfxmenu/font.c $(gfxmenu/font.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +partmap-gfxmenu_mod-gfxmenu_font.lst: gfxmenu/font.c $(gfxmenu/font.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +handler-gfxmenu_mod-gfxmenu_font.lst: gfxmenu/font.c $(gfxmenu/font.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +terminal-gfxmenu_mod-gfxmenu_font.lst: gfxmenu/font.c $(gfxmenu/font.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +video-gfxmenu_mod-gfxmenu_font.lst: gfxmenu/font.c $(gfxmenu/font.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Igfxmenu -I$(srcdir)/gfxmenu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxmenu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gfxmenu > $@ || (rm -f $@; exit 1) + +gfxmenu_mod_CFLAGS = $(COMMON_CFLAGS) +gfxmenu_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For parttool.mod. +parttool_mod_SOURCES = commands/parttool.c + +clean-module-parttool.mod.1: + rm -f parttool.mod mod-parttool.o mod-parttool.c pre-parttool.o parttool_mod-commands_parttool.o und-parttool.lst + +CLEAN_MODULE_TARGETS += clean-module-parttool.mod.1 + +clean-module-parttool.mod-symbol.1: + rm -f def-parttool.lst + +CLEAN_MODULE_TARGETS += clean-module-parttool.mod-symbol.1 +DEFSYMFILES += def-parttool.lst +mostlyclean-module-parttool.mod.1: + rm -f parttool_mod-commands_parttool.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-parttool.mod.1 +UNDSYMFILES += und-parttool.lst + +ifeq ($(TARGET_NO_MODULES), yes) +parttool.mod: pre-parttool.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(parttool_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-parttool.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +parttool.mod: pre-parttool.o mod-parttool.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(parttool_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-parttool.o mod-parttool.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +parttool.mod: pre-parttool.o mod-parttool.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(parttool_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-parttool.o mod-parttool.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-parttool.o: $(parttool_mod_DEPENDENCIES) parttool_mod-commands_parttool.o + -rm -f $@ + $(TARGET_CC) $(parttool_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ parttool_mod-commands_parttool.o + +mod-parttool.o: mod-parttool.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(parttool_mod_CFLAGS) -DGRUB_FILE=\"mod-parttool.c\" -c -o $@ $< + +mod-parttool.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'parttool' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-parttool.lst: pre-parttool.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 parttool/' > $@ +else +def-parttool.lst: pre-parttool.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 parttool/' > $@ +endif + +und-parttool.lst: pre-parttool.o + echo 'parttool' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +parttool_mod-commands_parttool.o: commands/parttool.c $(commands/parttool.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(parttool_mod_CFLAGS) -DGRUB_FILE=\"commands/parttool.c\" -MD -c -o $@ $< +-include parttool_mod-commands_parttool.d + +clean-module-parttool_mod-commands_parttool-extra.1: + rm -f cmd-parttool_mod-commands_parttool.lst fs-parttool_mod-commands_parttool.lst partmap-parttool_mod-commands_parttool.lst handler-parttool_mod-commands_parttool.lst parttool-parttool_mod-commands_parttool.lst video-parttool_mod-commands_parttool.lst terminal-parttool_mod-commands_parttool.lst + +CLEAN_MODULE_TARGETS += clean-module-parttool_mod-commands_parttool-extra.1 + +COMMANDFILES += cmd-parttool_mod-commands_parttool.lst +FSFILES += fs-parttool_mod-commands_parttool.lst +PARTTOOLFILES += parttool-parttool_mod-commands_parttool.lst +PARTMAPFILES += partmap-parttool_mod-commands_parttool.lst +HANDLERFILES += handler-parttool_mod-commands_parttool.lst +TERMINALFILES += terminal-parttool_mod-commands_parttool.lst +VIDEOFILES += video-parttool_mod-commands_parttool.lst + +cmd-parttool_mod-commands_parttool.lst: commands/parttool.c $(commands/parttool.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(parttool_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh parttool > $@ || (rm -f $@; exit 1) + +fs-parttool_mod-commands_parttool.lst: commands/parttool.c $(commands/parttool.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(parttool_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh parttool > $@ || (rm -f $@; exit 1) + +parttool-parttool_mod-commands_parttool.lst: commands/parttool.c $(commands/parttool.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(parttool_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh parttool > $@ || (rm -f $@; exit 1) + +partmap-parttool_mod-commands_parttool.lst: commands/parttool.c $(commands/parttool.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(parttool_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh parttool > $@ || (rm -f $@; exit 1) + +handler-parttool_mod-commands_parttool.lst: commands/parttool.c $(commands/parttool.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(parttool_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh parttool > $@ || (rm -f $@; exit 1) + +terminal-parttool_mod-commands_parttool.lst: commands/parttool.c $(commands/parttool.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(parttool_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh parttool > $@ || (rm -f $@; exit 1) + +video-parttool_mod-commands_parttool.lst: commands/parttool.c $(commands/parttool.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(parttool_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh parttool > $@ || (rm -f $@; exit 1) + +parttool_mod_CFLAGS = $(COMMON_CFLAGS) +parttool_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For msdospart.mod. +msdospart_mod_SOURCES = parttool/msdospart.c + +clean-module-msdospart.mod.1: + rm -f msdospart.mod mod-msdospart.o mod-msdospart.c pre-msdospart.o msdospart_mod-parttool_msdospart.o und-msdospart.lst + +CLEAN_MODULE_TARGETS += clean-module-msdospart.mod.1 + +clean-module-msdospart.mod-symbol.1: + rm -f def-msdospart.lst + +CLEAN_MODULE_TARGETS += clean-module-msdospart.mod-symbol.1 +DEFSYMFILES += def-msdospart.lst +mostlyclean-module-msdospart.mod.1: + rm -f msdospart_mod-parttool_msdospart.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-msdospart.mod.1 +UNDSYMFILES += und-msdospart.lst + +ifeq ($(TARGET_NO_MODULES), yes) +msdospart.mod: pre-msdospart.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(msdospart_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-msdospart.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +msdospart.mod: pre-msdospart.o mod-msdospart.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(msdospart_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-msdospart.o mod-msdospart.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +msdospart.mod: pre-msdospart.o mod-msdospart.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(msdospart_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-msdospart.o mod-msdospart.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-msdospart.o: $(msdospart_mod_DEPENDENCIES) msdospart_mod-parttool_msdospart.o + -rm -f $@ + $(TARGET_CC) $(msdospart_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ msdospart_mod-parttool_msdospart.o + +mod-msdospart.o: mod-msdospart.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(msdospart_mod_CFLAGS) -DGRUB_FILE=\"mod-msdospart.c\" -c -o $@ $< + +mod-msdospart.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'msdospart' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-msdospart.lst: pre-msdospart.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 msdospart/' > $@ +else +def-msdospart.lst: pre-msdospart.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 msdospart/' > $@ +endif + +und-msdospart.lst: pre-msdospart.o + echo 'msdospart' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +msdospart_mod-parttool_msdospart.o: parttool/msdospart.c $(parttool/msdospart.c_DEPENDENCIES) + $(TARGET_CC) -Iparttool -I$(srcdir)/parttool $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(msdospart_mod_CFLAGS) -DGRUB_FILE=\"parttool/msdospart.c\" -MD -c -o $@ $< +-include msdospart_mod-parttool_msdospart.d + +clean-module-msdospart_mod-parttool_msdospart-extra.1: + rm -f cmd-msdospart_mod-parttool_msdospart.lst fs-msdospart_mod-parttool_msdospart.lst partmap-msdospart_mod-parttool_msdospart.lst handler-msdospart_mod-parttool_msdospart.lst parttool-msdospart_mod-parttool_msdospart.lst video-msdospart_mod-parttool_msdospart.lst terminal-msdospart_mod-parttool_msdospart.lst + +CLEAN_MODULE_TARGETS += clean-module-msdospart_mod-parttool_msdospart-extra.1 + +COMMANDFILES += cmd-msdospart_mod-parttool_msdospart.lst +FSFILES += fs-msdospart_mod-parttool_msdospart.lst +PARTTOOLFILES += parttool-msdospart_mod-parttool_msdospart.lst +PARTMAPFILES += partmap-msdospart_mod-parttool_msdospart.lst +HANDLERFILES += handler-msdospart_mod-parttool_msdospart.lst +TERMINALFILES += terminal-msdospart_mod-parttool_msdospart.lst +VIDEOFILES += video-msdospart_mod-parttool_msdospart.lst + +cmd-msdospart_mod-parttool_msdospart.lst: parttool/msdospart.c $(parttool/msdospart.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iparttool -I$(srcdir)/parttool $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(msdospart_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh msdospart > $@ || (rm -f $@; exit 1) + +fs-msdospart_mod-parttool_msdospart.lst: parttool/msdospart.c $(parttool/msdospart.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iparttool -I$(srcdir)/parttool $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(msdospart_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh msdospart > $@ || (rm -f $@; exit 1) + +parttool-msdospart_mod-parttool_msdospart.lst: parttool/msdospart.c $(parttool/msdospart.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iparttool -I$(srcdir)/parttool $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(msdospart_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh msdospart > $@ || (rm -f $@; exit 1) + +partmap-msdospart_mod-parttool_msdospart.lst: parttool/msdospart.c $(parttool/msdospart.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iparttool -I$(srcdir)/parttool $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(msdospart_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh msdospart > $@ || (rm -f $@; exit 1) + +handler-msdospart_mod-parttool_msdospart.lst: parttool/msdospart.c $(parttool/msdospart.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iparttool -I$(srcdir)/parttool $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(msdospart_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh msdospart > $@ || (rm -f $@; exit 1) + +terminal-msdospart_mod-parttool_msdospart.lst: parttool/msdospart.c $(parttool/msdospart.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iparttool -I$(srcdir)/parttool $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(msdospart_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh msdospart > $@ || (rm -f $@; exit 1) + +video-msdospart_mod-parttool_msdospart.lst: parttool/msdospart.c $(parttool/msdospart.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iparttool -I$(srcdir)/parttool $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(msdospart_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh msdospart > $@ || (rm -f $@; exit 1) + +msdospart_mod_CFLAGS = $(COMMON_CFLAGS) +msdospart_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For ls.mod. +ls_mod_SOURCES = commands/ls.c + +clean-module-ls.mod.1: + rm -f ls.mod mod-ls.o mod-ls.c pre-ls.o ls_mod-commands_ls.o und-ls.lst + +CLEAN_MODULE_TARGETS += clean-module-ls.mod.1 + +clean-module-ls.mod-symbol.1: + rm -f def-ls.lst + +CLEAN_MODULE_TARGETS += clean-module-ls.mod-symbol.1 +DEFSYMFILES += def-ls.lst +mostlyclean-module-ls.mod.1: + rm -f ls_mod-commands_ls.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-ls.mod.1 +UNDSYMFILES += und-ls.lst + +ifeq ($(TARGET_NO_MODULES), yes) +ls.mod: pre-ls.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ls_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ls.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +ls.mod: pre-ls.o mod-ls.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ls_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ls.o mod-ls.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ls.mod: pre-ls.o mod-ls.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(ls_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-ls.o mod-ls.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-ls.o: $(ls_mod_DEPENDENCIES) ls_mod-commands_ls.o + -rm -f $@ + $(TARGET_CC) $(ls_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ ls_mod-commands_ls.o + +mod-ls.o: mod-ls.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ls_mod_CFLAGS) -DGRUB_FILE=\"mod-ls.c\" -c -o $@ $< + +mod-ls.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'ls' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-ls.lst: pre-ls.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 ls/' > $@ +else +def-ls.lst: pre-ls.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 ls/' > $@ +endif + +und-ls.lst: pre-ls.o + echo 'ls' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +ls_mod-commands_ls.o: commands/ls.c $(commands/ls.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ls_mod_CFLAGS) -DGRUB_FILE=\"commands/ls.c\" -MD -c -o $@ $< +-include ls_mod-commands_ls.d + +clean-module-ls_mod-commands_ls-extra.1: + rm -f cmd-ls_mod-commands_ls.lst fs-ls_mod-commands_ls.lst partmap-ls_mod-commands_ls.lst handler-ls_mod-commands_ls.lst parttool-ls_mod-commands_ls.lst video-ls_mod-commands_ls.lst terminal-ls_mod-commands_ls.lst + +CLEAN_MODULE_TARGETS += clean-module-ls_mod-commands_ls-extra.1 + +COMMANDFILES += cmd-ls_mod-commands_ls.lst +FSFILES += fs-ls_mod-commands_ls.lst +PARTTOOLFILES += parttool-ls_mod-commands_ls.lst +PARTMAPFILES += partmap-ls_mod-commands_ls.lst +HANDLERFILES += handler-ls_mod-commands_ls.lst +TERMINALFILES += terminal-ls_mod-commands_ls.lst +VIDEOFILES += video-ls_mod-commands_ls.lst + +cmd-ls_mod-commands_ls.lst: commands/ls.c $(commands/ls.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ls_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh ls > $@ || (rm -f $@; exit 1) + +fs-ls_mod-commands_ls.lst: commands/ls.c $(commands/ls.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ls_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh ls > $@ || (rm -f $@; exit 1) + +parttool-ls_mod-commands_ls.lst: commands/ls.c $(commands/ls.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ls_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh ls > $@ || (rm -f $@; exit 1) + +partmap-ls_mod-commands_ls.lst: commands/ls.c $(commands/ls.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ls_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh ls > $@ || (rm -f $@; exit 1) + +handler-ls_mod-commands_ls.lst: commands/ls.c $(commands/ls.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ls_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh ls > $@ || (rm -f $@; exit 1) + +terminal-ls_mod-commands_ls.lst: commands/ls.c $(commands/ls.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ls_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh ls > $@ || (rm -f $@; exit 1) + +video-ls_mod-commands_ls.lst: commands/ls.c $(commands/ls.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ls_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh ls > $@ || (rm -f $@; exit 1) + +ls_mod_CFLAGS = $(COMMON_CFLAGS) +ls_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For cmp.mod. +cmp_mod_SOURCES = commands/cmp.c + +clean-module-cmp.mod.1: + rm -f cmp.mod mod-cmp.o mod-cmp.c pre-cmp.o cmp_mod-commands_cmp.o und-cmp.lst + +CLEAN_MODULE_TARGETS += clean-module-cmp.mod.1 + +clean-module-cmp.mod-symbol.1: + rm -f def-cmp.lst + +CLEAN_MODULE_TARGETS += clean-module-cmp.mod-symbol.1 +DEFSYMFILES += def-cmp.lst +mostlyclean-module-cmp.mod.1: + rm -f cmp_mod-commands_cmp.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-cmp.mod.1 +UNDSYMFILES += und-cmp.lst + +ifeq ($(TARGET_NO_MODULES), yes) +cmp.mod: pre-cmp.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(cmp_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-cmp.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +cmp.mod: pre-cmp.o mod-cmp.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(cmp_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-cmp.o mod-cmp.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +cmp.mod: pre-cmp.o mod-cmp.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(cmp_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-cmp.o mod-cmp.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-cmp.o: $(cmp_mod_DEPENDENCIES) cmp_mod-commands_cmp.o + -rm -f $@ + $(TARGET_CC) $(cmp_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ cmp_mod-commands_cmp.o + +mod-cmp.o: mod-cmp.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cmp_mod_CFLAGS) -DGRUB_FILE=\"mod-cmp.c\" -c -o $@ $< + +mod-cmp.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'cmp' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-cmp.lst: pre-cmp.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 cmp/' > $@ +else +def-cmp.lst: pre-cmp.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 cmp/' > $@ +endif + +und-cmp.lst: pre-cmp.o + echo 'cmp' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +cmp_mod-commands_cmp.o: commands/cmp.c $(commands/cmp.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cmp_mod_CFLAGS) -DGRUB_FILE=\"commands/cmp.c\" -MD -c -o $@ $< +-include cmp_mod-commands_cmp.d + +clean-module-cmp_mod-commands_cmp-extra.1: + rm -f cmd-cmp_mod-commands_cmp.lst fs-cmp_mod-commands_cmp.lst partmap-cmp_mod-commands_cmp.lst handler-cmp_mod-commands_cmp.lst parttool-cmp_mod-commands_cmp.lst video-cmp_mod-commands_cmp.lst terminal-cmp_mod-commands_cmp.lst + +CLEAN_MODULE_TARGETS += clean-module-cmp_mod-commands_cmp-extra.1 + +COMMANDFILES += cmd-cmp_mod-commands_cmp.lst +FSFILES += fs-cmp_mod-commands_cmp.lst +PARTTOOLFILES += parttool-cmp_mod-commands_cmp.lst +PARTMAPFILES += partmap-cmp_mod-commands_cmp.lst +HANDLERFILES += handler-cmp_mod-commands_cmp.lst +TERMINALFILES += terminal-cmp_mod-commands_cmp.lst +VIDEOFILES += video-cmp_mod-commands_cmp.lst + +cmd-cmp_mod-commands_cmp.lst: commands/cmp.c $(commands/cmp.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cmp_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh cmp > $@ || (rm -f $@; exit 1) + +fs-cmp_mod-commands_cmp.lst: commands/cmp.c $(commands/cmp.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(cmp_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh cmp > $@ || (rm -f $@; exit 1) + +parttool-cmp_mod-commands_cmp.lst: commands/cmp.c $(commands/cmp.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cmp_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh cmp > $@ || (rm -f $@; exit 1) + +partmap-cmp_mod-commands_cmp.lst: commands/cmp.c $(commands/cmp.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(cmp_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh cmp > $@ || (rm -f $@; exit 1) + +handler-cmp_mod-commands_cmp.lst: commands/cmp.c $(commands/cmp.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cmp_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh cmp > $@ || (rm -f $@; exit 1) + +terminal-cmp_mod-commands_cmp.lst: commands/cmp.c $(commands/cmp.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cmp_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh cmp > $@ || (rm -f $@; exit 1) + +video-cmp_mod-commands_cmp.lst: commands/cmp.c $(commands/cmp.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(cmp_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh cmp > $@ || (rm -f $@; exit 1) + +cmp_mod_CFLAGS = $(COMMON_CFLAGS) +cmp_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For cat.mod. +cat_mod_SOURCES = commands/cat.c + +clean-module-cat.mod.1: + rm -f cat.mod mod-cat.o mod-cat.c pre-cat.o cat_mod-commands_cat.o und-cat.lst + +CLEAN_MODULE_TARGETS += clean-module-cat.mod.1 + +clean-module-cat.mod-symbol.1: + rm -f def-cat.lst + +CLEAN_MODULE_TARGETS += clean-module-cat.mod-symbol.1 +DEFSYMFILES += def-cat.lst +mostlyclean-module-cat.mod.1: + rm -f cat_mod-commands_cat.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-cat.mod.1 +UNDSYMFILES += und-cat.lst + +ifeq ($(TARGET_NO_MODULES), yes) +cat.mod: pre-cat.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(cat_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-cat.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +cat.mod: pre-cat.o mod-cat.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(cat_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-cat.o mod-cat.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +cat.mod: pre-cat.o mod-cat.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(cat_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-cat.o mod-cat.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-cat.o: $(cat_mod_DEPENDENCIES) cat_mod-commands_cat.o + -rm -f $@ + $(TARGET_CC) $(cat_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ cat_mod-commands_cat.o + +mod-cat.o: mod-cat.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cat_mod_CFLAGS) -DGRUB_FILE=\"mod-cat.c\" -c -o $@ $< + +mod-cat.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'cat' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-cat.lst: pre-cat.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 cat/' > $@ +else +def-cat.lst: pre-cat.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 cat/' > $@ +endif + +und-cat.lst: pre-cat.o + echo 'cat' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +cat_mod-commands_cat.o: commands/cat.c $(commands/cat.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cat_mod_CFLAGS) -DGRUB_FILE=\"commands/cat.c\" -MD -c -o $@ $< +-include cat_mod-commands_cat.d + +clean-module-cat_mod-commands_cat-extra.1: + rm -f cmd-cat_mod-commands_cat.lst fs-cat_mod-commands_cat.lst partmap-cat_mod-commands_cat.lst handler-cat_mod-commands_cat.lst parttool-cat_mod-commands_cat.lst video-cat_mod-commands_cat.lst terminal-cat_mod-commands_cat.lst + +CLEAN_MODULE_TARGETS += clean-module-cat_mod-commands_cat-extra.1 + +COMMANDFILES += cmd-cat_mod-commands_cat.lst +FSFILES += fs-cat_mod-commands_cat.lst +PARTTOOLFILES += parttool-cat_mod-commands_cat.lst +PARTMAPFILES += partmap-cat_mod-commands_cat.lst +HANDLERFILES += handler-cat_mod-commands_cat.lst +TERMINALFILES += terminal-cat_mod-commands_cat.lst +VIDEOFILES += video-cat_mod-commands_cat.lst + +cmd-cat_mod-commands_cat.lst: commands/cat.c $(commands/cat.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cat_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh cat > $@ || (rm -f $@; exit 1) + +fs-cat_mod-commands_cat.lst: commands/cat.c $(commands/cat.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(cat_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh cat > $@ || (rm -f $@; exit 1) + +parttool-cat_mod-commands_cat.lst: commands/cat.c $(commands/cat.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cat_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh cat > $@ || (rm -f $@; exit 1) + +partmap-cat_mod-commands_cat.lst: commands/cat.c $(commands/cat.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(cat_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh cat > $@ || (rm -f $@; exit 1) + +handler-cat_mod-commands_cat.lst: commands/cat.c $(commands/cat.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cat_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh cat > $@ || (rm -f $@; exit 1) + +terminal-cat_mod-commands_cat.lst: commands/cat.c $(commands/cat.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cat_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh cat > $@ || (rm -f $@; exit 1) + +video-cat_mod-commands_cat.lst: commands/cat.c $(commands/cat.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(cat_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh cat > $@ || (rm -f $@; exit 1) + +cat_mod_CFLAGS = $(COMMON_CFLAGS) +cat_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For echo.mod +echo_mod_SOURCES = commands/echo.c + +clean-module-echo.mod.1: + rm -f echo.mod mod-echo.o mod-echo.c pre-echo.o echo_mod-commands_echo.o und-echo.lst + +CLEAN_MODULE_TARGETS += clean-module-echo.mod.1 + +clean-module-echo.mod-symbol.1: + rm -f def-echo.lst + +CLEAN_MODULE_TARGETS += clean-module-echo.mod-symbol.1 +DEFSYMFILES += def-echo.lst +mostlyclean-module-echo.mod.1: + rm -f echo_mod-commands_echo.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-echo.mod.1 +UNDSYMFILES += und-echo.lst + +ifeq ($(TARGET_NO_MODULES), yes) +echo.mod: pre-echo.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(echo_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-echo.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +echo.mod: pre-echo.o mod-echo.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(echo_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-echo.o mod-echo.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +echo.mod: pre-echo.o mod-echo.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(echo_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-echo.o mod-echo.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-echo.o: $(echo_mod_DEPENDENCIES) echo_mod-commands_echo.o + -rm -f $@ + $(TARGET_CC) $(echo_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ echo_mod-commands_echo.o + +mod-echo.o: mod-echo.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(echo_mod_CFLAGS) -DGRUB_FILE=\"mod-echo.c\" -c -o $@ $< + +mod-echo.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'echo' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-echo.lst: pre-echo.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 echo/' > $@ +else +def-echo.lst: pre-echo.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 echo/' > $@ +endif + +und-echo.lst: pre-echo.o + echo 'echo' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +echo_mod-commands_echo.o: commands/echo.c $(commands/echo.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(echo_mod_CFLAGS) -DGRUB_FILE=\"commands/echo.c\" -MD -c -o $@ $< +-include echo_mod-commands_echo.d + +clean-module-echo_mod-commands_echo-extra.1: + rm -f cmd-echo_mod-commands_echo.lst fs-echo_mod-commands_echo.lst partmap-echo_mod-commands_echo.lst handler-echo_mod-commands_echo.lst parttool-echo_mod-commands_echo.lst video-echo_mod-commands_echo.lst terminal-echo_mod-commands_echo.lst + +CLEAN_MODULE_TARGETS += clean-module-echo_mod-commands_echo-extra.1 + +COMMANDFILES += cmd-echo_mod-commands_echo.lst +FSFILES += fs-echo_mod-commands_echo.lst +PARTTOOLFILES += parttool-echo_mod-commands_echo.lst +PARTMAPFILES += partmap-echo_mod-commands_echo.lst +HANDLERFILES += handler-echo_mod-commands_echo.lst +TERMINALFILES += terminal-echo_mod-commands_echo.lst +VIDEOFILES += video-echo_mod-commands_echo.lst + +cmd-echo_mod-commands_echo.lst: commands/echo.c $(commands/echo.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(echo_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh echo > $@ || (rm -f $@; exit 1) + +fs-echo_mod-commands_echo.lst: commands/echo.c $(commands/echo.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(echo_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh echo > $@ || (rm -f $@; exit 1) + +parttool-echo_mod-commands_echo.lst: commands/echo.c $(commands/echo.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(echo_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh echo > $@ || (rm -f $@; exit 1) + +partmap-echo_mod-commands_echo.lst: commands/echo.c $(commands/echo.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(echo_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh echo > $@ || (rm -f $@; exit 1) + +handler-echo_mod-commands_echo.lst: commands/echo.c $(commands/echo.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(echo_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh echo > $@ || (rm -f $@; exit 1) + +terminal-echo_mod-commands_echo.lst: commands/echo.c $(commands/echo.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(echo_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh echo > $@ || (rm -f $@; exit 1) + +video-echo_mod-commands_echo.lst: commands/echo.c $(commands/echo.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(echo_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh echo > $@ || (rm -f $@; exit 1) + +echo_mod_CFLAGS = $(COMMON_CFLAGS) +echo_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For help.mod. +help_mod_SOURCES = commands/help.c + +clean-module-help.mod.1: + rm -f help.mod mod-help.o mod-help.c pre-help.o help_mod-commands_help.o und-help.lst + +CLEAN_MODULE_TARGETS += clean-module-help.mod.1 + +clean-module-help.mod-symbol.1: + rm -f def-help.lst + +CLEAN_MODULE_TARGETS += clean-module-help.mod-symbol.1 +DEFSYMFILES += def-help.lst +mostlyclean-module-help.mod.1: + rm -f help_mod-commands_help.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-help.mod.1 +UNDSYMFILES += und-help.lst + +ifeq ($(TARGET_NO_MODULES), yes) +help.mod: pre-help.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(help_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-help.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +help.mod: pre-help.o mod-help.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(help_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-help.o mod-help.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +help.mod: pre-help.o mod-help.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(help_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-help.o mod-help.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-help.o: $(help_mod_DEPENDENCIES) help_mod-commands_help.o + -rm -f $@ + $(TARGET_CC) $(help_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ help_mod-commands_help.o + +mod-help.o: mod-help.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(help_mod_CFLAGS) -DGRUB_FILE=\"mod-help.c\" -c -o $@ $< + +mod-help.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'help' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-help.lst: pre-help.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 help/' > $@ +else +def-help.lst: pre-help.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 help/' > $@ +endif + +und-help.lst: pre-help.o + echo 'help' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +help_mod-commands_help.o: commands/help.c $(commands/help.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(help_mod_CFLAGS) -DGRUB_FILE=\"commands/help.c\" -MD -c -o $@ $< +-include help_mod-commands_help.d + +clean-module-help_mod-commands_help-extra.1: + rm -f cmd-help_mod-commands_help.lst fs-help_mod-commands_help.lst partmap-help_mod-commands_help.lst handler-help_mod-commands_help.lst parttool-help_mod-commands_help.lst video-help_mod-commands_help.lst terminal-help_mod-commands_help.lst + +CLEAN_MODULE_TARGETS += clean-module-help_mod-commands_help-extra.1 + +COMMANDFILES += cmd-help_mod-commands_help.lst +FSFILES += fs-help_mod-commands_help.lst +PARTTOOLFILES += parttool-help_mod-commands_help.lst +PARTMAPFILES += partmap-help_mod-commands_help.lst +HANDLERFILES += handler-help_mod-commands_help.lst +TERMINALFILES += terminal-help_mod-commands_help.lst +VIDEOFILES += video-help_mod-commands_help.lst + +cmd-help_mod-commands_help.lst: commands/help.c $(commands/help.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(help_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh help > $@ || (rm -f $@; exit 1) + +fs-help_mod-commands_help.lst: commands/help.c $(commands/help.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(help_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh help > $@ || (rm -f $@; exit 1) + +parttool-help_mod-commands_help.lst: commands/help.c $(commands/help.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(help_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh help > $@ || (rm -f $@; exit 1) + +partmap-help_mod-commands_help.lst: commands/help.c $(commands/help.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(help_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh help > $@ || (rm -f $@; exit 1) + +handler-help_mod-commands_help.lst: commands/help.c $(commands/help.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(help_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh help > $@ || (rm -f $@; exit 1) + +terminal-help_mod-commands_help.lst: commands/help.c $(commands/help.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(help_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh help > $@ || (rm -f $@; exit 1) + +video-help_mod-commands_help.lst: commands/help.c $(commands/help.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(help_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh help > $@ || (rm -f $@; exit 1) + +help_mod_CFLAGS = $(COMMON_CFLAGS) +help_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For search.mod. +search_mod_SOURCES = commands/search_wrap.c + +clean-module-search.mod.1: + rm -f search.mod mod-search.o mod-search.c pre-search.o search_mod-commands_search_wrap.o und-search.lst + +CLEAN_MODULE_TARGETS += clean-module-search.mod.1 + +clean-module-search.mod-symbol.1: + rm -f def-search.lst + +CLEAN_MODULE_TARGETS += clean-module-search.mod-symbol.1 +DEFSYMFILES += def-search.lst +mostlyclean-module-search.mod.1: + rm -f search_mod-commands_search_wrap.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-search.mod.1 +UNDSYMFILES += und-search.lst + +ifeq ($(TARGET_NO_MODULES), yes) +search.mod: pre-search.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(search_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-search.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +search.mod: pre-search.o mod-search.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(search_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-search.o mod-search.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +search.mod: pre-search.o mod-search.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(search_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-search.o mod-search.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-search.o: $(search_mod_DEPENDENCIES) search_mod-commands_search_wrap.o + -rm -f $@ + $(TARGET_CC) $(search_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ search_mod-commands_search_wrap.o + +mod-search.o: mod-search.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(search_mod_CFLAGS) -DGRUB_FILE=\"mod-search.c\" -c -o $@ $< + +mod-search.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'search' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-search.lst: pre-search.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 search/' > $@ +else +def-search.lst: pre-search.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 search/' > $@ +endif + +und-search.lst: pre-search.o + echo 'search' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +search_mod-commands_search_wrap.o: commands/search_wrap.c $(commands/search_wrap.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(search_mod_CFLAGS) -DGRUB_FILE=\"commands/search_wrap.c\" -MD -c -o $@ $< +-include search_mod-commands_search_wrap.d + +clean-module-search_mod-commands_search_wrap-extra.1: + rm -f cmd-search_mod-commands_search_wrap.lst fs-search_mod-commands_search_wrap.lst partmap-search_mod-commands_search_wrap.lst handler-search_mod-commands_search_wrap.lst parttool-search_mod-commands_search_wrap.lst video-search_mod-commands_search_wrap.lst terminal-search_mod-commands_search_wrap.lst + +CLEAN_MODULE_TARGETS += clean-module-search_mod-commands_search_wrap-extra.1 + +COMMANDFILES += cmd-search_mod-commands_search_wrap.lst +FSFILES += fs-search_mod-commands_search_wrap.lst +PARTTOOLFILES += parttool-search_mod-commands_search_wrap.lst +PARTMAPFILES += partmap-search_mod-commands_search_wrap.lst +HANDLERFILES += handler-search_mod-commands_search_wrap.lst +TERMINALFILES += terminal-search_mod-commands_search_wrap.lst +VIDEOFILES += video-search_mod-commands_search_wrap.lst + +cmd-search_mod-commands_search_wrap.lst: commands/search_wrap.c $(commands/search_wrap.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(search_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh search > $@ || (rm -f $@; exit 1) + +fs-search_mod-commands_search_wrap.lst: commands/search_wrap.c $(commands/search_wrap.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(search_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh search > $@ || (rm -f $@; exit 1) + +parttool-search_mod-commands_search_wrap.lst: commands/search_wrap.c $(commands/search_wrap.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(search_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh search > $@ || (rm -f $@; exit 1) + +partmap-search_mod-commands_search_wrap.lst: commands/search_wrap.c $(commands/search_wrap.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(search_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh search > $@ || (rm -f $@; exit 1) + +handler-search_mod-commands_search_wrap.lst: commands/search_wrap.c $(commands/search_wrap.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(search_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh search > $@ || (rm -f $@; exit 1) + +terminal-search_mod-commands_search_wrap.lst: commands/search_wrap.c $(commands/search_wrap.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(search_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh search > $@ || (rm -f $@; exit 1) + +video-search_mod-commands_search_wrap.lst: commands/search_wrap.c $(commands/search_wrap.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(search_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh search > $@ || (rm -f $@; exit 1) + +search_mod_CFLAGS = $(COMMON_CFLAGS) +search_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += search_fs_file.mod search_fs_uuid.mod search_label.mod + +# For search.mod. +search_fs_file_mod_SOURCES = commands/search_file.c + +clean-module-search_fs_file.mod.1: + rm -f search_fs_file.mod mod-search_fs_file.o mod-search_fs_file.c pre-search_fs_file.o search_fs_file_mod-commands_search_file.o und-search_fs_file.lst + +CLEAN_MODULE_TARGETS += clean-module-search_fs_file.mod.1 + +clean-module-search_fs_file.mod-symbol.1: + rm -f def-search_fs_file.lst + +CLEAN_MODULE_TARGETS += clean-module-search_fs_file.mod-symbol.1 +DEFSYMFILES += def-search_fs_file.lst +mostlyclean-module-search_fs_file.mod.1: + rm -f search_fs_file_mod-commands_search_file.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-search_fs_file.mod.1 +UNDSYMFILES += und-search_fs_file.lst + +ifeq ($(TARGET_NO_MODULES), yes) +search_fs_file.mod: pre-search_fs_file.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(search_fs_file_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-search_fs_file.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +search_fs_file.mod: pre-search_fs_file.o mod-search_fs_file.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(search_fs_file_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-search_fs_file.o mod-search_fs_file.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +search_fs_file.mod: pre-search_fs_file.o mod-search_fs_file.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(search_fs_file_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-search_fs_file.o mod-search_fs_file.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-search_fs_file.o: $(search_fs_file_mod_DEPENDENCIES) search_fs_file_mod-commands_search_file.o + -rm -f $@ + $(TARGET_CC) $(search_fs_file_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ search_fs_file_mod-commands_search_file.o + +mod-search_fs_file.o: mod-search_fs_file.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(search_fs_file_mod_CFLAGS) -DGRUB_FILE=\"mod-search_fs_file.c\" -c -o $@ $< + +mod-search_fs_file.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'search_fs_file' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-search_fs_file.lst: pre-search_fs_file.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 search_fs_file/' > $@ +else +def-search_fs_file.lst: pre-search_fs_file.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 search_fs_file/' > $@ +endif + +und-search_fs_file.lst: pre-search_fs_file.o + echo 'search_fs_file' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +search_fs_file_mod-commands_search_file.o: commands/search_file.c $(commands/search_file.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(search_fs_file_mod_CFLAGS) -DGRUB_FILE=\"commands/search_file.c\" -MD -c -o $@ $< +-include search_fs_file_mod-commands_search_file.d + +clean-module-search_fs_file_mod-commands_search_file-extra.1: + rm -f cmd-search_fs_file_mod-commands_search_file.lst fs-search_fs_file_mod-commands_search_file.lst partmap-search_fs_file_mod-commands_search_file.lst handler-search_fs_file_mod-commands_search_file.lst parttool-search_fs_file_mod-commands_search_file.lst video-search_fs_file_mod-commands_search_file.lst terminal-search_fs_file_mod-commands_search_file.lst + +CLEAN_MODULE_TARGETS += clean-module-search_fs_file_mod-commands_search_file-extra.1 + +COMMANDFILES += cmd-search_fs_file_mod-commands_search_file.lst +FSFILES += fs-search_fs_file_mod-commands_search_file.lst +PARTTOOLFILES += parttool-search_fs_file_mod-commands_search_file.lst +PARTMAPFILES += partmap-search_fs_file_mod-commands_search_file.lst +HANDLERFILES += handler-search_fs_file_mod-commands_search_file.lst +TERMINALFILES += terminal-search_fs_file_mod-commands_search_file.lst +VIDEOFILES += video-search_fs_file_mod-commands_search_file.lst + +cmd-search_fs_file_mod-commands_search_file.lst: commands/search_file.c $(commands/search_file.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(search_fs_file_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh search_fs_file > $@ || (rm -f $@; exit 1) + +fs-search_fs_file_mod-commands_search_file.lst: commands/search_file.c $(commands/search_file.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(search_fs_file_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh search_fs_file > $@ || (rm -f $@; exit 1) + +parttool-search_fs_file_mod-commands_search_file.lst: commands/search_file.c $(commands/search_file.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(search_fs_file_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh search_fs_file > $@ || (rm -f $@; exit 1) + +partmap-search_fs_file_mod-commands_search_file.lst: commands/search_file.c $(commands/search_file.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(search_fs_file_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh search_fs_file > $@ || (rm -f $@; exit 1) + +handler-search_fs_file_mod-commands_search_file.lst: commands/search_file.c $(commands/search_file.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(search_fs_file_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh search_fs_file > $@ || (rm -f $@; exit 1) + +terminal-search_fs_file_mod-commands_search_file.lst: commands/search_file.c $(commands/search_file.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(search_fs_file_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh search_fs_file > $@ || (rm -f $@; exit 1) + +video-search_fs_file_mod-commands_search_file.lst: commands/search_file.c $(commands/search_file.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(search_fs_file_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh search_fs_file > $@ || (rm -f $@; exit 1) + +search_fs_file_mod_CFLAGS = $(COMMON_CFLAGS) +search_fs_file_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For search.mod. +search_label_mod_SOURCES = commands/search_label.c + +clean-module-search_label.mod.1: + rm -f search_label.mod mod-search_label.o mod-search_label.c pre-search_label.o search_label_mod-commands_search_label.o und-search_label.lst + +CLEAN_MODULE_TARGETS += clean-module-search_label.mod.1 + +clean-module-search_label.mod-symbol.1: + rm -f def-search_label.lst + +CLEAN_MODULE_TARGETS += clean-module-search_label.mod-symbol.1 +DEFSYMFILES += def-search_label.lst +mostlyclean-module-search_label.mod.1: + rm -f search_label_mod-commands_search_label.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-search_label.mod.1 +UNDSYMFILES += und-search_label.lst + +ifeq ($(TARGET_NO_MODULES), yes) +search_label.mod: pre-search_label.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(search_label_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-search_label.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +search_label.mod: pre-search_label.o mod-search_label.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(search_label_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-search_label.o mod-search_label.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +search_label.mod: pre-search_label.o mod-search_label.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(search_label_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-search_label.o mod-search_label.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-search_label.o: $(search_label_mod_DEPENDENCIES) search_label_mod-commands_search_label.o + -rm -f $@ + $(TARGET_CC) $(search_label_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ search_label_mod-commands_search_label.o + +mod-search_label.o: mod-search_label.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(search_label_mod_CFLAGS) -DGRUB_FILE=\"mod-search_label.c\" -c -o $@ $< + +mod-search_label.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'search_label' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-search_label.lst: pre-search_label.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 search_label/' > $@ +else +def-search_label.lst: pre-search_label.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 search_label/' > $@ +endif + +und-search_label.lst: pre-search_label.o + echo 'search_label' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +search_label_mod-commands_search_label.o: commands/search_label.c $(commands/search_label.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(search_label_mod_CFLAGS) -DGRUB_FILE=\"commands/search_label.c\" -MD -c -o $@ $< +-include search_label_mod-commands_search_label.d + +clean-module-search_label_mod-commands_search_label-extra.1: + rm -f cmd-search_label_mod-commands_search_label.lst fs-search_label_mod-commands_search_label.lst partmap-search_label_mod-commands_search_label.lst handler-search_label_mod-commands_search_label.lst parttool-search_label_mod-commands_search_label.lst video-search_label_mod-commands_search_label.lst terminal-search_label_mod-commands_search_label.lst + +CLEAN_MODULE_TARGETS += clean-module-search_label_mod-commands_search_label-extra.1 + +COMMANDFILES += cmd-search_label_mod-commands_search_label.lst +FSFILES += fs-search_label_mod-commands_search_label.lst +PARTTOOLFILES += parttool-search_label_mod-commands_search_label.lst +PARTMAPFILES += partmap-search_label_mod-commands_search_label.lst +HANDLERFILES += handler-search_label_mod-commands_search_label.lst +TERMINALFILES += terminal-search_label_mod-commands_search_label.lst +VIDEOFILES += video-search_label_mod-commands_search_label.lst + +cmd-search_label_mod-commands_search_label.lst: commands/search_label.c $(commands/search_label.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(search_label_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh search_label > $@ || (rm -f $@; exit 1) + +fs-search_label_mod-commands_search_label.lst: commands/search_label.c $(commands/search_label.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(search_label_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh search_label > $@ || (rm -f $@; exit 1) + +parttool-search_label_mod-commands_search_label.lst: commands/search_label.c $(commands/search_label.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(search_label_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh search_label > $@ || (rm -f $@; exit 1) + +partmap-search_label_mod-commands_search_label.lst: commands/search_label.c $(commands/search_label.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(search_label_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh search_label > $@ || (rm -f $@; exit 1) + +handler-search_label_mod-commands_search_label.lst: commands/search_label.c $(commands/search_label.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(search_label_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh search_label > $@ || (rm -f $@; exit 1) + +terminal-search_label_mod-commands_search_label.lst: commands/search_label.c $(commands/search_label.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(search_label_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh search_label > $@ || (rm -f $@; exit 1) + +video-search_label_mod-commands_search_label.lst: commands/search_label.c $(commands/search_label.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(search_label_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh search_label > $@ || (rm -f $@; exit 1) + +search_label_mod_CFLAGS = $(COMMON_CFLAGS) +search_label_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For search.mod. +search_fs_uuid_mod_SOURCES = commands/search_uuid.c + +clean-module-search_fs_uuid.mod.1: + rm -f search_fs_uuid.mod mod-search_fs_uuid.o mod-search_fs_uuid.c pre-search_fs_uuid.o search_fs_uuid_mod-commands_search_uuid.o und-search_fs_uuid.lst + +CLEAN_MODULE_TARGETS += clean-module-search_fs_uuid.mod.1 + +clean-module-search_fs_uuid.mod-symbol.1: + rm -f def-search_fs_uuid.lst + +CLEAN_MODULE_TARGETS += clean-module-search_fs_uuid.mod-symbol.1 +DEFSYMFILES += def-search_fs_uuid.lst +mostlyclean-module-search_fs_uuid.mod.1: + rm -f search_fs_uuid_mod-commands_search_uuid.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-search_fs_uuid.mod.1 +UNDSYMFILES += und-search_fs_uuid.lst + +ifeq ($(TARGET_NO_MODULES), yes) +search_fs_uuid.mod: pre-search_fs_uuid.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(search_fs_uuid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-search_fs_uuid.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +search_fs_uuid.mod: pre-search_fs_uuid.o mod-search_fs_uuid.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(search_fs_uuid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-search_fs_uuid.o mod-search_fs_uuid.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +search_fs_uuid.mod: pre-search_fs_uuid.o mod-search_fs_uuid.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(search_fs_uuid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-search_fs_uuid.o mod-search_fs_uuid.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-search_fs_uuid.o: $(search_fs_uuid_mod_DEPENDENCIES) search_fs_uuid_mod-commands_search_uuid.o + -rm -f $@ + $(TARGET_CC) $(search_fs_uuid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ search_fs_uuid_mod-commands_search_uuid.o + +mod-search_fs_uuid.o: mod-search_fs_uuid.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(search_fs_uuid_mod_CFLAGS) -DGRUB_FILE=\"mod-search_fs_uuid.c\" -c -o $@ $< + +mod-search_fs_uuid.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'search_fs_uuid' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-search_fs_uuid.lst: pre-search_fs_uuid.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 search_fs_uuid/' > $@ +else +def-search_fs_uuid.lst: pre-search_fs_uuid.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 search_fs_uuid/' > $@ +endif + +und-search_fs_uuid.lst: pre-search_fs_uuid.o + echo 'search_fs_uuid' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +search_fs_uuid_mod-commands_search_uuid.o: commands/search_uuid.c $(commands/search_uuid.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(search_fs_uuid_mod_CFLAGS) -DGRUB_FILE=\"commands/search_uuid.c\" -MD -c -o $@ $< +-include search_fs_uuid_mod-commands_search_uuid.d + +clean-module-search_fs_uuid_mod-commands_search_uuid-extra.1: + rm -f cmd-search_fs_uuid_mod-commands_search_uuid.lst fs-search_fs_uuid_mod-commands_search_uuid.lst partmap-search_fs_uuid_mod-commands_search_uuid.lst handler-search_fs_uuid_mod-commands_search_uuid.lst parttool-search_fs_uuid_mod-commands_search_uuid.lst video-search_fs_uuid_mod-commands_search_uuid.lst terminal-search_fs_uuid_mod-commands_search_uuid.lst + +CLEAN_MODULE_TARGETS += clean-module-search_fs_uuid_mod-commands_search_uuid-extra.1 + +COMMANDFILES += cmd-search_fs_uuid_mod-commands_search_uuid.lst +FSFILES += fs-search_fs_uuid_mod-commands_search_uuid.lst +PARTTOOLFILES += parttool-search_fs_uuid_mod-commands_search_uuid.lst +PARTMAPFILES += partmap-search_fs_uuid_mod-commands_search_uuid.lst +HANDLERFILES += handler-search_fs_uuid_mod-commands_search_uuid.lst +TERMINALFILES += terminal-search_fs_uuid_mod-commands_search_uuid.lst +VIDEOFILES += video-search_fs_uuid_mod-commands_search_uuid.lst + +cmd-search_fs_uuid_mod-commands_search_uuid.lst: commands/search_uuid.c $(commands/search_uuid.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(search_fs_uuid_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh search_fs_uuid > $@ || (rm -f $@; exit 1) + +fs-search_fs_uuid_mod-commands_search_uuid.lst: commands/search_uuid.c $(commands/search_uuid.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(search_fs_uuid_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh search_fs_uuid > $@ || (rm -f $@; exit 1) + +parttool-search_fs_uuid_mod-commands_search_uuid.lst: commands/search_uuid.c $(commands/search_uuid.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(search_fs_uuid_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh search_fs_uuid > $@ || (rm -f $@; exit 1) + +partmap-search_fs_uuid_mod-commands_search_uuid.lst: commands/search_uuid.c $(commands/search_uuid.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(search_fs_uuid_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh search_fs_uuid > $@ || (rm -f $@; exit 1) + +handler-search_fs_uuid_mod-commands_search_uuid.lst: commands/search_uuid.c $(commands/search_uuid.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(search_fs_uuid_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh search_fs_uuid > $@ || (rm -f $@; exit 1) + +terminal-search_fs_uuid_mod-commands_search_uuid.lst: commands/search_uuid.c $(commands/search_uuid.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(search_fs_uuid_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh search_fs_uuid > $@ || (rm -f $@; exit 1) + +video-search_fs_uuid_mod-commands_search_uuid.lst: commands/search_uuid.c $(commands/search_uuid.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(search_fs_uuid_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh search_fs_uuid > $@ || (rm -f $@; exit 1) + +search_fs_uuid_mod_CFLAGS = $(COMMON_CFLAGS) +search_fs_uuid_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For test.mod. +test_mod_SOURCES = commands/test.c + +clean-module-test.mod.1: + rm -f test.mod mod-test.o mod-test.c pre-test.o test_mod-commands_test.o und-test.lst + +CLEAN_MODULE_TARGETS += clean-module-test.mod.1 + +clean-module-test.mod-symbol.1: + rm -f def-test.lst + +CLEAN_MODULE_TARGETS += clean-module-test.mod-symbol.1 +DEFSYMFILES += def-test.lst +mostlyclean-module-test.mod.1: + rm -f test_mod-commands_test.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-test.mod.1 +UNDSYMFILES += und-test.lst + +ifeq ($(TARGET_NO_MODULES), yes) +test.mod: pre-test.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(test_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-test.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +test.mod: pre-test.o mod-test.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(test_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-test.o mod-test.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +test.mod: pre-test.o mod-test.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(test_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-test.o mod-test.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-test.o: $(test_mod_DEPENDENCIES) test_mod-commands_test.o + -rm -f $@ + $(TARGET_CC) $(test_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ test_mod-commands_test.o + +mod-test.o: mod-test.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(test_mod_CFLAGS) -DGRUB_FILE=\"mod-test.c\" -c -o $@ $< + +mod-test.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'test' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-test.lst: pre-test.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 test/' > $@ +else +def-test.lst: pre-test.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 test/' > $@ +endif + +und-test.lst: pre-test.o + echo 'test' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +test_mod-commands_test.o: commands/test.c $(commands/test.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(test_mod_CFLAGS) -DGRUB_FILE=\"commands/test.c\" -MD -c -o $@ $< +-include test_mod-commands_test.d + +clean-module-test_mod-commands_test-extra.1: + rm -f cmd-test_mod-commands_test.lst fs-test_mod-commands_test.lst partmap-test_mod-commands_test.lst handler-test_mod-commands_test.lst parttool-test_mod-commands_test.lst video-test_mod-commands_test.lst terminal-test_mod-commands_test.lst + +CLEAN_MODULE_TARGETS += clean-module-test_mod-commands_test-extra.1 + +COMMANDFILES += cmd-test_mod-commands_test.lst +FSFILES += fs-test_mod-commands_test.lst +PARTTOOLFILES += parttool-test_mod-commands_test.lst +PARTMAPFILES += partmap-test_mod-commands_test.lst +HANDLERFILES += handler-test_mod-commands_test.lst +TERMINALFILES += terminal-test_mod-commands_test.lst +VIDEOFILES += video-test_mod-commands_test.lst + +cmd-test_mod-commands_test.lst: commands/test.c $(commands/test.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(test_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh test > $@ || (rm -f $@; exit 1) + +fs-test_mod-commands_test.lst: commands/test.c $(commands/test.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(test_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh test > $@ || (rm -f $@; exit 1) + +parttool-test_mod-commands_test.lst: commands/test.c $(commands/test.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(test_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh test > $@ || (rm -f $@; exit 1) + +partmap-test_mod-commands_test.lst: commands/test.c $(commands/test.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(test_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh test > $@ || (rm -f $@; exit 1) + +handler-test_mod-commands_test.lst: commands/test.c $(commands/test.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(test_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh test > $@ || (rm -f $@; exit 1) + +terminal-test_mod-commands_test.lst: commands/test.c $(commands/test.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(test_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh test > $@ || (rm -f $@; exit 1) + +video-test_mod-commands_test.lst: commands/test.c $(commands/test.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(test_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh test > $@ || (rm -f $@; exit 1) + +test_mod_CFLAGS = $(COMMON_CFLAGS) +test_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For loopback.mod +loopback_mod_SOURCES = disk/loopback.c + +clean-module-loopback.mod.1: + rm -f loopback.mod mod-loopback.o mod-loopback.c pre-loopback.o loopback_mod-disk_loopback.o und-loopback.lst + +CLEAN_MODULE_TARGETS += clean-module-loopback.mod.1 + +clean-module-loopback.mod-symbol.1: + rm -f def-loopback.lst + +CLEAN_MODULE_TARGETS += clean-module-loopback.mod-symbol.1 +DEFSYMFILES += def-loopback.lst +mostlyclean-module-loopback.mod.1: + rm -f loopback_mod-disk_loopback.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-loopback.mod.1 +UNDSYMFILES += und-loopback.lst + +ifeq ($(TARGET_NO_MODULES), yes) +loopback.mod: pre-loopback.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(loopback_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-loopback.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +loopback.mod: pre-loopback.o mod-loopback.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(loopback_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-loopback.o mod-loopback.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +loopback.mod: pre-loopback.o mod-loopback.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(loopback_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-loopback.o mod-loopback.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-loopback.o: $(loopback_mod_DEPENDENCIES) loopback_mod-disk_loopback.o + -rm -f $@ + $(TARGET_CC) $(loopback_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ loopback_mod-disk_loopback.o + +mod-loopback.o: mod-loopback.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(loopback_mod_CFLAGS) -DGRUB_FILE=\"mod-loopback.c\" -c -o $@ $< + +mod-loopback.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'loopback' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-loopback.lst: pre-loopback.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 loopback/' > $@ +else +def-loopback.lst: pre-loopback.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 loopback/' > $@ +endif + +und-loopback.lst: pre-loopback.o + echo 'loopback' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +loopback_mod-disk_loopback.o: disk/loopback.c $(disk/loopback.c_DEPENDENCIES) + $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(loopback_mod_CFLAGS) -DGRUB_FILE=\"disk/loopback.c\" -MD -c -o $@ $< +-include loopback_mod-disk_loopback.d + +clean-module-loopback_mod-disk_loopback-extra.1: + rm -f cmd-loopback_mod-disk_loopback.lst fs-loopback_mod-disk_loopback.lst partmap-loopback_mod-disk_loopback.lst handler-loopback_mod-disk_loopback.lst parttool-loopback_mod-disk_loopback.lst video-loopback_mod-disk_loopback.lst terminal-loopback_mod-disk_loopback.lst + +CLEAN_MODULE_TARGETS += clean-module-loopback_mod-disk_loopback-extra.1 + +COMMANDFILES += cmd-loopback_mod-disk_loopback.lst +FSFILES += fs-loopback_mod-disk_loopback.lst +PARTTOOLFILES += parttool-loopback_mod-disk_loopback.lst +PARTMAPFILES += partmap-loopback_mod-disk_loopback.lst +HANDLERFILES += handler-loopback_mod-disk_loopback.lst +TERMINALFILES += terminal-loopback_mod-disk_loopback.lst +VIDEOFILES += video-loopback_mod-disk_loopback.lst + +cmd-loopback_mod-disk_loopback.lst: disk/loopback.c $(disk/loopback.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(loopback_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh loopback > $@ || (rm -f $@; exit 1) + +fs-loopback_mod-disk_loopback.lst: disk/loopback.c $(disk/loopback.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(loopback_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh loopback > $@ || (rm -f $@; exit 1) + +parttool-loopback_mod-disk_loopback.lst: disk/loopback.c $(disk/loopback.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(loopback_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh loopback > $@ || (rm -f $@; exit 1) + +partmap-loopback_mod-disk_loopback.lst: disk/loopback.c $(disk/loopback.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(loopback_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh loopback > $@ || (rm -f $@; exit 1) + +handler-loopback_mod-disk_loopback.lst: disk/loopback.c $(disk/loopback.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(loopback_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh loopback > $@ || (rm -f $@; exit 1) + +terminal-loopback_mod-disk_loopback.lst: disk/loopback.c $(disk/loopback.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(loopback_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh loopback > $@ || (rm -f $@; exit 1) + +video-loopback_mod-disk_loopback.lst: disk/loopback.c $(disk/loopback.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(loopback_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh loopback > $@ || (rm -f $@; exit 1) + +loopback_mod_CFLAGS = $(COMMON_CFLAGS) +loopback_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For configfile.mod +configfile_mod_SOURCES = commands/configfile.c + +clean-module-configfile.mod.1: + rm -f configfile.mod mod-configfile.o mod-configfile.c pre-configfile.o configfile_mod-commands_configfile.o und-configfile.lst + +CLEAN_MODULE_TARGETS += clean-module-configfile.mod.1 + +clean-module-configfile.mod-symbol.1: + rm -f def-configfile.lst + +CLEAN_MODULE_TARGETS += clean-module-configfile.mod-symbol.1 +DEFSYMFILES += def-configfile.lst +mostlyclean-module-configfile.mod.1: + rm -f configfile_mod-commands_configfile.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-configfile.mod.1 +UNDSYMFILES += und-configfile.lst + +ifeq ($(TARGET_NO_MODULES), yes) +configfile.mod: pre-configfile.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(configfile_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-configfile.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +configfile.mod: pre-configfile.o mod-configfile.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(configfile_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-configfile.o mod-configfile.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +configfile.mod: pre-configfile.o mod-configfile.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(configfile_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-configfile.o mod-configfile.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-configfile.o: $(configfile_mod_DEPENDENCIES) configfile_mod-commands_configfile.o + -rm -f $@ + $(TARGET_CC) $(configfile_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ configfile_mod-commands_configfile.o + +mod-configfile.o: mod-configfile.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(configfile_mod_CFLAGS) -DGRUB_FILE=\"mod-configfile.c\" -c -o $@ $< + +mod-configfile.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'configfile' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-configfile.lst: pre-configfile.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 configfile/' > $@ +else +def-configfile.lst: pre-configfile.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 configfile/' > $@ +endif + +und-configfile.lst: pre-configfile.o + echo 'configfile' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +configfile_mod-commands_configfile.o: commands/configfile.c $(commands/configfile.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(configfile_mod_CFLAGS) -DGRUB_FILE=\"commands/configfile.c\" -MD -c -o $@ $< +-include configfile_mod-commands_configfile.d + +clean-module-configfile_mod-commands_configfile-extra.1: + rm -f cmd-configfile_mod-commands_configfile.lst fs-configfile_mod-commands_configfile.lst partmap-configfile_mod-commands_configfile.lst handler-configfile_mod-commands_configfile.lst parttool-configfile_mod-commands_configfile.lst video-configfile_mod-commands_configfile.lst terminal-configfile_mod-commands_configfile.lst + +CLEAN_MODULE_TARGETS += clean-module-configfile_mod-commands_configfile-extra.1 + +COMMANDFILES += cmd-configfile_mod-commands_configfile.lst +FSFILES += fs-configfile_mod-commands_configfile.lst +PARTTOOLFILES += parttool-configfile_mod-commands_configfile.lst +PARTMAPFILES += partmap-configfile_mod-commands_configfile.lst +HANDLERFILES += handler-configfile_mod-commands_configfile.lst +TERMINALFILES += terminal-configfile_mod-commands_configfile.lst +VIDEOFILES += video-configfile_mod-commands_configfile.lst + +cmd-configfile_mod-commands_configfile.lst: commands/configfile.c $(commands/configfile.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(configfile_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh configfile > $@ || (rm -f $@; exit 1) + +fs-configfile_mod-commands_configfile.lst: commands/configfile.c $(commands/configfile.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(configfile_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh configfile > $@ || (rm -f $@; exit 1) + +parttool-configfile_mod-commands_configfile.lst: commands/configfile.c $(commands/configfile.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(configfile_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh configfile > $@ || (rm -f $@; exit 1) + +partmap-configfile_mod-commands_configfile.lst: commands/configfile.c $(commands/configfile.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(configfile_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh configfile > $@ || (rm -f $@; exit 1) + +handler-configfile_mod-commands_configfile.lst: commands/configfile.c $(commands/configfile.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(configfile_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh configfile > $@ || (rm -f $@; exit 1) + +terminal-configfile_mod-commands_configfile.lst: commands/configfile.c $(commands/configfile.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(configfile_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh configfile > $@ || (rm -f $@; exit 1) + +video-configfile_mod-commands_configfile.lst: commands/configfile.c $(commands/configfile.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(configfile_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh configfile > $@ || (rm -f $@; exit 1) + +configfile_mod_CFLAGS = $(COMMON_CFLAGS) +configfile_mod_LDFLAGS = $(COMMON_LDFLAGS) + +ifneq ($(platform), ieee1275) +# For terminfo.mod. +pkglib_MODULES += terminfo.mod +terminfo_mod_SOURCES = term/terminfo.c term/tparm.c + +clean-module-terminfo.mod.1: + rm -f terminfo.mod mod-terminfo.o mod-terminfo.c pre-terminfo.o terminfo_mod-term_terminfo.o terminfo_mod-term_tparm.o und-terminfo.lst + +CLEAN_MODULE_TARGETS += clean-module-terminfo.mod.1 + +clean-module-terminfo.mod-symbol.1: + rm -f def-terminfo.lst + +CLEAN_MODULE_TARGETS += clean-module-terminfo.mod-symbol.1 +DEFSYMFILES += def-terminfo.lst +mostlyclean-module-terminfo.mod.1: + rm -f terminfo_mod-term_terminfo.d terminfo_mod-term_tparm.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-terminfo.mod.1 +UNDSYMFILES += und-terminfo.lst + +ifeq ($(TARGET_NO_MODULES), yes) +terminfo.mod: pre-terminfo.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(terminfo_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-terminfo.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +terminfo.mod: pre-terminfo.o mod-terminfo.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(terminfo_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-terminfo.o mod-terminfo.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +terminfo.mod: pre-terminfo.o mod-terminfo.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(terminfo_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-terminfo.o mod-terminfo.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-terminfo.o: $(terminfo_mod_DEPENDENCIES) terminfo_mod-term_terminfo.o terminfo_mod-term_tparm.o + -rm -f $@ + $(TARGET_CC) $(terminfo_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ terminfo_mod-term_terminfo.o terminfo_mod-term_tparm.o + +mod-terminfo.o: mod-terminfo.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(terminfo_mod_CFLAGS) -DGRUB_FILE=\"mod-terminfo.c\" -c -o $@ $< + +mod-terminfo.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'terminfo' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-terminfo.lst: pre-terminfo.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 terminfo/' > $@ +else +def-terminfo.lst: pre-terminfo.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 terminfo/' > $@ +endif + +und-terminfo.lst: pre-terminfo.o + echo 'terminfo' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +terminfo_mod-term_terminfo.o: term/terminfo.c $(term/terminfo.c_DEPENDENCIES) + $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(terminfo_mod_CFLAGS) -DGRUB_FILE=\"term/terminfo.c\" -MD -c -o $@ $< +-include terminfo_mod-term_terminfo.d + +clean-module-terminfo_mod-term_terminfo-extra.1: + rm -f cmd-terminfo_mod-term_terminfo.lst fs-terminfo_mod-term_terminfo.lst partmap-terminfo_mod-term_terminfo.lst handler-terminfo_mod-term_terminfo.lst parttool-terminfo_mod-term_terminfo.lst video-terminfo_mod-term_terminfo.lst terminal-terminfo_mod-term_terminfo.lst + +CLEAN_MODULE_TARGETS += clean-module-terminfo_mod-term_terminfo-extra.1 + +COMMANDFILES += cmd-terminfo_mod-term_terminfo.lst +FSFILES += fs-terminfo_mod-term_terminfo.lst +PARTTOOLFILES += parttool-terminfo_mod-term_terminfo.lst +PARTMAPFILES += partmap-terminfo_mod-term_terminfo.lst +HANDLERFILES += handler-terminfo_mod-term_terminfo.lst +TERMINALFILES += terminal-terminfo_mod-term_terminfo.lst +VIDEOFILES += video-terminfo_mod-term_terminfo.lst + +cmd-terminfo_mod-term_terminfo.lst: term/terminfo.c $(term/terminfo.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(terminfo_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh terminfo > $@ || (rm -f $@; exit 1) + +fs-terminfo_mod-term_terminfo.lst: term/terminfo.c $(term/terminfo.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(terminfo_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh terminfo > $@ || (rm -f $@; exit 1) + +parttool-terminfo_mod-term_terminfo.lst: term/terminfo.c $(term/terminfo.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(terminfo_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh terminfo > $@ || (rm -f $@; exit 1) + +partmap-terminfo_mod-term_terminfo.lst: term/terminfo.c $(term/terminfo.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(terminfo_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh terminfo > $@ || (rm -f $@; exit 1) + +handler-terminfo_mod-term_terminfo.lst: term/terminfo.c $(term/terminfo.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(terminfo_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh terminfo > $@ || (rm -f $@; exit 1) + +terminal-terminfo_mod-term_terminfo.lst: term/terminfo.c $(term/terminfo.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(terminfo_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh terminfo > $@ || (rm -f $@; exit 1) + +video-terminfo_mod-term_terminfo.lst: term/terminfo.c $(term/terminfo.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(terminfo_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh terminfo > $@ || (rm -f $@; exit 1) + +terminfo_mod-term_tparm.o: term/tparm.c $(term/tparm.c_DEPENDENCIES) + $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(terminfo_mod_CFLAGS) -DGRUB_FILE=\"term/tparm.c\" -MD -c -o $@ $< +-include terminfo_mod-term_tparm.d + +clean-module-terminfo_mod-term_tparm-extra.1: + rm -f cmd-terminfo_mod-term_tparm.lst fs-terminfo_mod-term_tparm.lst partmap-terminfo_mod-term_tparm.lst handler-terminfo_mod-term_tparm.lst parttool-terminfo_mod-term_tparm.lst video-terminfo_mod-term_tparm.lst terminal-terminfo_mod-term_tparm.lst + +CLEAN_MODULE_TARGETS += clean-module-terminfo_mod-term_tparm-extra.1 + +COMMANDFILES += cmd-terminfo_mod-term_tparm.lst +FSFILES += fs-terminfo_mod-term_tparm.lst +PARTTOOLFILES += parttool-terminfo_mod-term_tparm.lst +PARTMAPFILES += partmap-terminfo_mod-term_tparm.lst +HANDLERFILES += handler-terminfo_mod-term_tparm.lst +TERMINALFILES += terminal-terminfo_mod-term_tparm.lst +VIDEOFILES += video-terminfo_mod-term_tparm.lst + +cmd-terminfo_mod-term_tparm.lst: term/tparm.c $(term/tparm.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(terminfo_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh terminfo > $@ || (rm -f $@; exit 1) + +fs-terminfo_mod-term_tparm.lst: term/tparm.c $(term/tparm.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(terminfo_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh terminfo > $@ || (rm -f $@; exit 1) + +parttool-terminfo_mod-term_tparm.lst: term/tparm.c $(term/tparm.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(terminfo_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh terminfo > $@ || (rm -f $@; exit 1) + +partmap-terminfo_mod-term_tparm.lst: term/tparm.c $(term/tparm.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(terminfo_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh terminfo > $@ || (rm -f $@; exit 1) + +handler-terminfo_mod-term_tparm.lst: term/tparm.c $(term/tparm.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(terminfo_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh terminfo > $@ || (rm -f $@; exit 1) + +terminal-terminfo_mod-term_tparm.lst: term/tparm.c $(term/tparm.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(terminfo_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh terminfo > $@ || (rm -f $@; exit 1) + +video-terminfo_mod-term_tparm.lst: term/tparm.c $(term/tparm.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(terminfo_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh terminfo > $@ || (rm -f $@; exit 1) + +terminfo_mod_CFLAGS = $(COMMON_CFLAGS) +terminfo_mod_LDFLAGS = $(COMMON_LDFLAGS) +endif + +# For blocklist.mod. +blocklist_mod_SOURCES = commands/blocklist.c + +clean-module-blocklist.mod.1: + rm -f blocklist.mod mod-blocklist.o mod-blocklist.c pre-blocklist.o blocklist_mod-commands_blocklist.o und-blocklist.lst + +CLEAN_MODULE_TARGETS += clean-module-blocklist.mod.1 + +clean-module-blocklist.mod-symbol.1: + rm -f def-blocklist.lst + +CLEAN_MODULE_TARGETS += clean-module-blocklist.mod-symbol.1 +DEFSYMFILES += def-blocklist.lst +mostlyclean-module-blocklist.mod.1: + rm -f blocklist_mod-commands_blocklist.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-blocklist.mod.1 +UNDSYMFILES += und-blocklist.lst + +ifeq ($(TARGET_NO_MODULES), yes) +blocklist.mod: pre-blocklist.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(blocklist_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-blocklist.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +blocklist.mod: pre-blocklist.o mod-blocklist.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(blocklist_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-blocklist.o mod-blocklist.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +blocklist.mod: pre-blocklist.o mod-blocklist.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(blocklist_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-blocklist.o mod-blocklist.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-blocklist.o: $(blocklist_mod_DEPENDENCIES) blocklist_mod-commands_blocklist.o + -rm -f $@ + $(TARGET_CC) $(blocklist_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ blocklist_mod-commands_blocklist.o + +mod-blocklist.o: mod-blocklist.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(blocklist_mod_CFLAGS) -DGRUB_FILE=\"mod-blocklist.c\" -c -o $@ $< + +mod-blocklist.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'blocklist' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-blocklist.lst: pre-blocklist.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 blocklist/' > $@ +else +def-blocklist.lst: pre-blocklist.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 blocklist/' > $@ +endif + +und-blocklist.lst: pre-blocklist.o + echo 'blocklist' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +blocklist_mod-commands_blocklist.o: commands/blocklist.c $(commands/blocklist.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(blocklist_mod_CFLAGS) -DGRUB_FILE=\"commands/blocklist.c\" -MD -c -o $@ $< +-include blocklist_mod-commands_blocklist.d + +clean-module-blocklist_mod-commands_blocklist-extra.1: + rm -f cmd-blocklist_mod-commands_blocklist.lst fs-blocklist_mod-commands_blocklist.lst partmap-blocklist_mod-commands_blocklist.lst handler-blocklist_mod-commands_blocklist.lst parttool-blocklist_mod-commands_blocklist.lst video-blocklist_mod-commands_blocklist.lst terminal-blocklist_mod-commands_blocklist.lst + +CLEAN_MODULE_TARGETS += clean-module-blocklist_mod-commands_blocklist-extra.1 + +COMMANDFILES += cmd-blocklist_mod-commands_blocklist.lst +FSFILES += fs-blocklist_mod-commands_blocklist.lst +PARTTOOLFILES += parttool-blocklist_mod-commands_blocklist.lst +PARTMAPFILES += partmap-blocklist_mod-commands_blocklist.lst +HANDLERFILES += handler-blocklist_mod-commands_blocklist.lst +TERMINALFILES += terminal-blocklist_mod-commands_blocklist.lst +VIDEOFILES += video-blocklist_mod-commands_blocklist.lst + +cmd-blocklist_mod-commands_blocklist.lst: commands/blocklist.c $(commands/blocklist.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(blocklist_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh blocklist > $@ || (rm -f $@; exit 1) + +fs-blocklist_mod-commands_blocklist.lst: commands/blocklist.c $(commands/blocklist.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(blocklist_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh blocklist > $@ || (rm -f $@; exit 1) + +parttool-blocklist_mod-commands_blocklist.lst: commands/blocklist.c $(commands/blocklist.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(blocklist_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh blocklist > $@ || (rm -f $@; exit 1) + +partmap-blocklist_mod-commands_blocklist.lst: commands/blocklist.c $(commands/blocklist.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(blocklist_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh blocklist > $@ || (rm -f $@; exit 1) + +handler-blocklist_mod-commands_blocklist.lst: commands/blocklist.c $(commands/blocklist.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(blocklist_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh blocklist > $@ || (rm -f $@; exit 1) + +terminal-blocklist_mod-commands_blocklist.lst: commands/blocklist.c $(commands/blocklist.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(blocklist_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh blocklist > $@ || (rm -f $@; exit 1) + +video-blocklist_mod-commands_blocklist.lst: commands/blocklist.c $(commands/blocklist.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(blocklist_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh blocklist > $@ || (rm -f $@; exit 1) + +blocklist_mod_CFLAGS = $(COMMON_CFLAGS) +blocklist_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For hexdump.mod. +hexdump_mod_SOURCES = commands/hexdump.c lib/hexdump.c + +clean-module-hexdump.mod.1: + rm -f hexdump.mod mod-hexdump.o mod-hexdump.c pre-hexdump.o hexdump_mod-commands_hexdump.o hexdump_mod-lib_hexdump.o und-hexdump.lst + +CLEAN_MODULE_TARGETS += clean-module-hexdump.mod.1 + +clean-module-hexdump.mod-symbol.1: + rm -f def-hexdump.lst + +CLEAN_MODULE_TARGETS += clean-module-hexdump.mod-symbol.1 +DEFSYMFILES += def-hexdump.lst +mostlyclean-module-hexdump.mod.1: + rm -f hexdump_mod-commands_hexdump.d hexdump_mod-lib_hexdump.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-hexdump.mod.1 +UNDSYMFILES += und-hexdump.lst + +ifeq ($(TARGET_NO_MODULES), yes) +hexdump.mod: pre-hexdump.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(hexdump_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-hexdump.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +hexdump.mod: pre-hexdump.o mod-hexdump.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(hexdump_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-hexdump.o mod-hexdump.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +hexdump.mod: pre-hexdump.o mod-hexdump.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(hexdump_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-hexdump.o mod-hexdump.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-hexdump.o: $(hexdump_mod_DEPENDENCIES) hexdump_mod-commands_hexdump.o hexdump_mod-lib_hexdump.o + -rm -f $@ + $(TARGET_CC) $(hexdump_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ hexdump_mod-commands_hexdump.o hexdump_mod-lib_hexdump.o + +mod-hexdump.o: mod-hexdump.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hexdump_mod_CFLAGS) -DGRUB_FILE=\"mod-hexdump.c\" -c -o $@ $< + +mod-hexdump.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'hexdump' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-hexdump.lst: pre-hexdump.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 hexdump/' > $@ +else +def-hexdump.lst: pre-hexdump.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 hexdump/' > $@ +endif + +und-hexdump.lst: pre-hexdump.o + echo 'hexdump' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +hexdump_mod-commands_hexdump.o: commands/hexdump.c $(commands/hexdump.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hexdump_mod_CFLAGS) -DGRUB_FILE=\"commands/hexdump.c\" -MD -c -o $@ $< +-include hexdump_mod-commands_hexdump.d + +clean-module-hexdump_mod-commands_hexdump-extra.1: + rm -f cmd-hexdump_mod-commands_hexdump.lst fs-hexdump_mod-commands_hexdump.lst partmap-hexdump_mod-commands_hexdump.lst handler-hexdump_mod-commands_hexdump.lst parttool-hexdump_mod-commands_hexdump.lst video-hexdump_mod-commands_hexdump.lst terminal-hexdump_mod-commands_hexdump.lst + +CLEAN_MODULE_TARGETS += clean-module-hexdump_mod-commands_hexdump-extra.1 + +COMMANDFILES += cmd-hexdump_mod-commands_hexdump.lst +FSFILES += fs-hexdump_mod-commands_hexdump.lst +PARTTOOLFILES += parttool-hexdump_mod-commands_hexdump.lst +PARTMAPFILES += partmap-hexdump_mod-commands_hexdump.lst +HANDLERFILES += handler-hexdump_mod-commands_hexdump.lst +TERMINALFILES += terminal-hexdump_mod-commands_hexdump.lst +VIDEOFILES += video-hexdump_mod-commands_hexdump.lst + +cmd-hexdump_mod-commands_hexdump.lst: commands/hexdump.c $(commands/hexdump.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hexdump_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh hexdump > $@ || (rm -f $@; exit 1) + +fs-hexdump_mod-commands_hexdump.lst: commands/hexdump.c $(commands/hexdump.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(hexdump_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh hexdump > $@ || (rm -f $@; exit 1) + +parttool-hexdump_mod-commands_hexdump.lst: commands/hexdump.c $(commands/hexdump.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hexdump_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh hexdump > $@ || (rm -f $@; exit 1) + +partmap-hexdump_mod-commands_hexdump.lst: commands/hexdump.c $(commands/hexdump.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(hexdump_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh hexdump > $@ || (rm -f $@; exit 1) + +handler-hexdump_mod-commands_hexdump.lst: commands/hexdump.c $(commands/hexdump.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hexdump_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh hexdump > $@ || (rm -f $@; exit 1) + +terminal-hexdump_mod-commands_hexdump.lst: commands/hexdump.c $(commands/hexdump.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hexdump_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh hexdump > $@ || (rm -f $@; exit 1) + +video-hexdump_mod-commands_hexdump.lst: commands/hexdump.c $(commands/hexdump.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(hexdump_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh hexdump > $@ || (rm -f $@; exit 1) + +hexdump_mod-lib_hexdump.o: lib/hexdump.c $(lib/hexdump.c_DEPENDENCIES) + $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hexdump_mod_CFLAGS) -DGRUB_FILE=\"lib/hexdump.c\" -MD -c -o $@ $< +-include hexdump_mod-lib_hexdump.d + +clean-module-hexdump_mod-lib_hexdump-extra.1: + rm -f cmd-hexdump_mod-lib_hexdump.lst fs-hexdump_mod-lib_hexdump.lst partmap-hexdump_mod-lib_hexdump.lst handler-hexdump_mod-lib_hexdump.lst parttool-hexdump_mod-lib_hexdump.lst video-hexdump_mod-lib_hexdump.lst terminal-hexdump_mod-lib_hexdump.lst + +CLEAN_MODULE_TARGETS += clean-module-hexdump_mod-lib_hexdump-extra.1 + +COMMANDFILES += cmd-hexdump_mod-lib_hexdump.lst +FSFILES += fs-hexdump_mod-lib_hexdump.lst +PARTTOOLFILES += parttool-hexdump_mod-lib_hexdump.lst +PARTMAPFILES += partmap-hexdump_mod-lib_hexdump.lst +HANDLERFILES += handler-hexdump_mod-lib_hexdump.lst +TERMINALFILES += terminal-hexdump_mod-lib_hexdump.lst +VIDEOFILES += video-hexdump_mod-lib_hexdump.lst + +cmd-hexdump_mod-lib_hexdump.lst: lib/hexdump.c $(lib/hexdump.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hexdump_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh hexdump > $@ || (rm -f $@; exit 1) + +fs-hexdump_mod-lib_hexdump.lst: lib/hexdump.c $(lib/hexdump.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(hexdump_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh hexdump > $@ || (rm -f $@; exit 1) + +parttool-hexdump_mod-lib_hexdump.lst: lib/hexdump.c $(lib/hexdump.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hexdump_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh hexdump > $@ || (rm -f $@; exit 1) + +partmap-hexdump_mod-lib_hexdump.lst: lib/hexdump.c $(lib/hexdump.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(hexdump_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh hexdump > $@ || (rm -f $@; exit 1) + +handler-hexdump_mod-lib_hexdump.lst: lib/hexdump.c $(lib/hexdump.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hexdump_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh hexdump > $@ || (rm -f $@; exit 1) + +terminal-hexdump_mod-lib_hexdump.lst: lib/hexdump.c $(lib/hexdump.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hexdump_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh hexdump > $@ || (rm -f $@; exit 1) + +video-hexdump_mod-lib_hexdump.lst: lib/hexdump.c $(lib/hexdump.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(hexdump_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh hexdump > $@ || (rm -f $@; exit 1) + +hexdump_mod_CFLAGS = $(COMMON_CFLAGS) +hexdump_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For read.mod. +read_mod_SOURCES = commands/read.c + +clean-module-read.mod.1: + rm -f read.mod mod-read.o mod-read.c pre-read.o read_mod-commands_read.o und-read.lst + +CLEAN_MODULE_TARGETS += clean-module-read.mod.1 + +clean-module-read.mod-symbol.1: + rm -f def-read.lst + +CLEAN_MODULE_TARGETS += clean-module-read.mod-symbol.1 +DEFSYMFILES += def-read.lst +mostlyclean-module-read.mod.1: + rm -f read_mod-commands_read.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-read.mod.1 +UNDSYMFILES += und-read.lst + +ifeq ($(TARGET_NO_MODULES), yes) +read.mod: pre-read.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(read_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-read.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +read.mod: pre-read.o mod-read.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(read_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-read.o mod-read.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +read.mod: pre-read.o mod-read.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(read_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-read.o mod-read.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-read.o: $(read_mod_DEPENDENCIES) read_mod-commands_read.o + -rm -f $@ + $(TARGET_CC) $(read_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ read_mod-commands_read.o + +mod-read.o: mod-read.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(read_mod_CFLAGS) -DGRUB_FILE=\"mod-read.c\" -c -o $@ $< + +mod-read.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'read' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-read.lst: pre-read.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 read/' > $@ +else +def-read.lst: pre-read.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 read/' > $@ +endif + +und-read.lst: pre-read.o + echo 'read' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +read_mod-commands_read.o: commands/read.c $(commands/read.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(read_mod_CFLAGS) -DGRUB_FILE=\"commands/read.c\" -MD -c -o $@ $< +-include read_mod-commands_read.d + +clean-module-read_mod-commands_read-extra.1: + rm -f cmd-read_mod-commands_read.lst fs-read_mod-commands_read.lst partmap-read_mod-commands_read.lst handler-read_mod-commands_read.lst parttool-read_mod-commands_read.lst video-read_mod-commands_read.lst terminal-read_mod-commands_read.lst + +CLEAN_MODULE_TARGETS += clean-module-read_mod-commands_read-extra.1 + +COMMANDFILES += cmd-read_mod-commands_read.lst +FSFILES += fs-read_mod-commands_read.lst +PARTTOOLFILES += parttool-read_mod-commands_read.lst +PARTMAPFILES += partmap-read_mod-commands_read.lst +HANDLERFILES += handler-read_mod-commands_read.lst +TERMINALFILES += terminal-read_mod-commands_read.lst +VIDEOFILES += video-read_mod-commands_read.lst + +cmd-read_mod-commands_read.lst: commands/read.c $(commands/read.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(read_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh read > $@ || (rm -f $@; exit 1) + +fs-read_mod-commands_read.lst: commands/read.c $(commands/read.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(read_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh read > $@ || (rm -f $@; exit 1) + +parttool-read_mod-commands_read.lst: commands/read.c $(commands/read.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(read_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh read > $@ || (rm -f $@; exit 1) + +partmap-read_mod-commands_read.lst: commands/read.c $(commands/read.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(read_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh read > $@ || (rm -f $@; exit 1) + +handler-read_mod-commands_read.lst: commands/read.c $(commands/read.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(read_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh read > $@ || (rm -f $@; exit 1) + +terminal-read_mod-commands_read.lst: commands/read.c $(commands/read.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(read_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh read > $@ || (rm -f $@; exit 1) + +video-read_mod-commands_read.lst: commands/read.c $(commands/read.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(read_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh read > $@ || (rm -f $@; exit 1) + +read_mod_CFLAGS = $(COMMON_CFLAGS) +read_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For sleep.mod. +sleep_mod_SOURCES = commands/sleep.c + +clean-module-sleep.mod.1: + rm -f sleep.mod mod-sleep.o mod-sleep.c pre-sleep.o sleep_mod-commands_sleep.o und-sleep.lst + +CLEAN_MODULE_TARGETS += clean-module-sleep.mod.1 + +clean-module-sleep.mod-symbol.1: + rm -f def-sleep.lst + +CLEAN_MODULE_TARGETS += clean-module-sleep.mod-symbol.1 +DEFSYMFILES += def-sleep.lst +mostlyclean-module-sleep.mod.1: + rm -f sleep_mod-commands_sleep.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-sleep.mod.1 +UNDSYMFILES += und-sleep.lst + +ifeq ($(TARGET_NO_MODULES), yes) +sleep.mod: pre-sleep.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(sleep_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-sleep.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +sleep.mod: pre-sleep.o mod-sleep.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(sleep_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-sleep.o mod-sleep.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +sleep.mod: pre-sleep.o mod-sleep.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(sleep_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-sleep.o mod-sleep.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-sleep.o: $(sleep_mod_DEPENDENCIES) sleep_mod-commands_sleep.o + -rm -f $@ + $(TARGET_CC) $(sleep_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ sleep_mod-commands_sleep.o + +mod-sleep.o: mod-sleep.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(sleep_mod_CFLAGS) -DGRUB_FILE=\"mod-sleep.c\" -c -o $@ $< + +mod-sleep.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'sleep' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-sleep.lst: pre-sleep.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 sleep/' > $@ +else +def-sleep.lst: pre-sleep.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 sleep/' > $@ +endif + +und-sleep.lst: pre-sleep.o + echo 'sleep' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +sleep_mod-commands_sleep.o: commands/sleep.c $(commands/sleep.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(sleep_mod_CFLAGS) -DGRUB_FILE=\"commands/sleep.c\" -MD -c -o $@ $< +-include sleep_mod-commands_sleep.d + +clean-module-sleep_mod-commands_sleep-extra.1: + rm -f cmd-sleep_mod-commands_sleep.lst fs-sleep_mod-commands_sleep.lst partmap-sleep_mod-commands_sleep.lst handler-sleep_mod-commands_sleep.lst parttool-sleep_mod-commands_sleep.lst video-sleep_mod-commands_sleep.lst terminal-sleep_mod-commands_sleep.lst + +CLEAN_MODULE_TARGETS += clean-module-sleep_mod-commands_sleep-extra.1 + +COMMANDFILES += cmd-sleep_mod-commands_sleep.lst +FSFILES += fs-sleep_mod-commands_sleep.lst +PARTTOOLFILES += parttool-sleep_mod-commands_sleep.lst +PARTMAPFILES += partmap-sleep_mod-commands_sleep.lst +HANDLERFILES += handler-sleep_mod-commands_sleep.lst +TERMINALFILES += terminal-sleep_mod-commands_sleep.lst +VIDEOFILES += video-sleep_mod-commands_sleep.lst + +cmd-sleep_mod-commands_sleep.lst: commands/sleep.c $(commands/sleep.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(sleep_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh sleep > $@ || (rm -f $@; exit 1) + +fs-sleep_mod-commands_sleep.lst: commands/sleep.c $(commands/sleep.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(sleep_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh sleep > $@ || (rm -f $@; exit 1) + +parttool-sleep_mod-commands_sleep.lst: commands/sleep.c $(commands/sleep.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(sleep_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh sleep > $@ || (rm -f $@; exit 1) + +partmap-sleep_mod-commands_sleep.lst: commands/sleep.c $(commands/sleep.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(sleep_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh sleep > $@ || (rm -f $@; exit 1) + +handler-sleep_mod-commands_sleep.lst: commands/sleep.c $(commands/sleep.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(sleep_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh sleep > $@ || (rm -f $@; exit 1) + +terminal-sleep_mod-commands_sleep.lst: commands/sleep.c $(commands/sleep.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(sleep_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh sleep > $@ || (rm -f $@; exit 1) + +video-sleep_mod-commands_sleep.lst: commands/sleep.c $(commands/sleep.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(sleep_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh sleep > $@ || (rm -f $@; exit 1) + +sleep_mod_CFLAGS = $(COMMON_CFLAGS) +sleep_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For loadenv.mod. +loadenv_mod_SOURCES = commands/loadenv.c lib/envblk.c + +clean-module-loadenv.mod.1: + rm -f loadenv.mod mod-loadenv.o mod-loadenv.c pre-loadenv.o loadenv_mod-commands_loadenv.o loadenv_mod-lib_envblk.o und-loadenv.lst + +CLEAN_MODULE_TARGETS += clean-module-loadenv.mod.1 + +clean-module-loadenv.mod-symbol.1: + rm -f def-loadenv.lst + +CLEAN_MODULE_TARGETS += clean-module-loadenv.mod-symbol.1 +DEFSYMFILES += def-loadenv.lst +mostlyclean-module-loadenv.mod.1: + rm -f loadenv_mod-commands_loadenv.d loadenv_mod-lib_envblk.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-loadenv.mod.1 +UNDSYMFILES += und-loadenv.lst + +ifeq ($(TARGET_NO_MODULES), yes) +loadenv.mod: pre-loadenv.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(loadenv_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-loadenv.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +loadenv.mod: pre-loadenv.o mod-loadenv.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(loadenv_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-loadenv.o mod-loadenv.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +loadenv.mod: pre-loadenv.o mod-loadenv.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(loadenv_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-loadenv.o mod-loadenv.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-loadenv.o: $(loadenv_mod_DEPENDENCIES) loadenv_mod-commands_loadenv.o loadenv_mod-lib_envblk.o + -rm -f $@ + $(TARGET_CC) $(loadenv_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ loadenv_mod-commands_loadenv.o loadenv_mod-lib_envblk.o + +mod-loadenv.o: mod-loadenv.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(loadenv_mod_CFLAGS) -DGRUB_FILE=\"mod-loadenv.c\" -c -o $@ $< + +mod-loadenv.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'loadenv' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-loadenv.lst: pre-loadenv.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 loadenv/' > $@ +else +def-loadenv.lst: pre-loadenv.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 loadenv/' > $@ +endif + +und-loadenv.lst: pre-loadenv.o + echo 'loadenv' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +loadenv_mod-commands_loadenv.o: commands/loadenv.c $(commands/loadenv.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(loadenv_mod_CFLAGS) -DGRUB_FILE=\"commands/loadenv.c\" -MD -c -o $@ $< +-include loadenv_mod-commands_loadenv.d + +clean-module-loadenv_mod-commands_loadenv-extra.1: + rm -f cmd-loadenv_mod-commands_loadenv.lst fs-loadenv_mod-commands_loadenv.lst partmap-loadenv_mod-commands_loadenv.lst handler-loadenv_mod-commands_loadenv.lst parttool-loadenv_mod-commands_loadenv.lst video-loadenv_mod-commands_loadenv.lst terminal-loadenv_mod-commands_loadenv.lst + +CLEAN_MODULE_TARGETS += clean-module-loadenv_mod-commands_loadenv-extra.1 + +COMMANDFILES += cmd-loadenv_mod-commands_loadenv.lst +FSFILES += fs-loadenv_mod-commands_loadenv.lst +PARTTOOLFILES += parttool-loadenv_mod-commands_loadenv.lst +PARTMAPFILES += partmap-loadenv_mod-commands_loadenv.lst +HANDLERFILES += handler-loadenv_mod-commands_loadenv.lst +TERMINALFILES += terminal-loadenv_mod-commands_loadenv.lst +VIDEOFILES += video-loadenv_mod-commands_loadenv.lst + +cmd-loadenv_mod-commands_loadenv.lst: commands/loadenv.c $(commands/loadenv.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(loadenv_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh loadenv > $@ || (rm -f $@; exit 1) + +fs-loadenv_mod-commands_loadenv.lst: commands/loadenv.c $(commands/loadenv.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(loadenv_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh loadenv > $@ || (rm -f $@; exit 1) + +parttool-loadenv_mod-commands_loadenv.lst: commands/loadenv.c $(commands/loadenv.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(loadenv_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh loadenv > $@ || (rm -f $@; exit 1) + +partmap-loadenv_mod-commands_loadenv.lst: commands/loadenv.c $(commands/loadenv.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(loadenv_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh loadenv > $@ || (rm -f $@; exit 1) + +handler-loadenv_mod-commands_loadenv.lst: commands/loadenv.c $(commands/loadenv.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(loadenv_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh loadenv > $@ || (rm -f $@; exit 1) + +terminal-loadenv_mod-commands_loadenv.lst: commands/loadenv.c $(commands/loadenv.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(loadenv_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh loadenv > $@ || (rm -f $@; exit 1) + +video-loadenv_mod-commands_loadenv.lst: commands/loadenv.c $(commands/loadenv.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(loadenv_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh loadenv > $@ || (rm -f $@; exit 1) + +loadenv_mod-lib_envblk.o: lib/envblk.c $(lib/envblk.c_DEPENDENCIES) + $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(loadenv_mod_CFLAGS) -DGRUB_FILE=\"lib/envblk.c\" -MD -c -o $@ $< +-include loadenv_mod-lib_envblk.d + +clean-module-loadenv_mod-lib_envblk-extra.1: + rm -f cmd-loadenv_mod-lib_envblk.lst fs-loadenv_mod-lib_envblk.lst partmap-loadenv_mod-lib_envblk.lst handler-loadenv_mod-lib_envblk.lst parttool-loadenv_mod-lib_envblk.lst video-loadenv_mod-lib_envblk.lst terminal-loadenv_mod-lib_envblk.lst + +CLEAN_MODULE_TARGETS += clean-module-loadenv_mod-lib_envblk-extra.1 + +COMMANDFILES += cmd-loadenv_mod-lib_envblk.lst +FSFILES += fs-loadenv_mod-lib_envblk.lst +PARTTOOLFILES += parttool-loadenv_mod-lib_envblk.lst +PARTMAPFILES += partmap-loadenv_mod-lib_envblk.lst +HANDLERFILES += handler-loadenv_mod-lib_envblk.lst +TERMINALFILES += terminal-loadenv_mod-lib_envblk.lst +VIDEOFILES += video-loadenv_mod-lib_envblk.lst + +cmd-loadenv_mod-lib_envblk.lst: lib/envblk.c $(lib/envblk.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(loadenv_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh loadenv > $@ || (rm -f $@; exit 1) + +fs-loadenv_mod-lib_envblk.lst: lib/envblk.c $(lib/envblk.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(loadenv_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh loadenv > $@ || (rm -f $@; exit 1) + +parttool-loadenv_mod-lib_envblk.lst: lib/envblk.c $(lib/envblk.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(loadenv_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh loadenv > $@ || (rm -f $@; exit 1) + +partmap-loadenv_mod-lib_envblk.lst: lib/envblk.c $(lib/envblk.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(loadenv_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh loadenv > $@ || (rm -f $@; exit 1) + +handler-loadenv_mod-lib_envblk.lst: lib/envblk.c $(lib/envblk.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(loadenv_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh loadenv > $@ || (rm -f $@; exit 1) + +terminal-loadenv_mod-lib_envblk.lst: lib/envblk.c $(lib/envblk.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(loadenv_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh loadenv > $@ || (rm -f $@; exit 1) + +video-loadenv_mod-lib_envblk.lst: lib/envblk.c $(lib/envblk.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(loadenv_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh loadenv > $@ || (rm -f $@; exit 1) + +loadenv_mod_CFLAGS = $(COMMON_CFLAGS) +loadenv_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For crc.mod. +crc_mod_SOURCES = commands/crc.c lib/crc.c + +clean-module-crc.mod.1: + rm -f crc.mod mod-crc.o mod-crc.c pre-crc.o crc_mod-commands_crc.o crc_mod-lib_crc.o und-crc.lst + +CLEAN_MODULE_TARGETS += clean-module-crc.mod.1 + +clean-module-crc.mod-symbol.1: + rm -f def-crc.lst + +CLEAN_MODULE_TARGETS += clean-module-crc.mod-symbol.1 +DEFSYMFILES += def-crc.lst +mostlyclean-module-crc.mod.1: + rm -f crc_mod-commands_crc.d crc_mod-lib_crc.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-crc.mod.1 +UNDSYMFILES += und-crc.lst + +ifeq ($(TARGET_NO_MODULES), yes) +crc.mod: pre-crc.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(crc_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-crc.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +crc.mod: pre-crc.o mod-crc.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(crc_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-crc.o mod-crc.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +crc.mod: pre-crc.o mod-crc.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(crc_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-crc.o mod-crc.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-crc.o: $(crc_mod_DEPENDENCIES) crc_mod-commands_crc.o crc_mod-lib_crc.o + -rm -f $@ + $(TARGET_CC) $(crc_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ crc_mod-commands_crc.o crc_mod-lib_crc.o + +mod-crc.o: mod-crc.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(crc_mod_CFLAGS) -DGRUB_FILE=\"mod-crc.c\" -c -o $@ $< + +mod-crc.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'crc' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-crc.lst: pre-crc.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 crc/' > $@ +else +def-crc.lst: pre-crc.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 crc/' > $@ +endif + +und-crc.lst: pre-crc.o + echo 'crc' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +crc_mod-commands_crc.o: commands/crc.c $(commands/crc.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(crc_mod_CFLAGS) -DGRUB_FILE=\"commands/crc.c\" -MD -c -o $@ $< +-include crc_mod-commands_crc.d + +clean-module-crc_mod-commands_crc-extra.1: + rm -f cmd-crc_mod-commands_crc.lst fs-crc_mod-commands_crc.lst partmap-crc_mod-commands_crc.lst handler-crc_mod-commands_crc.lst parttool-crc_mod-commands_crc.lst video-crc_mod-commands_crc.lst terminal-crc_mod-commands_crc.lst + +CLEAN_MODULE_TARGETS += clean-module-crc_mod-commands_crc-extra.1 + +COMMANDFILES += cmd-crc_mod-commands_crc.lst +FSFILES += fs-crc_mod-commands_crc.lst +PARTTOOLFILES += parttool-crc_mod-commands_crc.lst +PARTMAPFILES += partmap-crc_mod-commands_crc.lst +HANDLERFILES += handler-crc_mod-commands_crc.lst +TERMINALFILES += terminal-crc_mod-commands_crc.lst +VIDEOFILES += video-crc_mod-commands_crc.lst + +cmd-crc_mod-commands_crc.lst: commands/crc.c $(commands/crc.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(crc_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh crc > $@ || (rm -f $@; exit 1) + +fs-crc_mod-commands_crc.lst: commands/crc.c $(commands/crc.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(crc_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh crc > $@ || (rm -f $@; exit 1) + +parttool-crc_mod-commands_crc.lst: commands/crc.c $(commands/crc.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(crc_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh crc > $@ || (rm -f $@; exit 1) + +partmap-crc_mod-commands_crc.lst: commands/crc.c $(commands/crc.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(crc_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh crc > $@ || (rm -f $@; exit 1) + +handler-crc_mod-commands_crc.lst: commands/crc.c $(commands/crc.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(crc_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh crc > $@ || (rm -f $@; exit 1) + +terminal-crc_mod-commands_crc.lst: commands/crc.c $(commands/crc.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(crc_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh crc > $@ || (rm -f $@; exit 1) + +video-crc_mod-commands_crc.lst: commands/crc.c $(commands/crc.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(crc_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh crc > $@ || (rm -f $@; exit 1) + +crc_mod-lib_crc.o: lib/crc.c $(lib/crc.c_DEPENDENCIES) + $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(crc_mod_CFLAGS) -DGRUB_FILE=\"lib/crc.c\" -MD -c -o $@ $< +-include crc_mod-lib_crc.d + +clean-module-crc_mod-lib_crc-extra.1: + rm -f cmd-crc_mod-lib_crc.lst fs-crc_mod-lib_crc.lst partmap-crc_mod-lib_crc.lst handler-crc_mod-lib_crc.lst parttool-crc_mod-lib_crc.lst video-crc_mod-lib_crc.lst terminal-crc_mod-lib_crc.lst + +CLEAN_MODULE_TARGETS += clean-module-crc_mod-lib_crc-extra.1 + +COMMANDFILES += cmd-crc_mod-lib_crc.lst +FSFILES += fs-crc_mod-lib_crc.lst +PARTTOOLFILES += parttool-crc_mod-lib_crc.lst +PARTMAPFILES += partmap-crc_mod-lib_crc.lst +HANDLERFILES += handler-crc_mod-lib_crc.lst +TERMINALFILES += terminal-crc_mod-lib_crc.lst +VIDEOFILES += video-crc_mod-lib_crc.lst + +cmd-crc_mod-lib_crc.lst: lib/crc.c $(lib/crc.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(crc_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh crc > $@ || (rm -f $@; exit 1) + +fs-crc_mod-lib_crc.lst: lib/crc.c $(lib/crc.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(crc_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh crc > $@ || (rm -f $@; exit 1) + +parttool-crc_mod-lib_crc.lst: lib/crc.c $(lib/crc.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(crc_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh crc > $@ || (rm -f $@; exit 1) + +partmap-crc_mod-lib_crc.lst: lib/crc.c $(lib/crc.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(crc_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh crc > $@ || (rm -f $@; exit 1) + +handler-crc_mod-lib_crc.lst: lib/crc.c $(lib/crc.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(crc_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh crc > $@ || (rm -f $@; exit 1) + +terminal-crc_mod-lib_crc.lst: lib/crc.c $(lib/crc.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(crc_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh crc > $@ || (rm -f $@; exit 1) + +video-crc_mod-lib_crc.lst: lib/crc.c $(lib/crc.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(crc_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh crc > $@ || (rm -f $@; exit 1) + +crc_mod_CFLAGS = $(COMMON_CFLAGS) +crc_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For memrw.mod. +memrw_mod_SOURCES = commands/memrw.c + +clean-module-memrw.mod.1: + rm -f memrw.mod mod-memrw.o mod-memrw.c pre-memrw.o memrw_mod-commands_memrw.o und-memrw.lst + +CLEAN_MODULE_TARGETS += clean-module-memrw.mod.1 + +clean-module-memrw.mod-symbol.1: + rm -f def-memrw.lst + +CLEAN_MODULE_TARGETS += clean-module-memrw.mod-symbol.1 +DEFSYMFILES += def-memrw.lst +mostlyclean-module-memrw.mod.1: + rm -f memrw_mod-commands_memrw.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-memrw.mod.1 +UNDSYMFILES += und-memrw.lst + +ifeq ($(TARGET_NO_MODULES), yes) +memrw.mod: pre-memrw.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(memrw_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-memrw.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +memrw.mod: pre-memrw.o mod-memrw.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(memrw_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-memrw.o mod-memrw.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +memrw.mod: pre-memrw.o mod-memrw.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(memrw_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-memrw.o mod-memrw.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-memrw.o: $(memrw_mod_DEPENDENCIES) memrw_mod-commands_memrw.o + -rm -f $@ + $(TARGET_CC) $(memrw_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ memrw_mod-commands_memrw.o + +mod-memrw.o: mod-memrw.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(memrw_mod_CFLAGS) -DGRUB_FILE=\"mod-memrw.c\" -c -o $@ $< + +mod-memrw.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'memrw' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-memrw.lst: pre-memrw.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 memrw/' > $@ +else +def-memrw.lst: pre-memrw.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 memrw/' > $@ +endif + +und-memrw.lst: pre-memrw.o + echo 'memrw' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +memrw_mod-commands_memrw.o: commands/memrw.c $(commands/memrw.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(memrw_mod_CFLAGS) -DGRUB_FILE=\"commands/memrw.c\" -MD -c -o $@ $< +-include memrw_mod-commands_memrw.d + +clean-module-memrw_mod-commands_memrw-extra.1: + rm -f cmd-memrw_mod-commands_memrw.lst fs-memrw_mod-commands_memrw.lst partmap-memrw_mod-commands_memrw.lst handler-memrw_mod-commands_memrw.lst parttool-memrw_mod-commands_memrw.lst video-memrw_mod-commands_memrw.lst terminal-memrw_mod-commands_memrw.lst + +CLEAN_MODULE_TARGETS += clean-module-memrw_mod-commands_memrw-extra.1 + +COMMANDFILES += cmd-memrw_mod-commands_memrw.lst +FSFILES += fs-memrw_mod-commands_memrw.lst +PARTTOOLFILES += parttool-memrw_mod-commands_memrw.lst +PARTMAPFILES += partmap-memrw_mod-commands_memrw.lst +HANDLERFILES += handler-memrw_mod-commands_memrw.lst +TERMINALFILES += terminal-memrw_mod-commands_memrw.lst +VIDEOFILES += video-memrw_mod-commands_memrw.lst + +cmd-memrw_mod-commands_memrw.lst: commands/memrw.c $(commands/memrw.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(memrw_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh memrw > $@ || (rm -f $@; exit 1) + +fs-memrw_mod-commands_memrw.lst: commands/memrw.c $(commands/memrw.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(memrw_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh memrw > $@ || (rm -f $@; exit 1) + +parttool-memrw_mod-commands_memrw.lst: commands/memrw.c $(commands/memrw.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(memrw_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh memrw > $@ || (rm -f $@; exit 1) + +partmap-memrw_mod-commands_memrw.lst: commands/memrw.c $(commands/memrw.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(memrw_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh memrw > $@ || (rm -f $@; exit 1) + +handler-memrw_mod-commands_memrw.lst: commands/memrw.c $(commands/memrw.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(memrw_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh memrw > $@ || (rm -f $@; exit 1) + +terminal-memrw_mod-commands_memrw.lst: commands/memrw.c $(commands/memrw.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(memrw_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh memrw > $@ || (rm -f $@; exit 1) + +video-memrw_mod-commands_memrw.lst: commands/memrw.c $(commands/memrw.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(memrw_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh memrw > $@ || (rm -f $@; exit 1) + +memrw_mod_CFLAGS = $(COMMON_CFLAGS) +memrw_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For true.mod +true_mod_SOURCES = commands/true.c + +clean-module-true.mod.1: + rm -f true.mod mod-true.o mod-true.c pre-true.o true_mod-commands_true.o und-true.lst + +CLEAN_MODULE_TARGETS += clean-module-true.mod.1 + +clean-module-true.mod-symbol.1: + rm -f def-true.lst + +CLEAN_MODULE_TARGETS += clean-module-true.mod-symbol.1 +DEFSYMFILES += def-true.lst +mostlyclean-module-true.mod.1: + rm -f true_mod-commands_true.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-true.mod.1 +UNDSYMFILES += und-true.lst + +ifeq ($(TARGET_NO_MODULES), yes) +true.mod: pre-true.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(true_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-true.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +true.mod: pre-true.o mod-true.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(true_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-true.o mod-true.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +true.mod: pre-true.o mod-true.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(true_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-true.o mod-true.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-true.o: $(true_mod_DEPENDENCIES) true_mod-commands_true.o + -rm -f $@ + $(TARGET_CC) $(true_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ true_mod-commands_true.o + +mod-true.o: mod-true.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(true_mod_CFLAGS) -DGRUB_FILE=\"mod-true.c\" -c -o $@ $< + +mod-true.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'true' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-true.lst: pre-true.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 true/' > $@ +else +def-true.lst: pre-true.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 true/' > $@ +endif + +und-true.lst: pre-true.o + echo 'true' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +true_mod-commands_true.o: commands/true.c $(commands/true.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(true_mod_CFLAGS) -DGRUB_FILE=\"commands/true.c\" -MD -c -o $@ $< +-include true_mod-commands_true.d + +clean-module-true_mod-commands_true-extra.1: + rm -f cmd-true_mod-commands_true.lst fs-true_mod-commands_true.lst partmap-true_mod-commands_true.lst handler-true_mod-commands_true.lst parttool-true_mod-commands_true.lst video-true_mod-commands_true.lst terminal-true_mod-commands_true.lst + +CLEAN_MODULE_TARGETS += clean-module-true_mod-commands_true-extra.1 + +COMMANDFILES += cmd-true_mod-commands_true.lst +FSFILES += fs-true_mod-commands_true.lst +PARTTOOLFILES += parttool-true_mod-commands_true.lst +PARTMAPFILES += partmap-true_mod-commands_true.lst +HANDLERFILES += handler-true_mod-commands_true.lst +TERMINALFILES += terminal-true_mod-commands_true.lst +VIDEOFILES += video-true_mod-commands_true.lst + +cmd-true_mod-commands_true.lst: commands/true.c $(commands/true.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(true_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh true > $@ || (rm -f $@; exit 1) + +fs-true_mod-commands_true.lst: commands/true.c $(commands/true.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(true_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh true > $@ || (rm -f $@; exit 1) + +parttool-true_mod-commands_true.lst: commands/true.c $(commands/true.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(true_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh true > $@ || (rm -f $@; exit 1) + +partmap-true_mod-commands_true.lst: commands/true.c $(commands/true.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(true_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh true > $@ || (rm -f $@; exit 1) + +handler-true_mod-commands_true.lst: commands/true.c $(commands/true.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(true_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh true > $@ || (rm -f $@; exit 1) + +terminal-true_mod-commands_true.lst: commands/true.c $(commands/true.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(true_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh true > $@ || (rm -f $@; exit 1) + +video-true_mod-commands_true.lst: commands/true.c $(commands/true.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(true_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh true > $@ || (rm -f $@; exit 1) + +true_mod_CFLAGS = $(COMMON_CFLAGS) +true_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For probe.mod. +probe_mod_SOURCES = commands/probe.c + +clean-module-probe.mod.1: + rm -f probe.mod mod-probe.o mod-probe.c pre-probe.o probe_mod-commands_probe.o und-probe.lst + +CLEAN_MODULE_TARGETS += clean-module-probe.mod.1 + +clean-module-probe.mod-symbol.1: + rm -f def-probe.lst + +CLEAN_MODULE_TARGETS += clean-module-probe.mod-symbol.1 +DEFSYMFILES += def-probe.lst +mostlyclean-module-probe.mod.1: + rm -f probe_mod-commands_probe.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-probe.mod.1 +UNDSYMFILES += und-probe.lst + +ifeq ($(TARGET_NO_MODULES), yes) +probe.mod: pre-probe.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(probe_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-probe.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +probe.mod: pre-probe.o mod-probe.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(probe_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-probe.o mod-probe.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +probe.mod: pre-probe.o mod-probe.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(probe_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-probe.o mod-probe.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-probe.o: $(probe_mod_DEPENDENCIES) probe_mod-commands_probe.o + -rm -f $@ + $(TARGET_CC) $(probe_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ probe_mod-commands_probe.o + +mod-probe.o: mod-probe.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(probe_mod_CFLAGS) -DGRUB_FILE=\"mod-probe.c\" -c -o $@ $< + +mod-probe.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'probe' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-probe.lst: pre-probe.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 probe/' > $@ +else +def-probe.lst: pre-probe.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 probe/' > $@ +endif + +und-probe.lst: pre-probe.o + echo 'probe' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +probe_mod-commands_probe.o: commands/probe.c $(commands/probe.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(probe_mod_CFLAGS) -DGRUB_FILE=\"commands/probe.c\" -MD -c -o $@ $< +-include probe_mod-commands_probe.d + +clean-module-probe_mod-commands_probe-extra.1: + rm -f cmd-probe_mod-commands_probe.lst fs-probe_mod-commands_probe.lst partmap-probe_mod-commands_probe.lst handler-probe_mod-commands_probe.lst parttool-probe_mod-commands_probe.lst video-probe_mod-commands_probe.lst terminal-probe_mod-commands_probe.lst + +CLEAN_MODULE_TARGETS += clean-module-probe_mod-commands_probe-extra.1 + +COMMANDFILES += cmd-probe_mod-commands_probe.lst +FSFILES += fs-probe_mod-commands_probe.lst +PARTTOOLFILES += parttool-probe_mod-commands_probe.lst +PARTMAPFILES += partmap-probe_mod-commands_probe.lst +HANDLERFILES += handler-probe_mod-commands_probe.lst +TERMINALFILES += terminal-probe_mod-commands_probe.lst +VIDEOFILES += video-probe_mod-commands_probe.lst + +cmd-probe_mod-commands_probe.lst: commands/probe.c $(commands/probe.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(probe_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh probe > $@ || (rm -f $@; exit 1) + +fs-probe_mod-commands_probe.lst: commands/probe.c $(commands/probe.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(probe_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh probe > $@ || (rm -f $@; exit 1) + +parttool-probe_mod-commands_probe.lst: commands/probe.c $(commands/probe.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(probe_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh probe > $@ || (rm -f $@; exit 1) + +partmap-probe_mod-commands_probe.lst: commands/probe.c $(commands/probe.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(probe_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh probe > $@ || (rm -f $@; exit 1) + +handler-probe_mod-commands_probe.lst: commands/probe.c $(commands/probe.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(probe_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh probe > $@ || (rm -f $@; exit 1) + +terminal-probe_mod-commands_probe.lst: commands/probe.c $(commands/probe.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(probe_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh probe > $@ || (rm -f $@; exit 1) + +video-probe_mod-commands_probe.lst: commands/probe.c $(commands/probe.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(probe_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh probe > $@ || (rm -f $@; exit 1) + +probe_mod_CFLAGS = $(COMMON_CFLAGS) +probe_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For keystatus.mod. +keystatus_mod_SOURCES = commands/keystatus.c + +clean-module-keystatus.mod.1: + rm -f keystatus.mod mod-keystatus.o mod-keystatus.c pre-keystatus.o keystatus_mod-commands_keystatus.o und-keystatus.lst + +CLEAN_MODULE_TARGETS += clean-module-keystatus.mod.1 + +clean-module-keystatus.mod-symbol.1: + rm -f def-keystatus.lst + +CLEAN_MODULE_TARGETS += clean-module-keystatus.mod-symbol.1 +DEFSYMFILES += def-keystatus.lst +mostlyclean-module-keystatus.mod.1: + rm -f keystatus_mod-commands_keystatus.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-keystatus.mod.1 +UNDSYMFILES += und-keystatus.lst + +ifeq ($(TARGET_NO_MODULES), yes) +keystatus.mod: pre-keystatus.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(keystatus_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-keystatus.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +keystatus.mod: pre-keystatus.o mod-keystatus.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(keystatus_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-keystatus.o mod-keystatus.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +keystatus.mod: pre-keystatus.o mod-keystatus.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(keystatus_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-keystatus.o mod-keystatus.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-keystatus.o: $(keystatus_mod_DEPENDENCIES) keystatus_mod-commands_keystatus.o + -rm -f $@ + $(TARGET_CC) $(keystatus_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ keystatus_mod-commands_keystatus.o + +mod-keystatus.o: mod-keystatus.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(keystatus_mod_CFLAGS) -DGRUB_FILE=\"mod-keystatus.c\" -c -o $@ $< + +mod-keystatus.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'keystatus' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-keystatus.lst: pre-keystatus.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 keystatus/' > $@ +else +def-keystatus.lst: pre-keystatus.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 keystatus/' > $@ +endif + +und-keystatus.lst: pre-keystatus.o + echo 'keystatus' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +keystatus_mod-commands_keystatus.o: commands/keystatus.c $(commands/keystatus.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(keystatus_mod_CFLAGS) -DGRUB_FILE=\"commands/keystatus.c\" -MD -c -o $@ $< +-include keystatus_mod-commands_keystatus.d + +clean-module-keystatus_mod-commands_keystatus-extra.1: + rm -f cmd-keystatus_mod-commands_keystatus.lst fs-keystatus_mod-commands_keystatus.lst partmap-keystatus_mod-commands_keystatus.lst handler-keystatus_mod-commands_keystatus.lst parttool-keystatus_mod-commands_keystatus.lst video-keystatus_mod-commands_keystatus.lst terminal-keystatus_mod-commands_keystatus.lst + +CLEAN_MODULE_TARGETS += clean-module-keystatus_mod-commands_keystatus-extra.1 + +COMMANDFILES += cmd-keystatus_mod-commands_keystatus.lst +FSFILES += fs-keystatus_mod-commands_keystatus.lst +PARTTOOLFILES += parttool-keystatus_mod-commands_keystatus.lst +PARTMAPFILES += partmap-keystatus_mod-commands_keystatus.lst +HANDLERFILES += handler-keystatus_mod-commands_keystatus.lst +TERMINALFILES += terminal-keystatus_mod-commands_keystatus.lst +VIDEOFILES += video-keystatus_mod-commands_keystatus.lst + +cmd-keystatus_mod-commands_keystatus.lst: commands/keystatus.c $(commands/keystatus.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(keystatus_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh keystatus > $@ || (rm -f $@; exit 1) + +fs-keystatus_mod-commands_keystatus.lst: commands/keystatus.c $(commands/keystatus.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(keystatus_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh keystatus > $@ || (rm -f $@; exit 1) + +parttool-keystatus_mod-commands_keystatus.lst: commands/keystatus.c $(commands/keystatus.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(keystatus_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh keystatus > $@ || (rm -f $@; exit 1) + +partmap-keystatus_mod-commands_keystatus.lst: commands/keystatus.c $(commands/keystatus.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(keystatus_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh keystatus > $@ || (rm -f $@; exit 1) + +handler-keystatus_mod-commands_keystatus.lst: commands/keystatus.c $(commands/keystatus.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(keystatus_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh keystatus > $@ || (rm -f $@; exit 1) + +terminal-keystatus_mod-commands_keystatus.lst: commands/keystatus.c $(commands/keystatus.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(keystatus_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh keystatus > $@ || (rm -f $@; exit 1) + +video-keystatus_mod-commands_keystatus.lst: commands/keystatus.c $(commands/keystatus.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(keystatus_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh keystatus > $@ || (rm -f $@; exit 1) + +keystatus_mod_CFLAGS = $(COMMON_CFLAGS) +keystatus_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For normal.mod. +ifneq (, $(FONT_SOURCE)) +normal/charset.c_DEPENDENCIES = widthspec.h +endif +normal_mod_SOURCES = normal/main.c normal/cmdline.c normal/dyncmd.c \ + normal/auth.c normal/autofs.c \ + normal/color.c normal/completion.c normal/datetime.c normal/menu.c \ + normal/menu_entry.c normal/menu_text.c normal/charset.c \ + normal/misc.c normal/crypto.c normal/term.c normal/context.c \ + script/main.c script/script.c script/execute.c unidata.c \ + script/function.c script/lexer.c grub_script.tab.c grub_script.yy.c + +clean-module-normal.mod.1: + rm -f normal.mod mod-normal.o mod-normal.c pre-normal.o normal_mod-normal_main.o normal_mod-normal_cmdline.o normal_mod-normal_dyncmd.o normal_mod-normal_auth.o normal_mod-normal_autofs.o normal_mod-normal_color.o normal_mod-normal_completion.o normal_mod-normal_datetime.o normal_mod-normal_menu.o normal_mod-normal_menu_entry.o normal_mod-normal_menu_text.o normal_mod-normal_charset.o normal_mod-normal_misc.o normal_mod-normal_crypto.o normal_mod-normal_term.o normal_mod-normal_context.o normal_mod-script_main.o normal_mod-script_script.o normal_mod-script_execute.o normal_mod-unidata.o normal_mod-script_function.o normal_mod-script_lexer.o normal_mod-grub_script_tab.o normal_mod-grub_script_yy.o und-normal.lst + +CLEAN_MODULE_TARGETS += clean-module-normal.mod.1 + +clean-module-normal.mod-symbol.1: + rm -f def-normal.lst + +CLEAN_MODULE_TARGETS += clean-module-normal.mod-symbol.1 +DEFSYMFILES += def-normal.lst +mostlyclean-module-normal.mod.1: + rm -f normal_mod-normal_main.d normal_mod-normal_cmdline.d normal_mod-normal_dyncmd.d normal_mod-normal_auth.d normal_mod-normal_autofs.d normal_mod-normal_color.d normal_mod-normal_completion.d normal_mod-normal_datetime.d normal_mod-normal_menu.d normal_mod-normal_menu_entry.d normal_mod-normal_menu_text.d normal_mod-normal_charset.d normal_mod-normal_misc.d normal_mod-normal_crypto.d normal_mod-normal_term.d normal_mod-normal_context.d normal_mod-script_main.d normal_mod-script_script.d normal_mod-script_execute.d normal_mod-unidata.d normal_mod-script_function.d normal_mod-script_lexer.d normal_mod-grub_script_tab.d normal_mod-grub_script_yy.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-normal.mod.1 +UNDSYMFILES += und-normal.lst + +ifeq ($(TARGET_NO_MODULES), yes) +normal.mod: pre-normal.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(normal_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-normal.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +normal.mod: pre-normal.o mod-normal.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(normal_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-normal.o mod-normal.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +normal.mod: pre-normal.o mod-normal.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(normal_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-normal.o mod-normal.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-normal.o: $(normal_mod_DEPENDENCIES) normal_mod-normal_main.o normal_mod-normal_cmdline.o normal_mod-normal_dyncmd.o normal_mod-normal_auth.o normal_mod-normal_autofs.o normal_mod-normal_color.o normal_mod-normal_completion.o normal_mod-normal_datetime.o normal_mod-normal_menu.o normal_mod-normal_menu_entry.o normal_mod-normal_menu_text.o normal_mod-normal_charset.o normal_mod-normal_misc.o normal_mod-normal_crypto.o normal_mod-normal_term.o normal_mod-normal_context.o normal_mod-script_main.o normal_mod-script_script.o normal_mod-script_execute.o normal_mod-unidata.o normal_mod-script_function.o normal_mod-script_lexer.o normal_mod-grub_script_tab.o normal_mod-grub_script_yy.o + -rm -f $@ + $(TARGET_CC) $(normal_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ normal_mod-normal_main.o normal_mod-normal_cmdline.o normal_mod-normal_dyncmd.o normal_mod-normal_auth.o normal_mod-normal_autofs.o normal_mod-normal_color.o normal_mod-normal_completion.o normal_mod-normal_datetime.o normal_mod-normal_menu.o normal_mod-normal_menu_entry.o normal_mod-normal_menu_text.o normal_mod-normal_charset.o normal_mod-normal_misc.o normal_mod-normal_crypto.o normal_mod-normal_term.o normal_mod-normal_context.o normal_mod-script_main.o normal_mod-script_script.o normal_mod-script_execute.o normal_mod-unidata.o normal_mod-script_function.o normal_mod-script_lexer.o normal_mod-grub_script_tab.o normal_mod-grub_script_yy.o + +mod-normal.o: mod-normal.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"mod-normal.c\" -c -o $@ $< + +mod-normal.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'normal' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-normal.lst: pre-normal.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 normal/' > $@ +else +def-normal.lst: pre-normal.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 normal/' > $@ +endif + +und-normal.lst: pre-normal.o + echo 'normal' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +normal_mod-normal_main.o: normal/main.c $(normal/main.c_DEPENDENCIES) + $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"normal/main.c\" -MD -c -o $@ $< +-include normal_mod-normal_main.d + +clean-module-normal_mod-normal_main-extra.1: + rm -f cmd-normal_mod-normal_main.lst fs-normal_mod-normal_main.lst partmap-normal_mod-normal_main.lst handler-normal_mod-normal_main.lst parttool-normal_mod-normal_main.lst video-normal_mod-normal_main.lst terminal-normal_mod-normal_main.lst + +CLEAN_MODULE_TARGETS += clean-module-normal_mod-normal_main-extra.1 + +COMMANDFILES += cmd-normal_mod-normal_main.lst +FSFILES += fs-normal_mod-normal_main.lst +PARTTOOLFILES += parttool-normal_mod-normal_main.lst +PARTMAPFILES += partmap-normal_mod-normal_main.lst +HANDLERFILES += handler-normal_mod-normal_main.lst +TERMINALFILES += terminal-normal_mod-normal_main.lst +VIDEOFILES += video-normal_mod-normal_main.lst + +cmd-normal_mod-normal_main.lst: normal/main.c $(normal/main.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-normal_mod-normal_main.lst: normal/main.c $(normal/main.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + +parttool-normal_mod-normal_main.lst: normal/main.c $(normal/main.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh normal > $@ || (rm -f $@; exit 1) + +partmap-normal_mod-normal_main.lst: normal/main.c $(normal/main.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh normal > $@ || (rm -f $@; exit 1) + +handler-normal_mod-normal_main.lst: normal/main.c $(normal/main.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh normal > $@ || (rm -f $@; exit 1) + +terminal-normal_mod-normal_main.lst: normal/main.c $(normal/main.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh normal > $@ || (rm -f $@; exit 1) + +video-normal_mod-normal_main.lst: normal/main.c $(normal/main.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh normal > $@ || (rm -f $@; exit 1) + +normal_mod-normal_cmdline.o: normal/cmdline.c $(normal/cmdline.c_DEPENDENCIES) + $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"normal/cmdline.c\" -MD -c -o $@ $< +-include normal_mod-normal_cmdline.d + +clean-module-normal_mod-normal_cmdline-extra.1: + rm -f cmd-normal_mod-normal_cmdline.lst fs-normal_mod-normal_cmdline.lst partmap-normal_mod-normal_cmdline.lst handler-normal_mod-normal_cmdline.lst parttool-normal_mod-normal_cmdline.lst video-normal_mod-normal_cmdline.lst terminal-normal_mod-normal_cmdline.lst + +CLEAN_MODULE_TARGETS += clean-module-normal_mod-normal_cmdline-extra.1 + +COMMANDFILES += cmd-normal_mod-normal_cmdline.lst +FSFILES += fs-normal_mod-normal_cmdline.lst +PARTTOOLFILES += parttool-normal_mod-normal_cmdline.lst +PARTMAPFILES += partmap-normal_mod-normal_cmdline.lst +HANDLERFILES += handler-normal_mod-normal_cmdline.lst +TERMINALFILES += terminal-normal_mod-normal_cmdline.lst +VIDEOFILES += video-normal_mod-normal_cmdline.lst + +cmd-normal_mod-normal_cmdline.lst: normal/cmdline.c $(normal/cmdline.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-normal_mod-normal_cmdline.lst: normal/cmdline.c $(normal/cmdline.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + +parttool-normal_mod-normal_cmdline.lst: normal/cmdline.c $(normal/cmdline.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh normal > $@ || (rm -f $@; exit 1) + +partmap-normal_mod-normal_cmdline.lst: normal/cmdline.c $(normal/cmdline.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh normal > $@ || (rm -f $@; exit 1) + +handler-normal_mod-normal_cmdline.lst: normal/cmdline.c $(normal/cmdline.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh normal > $@ || (rm -f $@; exit 1) + +terminal-normal_mod-normal_cmdline.lst: normal/cmdline.c $(normal/cmdline.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh normal > $@ || (rm -f $@; exit 1) + +video-normal_mod-normal_cmdline.lst: normal/cmdline.c $(normal/cmdline.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh normal > $@ || (rm -f $@; exit 1) + +normal_mod-normal_dyncmd.o: normal/dyncmd.c $(normal/dyncmd.c_DEPENDENCIES) + $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"normal/dyncmd.c\" -MD -c -o $@ $< +-include normal_mod-normal_dyncmd.d + +clean-module-normal_mod-normal_dyncmd-extra.1: + rm -f cmd-normal_mod-normal_dyncmd.lst fs-normal_mod-normal_dyncmd.lst partmap-normal_mod-normal_dyncmd.lst handler-normal_mod-normal_dyncmd.lst parttool-normal_mod-normal_dyncmd.lst video-normal_mod-normal_dyncmd.lst terminal-normal_mod-normal_dyncmd.lst + +CLEAN_MODULE_TARGETS += clean-module-normal_mod-normal_dyncmd-extra.1 + +COMMANDFILES += cmd-normal_mod-normal_dyncmd.lst +FSFILES += fs-normal_mod-normal_dyncmd.lst +PARTTOOLFILES += parttool-normal_mod-normal_dyncmd.lst +PARTMAPFILES += partmap-normal_mod-normal_dyncmd.lst +HANDLERFILES += handler-normal_mod-normal_dyncmd.lst +TERMINALFILES += terminal-normal_mod-normal_dyncmd.lst +VIDEOFILES += video-normal_mod-normal_dyncmd.lst + +cmd-normal_mod-normal_dyncmd.lst: normal/dyncmd.c $(normal/dyncmd.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-normal_mod-normal_dyncmd.lst: normal/dyncmd.c $(normal/dyncmd.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + +parttool-normal_mod-normal_dyncmd.lst: normal/dyncmd.c $(normal/dyncmd.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh normal > $@ || (rm -f $@; exit 1) + +partmap-normal_mod-normal_dyncmd.lst: normal/dyncmd.c $(normal/dyncmd.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh normal > $@ || (rm -f $@; exit 1) + +handler-normal_mod-normal_dyncmd.lst: normal/dyncmd.c $(normal/dyncmd.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh normal > $@ || (rm -f $@; exit 1) + +terminal-normal_mod-normal_dyncmd.lst: normal/dyncmd.c $(normal/dyncmd.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh normal > $@ || (rm -f $@; exit 1) + +video-normal_mod-normal_dyncmd.lst: normal/dyncmd.c $(normal/dyncmd.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh normal > $@ || (rm -f $@; exit 1) + +normal_mod-normal_auth.o: normal/auth.c $(normal/auth.c_DEPENDENCIES) + $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"normal/auth.c\" -MD -c -o $@ $< +-include normal_mod-normal_auth.d + +clean-module-normal_mod-normal_auth-extra.1: + rm -f cmd-normal_mod-normal_auth.lst fs-normal_mod-normal_auth.lst partmap-normal_mod-normal_auth.lst handler-normal_mod-normal_auth.lst parttool-normal_mod-normal_auth.lst video-normal_mod-normal_auth.lst terminal-normal_mod-normal_auth.lst + +CLEAN_MODULE_TARGETS += clean-module-normal_mod-normal_auth-extra.1 + +COMMANDFILES += cmd-normal_mod-normal_auth.lst +FSFILES += fs-normal_mod-normal_auth.lst +PARTTOOLFILES += parttool-normal_mod-normal_auth.lst +PARTMAPFILES += partmap-normal_mod-normal_auth.lst +HANDLERFILES += handler-normal_mod-normal_auth.lst +TERMINALFILES += terminal-normal_mod-normal_auth.lst +VIDEOFILES += video-normal_mod-normal_auth.lst + +cmd-normal_mod-normal_auth.lst: normal/auth.c $(normal/auth.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-normal_mod-normal_auth.lst: normal/auth.c $(normal/auth.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + +parttool-normal_mod-normal_auth.lst: normal/auth.c $(normal/auth.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh normal > $@ || (rm -f $@; exit 1) + +partmap-normal_mod-normal_auth.lst: normal/auth.c $(normal/auth.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh normal > $@ || (rm -f $@; exit 1) + +handler-normal_mod-normal_auth.lst: normal/auth.c $(normal/auth.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh normal > $@ || (rm -f $@; exit 1) + +terminal-normal_mod-normal_auth.lst: normal/auth.c $(normal/auth.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh normal > $@ || (rm -f $@; exit 1) + +video-normal_mod-normal_auth.lst: normal/auth.c $(normal/auth.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh normal > $@ || (rm -f $@; exit 1) + +normal_mod-normal_autofs.o: normal/autofs.c $(normal/autofs.c_DEPENDENCIES) + $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"normal/autofs.c\" -MD -c -o $@ $< +-include normal_mod-normal_autofs.d + +clean-module-normal_mod-normal_autofs-extra.1: + rm -f cmd-normal_mod-normal_autofs.lst fs-normal_mod-normal_autofs.lst partmap-normal_mod-normal_autofs.lst handler-normal_mod-normal_autofs.lst parttool-normal_mod-normal_autofs.lst video-normal_mod-normal_autofs.lst terminal-normal_mod-normal_autofs.lst + +CLEAN_MODULE_TARGETS += clean-module-normal_mod-normal_autofs-extra.1 + +COMMANDFILES += cmd-normal_mod-normal_autofs.lst +FSFILES += fs-normal_mod-normal_autofs.lst +PARTTOOLFILES += parttool-normal_mod-normal_autofs.lst +PARTMAPFILES += partmap-normal_mod-normal_autofs.lst +HANDLERFILES += handler-normal_mod-normal_autofs.lst +TERMINALFILES += terminal-normal_mod-normal_autofs.lst +VIDEOFILES += video-normal_mod-normal_autofs.lst + +cmd-normal_mod-normal_autofs.lst: normal/autofs.c $(normal/autofs.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-normal_mod-normal_autofs.lst: normal/autofs.c $(normal/autofs.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + +parttool-normal_mod-normal_autofs.lst: normal/autofs.c $(normal/autofs.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh normal > $@ || (rm -f $@; exit 1) + +partmap-normal_mod-normal_autofs.lst: normal/autofs.c $(normal/autofs.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh normal > $@ || (rm -f $@; exit 1) + +handler-normal_mod-normal_autofs.lst: normal/autofs.c $(normal/autofs.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh normal > $@ || (rm -f $@; exit 1) + +terminal-normal_mod-normal_autofs.lst: normal/autofs.c $(normal/autofs.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh normal > $@ || (rm -f $@; exit 1) + +video-normal_mod-normal_autofs.lst: normal/autofs.c $(normal/autofs.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh normal > $@ || (rm -f $@; exit 1) + +normal_mod-normal_color.o: normal/color.c $(normal/color.c_DEPENDENCIES) + $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"normal/color.c\" -MD -c -o $@ $< +-include normal_mod-normal_color.d + +clean-module-normal_mod-normal_color-extra.1: + rm -f cmd-normal_mod-normal_color.lst fs-normal_mod-normal_color.lst partmap-normal_mod-normal_color.lst handler-normal_mod-normal_color.lst parttool-normal_mod-normal_color.lst video-normal_mod-normal_color.lst terminal-normal_mod-normal_color.lst + +CLEAN_MODULE_TARGETS += clean-module-normal_mod-normal_color-extra.1 + +COMMANDFILES += cmd-normal_mod-normal_color.lst +FSFILES += fs-normal_mod-normal_color.lst +PARTTOOLFILES += parttool-normal_mod-normal_color.lst +PARTMAPFILES += partmap-normal_mod-normal_color.lst +HANDLERFILES += handler-normal_mod-normal_color.lst +TERMINALFILES += terminal-normal_mod-normal_color.lst +VIDEOFILES += video-normal_mod-normal_color.lst + +cmd-normal_mod-normal_color.lst: normal/color.c $(normal/color.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-normal_mod-normal_color.lst: normal/color.c $(normal/color.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + +parttool-normal_mod-normal_color.lst: normal/color.c $(normal/color.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh normal > $@ || (rm -f $@; exit 1) + +partmap-normal_mod-normal_color.lst: normal/color.c $(normal/color.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh normal > $@ || (rm -f $@; exit 1) + +handler-normal_mod-normal_color.lst: normal/color.c $(normal/color.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh normal > $@ || (rm -f $@; exit 1) + +terminal-normal_mod-normal_color.lst: normal/color.c $(normal/color.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh normal > $@ || (rm -f $@; exit 1) + +video-normal_mod-normal_color.lst: normal/color.c $(normal/color.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh normal > $@ || (rm -f $@; exit 1) + +normal_mod-normal_completion.o: normal/completion.c $(normal/completion.c_DEPENDENCIES) + $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"normal/completion.c\" -MD -c -o $@ $< +-include normal_mod-normal_completion.d + +clean-module-normal_mod-normal_completion-extra.1: + rm -f cmd-normal_mod-normal_completion.lst fs-normal_mod-normal_completion.lst partmap-normal_mod-normal_completion.lst handler-normal_mod-normal_completion.lst parttool-normal_mod-normal_completion.lst video-normal_mod-normal_completion.lst terminal-normal_mod-normal_completion.lst + +CLEAN_MODULE_TARGETS += clean-module-normal_mod-normal_completion-extra.1 + +COMMANDFILES += cmd-normal_mod-normal_completion.lst +FSFILES += fs-normal_mod-normal_completion.lst +PARTTOOLFILES += parttool-normal_mod-normal_completion.lst +PARTMAPFILES += partmap-normal_mod-normal_completion.lst +HANDLERFILES += handler-normal_mod-normal_completion.lst +TERMINALFILES += terminal-normal_mod-normal_completion.lst +VIDEOFILES += video-normal_mod-normal_completion.lst + +cmd-normal_mod-normal_completion.lst: normal/completion.c $(normal/completion.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-normal_mod-normal_completion.lst: normal/completion.c $(normal/completion.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + +parttool-normal_mod-normal_completion.lst: normal/completion.c $(normal/completion.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh normal > $@ || (rm -f $@; exit 1) + +partmap-normal_mod-normal_completion.lst: normal/completion.c $(normal/completion.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh normal > $@ || (rm -f $@; exit 1) + +handler-normal_mod-normal_completion.lst: normal/completion.c $(normal/completion.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh normal > $@ || (rm -f $@; exit 1) + +terminal-normal_mod-normal_completion.lst: normal/completion.c $(normal/completion.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh normal > $@ || (rm -f $@; exit 1) + +video-normal_mod-normal_completion.lst: normal/completion.c $(normal/completion.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh normal > $@ || (rm -f $@; exit 1) + +normal_mod-normal_datetime.o: normal/datetime.c $(normal/datetime.c_DEPENDENCIES) + $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"normal/datetime.c\" -MD -c -o $@ $< +-include normal_mod-normal_datetime.d + +clean-module-normal_mod-normal_datetime-extra.1: + rm -f cmd-normal_mod-normal_datetime.lst fs-normal_mod-normal_datetime.lst partmap-normal_mod-normal_datetime.lst handler-normal_mod-normal_datetime.lst parttool-normal_mod-normal_datetime.lst video-normal_mod-normal_datetime.lst terminal-normal_mod-normal_datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-normal_mod-normal_datetime-extra.1 + +COMMANDFILES += cmd-normal_mod-normal_datetime.lst +FSFILES += fs-normal_mod-normal_datetime.lst +PARTTOOLFILES += parttool-normal_mod-normal_datetime.lst +PARTMAPFILES += partmap-normal_mod-normal_datetime.lst +HANDLERFILES += handler-normal_mod-normal_datetime.lst +TERMINALFILES += terminal-normal_mod-normal_datetime.lst +VIDEOFILES += video-normal_mod-normal_datetime.lst + +cmd-normal_mod-normal_datetime.lst: normal/datetime.c $(normal/datetime.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-normal_mod-normal_datetime.lst: normal/datetime.c $(normal/datetime.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + +parttool-normal_mod-normal_datetime.lst: normal/datetime.c $(normal/datetime.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh normal > $@ || (rm -f $@; exit 1) + +partmap-normal_mod-normal_datetime.lst: normal/datetime.c $(normal/datetime.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh normal > $@ || (rm -f $@; exit 1) + +handler-normal_mod-normal_datetime.lst: normal/datetime.c $(normal/datetime.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh normal > $@ || (rm -f $@; exit 1) + +terminal-normal_mod-normal_datetime.lst: normal/datetime.c $(normal/datetime.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh normal > $@ || (rm -f $@; exit 1) + +video-normal_mod-normal_datetime.lst: normal/datetime.c $(normal/datetime.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh normal > $@ || (rm -f $@; exit 1) + +normal_mod-normal_menu.o: normal/menu.c $(normal/menu.c_DEPENDENCIES) + $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"normal/menu.c\" -MD -c -o $@ $< +-include normal_mod-normal_menu.d + +clean-module-normal_mod-normal_menu-extra.1: + rm -f cmd-normal_mod-normal_menu.lst fs-normal_mod-normal_menu.lst partmap-normal_mod-normal_menu.lst handler-normal_mod-normal_menu.lst parttool-normal_mod-normal_menu.lst video-normal_mod-normal_menu.lst terminal-normal_mod-normal_menu.lst + +CLEAN_MODULE_TARGETS += clean-module-normal_mod-normal_menu-extra.1 + +COMMANDFILES += cmd-normal_mod-normal_menu.lst +FSFILES += fs-normal_mod-normal_menu.lst +PARTTOOLFILES += parttool-normal_mod-normal_menu.lst +PARTMAPFILES += partmap-normal_mod-normal_menu.lst +HANDLERFILES += handler-normal_mod-normal_menu.lst +TERMINALFILES += terminal-normal_mod-normal_menu.lst +VIDEOFILES += video-normal_mod-normal_menu.lst + +cmd-normal_mod-normal_menu.lst: normal/menu.c $(normal/menu.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-normal_mod-normal_menu.lst: normal/menu.c $(normal/menu.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + +parttool-normal_mod-normal_menu.lst: normal/menu.c $(normal/menu.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh normal > $@ || (rm -f $@; exit 1) + +partmap-normal_mod-normal_menu.lst: normal/menu.c $(normal/menu.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh normal > $@ || (rm -f $@; exit 1) + +handler-normal_mod-normal_menu.lst: normal/menu.c $(normal/menu.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh normal > $@ || (rm -f $@; exit 1) + +terminal-normal_mod-normal_menu.lst: normal/menu.c $(normal/menu.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh normal > $@ || (rm -f $@; exit 1) + +video-normal_mod-normal_menu.lst: normal/menu.c $(normal/menu.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh normal > $@ || (rm -f $@; exit 1) + +normal_mod-normal_menu_entry.o: normal/menu_entry.c $(normal/menu_entry.c_DEPENDENCIES) + $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"normal/menu_entry.c\" -MD -c -o $@ $< +-include normal_mod-normal_menu_entry.d + +clean-module-normal_mod-normal_menu_entry-extra.1: + rm -f cmd-normal_mod-normal_menu_entry.lst fs-normal_mod-normal_menu_entry.lst partmap-normal_mod-normal_menu_entry.lst handler-normal_mod-normal_menu_entry.lst parttool-normal_mod-normal_menu_entry.lst video-normal_mod-normal_menu_entry.lst terminal-normal_mod-normal_menu_entry.lst + +CLEAN_MODULE_TARGETS += clean-module-normal_mod-normal_menu_entry-extra.1 + +COMMANDFILES += cmd-normal_mod-normal_menu_entry.lst +FSFILES += fs-normal_mod-normal_menu_entry.lst +PARTTOOLFILES += parttool-normal_mod-normal_menu_entry.lst +PARTMAPFILES += partmap-normal_mod-normal_menu_entry.lst +HANDLERFILES += handler-normal_mod-normal_menu_entry.lst +TERMINALFILES += terminal-normal_mod-normal_menu_entry.lst +VIDEOFILES += video-normal_mod-normal_menu_entry.lst + +cmd-normal_mod-normal_menu_entry.lst: normal/menu_entry.c $(normal/menu_entry.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-normal_mod-normal_menu_entry.lst: normal/menu_entry.c $(normal/menu_entry.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + +parttool-normal_mod-normal_menu_entry.lst: normal/menu_entry.c $(normal/menu_entry.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh normal > $@ || (rm -f $@; exit 1) + +partmap-normal_mod-normal_menu_entry.lst: normal/menu_entry.c $(normal/menu_entry.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh normal > $@ || (rm -f $@; exit 1) + +handler-normal_mod-normal_menu_entry.lst: normal/menu_entry.c $(normal/menu_entry.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh normal > $@ || (rm -f $@; exit 1) + +terminal-normal_mod-normal_menu_entry.lst: normal/menu_entry.c $(normal/menu_entry.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh normal > $@ || (rm -f $@; exit 1) + +video-normal_mod-normal_menu_entry.lst: normal/menu_entry.c $(normal/menu_entry.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh normal > $@ || (rm -f $@; exit 1) + +normal_mod-normal_menu_text.o: normal/menu_text.c $(normal/menu_text.c_DEPENDENCIES) + $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"normal/menu_text.c\" -MD -c -o $@ $< +-include normal_mod-normal_menu_text.d + +clean-module-normal_mod-normal_menu_text-extra.1: + rm -f cmd-normal_mod-normal_menu_text.lst fs-normal_mod-normal_menu_text.lst partmap-normal_mod-normal_menu_text.lst handler-normal_mod-normal_menu_text.lst parttool-normal_mod-normal_menu_text.lst video-normal_mod-normal_menu_text.lst terminal-normal_mod-normal_menu_text.lst + +CLEAN_MODULE_TARGETS += clean-module-normal_mod-normal_menu_text-extra.1 + +COMMANDFILES += cmd-normal_mod-normal_menu_text.lst +FSFILES += fs-normal_mod-normal_menu_text.lst +PARTTOOLFILES += parttool-normal_mod-normal_menu_text.lst +PARTMAPFILES += partmap-normal_mod-normal_menu_text.lst +HANDLERFILES += handler-normal_mod-normal_menu_text.lst +TERMINALFILES += terminal-normal_mod-normal_menu_text.lst +VIDEOFILES += video-normal_mod-normal_menu_text.lst + +cmd-normal_mod-normal_menu_text.lst: normal/menu_text.c $(normal/menu_text.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-normal_mod-normal_menu_text.lst: normal/menu_text.c $(normal/menu_text.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + +parttool-normal_mod-normal_menu_text.lst: normal/menu_text.c $(normal/menu_text.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh normal > $@ || (rm -f $@; exit 1) + +partmap-normal_mod-normal_menu_text.lst: normal/menu_text.c $(normal/menu_text.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh normal > $@ || (rm -f $@; exit 1) + +handler-normal_mod-normal_menu_text.lst: normal/menu_text.c $(normal/menu_text.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh normal > $@ || (rm -f $@; exit 1) + +terminal-normal_mod-normal_menu_text.lst: normal/menu_text.c $(normal/menu_text.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh normal > $@ || (rm -f $@; exit 1) + +video-normal_mod-normal_menu_text.lst: normal/menu_text.c $(normal/menu_text.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh normal > $@ || (rm -f $@; exit 1) + +normal_mod-normal_charset.o: normal/charset.c $(normal/charset.c_DEPENDENCIES) + $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"normal/charset.c\" -MD -c -o $@ $< +-include normal_mod-normal_charset.d + +clean-module-normal_mod-normal_charset-extra.1: + rm -f cmd-normal_mod-normal_charset.lst fs-normal_mod-normal_charset.lst partmap-normal_mod-normal_charset.lst handler-normal_mod-normal_charset.lst parttool-normal_mod-normal_charset.lst video-normal_mod-normal_charset.lst terminal-normal_mod-normal_charset.lst + +CLEAN_MODULE_TARGETS += clean-module-normal_mod-normal_charset-extra.1 + +COMMANDFILES += cmd-normal_mod-normal_charset.lst +FSFILES += fs-normal_mod-normal_charset.lst +PARTTOOLFILES += parttool-normal_mod-normal_charset.lst +PARTMAPFILES += partmap-normal_mod-normal_charset.lst +HANDLERFILES += handler-normal_mod-normal_charset.lst +TERMINALFILES += terminal-normal_mod-normal_charset.lst +VIDEOFILES += video-normal_mod-normal_charset.lst + +cmd-normal_mod-normal_charset.lst: normal/charset.c $(normal/charset.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-normal_mod-normal_charset.lst: normal/charset.c $(normal/charset.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + +parttool-normal_mod-normal_charset.lst: normal/charset.c $(normal/charset.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh normal > $@ || (rm -f $@; exit 1) + +partmap-normal_mod-normal_charset.lst: normal/charset.c $(normal/charset.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh normal > $@ || (rm -f $@; exit 1) + +handler-normal_mod-normal_charset.lst: normal/charset.c $(normal/charset.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh normal > $@ || (rm -f $@; exit 1) + +terminal-normal_mod-normal_charset.lst: normal/charset.c $(normal/charset.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh normal > $@ || (rm -f $@; exit 1) + +video-normal_mod-normal_charset.lst: normal/charset.c $(normal/charset.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh normal > $@ || (rm -f $@; exit 1) + +normal_mod-normal_misc.o: normal/misc.c $(normal/misc.c_DEPENDENCIES) + $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"normal/misc.c\" -MD -c -o $@ $< +-include normal_mod-normal_misc.d + +clean-module-normal_mod-normal_misc-extra.1: + rm -f cmd-normal_mod-normal_misc.lst fs-normal_mod-normal_misc.lst partmap-normal_mod-normal_misc.lst handler-normal_mod-normal_misc.lst parttool-normal_mod-normal_misc.lst video-normal_mod-normal_misc.lst terminal-normal_mod-normal_misc.lst + +CLEAN_MODULE_TARGETS += clean-module-normal_mod-normal_misc-extra.1 + +COMMANDFILES += cmd-normal_mod-normal_misc.lst +FSFILES += fs-normal_mod-normal_misc.lst +PARTTOOLFILES += parttool-normal_mod-normal_misc.lst +PARTMAPFILES += partmap-normal_mod-normal_misc.lst +HANDLERFILES += handler-normal_mod-normal_misc.lst +TERMINALFILES += terminal-normal_mod-normal_misc.lst +VIDEOFILES += video-normal_mod-normal_misc.lst + +cmd-normal_mod-normal_misc.lst: normal/misc.c $(normal/misc.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-normal_mod-normal_misc.lst: normal/misc.c $(normal/misc.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + +parttool-normal_mod-normal_misc.lst: normal/misc.c $(normal/misc.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh normal > $@ || (rm -f $@; exit 1) + +partmap-normal_mod-normal_misc.lst: normal/misc.c $(normal/misc.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh normal > $@ || (rm -f $@; exit 1) + +handler-normal_mod-normal_misc.lst: normal/misc.c $(normal/misc.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh normal > $@ || (rm -f $@; exit 1) + +terminal-normal_mod-normal_misc.lst: normal/misc.c $(normal/misc.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh normal > $@ || (rm -f $@; exit 1) + +video-normal_mod-normal_misc.lst: normal/misc.c $(normal/misc.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh normal > $@ || (rm -f $@; exit 1) + +normal_mod-normal_crypto.o: normal/crypto.c $(normal/crypto.c_DEPENDENCIES) + $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"normal/crypto.c\" -MD -c -o $@ $< +-include normal_mod-normal_crypto.d + +clean-module-normal_mod-normal_crypto-extra.1: + rm -f cmd-normal_mod-normal_crypto.lst fs-normal_mod-normal_crypto.lst partmap-normal_mod-normal_crypto.lst handler-normal_mod-normal_crypto.lst parttool-normal_mod-normal_crypto.lst video-normal_mod-normal_crypto.lst terminal-normal_mod-normal_crypto.lst + +CLEAN_MODULE_TARGETS += clean-module-normal_mod-normal_crypto-extra.1 + +COMMANDFILES += cmd-normal_mod-normal_crypto.lst +FSFILES += fs-normal_mod-normal_crypto.lst +PARTTOOLFILES += parttool-normal_mod-normal_crypto.lst +PARTMAPFILES += partmap-normal_mod-normal_crypto.lst +HANDLERFILES += handler-normal_mod-normal_crypto.lst +TERMINALFILES += terminal-normal_mod-normal_crypto.lst +VIDEOFILES += video-normal_mod-normal_crypto.lst + +cmd-normal_mod-normal_crypto.lst: normal/crypto.c $(normal/crypto.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-normal_mod-normal_crypto.lst: normal/crypto.c $(normal/crypto.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + +parttool-normal_mod-normal_crypto.lst: normal/crypto.c $(normal/crypto.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh normal > $@ || (rm -f $@; exit 1) + +partmap-normal_mod-normal_crypto.lst: normal/crypto.c $(normal/crypto.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh normal > $@ || (rm -f $@; exit 1) + +handler-normal_mod-normal_crypto.lst: normal/crypto.c $(normal/crypto.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh normal > $@ || (rm -f $@; exit 1) + +terminal-normal_mod-normal_crypto.lst: normal/crypto.c $(normal/crypto.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh normal > $@ || (rm -f $@; exit 1) + +video-normal_mod-normal_crypto.lst: normal/crypto.c $(normal/crypto.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh normal > $@ || (rm -f $@; exit 1) + +normal_mod-normal_term.o: normal/term.c $(normal/term.c_DEPENDENCIES) + $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"normal/term.c\" -MD -c -o $@ $< +-include normal_mod-normal_term.d + +clean-module-normal_mod-normal_term-extra.1: + rm -f cmd-normal_mod-normal_term.lst fs-normal_mod-normal_term.lst partmap-normal_mod-normal_term.lst handler-normal_mod-normal_term.lst parttool-normal_mod-normal_term.lst video-normal_mod-normal_term.lst terminal-normal_mod-normal_term.lst + +CLEAN_MODULE_TARGETS += clean-module-normal_mod-normal_term-extra.1 + +COMMANDFILES += cmd-normal_mod-normal_term.lst +FSFILES += fs-normal_mod-normal_term.lst +PARTTOOLFILES += parttool-normal_mod-normal_term.lst +PARTMAPFILES += partmap-normal_mod-normal_term.lst +HANDLERFILES += handler-normal_mod-normal_term.lst +TERMINALFILES += terminal-normal_mod-normal_term.lst +VIDEOFILES += video-normal_mod-normal_term.lst + +cmd-normal_mod-normal_term.lst: normal/term.c $(normal/term.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-normal_mod-normal_term.lst: normal/term.c $(normal/term.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + +parttool-normal_mod-normal_term.lst: normal/term.c $(normal/term.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh normal > $@ || (rm -f $@; exit 1) + +partmap-normal_mod-normal_term.lst: normal/term.c $(normal/term.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh normal > $@ || (rm -f $@; exit 1) + +handler-normal_mod-normal_term.lst: normal/term.c $(normal/term.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh normal > $@ || (rm -f $@; exit 1) + +terminal-normal_mod-normal_term.lst: normal/term.c $(normal/term.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh normal > $@ || (rm -f $@; exit 1) + +video-normal_mod-normal_term.lst: normal/term.c $(normal/term.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh normal > $@ || (rm -f $@; exit 1) + +normal_mod-normal_context.o: normal/context.c $(normal/context.c_DEPENDENCIES) + $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"normal/context.c\" -MD -c -o $@ $< +-include normal_mod-normal_context.d + +clean-module-normal_mod-normal_context-extra.1: + rm -f cmd-normal_mod-normal_context.lst fs-normal_mod-normal_context.lst partmap-normal_mod-normal_context.lst handler-normal_mod-normal_context.lst parttool-normal_mod-normal_context.lst video-normal_mod-normal_context.lst terminal-normal_mod-normal_context.lst + +CLEAN_MODULE_TARGETS += clean-module-normal_mod-normal_context-extra.1 + +COMMANDFILES += cmd-normal_mod-normal_context.lst +FSFILES += fs-normal_mod-normal_context.lst +PARTTOOLFILES += parttool-normal_mod-normal_context.lst +PARTMAPFILES += partmap-normal_mod-normal_context.lst +HANDLERFILES += handler-normal_mod-normal_context.lst +TERMINALFILES += terminal-normal_mod-normal_context.lst +VIDEOFILES += video-normal_mod-normal_context.lst + +cmd-normal_mod-normal_context.lst: normal/context.c $(normal/context.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-normal_mod-normal_context.lst: normal/context.c $(normal/context.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + +parttool-normal_mod-normal_context.lst: normal/context.c $(normal/context.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh normal > $@ || (rm -f $@; exit 1) + +partmap-normal_mod-normal_context.lst: normal/context.c $(normal/context.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh normal > $@ || (rm -f $@; exit 1) + +handler-normal_mod-normal_context.lst: normal/context.c $(normal/context.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh normal > $@ || (rm -f $@; exit 1) + +terminal-normal_mod-normal_context.lst: normal/context.c $(normal/context.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh normal > $@ || (rm -f $@; exit 1) + +video-normal_mod-normal_context.lst: normal/context.c $(normal/context.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Inormal -I$(srcdir)/normal $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh normal > $@ || (rm -f $@; exit 1) + +normal_mod-script_main.o: script/main.c $(script/main.c_DEPENDENCIES) + $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"script/main.c\" -MD -c -o $@ $< +-include normal_mod-script_main.d + +clean-module-normal_mod-script_main-extra.1: + rm -f cmd-normal_mod-script_main.lst fs-normal_mod-script_main.lst partmap-normal_mod-script_main.lst handler-normal_mod-script_main.lst parttool-normal_mod-script_main.lst video-normal_mod-script_main.lst terminal-normal_mod-script_main.lst + +CLEAN_MODULE_TARGETS += clean-module-normal_mod-script_main-extra.1 + +COMMANDFILES += cmd-normal_mod-script_main.lst +FSFILES += fs-normal_mod-script_main.lst +PARTTOOLFILES += parttool-normal_mod-script_main.lst +PARTMAPFILES += partmap-normal_mod-script_main.lst +HANDLERFILES += handler-normal_mod-script_main.lst +TERMINALFILES += terminal-normal_mod-script_main.lst +VIDEOFILES += video-normal_mod-script_main.lst + +cmd-normal_mod-script_main.lst: script/main.c $(script/main.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-normal_mod-script_main.lst: script/main.c $(script/main.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + +parttool-normal_mod-script_main.lst: script/main.c $(script/main.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh normal > $@ || (rm -f $@; exit 1) + +partmap-normal_mod-script_main.lst: script/main.c $(script/main.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh normal > $@ || (rm -f $@; exit 1) + +handler-normal_mod-script_main.lst: script/main.c $(script/main.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh normal > $@ || (rm -f $@; exit 1) + +terminal-normal_mod-script_main.lst: script/main.c $(script/main.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh normal > $@ || (rm -f $@; exit 1) + +video-normal_mod-script_main.lst: script/main.c $(script/main.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh normal > $@ || (rm -f $@; exit 1) + +normal_mod-script_script.o: script/script.c $(script/script.c_DEPENDENCIES) + $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"script/script.c\" -MD -c -o $@ $< +-include normal_mod-script_script.d + +clean-module-normal_mod-script_script-extra.1: + rm -f cmd-normal_mod-script_script.lst fs-normal_mod-script_script.lst partmap-normal_mod-script_script.lst handler-normal_mod-script_script.lst parttool-normal_mod-script_script.lst video-normal_mod-script_script.lst terminal-normal_mod-script_script.lst + +CLEAN_MODULE_TARGETS += clean-module-normal_mod-script_script-extra.1 + +COMMANDFILES += cmd-normal_mod-script_script.lst +FSFILES += fs-normal_mod-script_script.lst +PARTTOOLFILES += parttool-normal_mod-script_script.lst +PARTMAPFILES += partmap-normal_mod-script_script.lst +HANDLERFILES += handler-normal_mod-script_script.lst +TERMINALFILES += terminal-normal_mod-script_script.lst +VIDEOFILES += video-normal_mod-script_script.lst + +cmd-normal_mod-script_script.lst: script/script.c $(script/script.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-normal_mod-script_script.lst: script/script.c $(script/script.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + +parttool-normal_mod-script_script.lst: script/script.c $(script/script.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh normal > $@ || (rm -f $@; exit 1) + +partmap-normal_mod-script_script.lst: script/script.c $(script/script.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh normal > $@ || (rm -f $@; exit 1) + +handler-normal_mod-script_script.lst: script/script.c $(script/script.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh normal > $@ || (rm -f $@; exit 1) + +terminal-normal_mod-script_script.lst: script/script.c $(script/script.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh normal > $@ || (rm -f $@; exit 1) + +video-normal_mod-script_script.lst: script/script.c $(script/script.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh normal > $@ || (rm -f $@; exit 1) + +normal_mod-script_execute.o: script/execute.c $(script/execute.c_DEPENDENCIES) + $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"script/execute.c\" -MD -c -o $@ $< +-include normal_mod-script_execute.d + +clean-module-normal_mod-script_execute-extra.1: + rm -f cmd-normal_mod-script_execute.lst fs-normal_mod-script_execute.lst partmap-normal_mod-script_execute.lst handler-normal_mod-script_execute.lst parttool-normal_mod-script_execute.lst video-normal_mod-script_execute.lst terminal-normal_mod-script_execute.lst + +CLEAN_MODULE_TARGETS += clean-module-normal_mod-script_execute-extra.1 + +COMMANDFILES += cmd-normal_mod-script_execute.lst +FSFILES += fs-normal_mod-script_execute.lst +PARTTOOLFILES += parttool-normal_mod-script_execute.lst +PARTMAPFILES += partmap-normal_mod-script_execute.lst +HANDLERFILES += handler-normal_mod-script_execute.lst +TERMINALFILES += terminal-normal_mod-script_execute.lst +VIDEOFILES += video-normal_mod-script_execute.lst + +cmd-normal_mod-script_execute.lst: script/execute.c $(script/execute.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-normal_mod-script_execute.lst: script/execute.c $(script/execute.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + +parttool-normal_mod-script_execute.lst: script/execute.c $(script/execute.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh normal > $@ || (rm -f $@; exit 1) + +partmap-normal_mod-script_execute.lst: script/execute.c $(script/execute.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh normal > $@ || (rm -f $@; exit 1) + +handler-normal_mod-script_execute.lst: script/execute.c $(script/execute.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh normal > $@ || (rm -f $@; exit 1) + +terminal-normal_mod-script_execute.lst: script/execute.c $(script/execute.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh normal > $@ || (rm -f $@; exit 1) + +video-normal_mod-script_execute.lst: script/execute.c $(script/execute.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh normal > $@ || (rm -f $@; exit 1) + +normal_mod-unidata.o: unidata.c $(unidata.c_DEPENDENCIES) + $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"unidata.c\" -MD -c -o $@ $< +-include normal_mod-unidata.d + +clean-module-normal_mod-unidata-extra.1: + rm -f cmd-normal_mod-unidata.lst fs-normal_mod-unidata.lst partmap-normal_mod-unidata.lst handler-normal_mod-unidata.lst parttool-normal_mod-unidata.lst video-normal_mod-unidata.lst terminal-normal_mod-unidata.lst + +CLEAN_MODULE_TARGETS += clean-module-normal_mod-unidata-extra.1 + +COMMANDFILES += cmd-normal_mod-unidata.lst +FSFILES += fs-normal_mod-unidata.lst +PARTTOOLFILES += parttool-normal_mod-unidata.lst +PARTMAPFILES += partmap-normal_mod-unidata.lst +HANDLERFILES += handler-normal_mod-unidata.lst +TERMINALFILES += terminal-normal_mod-unidata.lst +VIDEOFILES += video-normal_mod-unidata.lst + +cmd-normal_mod-unidata.lst: unidata.c $(unidata.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-normal_mod-unidata.lst: unidata.c $(unidata.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + +parttool-normal_mod-unidata.lst: unidata.c $(unidata.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh normal > $@ || (rm -f $@; exit 1) + +partmap-normal_mod-unidata.lst: unidata.c $(unidata.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh normal > $@ || (rm -f $@; exit 1) + +handler-normal_mod-unidata.lst: unidata.c $(unidata.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh normal > $@ || (rm -f $@; exit 1) + +terminal-normal_mod-unidata.lst: unidata.c $(unidata.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh normal > $@ || (rm -f $@; exit 1) + +video-normal_mod-unidata.lst: unidata.c $(unidata.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh normal > $@ || (rm -f $@; exit 1) + +normal_mod-script_function.o: script/function.c $(script/function.c_DEPENDENCIES) + $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"script/function.c\" -MD -c -o $@ $< +-include normal_mod-script_function.d + +clean-module-normal_mod-script_function-extra.1: + rm -f cmd-normal_mod-script_function.lst fs-normal_mod-script_function.lst partmap-normal_mod-script_function.lst handler-normal_mod-script_function.lst parttool-normal_mod-script_function.lst video-normal_mod-script_function.lst terminal-normal_mod-script_function.lst + +CLEAN_MODULE_TARGETS += clean-module-normal_mod-script_function-extra.1 + +COMMANDFILES += cmd-normal_mod-script_function.lst +FSFILES += fs-normal_mod-script_function.lst +PARTTOOLFILES += parttool-normal_mod-script_function.lst +PARTMAPFILES += partmap-normal_mod-script_function.lst +HANDLERFILES += handler-normal_mod-script_function.lst +TERMINALFILES += terminal-normal_mod-script_function.lst +VIDEOFILES += video-normal_mod-script_function.lst + +cmd-normal_mod-script_function.lst: script/function.c $(script/function.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-normal_mod-script_function.lst: script/function.c $(script/function.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + +parttool-normal_mod-script_function.lst: script/function.c $(script/function.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh normal > $@ || (rm -f $@; exit 1) + +partmap-normal_mod-script_function.lst: script/function.c $(script/function.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh normal > $@ || (rm -f $@; exit 1) + +handler-normal_mod-script_function.lst: script/function.c $(script/function.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh normal > $@ || (rm -f $@; exit 1) + +terminal-normal_mod-script_function.lst: script/function.c $(script/function.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh normal > $@ || (rm -f $@; exit 1) + +video-normal_mod-script_function.lst: script/function.c $(script/function.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh normal > $@ || (rm -f $@; exit 1) + +normal_mod-script_lexer.o: script/lexer.c $(script/lexer.c_DEPENDENCIES) + $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"script/lexer.c\" -MD -c -o $@ $< +-include normal_mod-script_lexer.d + +clean-module-normal_mod-script_lexer-extra.1: + rm -f cmd-normal_mod-script_lexer.lst fs-normal_mod-script_lexer.lst partmap-normal_mod-script_lexer.lst handler-normal_mod-script_lexer.lst parttool-normal_mod-script_lexer.lst video-normal_mod-script_lexer.lst terminal-normal_mod-script_lexer.lst + +CLEAN_MODULE_TARGETS += clean-module-normal_mod-script_lexer-extra.1 + +COMMANDFILES += cmd-normal_mod-script_lexer.lst +FSFILES += fs-normal_mod-script_lexer.lst +PARTTOOLFILES += parttool-normal_mod-script_lexer.lst +PARTMAPFILES += partmap-normal_mod-script_lexer.lst +HANDLERFILES += handler-normal_mod-script_lexer.lst +TERMINALFILES += terminal-normal_mod-script_lexer.lst +VIDEOFILES += video-normal_mod-script_lexer.lst + +cmd-normal_mod-script_lexer.lst: script/lexer.c $(script/lexer.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-normal_mod-script_lexer.lst: script/lexer.c $(script/lexer.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + +parttool-normal_mod-script_lexer.lst: script/lexer.c $(script/lexer.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh normal > $@ || (rm -f $@; exit 1) + +partmap-normal_mod-script_lexer.lst: script/lexer.c $(script/lexer.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh normal > $@ || (rm -f $@; exit 1) + +handler-normal_mod-script_lexer.lst: script/lexer.c $(script/lexer.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh normal > $@ || (rm -f $@; exit 1) + +terminal-normal_mod-script_lexer.lst: script/lexer.c $(script/lexer.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh normal > $@ || (rm -f $@; exit 1) + +video-normal_mod-script_lexer.lst: script/lexer.c $(script/lexer.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iscript -I$(srcdir)/script $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh normal > $@ || (rm -f $@; exit 1) + +normal_mod-grub_script_tab.o: grub_script.tab.c $(grub_script.tab.c_DEPENDENCIES) + $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"grub_script.tab.c\" -MD -c -o $@ $< +-include normal_mod-grub_script_tab.d + +clean-module-normal_mod-grub_script_tab-extra.1: + rm -f cmd-normal_mod-grub_script_tab.lst fs-normal_mod-grub_script_tab.lst partmap-normal_mod-grub_script_tab.lst handler-normal_mod-grub_script_tab.lst parttool-normal_mod-grub_script_tab.lst video-normal_mod-grub_script_tab.lst terminal-normal_mod-grub_script_tab.lst + +CLEAN_MODULE_TARGETS += clean-module-normal_mod-grub_script_tab-extra.1 + +COMMANDFILES += cmd-normal_mod-grub_script_tab.lst +FSFILES += fs-normal_mod-grub_script_tab.lst +PARTTOOLFILES += parttool-normal_mod-grub_script_tab.lst +PARTMAPFILES += partmap-normal_mod-grub_script_tab.lst +HANDLERFILES += handler-normal_mod-grub_script_tab.lst +TERMINALFILES += terminal-normal_mod-grub_script_tab.lst +VIDEOFILES += video-normal_mod-grub_script_tab.lst + +cmd-normal_mod-grub_script_tab.lst: grub_script.tab.c $(grub_script.tab.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-normal_mod-grub_script_tab.lst: grub_script.tab.c $(grub_script.tab.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + +parttool-normal_mod-grub_script_tab.lst: grub_script.tab.c $(grub_script.tab.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh normal > $@ || (rm -f $@; exit 1) + +partmap-normal_mod-grub_script_tab.lst: grub_script.tab.c $(grub_script.tab.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh normal > $@ || (rm -f $@; exit 1) + +handler-normal_mod-grub_script_tab.lst: grub_script.tab.c $(grub_script.tab.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh normal > $@ || (rm -f $@; exit 1) + +terminal-normal_mod-grub_script_tab.lst: grub_script.tab.c $(grub_script.tab.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh normal > $@ || (rm -f $@; exit 1) + +video-normal_mod-grub_script_tab.lst: grub_script.tab.c $(grub_script.tab.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh normal > $@ || (rm -f $@; exit 1) + +normal_mod-grub_script_yy.o: grub_script.yy.c $(grub_script.yy.c_DEPENDENCIES) + $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -DGRUB_FILE=\"grub_script.yy.c\" -MD -c -o $@ $< +-include normal_mod-grub_script_yy.d + +clean-module-normal_mod-grub_script_yy-extra.1: + rm -f cmd-normal_mod-grub_script_yy.lst fs-normal_mod-grub_script_yy.lst partmap-normal_mod-grub_script_yy.lst handler-normal_mod-grub_script_yy.lst parttool-normal_mod-grub_script_yy.lst video-normal_mod-grub_script_yy.lst terminal-normal_mod-grub_script_yy.lst + +CLEAN_MODULE_TARGETS += clean-module-normal_mod-grub_script_yy-extra.1 + +COMMANDFILES += cmd-normal_mod-grub_script_yy.lst +FSFILES += fs-normal_mod-grub_script_yy.lst +PARTTOOLFILES += parttool-normal_mod-grub_script_yy.lst +PARTMAPFILES += partmap-normal_mod-grub_script_yy.lst +HANDLERFILES += handler-normal_mod-grub_script_yy.lst +TERMINALFILES += terminal-normal_mod-grub_script_yy.lst +VIDEOFILES += video-normal_mod-grub_script_yy.lst + +cmd-normal_mod-grub_script_yy.lst: grub_script.yy.c $(grub_script.yy.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh normal > $@ || (rm -f $@; exit 1) + +fs-normal_mod-grub_script_yy.lst: grub_script.yy.c $(grub_script.yy.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh normal > $@ || (rm -f $@; exit 1) + +parttool-normal_mod-grub_script_yy.lst: grub_script.yy.c $(grub_script.yy.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh normal > $@ || (rm -f $@; exit 1) + +partmap-normal_mod-grub_script_yy.lst: grub_script.yy.c $(grub_script.yy.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh normal > $@ || (rm -f $@; exit 1) + +handler-normal_mod-grub_script_yy.lst: grub_script.yy.c $(grub_script.yy.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh normal > $@ || (rm -f $@; exit 1) + +terminal-normal_mod-grub_script_yy.lst: grub_script.yy.c $(grub_script.yy.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh normal > $@ || (rm -f $@; exit 1) + +video-normal_mod-grub_script_yy.lst: grub_script.yy.c $(grub_script.yy.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(normal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh normal > $@ || (rm -f $@; exit 1) + +normal_mod_CFLAGS = $(COMMON_CFLAGS) $(POSIX_CFLAGS) -Wno-error +normal_mod_LDFLAGS = $(COMMON_LDFLAGS) + +ifneq (, $(FONT_SOURCE)) +font/font.c_DEPENDENCIES = ascii.h +endif + +# Common Video Subsystem specific modules. +# On Yeeloong it's part of kernel +ifneq ($(platform), yeeloong) + +# For video.mod. +pkglib_MODULES += video.mod +video_mod_SOURCES = video/video.c + +clean-module-video.mod.1: + rm -f video.mod mod-video.o mod-video.c pre-video.o video_mod-video_video.o und-video.lst + +CLEAN_MODULE_TARGETS += clean-module-video.mod.1 + +clean-module-video.mod-symbol.1: + rm -f def-video.lst + +CLEAN_MODULE_TARGETS += clean-module-video.mod-symbol.1 +DEFSYMFILES += def-video.lst +mostlyclean-module-video.mod.1: + rm -f video_mod-video_video.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-video.mod.1 +UNDSYMFILES += und-video.lst + +ifeq ($(TARGET_NO_MODULES), yes) +video.mod: pre-video.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(video_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-video.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +video.mod: pre-video.o mod-video.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(video_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-video.o mod-video.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +video.mod: pre-video.o mod-video.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(video_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-video.o mod-video.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-video.o: $(video_mod_DEPENDENCIES) video_mod-video_video.o + -rm -f $@ + $(TARGET_CC) $(video_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ video_mod-video_video.o + +mod-video.o: mod-video.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_mod_CFLAGS) -DGRUB_FILE=\"mod-video.c\" -c -o $@ $< + +mod-video.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'video' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-video.lst: pre-video.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 video/' > $@ +else +def-video.lst: pre-video.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 video/' > $@ +endif + +und-video.lst: pre-video.o + echo 'video' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +video_mod-video_video.o: video/video.c $(video/video.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_mod_CFLAGS) -DGRUB_FILE=\"video/video.c\" -MD -c -o $@ $< +-include video_mod-video_video.d + +clean-module-video_mod-video_video-extra.1: + rm -f cmd-video_mod-video_video.lst fs-video_mod-video_video.lst partmap-video_mod-video_video.lst handler-video_mod-video_video.lst parttool-video_mod-video_video.lst video-video_mod-video_video.lst terminal-video_mod-video_video.lst + +CLEAN_MODULE_TARGETS += clean-module-video_mod-video_video-extra.1 + +COMMANDFILES += cmd-video_mod-video_video.lst +FSFILES += fs-video_mod-video_video.lst +PARTTOOLFILES += parttool-video_mod-video_video.lst +PARTMAPFILES += partmap-video_mod-video_video.lst +HANDLERFILES += handler-video_mod-video_video.lst +TERMINALFILES += terminal-video_mod-video_video.lst +VIDEOFILES += video-video_mod-video_video.lst + +cmd-video_mod-video_video.lst: video/video.c $(video/video.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh video > $@ || (rm -f $@; exit 1) + +fs-video_mod-video_video.lst: video/video.c $(video/video.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(video_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh video > $@ || (rm -f $@; exit 1) + +parttool-video_mod-video_video.lst: video/video.c $(video/video.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh video > $@ || (rm -f $@; exit 1) + +partmap-video_mod-video_video.lst: video/video.c $(video/video.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(video_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh video > $@ || (rm -f $@; exit 1) + +handler-video_mod-video_video.lst: video/video.c $(video/video.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh video > $@ || (rm -f $@; exit 1) + +terminal-video_mod-video_video.lst: video/video.c $(video/video.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh video > $@ || (rm -f $@; exit 1) + +video-video_mod-video_video.lst: video/video.c $(video/video.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(video_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh video > $@ || (rm -f $@; exit 1) + +video_mod_CFLAGS = $(COMMON_CFLAGS) +video_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += video_fb.mod +video_fb_mod_SOURCES = video/fb/video_fb.c video/fb/fbblit.c \ + video/fb/fbfill.c video/fb/fbutil.c + +clean-module-video_fb.mod.1: + rm -f video_fb.mod mod-video_fb.o mod-video_fb.c pre-video_fb.o video_fb_mod-video_fb_video_fb.o video_fb_mod-video_fb_fbblit.o video_fb_mod-video_fb_fbfill.o video_fb_mod-video_fb_fbutil.o und-video_fb.lst + +CLEAN_MODULE_TARGETS += clean-module-video_fb.mod.1 + +clean-module-video_fb.mod-symbol.1: + rm -f def-video_fb.lst + +CLEAN_MODULE_TARGETS += clean-module-video_fb.mod-symbol.1 +DEFSYMFILES += def-video_fb.lst +mostlyclean-module-video_fb.mod.1: + rm -f video_fb_mod-video_fb_video_fb.d video_fb_mod-video_fb_fbblit.d video_fb_mod-video_fb_fbfill.d video_fb_mod-video_fb_fbutil.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-video_fb.mod.1 +UNDSYMFILES += und-video_fb.lst + +ifeq ($(TARGET_NO_MODULES), yes) +video_fb.mod: pre-video_fb.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(video_fb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-video_fb.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +video_fb.mod: pre-video_fb.o mod-video_fb.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(video_fb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-video_fb.o mod-video_fb.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +video_fb.mod: pre-video_fb.o mod-video_fb.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(video_fb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-video_fb.o mod-video_fb.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-video_fb.o: $(video_fb_mod_DEPENDENCIES) video_fb_mod-video_fb_video_fb.o video_fb_mod-video_fb_fbblit.o video_fb_mod-video_fb_fbfill.o video_fb_mod-video_fb_fbutil.o + -rm -f $@ + $(TARGET_CC) $(video_fb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ video_fb_mod-video_fb_video_fb.o video_fb_mod-video_fb_fbblit.o video_fb_mod-video_fb_fbfill.o video_fb_mod-video_fb_fbutil.o + +mod-video_fb.o: mod-video_fb.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -DGRUB_FILE=\"mod-video_fb.c\" -c -o $@ $< + +mod-video_fb.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'video_fb' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-video_fb.lst: pre-video_fb.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 video_fb/' > $@ +else +def-video_fb.lst: pre-video_fb.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 video_fb/' > $@ +endif + +und-video_fb.lst: pre-video_fb.o + echo 'video_fb' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +video_fb_mod-video_fb_video_fb.o: video/fb/video_fb.c $(video/fb/video_fb.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -DGRUB_FILE=\"video/fb/video_fb.c\" -MD -c -o $@ $< +-include video_fb_mod-video_fb_video_fb.d + +clean-module-video_fb_mod-video_fb_video_fb-extra.1: + rm -f cmd-video_fb_mod-video_fb_video_fb.lst fs-video_fb_mod-video_fb_video_fb.lst partmap-video_fb_mod-video_fb_video_fb.lst handler-video_fb_mod-video_fb_video_fb.lst parttool-video_fb_mod-video_fb_video_fb.lst video-video_fb_mod-video_fb_video_fb.lst terminal-video_fb_mod-video_fb_video_fb.lst + +CLEAN_MODULE_TARGETS += clean-module-video_fb_mod-video_fb_video_fb-extra.1 + +COMMANDFILES += cmd-video_fb_mod-video_fb_video_fb.lst +FSFILES += fs-video_fb_mod-video_fb_video_fb.lst +PARTTOOLFILES += parttool-video_fb_mod-video_fb_video_fb.lst +PARTMAPFILES += partmap-video_fb_mod-video_fb_video_fb.lst +HANDLERFILES += handler-video_fb_mod-video_fb_video_fb.lst +TERMINALFILES += terminal-video_fb_mod-video_fb_video_fb.lst +VIDEOFILES += video-video_fb_mod-video_fb_video_fb.lst + +cmd-video_fb_mod-video_fb_video_fb.lst: video/fb/video_fb.c $(video/fb/video_fb.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh video_fb > $@ || (rm -f $@; exit 1) + +fs-video_fb_mod-video_fb_video_fb.lst: video/fb/video_fb.c $(video/fb/video_fb.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh video_fb > $@ || (rm -f $@; exit 1) + +parttool-video_fb_mod-video_fb_video_fb.lst: video/fb/video_fb.c $(video/fb/video_fb.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh video_fb > $@ || (rm -f $@; exit 1) + +partmap-video_fb_mod-video_fb_video_fb.lst: video/fb/video_fb.c $(video/fb/video_fb.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh video_fb > $@ || (rm -f $@; exit 1) + +handler-video_fb_mod-video_fb_video_fb.lst: video/fb/video_fb.c $(video/fb/video_fb.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh video_fb > $@ || (rm -f $@; exit 1) + +terminal-video_fb_mod-video_fb_video_fb.lst: video/fb/video_fb.c $(video/fb/video_fb.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh video_fb > $@ || (rm -f $@; exit 1) + +video-video_fb_mod-video_fb_video_fb.lst: video/fb/video_fb.c $(video/fb/video_fb.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh video_fb > $@ || (rm -f $@; exit 1) + +video_fb_mod-video_fb_fbblit.o: video/fb/fbblit.c $(video/fb/fbblit.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -DGRUB_FILE=\"video/fb/fbblit.c\" -MD -c -o $@ $< +-include video_fb_mod-video_fb_fbblit.d + +clean-module-video_fb_mod-video_fb_fbblit-extra.1: + rm -f cmd-video_fb_mod-video_fb_fbblit.lst fs-video_fb_mod-video_fb_fbblit.lst partmap-video_fb_mod-video_fb_fbblit.lst handler-video_fb_mod-video_fb_fbblit.lst parttool-video_fb_mod-video_fb_fbblit.lst video-video_fb_mod-video_fb_fbblit.lst terminal-video_fb_mod-video_fb_fbblit.lst + +CLEAN_MODULE_TARGETS += clean-module-video_fb_mod-video_fb_fbblit-extra.1 + +COMMANDFILES += cmd-video_fb_mod-video_fb_fbblit.lst +FSFILES += fs-video_fb_mod-video_fb_fbblit.lst +PARTTOOLFILES += parttool-video_fb_mod-video_fb_fbblit.lst +PARTMAPFILES += partmap-video_fb_mod-video_fb_fbblit.lst +HANDLERFILES += handler-video_fb_mod-video_fb_fbblit.lst +TERMINALFILES += terminal-video_fb_mod-video_fb_fbblit.lst +VIDEOFILES += video-video_fb_mod-video_fb_fbblit.lst + +cmd-video_fb_mod-video_fb_fbblit.lst: video/fb/fbblit.c $(video/fb/fbblit.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh video_fb > $@ || (rm -f $@; exit 1) + +fs-video_fb_mod-video_fb_fbblit.lst: video/fb/fbblit.c $(video/fb/fbblit.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh video_fb > $@ || (rm -f $@; exit 1) + +parttool-video_fb_mod-video_fb_fbblit.lst: video/fb/fbblit.c $(video/fb/fbblit.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh video_fb > $@ || (rm -f $@; exit 1) + +partmap-video_fb_mod-video_fb_fbblit.lst: video/fb/fbblit.c $(video/fb/fbblit.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh video_fb > $@ || (rm -f $@; exit 1) + +handler-video_fb_mod-video_fb_fbblit.lst: video/fb/fbblit.c $(video/fb/fbblit.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh video_fb > $@ || (rm -f $@; exit 1) + +terminal-video_fb_mod-video_fb_fbblit.lst: video/fb/fbblit.c $(video/fb/fbblit.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh video_fb > $@ || (rm -f $@; exit 1) + +video-video_fb_mod-video_fb_fbblit.lst: video/fb/fbblit.c $(video/fb/fbblit.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh video_fb > $@ || (rm -f $@; exit 1) + +video_fb_mod-video_fb_fbfill.o: video/fb/fbfill.c $(video/fb/fbfill.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -DGRUB_FILE=\"video/fb/fbfill.c\" -MD -c -o $@ $< +-include video_fb_mod-video_fb_fbfill.d + +clean-module-video_fb_mod-video_fb_fbfill-extra.1: + rm -f cmd-video_fb_mod-video_fb_fbfill.lst fs-video_fb_mod-video_fb_fbfill.lst partmap-video_fb_mod-video_fb_fbfill.lst handler-video_fb_mod-video_fb_fbfill.lst parttool-video_fb_mod-video_fb_fbfill.lst video-video_fb_mod-video_fb_fbfill.lst terminal-video_fb_mod-video_fb_fbfill.lst + +CLEAN_MODULE_TARGETS += clean-module-video_fb_mod-video_fb_fbfill-extra.1 + +COMMANDFILES += cmd-video_fb_mod-video_fb_fbfill.lst +FSFILES += fs-video_fb_mod-video_fb_fbfill.lst +PARTTOOLFILES += parttool-video_fb_mod-video_fb_fbfill.lst +PARTMAPFILES += partmap-video_fb_mod-video_fb_fbfill.lst +HANDLERFILES += handler-video_fb_mod-video_fb_fbfill.lst +TERMINALFILES += terminal-video_fb_mod-video_fb_fbfill.lst +VIDEOFILES += video-video_fb_mod-video_fb_fbfill.lst + +cmd-video_fb_mod-video_fb_fbfill.lst: video/fb/fbfill.c $(video/fb/fbfill.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh video_fb > $@ || (rm -f $@; exit 1) + +fs-video_fb_mod-video_fb_fbfill.lst: video/fb/fbfill.c $(video/fb/fbfill.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh video_fb > $@ || (rm -f $@; exit 1) + +parttool-video_fb_mod-video_fb_fbfill.lst: video/fb/fbfill.c $(video/fb/fbfill.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh video_fb > $@ || (rm -f $@; exit 1) + +partmap-video_fb_mod-video_fb_fbfill.lst: video/fb/fbfill.c $(video/fb/fbfill.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh video_fb > $@ || (rm -f $@; exit 1) + +handler-video_fb_mod-video_fb_fbfill.lst: video/fb/fbfill.c $(video/fb/fbfill.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh video_fb > $@ || (rm -f $@; exit 1) + +terminal-video_fb_mod-video_fb_fbfill.lst: video/fb/fbfill.c $(video/fb/fbfill.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh video_fb > $@ || (rm -f $@; exit 1) + +video-video_fb_mod-video_fb_fbfill.lst: video/fb/fbfill.c $(video/fb/fbfill.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh video_fb > $@ || (rm -f $@; exit 1) + +video_fb_mod-video_fb_fbutil.o: video/fb/fbutil.c $(video/fb/fbutil.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -DGRUB_FILE=\"video/fb/fbutil.c\" -MD -c -o $@ $< +-include video_fb_mod-video_fb_fbutil.d + +clean-module-video_fb_mod-video_fb_fbutil-extra.1: + rm -f cmd-video_fb_mod-video_fb_fbutil.lst fs-video_fb_mod-video_fb_fbutil.lst partmap-video_fb_mod-video_fb_fbutil.lst handler-video_fb_mod-video_fb_fbutil.lst parttool-video_fb_mod-video_fb_fbutil.lst video-video_fb_mod-video_fb_fbutil.lst terminal-video_fb_mod-video_fb_fbutil.lst + +CLEAN_MODULE_TARGETS += clean-module-video_fb_mod-video_fb_fbutil-extra.1 + +COMMANDFILES += cmd-video_fb_mod-video_fb_fbutil.lst +FSFILES += fs-video_fb_mod-video_fb_fbutil.lst +PARTTOOLFILES += parttool-video_fb_mod-video_fb_fbutil.lst +PARTMAPFILES += partmap-video_fb_mod-video_fb_fbutil.lst +HANDLERFILES += handler-video_fb_mod-video_fb_fbutil.lst +TERMINALFILES += terminal-video_fb_mod-video_fb_fbutil.lst +VIDEOFILES += video-video_fb_mod-video_fb_fbutil.lst + +cmd-video_fb_mod-video_fb_fbutil.lst: video/fb/fbutil.c $(video/fb/fbutil.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh video_fb > $@ || (rm -f $@; exit 1) + +fs-video_fb_mod-video_fb_fbutil.lst: video/fb/fbutil.c $(video/fb/fbutil.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh video_fb > $@ || (rm -f $@; exit 1) + +parttool-video_fb_mod-video_fb_fbutil.lst: video/fb/fbutil.c $(video/fb/fbutil.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh video_fb > $@ || (rm -f $@; exit 1) + +partmap-video_fb_mod-video_fb_fbutil.lst: video/fb/fbutil.c $(video/fb/fbutil.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh video_fb > $@ || (rm -f $@; exit 1) + +handler-video_fb_mod-video_fb_fbutil.lst: video/fb/fbutil.c $(video/fb/fbutil.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh video_fb > $@ || (rm -f $@; exit 1) + +terminal-video_fb_mod-video_fb_fbutil.lst: video/fb/fbutil.c $(video/fb/fbutil.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh video_fb > $@ || (rm -f $@; exit 1) + +video-video_fb_mod-video_fb_fbutil.lst: video/fb/fbutil.c $(video/fb/fbutil.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ivideo/fb -I$(srcdir)/video/fb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(video_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh video_fb > $@ || (rm -f $@; exit 1) + +video_fb_mod_CFLAGS = $(COMMON_CFLAGS) +video_fb_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For bitmap.mod +pkglib_MODULES += bitmap.mod +bitmap_mod_SOURCES = video/bitmap.c + +clean-module-bitmap.mod.1: + rm -f bitmap.mod mod-bitmap.o mod-bitmap.c pre-bitmap.o bitmap_mod-video_bitmap.o und-bitmap.lst + +CLEAN_MODULE_TARGETS += clean-module-bitmap.mod.1 + +clean-module-bitmap.mod-symbol.1: + rm -f def-bitmap.lst + +CLEAN_MODULE_TARGETS += clean-module-bitmap.mod-symbol.1 +DEFSYMFILES += def-bitmap.lst +mostlyclean-module-bitmap.mod.1: + rm -f bitmap_mod-video_bitmap.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-bitmap.mod.1 +UNDSYMFILES += und-bitmap.lst + +ifeq ($(TARGET_NO_MODULES), yes) +bitmap.mod: pre-bitmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(bitmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-bitmap.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +bitmap.mod: pre-bitmap.o mod-bitmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(bitmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-bitmap.o mod-bitmap.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +bitmap.mod: pre-bitmap.o mod-bitmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(bitmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-bitmap.o mod-bitmap.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-bitmap.o: $(bitmap_mod_DEPENDENCIES) bitmap_mod-video_bitmap.o + -rm -f $@ + $(TARGET_CC) $(bitmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ bitmap_mod-video_bitmap.o + +mod-bitmap.o: mod-bitmap.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bitmap_mod_CFLAGS) -DGRUB_FILE=\"mod-bitmap.c\" -c -o $@ $< + +mod-bitmap.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'bitmap' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-bitmap.lst: pre-bitmap.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 bitmap/' > $@ +else +def-bitmap.lst: pre-bitmap.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 bitmap/' > $@ +endif + +und-bitmap.lst: pre-bitmap.o + echo 'bitmap' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +bitmap_mod-video_bitmap.o: video/bitmap.c $(video/bitmap.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bitmap_mod_CFLAGS) -DGRUB_FILE=\"video/bitmap.c\" -MD -c -o $@ $< +-include bitmap_mod-video_bitmap.d + +clean-module-bitmap_mod-video_bitmap-extra.1: + rm -f cmd-bitmap_mod-video_bitmap.lst fs-bitmap_mod-video_bitmap.lst partmap-bitmap_mod-video_bitmap.lst handler-bitmap_mod-video_bitmap.lst parttool-bitmap_mod-video_bitmap.lst video-bitmap_mod-video_bitmap.lst terminal-bitmap_mod-video_bitmap.lst + +CLEAN_MODULE_TARGETS += clean-module-bitmap_mod-video_bitmap-extra.1 + +COMMANDFILES += cmd-bitmap_mod-video_bitmap.lst +FSFILES += fs-bitmap_mod-video_bitmap.lst +PARTTOOLFILES += parttool-bitmap_mod-video_bitmap.lst +PARTMAPFILES += partmap-bitmap_mod-video_bitmap.lst +HANDLERFILES += handler-bitmap_mod-video_bitmap.lst +TERMINALFILES += terminal-bitmap_mod-video_bitmap.lst +VIDEOFILES += video-bitmap_mod-video_bitmap.lst + +cmd-bitmap_mod-video_bitmap.lst: video/bitmap.c $(video/bitmap.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bitmap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh bitmap > $@ || (rm -f $@; exit 1) + +fs-bitmap_mod-video_bitmap.lst: video/bitmap.c $(video/bitmap.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bitmap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh bitmap > $@ || (rm -f $@; exit 1) + +parttool-bitmap_mod-video_bitmap.lst: video/bitmap.c $(video/bitmap.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bitmap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh bitmap > $@ || (rm -f $@; exit 1) + +partmap-bitmap_mod-video_bitmap.lst: video/bitmap.c $(video/bitmap.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bitmap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh bitmap > $@ || (rm -f $@; exit 1) + +handler-bitmap_mod-video_bitmap.lst: video/bitmap.c $(video/bitmap.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bitmap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh bitmap > $@ || (rm -f $@; exit 1) + +terminal-bitmap_mod-video_bitmap.lst: video/bitmap.c $(video/bitmap.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bitmap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh bitmap > $@ || (rm -f $@; exit 1) + +video-bitmap_mod-video_bitmap.lst: video/bitmap.c $(video/bitmap.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bitmap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh bitmap > $@ || (rm -f $@; exit 1) + +bitmap_mod_CFLAGS = $(COMMON_CFLAGS) +bitmap_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For bitmap_scale.mod +pkglib_MODULES += bitmap_scale.mod +bitmap_scale_mod_SOURCES = video/bitmap_scale.c + +clean-module-bitmap_scale.mod.1: + rm -f bitmap_scale.mod mod-bitmap_scale.o mod-bitmap_scale.c pre-bitmap_scale.o bitmap_scale_mod-video_bitmap_scale.o und-bitmap_scale.lst + +CLEAN_MODULE_TARGETS += clean-module-bitmap_scale.mod.1 + +clean-module-bitmap_scale.mod-symbol.1: + rm -f def-bitmap_scale.lst + +CLEAN_MODULE_TARGETS += clean-module-bitmap_scale.mod-symbol.1 +DEFSYMFILES += def-bitmap_scale.lst +mostlyclean-module-bitmap_scale.mod.1: + rm -f bitmap_scale_mod-video_bitmap_scale.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-bitmap_scale.mod.1 +UNDSYMFILES += und-bitmap_scale.lst + +ifeq ($(TARGET_NO_MODULES), yes) +bitmap_scale.mod: pre-bitmap_scale.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(bitmap_scale_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-bitmap_scale.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +bitmap_scale.mod: pre-bitmap_scale.o mod-bitmap_scale.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(bitmap_scale_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-bitmap_scale.o mod-bitmap_scale.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +bitmap_scale.mod: pre-bitmap_scale.o mod-bitmap_scale.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(bitmap_scale_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-bitmap_scale.o mod-bitmap_scale.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-bitmap_scale.o: $(bitmap_scale_mod_DEPENDENCIES) bitmap_scale_mod-video_bitmap_scale.o + -rm -f $@ + $(TARGET_CC) $(bitmap_scale_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ bitmap_scale_mod-video_bitmap_scale.o + +mod-bitmap_scale.o: mod-bitmap_scale.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bitmap_scale_mod_CFLAGS) -DGRUB_FILE=\"mod-bitmap_scale.c\" -c -o $@ $< + +mod-bitmap_scale.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'bitmap_scale' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-bitmap_scale.lst: pre-bitmap_scale.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 bitmap_scale/' > $@ +else +def-bitmap_scale.lst: pre-bitmap_scale.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 bitmap_scale/' > $@ +endif + +und-bitmap_scale.lst: pre-bitmap_scale.o + echo 'bitmap_scale' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +bitmap_scale_mod-video_bitmap_scale.o: video/bitmap_scale.c $(video/bitmap_scale.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bitmap_scale_mod_CFLAGS) -DGRUB_FILE=\"video/bitmap_scale.c\" -MD -c -o $@ $< +-include bitmap_scale_mod-video_bitmap_scale.d + +clean-module-bitmap_scale_mod-video_bitmap_scale-extra.1: + rm -f cmd-bitmap_scale_mod-video_bitmap_scale.lst fs-bitmap_scale_mod-video_bitmap_scale.lst partmap-bitmap_scale_mod-video_bitmap_scale.lst handler-bitmap_scale_mod-video_bitmap_scale.lst parttool-bitmap_scale_mod-video_bitmap_scale.lst video-bitmap_scale_mod-video_bitmap_scale.lst terminal-bitmap_scale_mod-video_bitmap_scale.lst + +CLEAN_MODULE_TARGETS += clean-module-bitmap_scale_mod-video_bitmap_scale-extra.1 + +COMMANDFILES += cmd-bitmap_scale_mod-video_bitmap_scale.lst +FSFILES += fs-bitmap_scale_mod-video_bitmap_scale.lst +PARTTOOLFILES += parttool-bitmap_scale_mod-video_bitmap_scale.lst +PARTMAPFILES += partmap-bitmap_scale_mod-video_bitmap_scale.lst +HANDLERFILES += handler-bitmap_scale_mod-video_bitmap_scale.lst +TERMINALFILES += terminal-bitmap_scale_mod-video_bitmap_scale.lst +VIDEOFILES += video-bitmap_scale_mod-video_bitmap_scale.lst + +cmd-bitmap_scale_mod-video_bitmap_scale.lst: video/bitmap_scale.c $(video/bitmap_scale.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bitmap_scale_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh bitmap_scale > $@ || (rm -f $@; exit 1) + +fs-bitmap_scale_mod-video_bitmap_scale.lst: video/bitmap_scale.c $(video/bitmap_scale.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bitmap_scale_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh bitmap_scale > $@ || (rm -f $@; exit 1) + +parttool-bitmap_scale_mod-video_bitmap_scale.lst: video/bitmap_scale.c $(video/bitmap_scale.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bitmap_scale_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh bitmap_scale > $@ || (rm -f $@; exit 1) + +partmap-bitmap_scale_mod-video_bitmap_scale.lst: video/bitmap_scale.c $(video/bitmap_scale.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bitmap_scale_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh bitmap_scale > $@ || (rm -f $@; exit 1) + +handler-bitmap_scale_mod-video_bitmap_scale.lst: video/bitmap_scale.c $(video/bitmap_scale.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bitmap_scale_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh bitmap_scale > $@ || (rm -f $@; exit 1) + +terminal-bitmap_scale_mod-video_bitmap_scale.lst: video/bitmap_scale.c $(video/bitmap_scale.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bitmap_scale_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh bitmap_scale > $@ || (rm -f $@; exit 1) + +video-bitmap_scale_mod-video_bitmap_scale.lst: video/bitmap_scale.c $(video/bitmap_scale.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bitmap_scale_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh bitmap_scale > $@ || (rm -f $@; exit 1) + +bitmap_scale_mod_CFLAGS = $(COMMON_CFLAGS) +bitmap_scale_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += font.mod +font_mod_SOURCES = font/font_cmd.c font/font.c + +clean-module-font.mod.1: + rm -f font.mod mod-font.o mod-font.c pre-font.o font_mod-font_font_cmd.o font_mod-font_font.o und-font.lst + +CLEAN_MODULE_TARGETS += clean-module-font.mod.1 + +clean-module-font.mod-symbol.1: + rm -f def-font.lst + +CLEAN_MODULE_TARGETS += clean-module-font.mod-symbol.1 +DEFSYMFILES += def-font.lst +mostlyclean-module-font.mod.1: + rm -f font_mod-font_font_cmd.d font_mod-font_font.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-font.mod.1 +UNDSYMFILES += und-font.lst + +ifeq ($(TARGET_NO_MODULES), yes) +font.mod: pre-font.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(font_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-font.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +font.mod: pre-font.o mod-font.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(font_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-font.o mod-font.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +font.mod: pre-font.o mod-font.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(font_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-font.o mod-font.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-font.o: $(font_mod_DEPENDENCIES) font_mod-font_font_cmd.o font_mod-font_font.o + -rm -f $@ + $(TARGET_CC) $(font_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ font_mod-font_font_cmd.o font_mod-font_font.o + +mod-font.o: mod-font.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(font_mod_CFLAGS) -DGRUB_FILE=\"mod-font.c\" -c -o $@ $< + +mod-font.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'font' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-font.lst: pre-font.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 font/' > $@ +else +def-font.lst: pre-font.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 font/' > $@ +endif + +und-font.lst: pre-font.o + echo 'font' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +font_mod-font_font_cmd.o: font/font_cmd.c $(font/font_cmd.c_DEPENDENCIES) + $(TARGET_CC) -Ifont -I$(srcdir)/font $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(font_mod_CFLAGS) -DGRUB_FILE=\"font/font_cmd.c\" -MD -c -o $@ $< +-include font_mod-font_font_cmd.d + +clean-module-font_mod-font_font_cmd-extra.1: + rm -f cmd-font_mod-font_font_cmd.lst fs-font_mod-font_font_cmd.lst partmap-font_mod-font_font_cmd.lst handler-font_mod-font_font_cmd.lst parttool-font_mod-font_font_cmd.lst video-font_mod-font_font_cmd.lst terminal-font_mod-font_font_cmd.lst + +CLEAN_MODULE_TARGETS += clean-module-font_mod-font_font_cmd-extra.1 + +COMMANDFILES += cmd-font_mod-font_font_cmd.lst +FSFILES += fs-font_mod-font_font_cmd.lst +PARTTOOLFILES += parttool-font_mod-font_font_cmd.lst +PARTMAPFILES += partmap-font_mod-font_font_cmd.lst +HANDLERFILES += handler-font_mod-font_font_cmd.lst +TERMINALFILES += terminal-font_mod-font_font_cmd.lst +VIDEOFILES += video-font_mod-font_font_cmd.lst + +cmd-font_mod-font_font_cmd.lst: font/font_cmd.c $(font/font_cmd.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifont -I$(srcdir)/font $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(font_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh font > $@ || (rm -f $@; exit 1) + +fs-font_mod-font_font_cmd.lst: font/font_cmd.c $(font/font_cmd.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifont -I$(srcdir)/font $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(font_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh font > $@ || (rm -f $@; exit 1) + +parttool-font_mod-font_font_cmd.lst: font/font_cmd.c $(font/font_cmd.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifont -I$(srcdir)/font $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(font_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh font > $@ || (rm -f $@; exit 1) + +partmap-font_mod-font_font_cmd.lst: font/font_cmd.c $(font/font_cmd.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifont -I$(srcdir)/font $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(font_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh font > $@ || (rm -f $@; exit 1) + +handler-font_mod-font_font_cmd.lst: font/font_cmd.c $(font/font_cmd.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifont -I$(srcdir)/font $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(font_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh font > $@ || (rm -f $@; exit 1) + +terminal-font_mod-font_font_cmd.lst: font/font_cmd.c $(font/font_cmd.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifont -I$(srcdir)/font $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(font_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh font > $@ || (rm -f $@; exit 1) + +video-font_mod-font_font_cmd.lst: font/font_cmd.c $(font/font_cmd.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifont -I$(srcdir)/font $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(font_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh font > $@ || (rm -f $@; exit 1) + +font_mod-font_font.o: font/font.c $(font/font.c_DEPENDENCIES) + $(TARGET_CC) -Ifont -I$(srcdir)/font $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(font_mod_CFLAGS) -DGRUB_FILE=\"font/font.c\" -MD -c -o $@ $< +-include font_mod-font_font.d + +clean-module-font_mod-font_font-extra.1: + rm -f cmd-font_mod-font_font.lst fs-font_mod-font_font.lst partmap-font_mod-font_font.lst handler-font_mod-font_font.lst parttool-font_mod-font_font.lst video-font_mod-font_font.lst terminal-font_mod-font_font.lst + +CLEAN_MODULE_TARGETS += clean-module-font_mod-font_font-extra.1 + +COMMANDFILES += cmd-font_mod-font_font.lst +FSFILES += fs-font_mod-font_font.lst +PARTTOOLFILES += parttool-font_mod-font_font.lst +PARTMAPFILES += partmap-font_mod-font_font.lst +HANDLERFILES += handler-font_mod-font_font.lst +TERMINALFILES += terminal-font_mod-font_font.lst +VIDEOFILES += video-font_mod-font_font.lst + +cmd-font_mod-font_font.lst: font/font.c $(font/font.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifont -I$(srcdir)/font $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(font_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh font > $@ || (rm -f $@; exit 1) + +fs-font_mod-font_font.lst: font/font.c $(font/font.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifont -I$(srcdir)/font $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(font_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh font > $@ || (rm -f $@; exit 1) + +parttool-font_mod-font_font.lst: font/font.c $(font/font.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifont -I$(srcdir)/font $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(font_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh font > $@ || (rm -f $@; exit 1) + +partmap-font_mod-font_font.lst: font/font.c $(font/font.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifont -I$(srcdir)/font $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(font_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh font > $@ || (rm -f $@; exit 1) + +handler-font_mod-font_font.lst: font/font.c $(font/font.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifont -I$(srcdir)/font $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(font_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh font > $@ || (rm -f $@; exit 1) + +terminal-font_mod-font_font.lst: font/font.c $(font/font.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifont -I$(srcdir)/font $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(font_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh font > $@ || (rm -f $@; exit 1) + +video-font_mod-font_font.lst: font/font.c $(font/font.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifont -I$(srcdir)/font $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(font_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh font > $@ || (rm -f $@; exit 1) + +font_mod_CFLAGS = $(COMMON_CFLAGS) +font_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For gfxterm.mod. +pkglib_MODULES += gfxterm.mod +gfxterm_mod_SOURCES = term/gfxterm.c + +clean-module-gfxterm.mod.1: + rm -f gfxterm.mod mod-gfxterm.o mod-gfxterm.c pre-gfxterm.o gfxterm_mod-term_gfxterm.o und-gfxterm.lst + +CLEAN_MODULE_TARGETS += clean-module-gfxterm.mod.1 + +clean-module-gfxterm.mod-symbol.1: + rm -f def-gfxterm.lst + +CLEAN_MODULE_TARGETS += clean-module-gfxterm.mod-symbol.1 +DEFSYMFILES += def-gfxterm.lst +mostlyclean-module-gfxterm.mod.1: + rm -f gfxterm_mod-term_gfxterm.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-gfxterm.mod.1 +UNDSYMFILES += und-gfxterm.lst + +ifeq ($(TARGET_NO_MODULES), yes) +gfxterm.mod: pre-gfxterm.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gfxterm_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gfxterm.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +gfxterm.mod: pre-gfxterm.o mod-gfxterm.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gfxterm_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gfxterm.o mod-gfxterm.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +gfxterm.mod: pre-gfxterm.o mod-gfxterm.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(gfxterm_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-gfxterm.o mod-gfxterm.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-gfxterm.o: $(gfxterm_mod_DEPENDENCIES) gfxterm_mod-term_gfxterm.o + -rm -f $@ + $(TARGET_CC) $(gfxterm_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ gfxterm_mod-term_gfxterm.o + +mod-gfxterm.o: mod-gfxterm.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxterm_mod_CFLAGS) -DGRUB_FILE=\"mod-gfxterm.c\" -c -o $@ $< + +mod-gfxterm.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gfxterm' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-gfxterm.lst: pre-gfxterm.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gfxterm/' > $@ +else +def-gfxterm.lst: pre-gfxterm.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 gfxterm/' > $@ +endif + +und-gfxterm.lst: pre-gfxterm.o + echo 'gfxterm' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gfxterm_mod-term_gfxterm.o: term/gfxterm.c $(term/gfxterm.c_DEPENDENCIES) + $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxterm_mod_CFLAGS) -DGRUB_FILE=\"term/gfxterm.c\" -MD -c -o $@ $< +-include gfxterm_mod-term_gfxterm.d + +clean-module-gfxterm_mod-term_gfxterm-extra.1: + rm -f cmd-gfxterm_mod-term_gfxterm.lst fs-gfxterm_mod-term_gfxterm.lst partmap-gfxterm_mod-term_gfxterm.lst handler-gfxterm_mod-term_gfxterm.lst parttool-gfxterm_mod-term_gfxterm.lst video-gfxterm_mod-term_gfxterm.lst terminal-gfxterm_mod-term_gfxterm.lst + +CLEAN_MODULE_TARGETS += clean-module-gfxterm_mod-term_gfxterm-extra.1 + +COMMANDFILES += cmd-gfxterm_mod-term_gfxterm.lst +FSFILES += fs-gfxterm_mod-term_gfxterm.lst +PARTTOOLFILES += parttool-gfxterm_mod-term_gfxterm.lst +PARTMAPFILES += partmap-gfxterm_mod-term_gfxterm.lst +HANDLERFILES += handler-gfxterm_mod-term_gfxterm.lst +TERMINALFILES += terminal-gfxterm_mod-term_gfxterm.lst +VIDEOFILES += video-gfxterm_mod-term_gfxterm.lst + +cmd-gfxterm_mod-term_gfxterm.lst: term/gfxterm.c $(term/gfxterm.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxterm_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gfxterm > $@ || (rm -f $@; exit 1) + +fs-gfxterm_mod-term_gfxterm.lst: term/gfxterm.c $(term/gfxterm.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxterm_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gfxterm > $@ || (rm -f $@; exit 1) + +parttool-gfxterm_mod-term_gfxterm.lst: term/gfxterm.c $(term/gfxterm.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxterm_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gfxterm > $@ || (rm -f $@; exit 1) + +partmap-gfxterm_mod-term_gfxterm.lst: term/gfxterm.c $(term/gfxterm.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxterm_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gfxterm > $@ || (rm -f $@; exit 1) + +handler-gfxterm_mod-term_gfxterm.lst: term/gfxterm.c $(term/gfxterm.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxterm_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gfxterm > $@ || (rm -f $@; exit 1) + +terminal-gfxterm_mod-term_gfxterm.lst: term/gfxterm.c $(term/gfxterm.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gfxterm_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gfxterm > $@ || (rm -f $@; exit 1) + +video-gfxterm_mod-term_gfxterm.lst: term/gfxterm.c $(term/gfxterm.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gfxterm_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gfxterm > $@ || (rm -f $@; exit 1) + +gfxterm_mod_CFLAGS = $(COMMON_CFLAGS) +gfxterm_mod_LDFLAGS = $(COMMON_LDFLAGS) + +endif + +# For videotest.mod. +pkglib_MODULES += videotest.mod +videotest_mod_SOURCES = commands/videotest.c + +clean-module-videotest.mod.1: + rm -f videotest.mod mod-videotest.o mod-videotest.c pre-videotest.o videotest_mod-commands_videotest.o und-videotest.lst + +CLEAN_MODULE_TARGETS += clean-module-videotest.mod.1 + +clean-module-videotest.mod-symbol.1: + rm -f def-videotest.lst + +CLEAN_MODULE_TARGETS += clean-module-videotest.mod-symbol.1 +DEFSYMFILES += def-videotest.lst +mostlyclean-module-videotest.mod.1: + rm -f videotest_mod-commands_videotest.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-videotest.mod.1 +UNDSYMFILES += und-videotest.lst + +ifeq ($(TARGET_NO_MODULES), yes) +videotest.mod: pre-videotest.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(videotest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-videotest.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +videotest.mod: pre-videotest.o mod-videotest.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(videotest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-videotest.o mod-videotest.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +videotest.mod: pre-videotest.o mod-videotest.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(videotest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-videotest.o mod-videotest.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-videotest.o: $(videotest_mod_DEPENDENCIES) videotest_mod-commands_videotest.o + -rm -f $@ + $(TARGET_CC) $(videotest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ videotest_mod-commands_videotest.o + +mod-videotest.o: mod-videotest.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(videotest_mod_CFLAGS) -DGRUB_FILE=\"mod-videotest.c\" -c -o $@ $< + +mod-videotest.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'videotest' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-videotest.lst: pre-videotest.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 videotest/' > $@ +else +def-videotest.lst: pre-videotest.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 videotest/' > $@ +endif + +und-videotest.lst: pre-videotest.o + echo 'videotest' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +videotest_mod-commands_videotest.o: commands/videotest.c $(commands/videotest.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(videotest_mod_CFLAGS) -DGRUB_FILE=\"commands/videotest.c\" -MD -c -o $@ $< +-include videotest_mod-commands_videotest.d + +clean-module-videotest_mod-commands_videotest-extra.1: + rm -f cmd-videotest_mod-commands_videotest.lst fs-videotest_mod-commands_videotest.lst partmap-videotest_mod-commands_videotest.lst handler-videotest_mod-commands_videotest.lst parttool-videotest_mod-commands_videotest.lst video-videotest_mod-commands_videotest.lst terminal-videotest_mod-commands_videotest.lst + +CLEAN_MODULE_TARGETS += clean-module-videotest_mod-commands_videotest-extra.1 + +COMMANDFILES += cmd-videotest_mod-commands_videotest.lst +FSFILES += fs-videotest_mod-commands_videotest.lst +PARTTOOLFILES += parttool-videotest_mod-commands_videotest.lst +PARTMAPFILES += partmap-videotest_mod-commands_videotest.lst +HANDLERFILES += handler-videotest_mod-commands_videotest.lst +TERMINALFILES += terminal-videotest_mod-commands_videotest.lst +VIDEOFILES += video-videotest_mod-commands_videotest.lst + +cmd-videotest_mod-commands_videotest.lst: commands/videotest.c $(commands/videotest.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(videotest_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh videotest > $@ || (rm -f $@; exit 1) + +fs-videotest_mod-commands_videotest.lst: commands/videotest.c $(commands/videotest.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(videotest_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh videotest > $@ || (rm -f $@; exit 1) + +parttool-videotest_mod-commands_videotest.lst: commands/videotest.c $(commands/videotest.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(videotest_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh videotest > $@ || (rm -f $@; exit 1) + +partmap-videotest_mod-commands_videotest.lst: commands/videotest.c $(commands/videotest.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(videotest_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh videotest > $@ || (rm -f $@; exit 1) + +handler-videotest_mod-commands_videotest.lst: commands/videotest.c $(commands/videotest.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(videotest_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh videotest > $@ || (rm -f $@; exit 1) + +terminal-videotest_mod-commands_videotest.lst: commands/videotest.c $(commands/videotest.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(videotest_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh videotest > $@ || (rm -f $@; exit 1) + +video-videotest_mod-commands_videotest.lst: commands/videotest.c $(commands/videotest.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(videotest_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh videotest > $@ || (rm -f $@; exit 1) + +videotest_mod_CFLAGS = $(COMMON_CFLAGS) +videotest_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For tga.mod +pkglib_MODULES += tga.mod +tga_mod_SOURCES = video/readers/tga.c + +clean-module-tga.mod.1: + rm -f tga.mod mod-tga.o mod-tga.c pre-tga.o tga_mod-video_readers_tga.o und-tga.lst + +CLEAN_MODULE_TARGETS += clean-module-tga.mod.1 + +clean-module-tga.mod-symbol.1: + rm -f def-tga.lst + +CLEAN_MODULE_TARGETS += clean-module-tga.mod-symbol.1 +DEFSYMFILES += def-tga.lst +mostlyclean-module-tga.mod.1: + rm -f tga_mod-video_readers_tga.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-tga.mod.1 +UNDSYMFILES += und-tga.lst + +ifeq ($(TARGET_NO_MODULES), yes) +tga.mod: pre-tga.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(tga_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-tga.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +tga.mod: pre-tga.o mod-tga.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(tga_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-tga.o mod-tga.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +tga.mod: pre-tga.o mod-tga.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(tga_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-tga.o mod-tga.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-tga.o: $(tga_mod_DEPENDENCIES) tga_mod-video_readers_tga.o + -rm -f $@ + $(TARGET_CC) $(tga_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ tga_mod-video_readers_tga.o + +mod-tga.o: mod-tga.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(tga_mod_CFLAGS) -DGRUB_FILE=\"mod-tga.c\" -c -o $@ $< + +mod-tga.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'tga' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-tga.lst: pre-tga.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 tga/' > $@ +else +def-tga.lst: pre-tga.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 tga/' > $@ +endif + +und-tga.lst: pre-tga.o + echo 'tga' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +tga_mod-video_readers_tga.o: video/readers/tga.c $(video/readers/tga.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo/readers -I$(srcdir)/video/readers $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(tga_mod_CFLAGS) -DGRUB_FILE=\"video/readers/tga.c\" -MD -c -o $@ $< +-include tga_mod-video_readers_tga.d + +clean-module-tga_mod-video_readers_tga-extra.1: + rm -f cmd-tga_mod-video_readers_tga.lst fs-tga_mod-video_readers_tga.lst partmap-tga_mod-video_readers_tga.lst handler-tga_mod-video_readers_tga.lst parttool-tga_mod-video_readers_tga.lst video-tga_mod-video_readers_tga.lst terminal-tga_mod-video_readers_tga.lst + +CLEAN_MODULE_TARGETS += clean-module-tga_mod-video_readers_tga-extra.1 + +COMMANDFILES += cmd-tga_mod-video_readers_tga.lst +FSFILES += fs-tga_mod-video_readers_tga.lst +PARTTOOLFILES += parttool-tga_mod-video_readers_tga.lst +PARTMAPFILES += partmap-tga_mod-video_readers_tga.lst +HANDLERFILES += handler-tga_mod-video_readers_tga.lst +TERMINALFILES += terminal-tga_mod-video_readers_tga.lst +VIDEOFILES += video-tga_mod-video_readers_tga.lst + +cmd-tga_mod-video_readers_tga.lst: video/readers/tga.c $(video/readers/tga.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ivideo/readers -I$(srcdir)/video/readers $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(tga_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh tga > $@ || (rm -f $@; exit 1) + +fs-tga_mod-video_readers_tga.lst: video/readers/tga.c $(video/readers/tga.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ivideo/readers -I$(srcdir)/video/readers $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(tga_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh tga > $@ || (rm -f $@; exit 1) + +parttool-tga_mod-video_readers_tga.lst: video/readers/tga.c $(video/readers/tga.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ivideo/readers -I$(srcdir)/video/readers $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(tga_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh tga > $@ || (rm -f $@; exit 1) + +partmap-tga_mod-video_readers_tga.lst: video/readers/tga.c $(video/readers/tga.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ivideo/readers -I$(srcdir)/video/readers $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(tga_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh tga > $@ || (rm -f $@; exit 1) + +handler-tga_mod-video_readers_tga.lst: video/readers/tga.c $(video/readers/tga.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ivideo/readers -I$(srcdir)/video/readers $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(tga_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh tga > $@ || (rm -f $@; exit 1) + +terminal-tga_mod-video_readers_tga.lst: video/readers/tga.c $(video/readers/tga.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ivideo/readers -I$(srcdir)/video/readers $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(tga_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh tga > $@ || (rm -f $@; exit 1) + +video-tga_mod-video_readers_tga.lst: video/readers/tga.c $(video/readers/tga.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ivideo/readers -I$(srcdir)/video/readers $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(tga_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh tga > $@ || (rm -f $@; exit 1) + +tga_mod_CFLAGS = $(COMMON_CFLAGS) +tga_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For jpeg.mod. +pkglib_MODULES += jpeg.mod +jpeg_mod_SOURCES = video/readers/jpeg.c + +clean-module-jpeg.mod.1: + rm -f jpeg.mod mod-jpeg.o mod-jpeg.c pre-jpeg.o jpeg_mod-video_readers_jpeg.o und-jpeg.lst + +CLEAN_MODULE_TARGETS += clean-module-jpeg.mod.1 + +clean-module-jpeg.mod-symbol.1: + rm -f def-jpeg.lst + +CLEAN_MODULE_TARGETS += clean-module-jpeg.mod-symbol.1 +DEFSYMFILES += def-jpeg.lst +mostlyclean-module-jpeg.mod.1: + rm -f jpeg_mod-video_readers_jpeg.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-jpeg.mod.1 +UNDSYMFILES += und-jpeg.lst + +ifeq ($(TARGET_NO_MODULES), yes) +jpeg.mod: pre-jpeg.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(jpeg_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-jpeg.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +jpeg.mod: pre-jpeg.o mod-jpeg.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(jpeg_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-jpeg.o mod-jpeg.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +jpeg.mod: pre-jpeg.o mod-jpeg.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(jpeg_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-jpeg.o mod-jpeg.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-jpeg.o: $(jpeg_mod_DEPENDENCIES) jpeg_mod-video_readers_jpeg.o + -rm -f $@ + $(TARGET_CC) $(jpeg_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ jpeg_mod-video_readers_jpeg.o + +mod-jpeg.o: mod-jpeg.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(jpeg_mod_CFLAGS) -DGRUB_FILE=\"mod-jpeg.c\" -c -o $@ $< + +mod-jpeg.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'jpeg' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-jpeg.lst: pre-jpeg.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 jpeg/' > $@ +else +def-jpeg.lst: pre-jpeg.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 jpeg/' > $@ +endif + +und-jpeg.lst: pre-jpeg.o + echo 'jpeg' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +jpeg_mod-video_readers_jpeg.o: video/readers/jpeg.c $(video/readers/jpeg.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo/readers -I$(srcdir)/video/readers $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(jpeg_mod_CFLAGS) -DGRUB_FILE=\"video/readers/jpeg.c\" -MD -c -o $@ $< +-include jpeg_mod-video_readers_jpeg.d + +clean-module-jpeg_mod-video_readers_jpeg-extra.1: + rm -f cmd-jpeg_mod-video_readers_jpeg.lst fs-jpeg_mod-video_readers_jpeg.lst partmap-jpeg_mod-video_readers_jpeg.lst handler-jpeg_mod-video_readers_jpeg.lst parttool-jpeg_mod-video_readers_jpeg.lst video-jpeg_mod-video_readers_jpeg.lst terminal-jpeg_mod-video_readers_jpeg.lst + +CLEAN_MODULE_TARGETS += clean-module-jpeg_mod-video_readers_jpeg-extra.1 + +COMMANDFILES += cmd-jpeg_mod-video_readers_jpeg.lst +FSFILES += fs-jpeg_mod-video_readers_jpeg.lst +PARTTOOLFILES += parttool-jpeg_mod-video_readers_jpeg.lst +PARTMAPFILES += partmap-jpeg_mod-video_readers_jpeg.lst +HANDLERFILES += handler-jpeg_mod-video_readers_jpeg.lst +TERMINALFILES += terminal-jpeg_mod-video_readers_jpeg.lst +VIDEOFILES += video-jpeg_mod-video_readers_jpeg.lst + +cmd-jpeg_mod-video_readers_jpeg.lst: video/readers/jpeg.c $(video/readers/jpeg.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ivideo/readers -I$(srcdir)/video/readers $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(jpeg_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh jpeg > $@ || (rm -f $@; exit 1) + +fs-jpeg_mod-video_readers_jpeg.lst: video/readers/jpeg.c $(video/readers/jpeg.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ivideo/readers -I$(srcdir)/video/readers $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(jpeg_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh jpeg > $@ || (rm -f $@; exit 1) + +parttool-jpeg_mod-video_readers_jpeg.lst: video/readers/jpeg.c $(video/readers/jpeg.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ivideo/readers -I$(srcdir)/video/readers $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(jpeg_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh jpeg > $@ || (rm -f $@; exit 1) + +partmap-jpeg_mod-video_readers_jpeg.lst: video/readers/jpeg.c $(video/readers/jpeg.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ivideo/readers -I$(srcdir)/video/readers $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(jpeg_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh jpeg > $@ || (rm -f $@; exit 1) + +handler-jpeg_mod-video_readers_jpeg.lst: video/readers/jpeg.c $(video/readers/jpeg.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ivideo/readers -I$(srcdir)/video/readers $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(jpeg_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh jpeg > $@ || (rm -f $@; exit 1) + +terminal-jpeg_mod-video_readers_jpeg.lst: video/readers/jpeg.c $(video/readers/jpeg.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ivideo/readers -I$(srcdir)/video/readers $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(jpeg_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh jpeg > $@ || (rm -f $@; exit 1) + +video-jpeg_mod-video_readers_jpeg.lst: video/readers/jpeg.c $(video/readers/jpeg.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ivideo/readers -I$(srcdir)/video/readers $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(jpeg_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh jpeg > $@ || (rm -f $@; exit 1) + +jpeg_mod_CFLAGS = $(COMMON_CFLAGS) +jpeg_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For png.mod. +pkglib_MODULES += png.mod +png_mod_SOURCES = video/readers/png.c + +clean-module-png.mod.1: + rm -f png.mod mod-png.o mod-png.c pre-png.o png_mod-video_readers_png.o und-png.lst + +CLEAN_MODULE_TARGETS += clean-module-png.mod.1 + +clean-module-png.mod-symbol.1: + rm -f def-png.lst + +CLEAN_MODULE_TARGETS += clean-module-png.mod-symbol.1 +DEFSYMFILES += def-png.lst +mostlyclean-module-png.mod.1: + rm -f png_mod-video_readers_png.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-png.mod.1 +UNDSYMFILES += und-png.lst + +ifeq ($(TARGET_NO_MODULES), yes) +png.mod: pre-png.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(png_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-png.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +png.mod: pre-png.o mod-png.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(png_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-png.o mod-png.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +png.mod: pre-png.o mod-png.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(png_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-png.o mod-png.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-png.o: $(png_mod_DEPENDENCIES) png_mod-video_readers_png.o + -rm -f $@ + $(TARGET_CC) $(png_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ png_mod-video_readers_png.o + +mod-png.o: mod-png.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(png_mod_CFLAGS) -DGRUB_FILE=\"mod-png.c\" -c -o $@ $< + +mod-png.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'png' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-png.lst: pre-png.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 png/' > $@ +else +def-png.lst: pre-png.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 png/' > $@ +endif + +und-png.lst: pre-png.o + echo 'png' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +png_mod-video_readers_png.o: video/readers/png.c $(video/readers/png.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo/readers -I$(srcdir)/video/readers $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(png_mod_CFLAGS) -DGRUB_FILE=\"video/readers/png.c\" -MD -c -o $@ $< +-include png_mod-video_readers_png.d + +clean-module-png_mod-video_readers_png-extra.1: + rm -f cmd-png_mod-video_readers_png.lst fs-png_mod-video_readers_png.lst partmap-png_mod-video_readers_png.lst handler-png_mod-video_readers_png.lst parttool-png_mod-video_readers_png.lst video-png_mod-video_readers_png.lst terminal-png_mod-video_readers_png.lst + +CLEAN_MODULE_TARGETS += clean-module-png_mod-video_readers_png-extra.1 + +COMMANDFILES += cmd-png_mod-video_readers_png.lst +FSFILES += fs-png_mod-video_readers_png.lst +PARTTOOLFILES += parttool-png_mod-video_readers_png.lst +PARTMAPFILES += partmap-png_mod-video_readers_png.lst +HANDLERFILES += handler-png_mod-video_readers_png.lst +TERMINALFILES += terminal-png_mod-video_readers_png.lst +VIDEOFILES += video-png_mod-video_readers_png.lst + +cmd-png_mod-video_readers_png.lst: video/readers/png.c $(video/readers/png.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ivideo/readers -I$(srcdir)/video/readers $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(png_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh png > $@ || (rm -f $@; exit 1) + +fs-png_mod-video_readers_png.lst: video/readers/png.c $(video/readers/png.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ivideo/readers -I$(srcdir)/video/readers $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(png_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh png > $@ || (rm -f $@; exit 1) + +parttool-png_mod-video_readers_png.lst: video/readers/png.c $(video/readers/png.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ivideo/readers -I$(srcdir)/video/readers $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(png_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh png > $@ || (rm -f $@; exit 1) + +partmap-png_mod-video_readers_png.lst: video/readers/png.c $(video/readers/png.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ivideo/readers -I$(srcdir)/video/readers $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(png_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh png > $@ || (rm -f $@; exit 1) + +handler-png_mod-video_readers_png.lst: video/readers/png.c $(video/readers/png.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ivideo/readers -I$(srcdir)/video/readers $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(png_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh png > $@ || (rm -f $@; exit 1) + +terminal-png_mod-video_readers_png.lst: video/readers/png.c $(video/readers/png.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ivideo/readers -I$(srcdir)/video/readers $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(png_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh png > $@ || (rm -f $@; exit 1) + +video-png_mod-video_readers_png.lst: video/readers/png.c $(video/readers/png.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ivideo/readers -I$(srcdir)/video/readers $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(png_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh png > $@ || (rm -f $@; exit 1) + +png_mod_CFLAGS = $(COMMON_CFLAGS) +png_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# Misc. +pkglib_MODULES += gzio.mod elf.mod + +# For elf.mod. +elf_mod_SOURCES = kern/elf.c + +clean-module-elf.mod.1: + rm -f elf.mod mod-elf.o mod-elf.c pre-elf.o elf_mod-kern_elf.o und-elf.lst + +CLEAN_MODULE_TARGETS += clean-module-elf.mod.1 + +clean-module-elf.mod-symbol.1: + rm -f def-elf.lst + +CLEAN_MODULE_TARGETS += clean-module-elf.mod-symbol.1 +DEFSYMFILES += def-elf.lst +mostlyclean-module-elf.mod.1: + rm -f elf_mod-kern_elf.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-elf.mod.1 +UNDSYMFILES += und-elf.lst + +ifeq ($(TARGET_NO_MODULES), yes) +elf.mod: pre-elf.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(elf_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-elf.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +elf.mod: pre-elf.o mod-elf.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(elf_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-elf.o mod-elf.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +elf.mod: pre-elf.o mod-elf.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(elf_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-elf.o mod-elf.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-elf.o: $(elf_mod_DEPENDENCIES) elf_mod-kern_elf.o + -rm -f $@ + $(TARGET_CC) $(elf_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ elf_mod-kern_elf.o + +mod-elf.o: mod-elf.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(elf_mod_CFLAGS) -DGRUB_FILE=\"mod-elf.c\" -c -o $@ $< + +mod-elf.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'elf' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-elf.lst: pre-elf.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 elf/' > $@ +else +def-elf.lst: pre-elf.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 elf/' > $@ +endif + +und-elf.lst: pre-elf.o + echo 'elf' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +elf_mod-kern_elf.o: kern/elf.c $(kern/elf.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(elf_mod_CFLAGS) -DGRUB_FILE=\"kern/elf.c\" -MD -c -o $@ $< +-include elf_mod-kern_elf.d + +clean-module-elf_mod-kern_elf-extra.1: + rm -f cmd-elf_mod-kern_elf.lst fs-elf_mod-kern_elf.lst partmap-elf_mod-kern_elf.lst handler-elf_mod-kern_elf.lst parttool-elf_mod-kern_elf.lst video-elf_mod-kern_elf.lst terminal-elf_mod-kern_elf.lst + +CLEAN_MODULE_TARGETS += clean-module-elf_mod-kern_elf-extra.1 + +COMMANDFILES += cmd-elf_mod-kern_elf.lst +FSFILES += fs-elf_mod-kern_elf.lst +PARTTOOLFILES += parttool-elf_mod-kern_elf.lst +PARTMAPFILES += partmap-elf_mod-kern_elf.lst +HANDLERFILES += handler-elf_mod-kern_elf.lst +TERMINALFILES += terminal-elf_mod-kern_elf.lst +VIDEOFILES += video-elf_mod-kern_elf.lst + +cmd-elf_mod-kern_elf.lst: kern/elf.c $(kern/elf.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(elf_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh elf > $@ || (rm -f $@; exit 1) + +fs-elf_mod-kern_elf.lst: kern/elf.c $(kern/elf.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(elf_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh elf > $@ || (rm -f $@; exit 1) + +parttool-elf_mod-kern_elf.lst: kern/elf.c $(kern/elf.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(elf_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh elf > $@ || (rm -f $@; exit 1) + +partmap-elf_mod-kern_elf.lst: kern/elf.c $(kern/elf.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(elf_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh elf > $@ || (rm -f $@; exit 1) + +handler-elf_mod-kern_elf.lst: kern/elf.c $(kern/elf.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(elf_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh elf > $@ || (rm -f $@; exit 1) + +terminal-elf_mod-kern_elf.lst: kern/elf.c $(kern/elf.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(elf_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh elf > $@ || (rm -f $@; exit 1) + +video-elf_mod-kern_elf.lst: kern/elf.c $(kern/elf.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(elf_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh elf > $@ || (rm -f $@; exit 1) + +elf_mod_CFLAGS = $(COMMON_CFLAGS) +elf_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For gzio.mod. +gzio_mod_SOURCES = io/gzio.c + +clean-module-gzio.mod.1: + rm -f gzio.mod mod-gzio.o mod-gzio.c pre-gzio.o gzio_mod-io_gzio.o und-gzio.lst + +CLEAN_MODULE_TARGETS += clean-module-gzio.mod.1 + +clean-module-gzio.mod-symbol.1: + rm -f def-gzio.lst + +CLEAN_MODULE_TARGETS += clean-module-gzio.mod-symbol.1 +DEFSYMFILES += def-gzio.lst +mostlyclean-module-gzio.mod.1: + rm -f gzio_mod-io_gzio.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-gzio.mod.1 +UNDSYMFILES += und-gzio.lst + +ifeq ($(TARGET_NO_MODULES), yes) +gzio.mod: pre-gzio.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gzio_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gzio.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +gzio.mod: pre-gzio.o mod-gzio.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gzio_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gzio.o mod-gzio.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +gzio.mod: pre-gzio.o mod-gzio.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(gzio_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-gzio.o mod-gzio.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-gzio.o: $(gzio_mod_DEPENDENCIES) gzio_mod-io_gzio.o + -rm -f $@ + $(TARGET_CC) $(gzio_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ gzio_mod-io_gzio.o + +mod-gzio.o: mod-gzio.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gzio_mod_CFLAGS) -DGRUB_FILE=\"mod-gzio.c\" -c -o $@ $< + +mod-gzio.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gzio' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-gzio.lst: pre-gzio.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gzio/' > $@ +else +def-gzio.lst: pre-gzio.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 gzio/' > $@ +endif + +und-gzio.lst: pre-gzio.o + echo 'gzio' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gzio_mod-io_gzio.o: io/gzio.c $(io/gzio.c_DEPENDENCIES) + $(TARGET_CC) -Iio -I$(srcdir)/io $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gzio_mod_CFLAGS) -DGRUB_FILE=\"io/gzio.c\" -MD -c -o $@ $< +-include gzio_mod-io_gzio.d + +clean-module-gzio_mod-io_gzio-extra.1: + rm -f cmd-gzio_mod-io_gzio.lst fs-gzio_mod-io_gzio.lst partmap-gzio_mod-io_gzio.lst handler-gzio_mod-io_gzio.lst parttool-gzio_mod-io_gzio.lst video-gzio_mod-io_gzio.lst terminal-gzio_mod-io_gzio.lst + +CLEAN_MODULE_TARGETS += clean-module-gzio_mod-io_gzio-extra.1 + +COMMANDFILES += cmd-gzio_mod-io_gzio.lst +FSFILES += fs-gzio_mod-io_gzio.lst +PARTTOOLFILES += parttool-gzio_mod-io_gzio.lst +PARTMAPFILES += partmap-gzio_mod-io_gzio.lst +HANDLERFILES += handler-gzio_mod-io_gzio.lst +TERMINALFILES += terminal-gzio_mod-io_gzio.lst +VIDEOFILES += video-gzio_mod-io_gzio.lst + +cmd-gzio_mod-io_gzio.lst: io/gzio.c $(io/gzio.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iio -I$(srcdir)/io $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gzio_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gzio > $@ || (rm -f $@; exit 1) + +fs-gzio_mod-io_gzio.lst: io/gzio.c $(io/gzio.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iio -I$(srcdir)/io $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gzio_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gzio > $@ || (rm -f $@; exit 1) + +parttool-gzio_mod-io_gzio.lst: io/gzio.c $(io/gzio.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iio -I$(srcdir)/io $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gzio_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gzio > $@ || (rm -f $@; exit 1) + +partmap-gzio_mod-io_gzio.lst: io/gzio.c $(io/gzio.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iio -I$(srcdir)/io $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gzio_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gzio > $@ || (rm -f $@; exit 1) + +handler-gzio_mod-io_gzio.lst: io/gzio.c $(io/gzio.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iio -I$(srcdir)/io $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gzio_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gzio > $@ || (rm -f $@; exit 1) + +terminal-gzio_mod-io_gzio.lst: io/gzio.c $(io/gzio.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iio -I$(srcdir)/io $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gzio_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gzio > $@ || (rm -f $@; exit 1) + +video-gzio_mod-io_gzio.lst: io/gzio.c $(io/gzio.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iio -I$(srcdir)/io $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gzio_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gzio > $@ || (rm -f $@; exit 1) + +gzio_mod_CFLAGS = $(COMMON_CFLAGS) +gzio_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# On Yeeloong it's part of kernel +ifneq ($(platform), yeeloong) +# For bufio.mod. +pkglib_MODULES += bufio.mod +bufio_mod_SOURCES = io/bufio.c + +clean-module-bufio.mod.1: + rm -f bufio.mod mod-bufio.o mod-bufio.c pre-bufio.o bufio_mod-io_bufio.o und-bufio.lst + +CLEAN_MODULE_TARGETS += clean-module-bufio.mod.1 + +clean-module-bufio.mod-symbol.1: + rm -f def-bufio.lst + +CLEAN_MODULE_TARGETS += clean-module-bufio.mod-symbol.1 +DEFSYMFILES += def-bufio.lst +mostlyclean-module-bufio.mod.1: + rm -f bufio_mod-io_bufio.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-bufio.mod.1 +UNDSYMFILES += und-bufio.lst + +ifeq ($(TARGET_NO_MODULES), yes) +bufio.mod: pre-bufio.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(bufio_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-bufio.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +bufio.mod: pre-bufio.o mod-bufio.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(bufio_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-bufio.o mod-bufio.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +bufio.mod: pre-bufio.o mod-bufio.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(bufio_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-bufio.o mod-bufio.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-bufio.o: $(bufio_mod_DEPENDENCIES) bufio_mod-io_bufio.o + -rm -f $@ + $(TARGET_CC) $(bufio_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ bufio_mod-io_bufio.o + +mod-bufio.o: mod-bufio.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bufio_mod_CFLAGS) -DGRUB_FILE=\"mod-bufio.c\" -c -o $@ $< + +mod-bufio.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'bufio' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-bufio.lst: pre-bufio.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 bufio/' > $@ +else +def-bufio.lst: pre-bufio.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 bufio/' > $@ +endif + +und-bufio.lst: pre-bufio.o + echo 'bufio' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +bufio_mod-io_bufio.o: io/bufio.c $(io/bufio.c_DEPENDENCIES) + $(TARGET_CC) -Iio -I$(srcdir)/io $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bufio_mod_CFLAGS) -DGRUB_FILE=\"io/bufio.c\" -MD -c -o $@ $< +-include bufio_mod-io_bufio.d + +clean-module-bufio_mod-io_bufio-extra.1: + rm -f cmd-bufio_mod-io_bufio.lst fs-bufio_mod-io_bufio.lst partmap-bufio_mod-io_bufio.lst handler-bufio_mod-io_bufio.lst parttool-bufio_mod-io_bufio.lst video-bufio_mod-io_bufio.lst terminal-bufio_mod-io_bufio.lst + +CLEAN_MODULE_TARGETS += clean-module-bufio_mod-io_bufio-extra.1 + +COMMANDFILES += cmd-bufio_mod-io_bufio.lst +FSFILES += fs-bufio_mod-io_bufio.lst +PARTTOOLFILES += parttool-bufio_mod-io_bufio.lst +PARTMAPFILES += partmap-bufio_mod-io_bufio.lst +HANDLERFILES += handler-bufio_mod-io_bufio.lst +TERMINALFILES += terminal-bufio_mod-io_bufio.lst +VIDEOFILES += video-bufio_mod-io_bufio.lst + +cmd-bufio_mod-io_bufio.lst: io/bufio.c $(io/bufio.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iio -I$(srcdir)/io $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bufio_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh bufio > $@ || (rm -f $@; exit 1) + +fs-bufio_mod-io_bufio.lst: io/bufio.c $(io/bufio.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iio -I$(srcdir)/io $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bufio_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh bufio > $@ || (rm -f $@; exit 1) + +parttool-bufio_mod-io_bufio.lst: io/bufio.c $(io/bufio.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iio -I$(srcdir)/io $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bufio_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh bufio > $@ || (rm -f $@; exit 1) + +partmap-bufio_mod-io_bufio.lst: io/bufio.c $(io/bufio.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iio -I$(srcdir)/io $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bufio_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh bufio > $@ || (rm -f $@; exit 1) + +handler-bufio_mod-io_bufio.lst: io/bufio.c $(io/bufio.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iio -I$(srcdir)/io $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bufio_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh bufio > $@ || (rm -f $@; exit 1) + +terminal-bufio_mod-io_bufio.lst: io/bufio.c $(io/bufio.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iio -I$(srcdir)/io $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bufio_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh bufio > $@ || (rm -f $@; exit 1) + +video-bufio_mod-io_bufio.lst: io/bufio.c $(io/bufio.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iio -I$(srcdir)/io $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bufio_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh bufio > $@ || (rm -f $@; exit 1) + +bufio_mod_CFLAGS = $(COMMON_CFLAGS) +bufio_mod_LDFLAGS = $(COMMON_LDFLAGS) +endif + +# For gettext.mod. +pkglib_MODULES += gettext.mod +gettext_mod_SOURCES = gettext/gettext.c + +clean-module-gettext.mod.1: + rm -f gettext.mod mod-gettext.o mod-gettext.c pre-gettext.o gettext_mod-gettext_gettext.o und-gettext.lst + +CLEAN_MODULE_TARGETS += clean-module-gettext.mod.1 + +clean-module-gettext.mod-symbol.1: + rm -f def-gettext.lst + +CLEAN_MODULE_TARGETS += clean-module-gettext.mod-symbol.1 +DEFSYMFILES += def-gettext.lst +mostlyclean-module-gettext.mod.1: + rm -f gettext_mod-gettext_gettext.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-gettext.mod.1 +UNDSYMFILES += und-gettext.lst + +ifeq ($(TARGET_NO_MODULES), yes) +gettext.mod: pre-gettext.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gettext_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gettext.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +gettext.mod: pre-gettext.o mod-gettext.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gettext_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gettext.o mod-gettext.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +gettext.mod: pre-gettext.o mod-gettext.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(gettext_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-gettext.o mod-gettext.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-gettext.o: $(gettext_mod_DEPENDENCIES) gettext_mod-gettext_gettext.o + -rm -f $@ + $(TARGET_CC) $(gettext_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ gettext_mod-gettext_gettext.o + +mod-gettext.o: mod-gettext.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gettext_mod_CFLAGS) -DGRUB_FILE=\"mod-gettext.c\" -c -o $@ $< + +mod-gettext.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gettext' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-gettext.lst: pre-gettext.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gettext/' > $@ +else +def-gettext.lst: pre-gettext.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 gettext/' > $@ +endif + +und-gettext.lst: pre-gettext.o + echo 'gettext' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gettext_mod-gettext_gettext.o: gettext/gettext.c $(gettext/gettext.c_DEPENDENCIES) + $(TARGET_CC) -Igettext -I$(srcdir)/gettext $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gettext_mod_CFLAGS) -DGRUB_FILE=\"gettext/gettext.c\" -MD -c -o $@ $< +-include gettext_mod-gettext_gettext.d + +clean-module-gettext_mod-gettext_gettext-extra.1: + rm -f cmd-gettext_mod-gettext_gettext.lst fs-gettext_mod-gettext_gettext.lst partmap-gettext_mod-gettext_gettext.lst handler-gettext_mod-gettext_gettext.lst parttool-gettext_mod-gettext_gettext.lst video-gettext_mod-gettext_gettext.lst terminal-gettext_mod-gettext_gettext.lst + +CLEAN_MODULE_TARGETS += clean-module-gettext_mod-gettext_gettext-extra.1 + +COMMANDFILES += cmd-gettext_mod-gettext_gettext.lst +FSFILES += fs-gettext_mod-gettext_gettext.lst +PARTTOOLFILES += parttool-gettext_mod-gettext_gettext.lst +PARTMAPFILES += partmap-gettext_mod-gettext_gettext.lst +HANDLERFILES += handler-gettext_mod-gettext_gettext.lst +TERMINALFILES += terminal-gettext_mod-gettext_gettext.lst +VIDEOFILES += video-gettext_mod-gettext_gettext.lst + +cmd-gettext_mod-gettext_gettext.lst: gettext/gettext.c $(gettext/gettext.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Igettext -I$(srcdir)/gettext $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gettext_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gettext > $@ || (rm -f $@; exit 1) + +fs-gettext_mod-gettext_gettext.lst: gettext/gettext.c $(gettext/gettext.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Igettext -I$(srcdir)/gettext $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gettext_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gettext > $@ || (rm -f $@; exit 1) + +parttool-gettext_mod-gettext_gettext.lst: gettext/gettext.c $(gettext/gettext.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Igettext -I$(srcdir)/gettext $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gettext_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gettext > $@ || (rm -f $@; exit 1) + +partmap-gettext_mod-gettext_gettext.lst: gettext/gettext.c $(gettext/gettext.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Igettext -I$(srcdir)/gettext $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gettext_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gettext > $@ || (rm -f $@; exit 1) + +handler-gettext_mod-gettext_gettext.lst: gettext/gettext.c $(gettext/gettext.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Igettext -I$(srcdir)/gettext $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gettext_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gettext > $@ || (rm -f $@; exit 1) + +terminal-gettext_mod-gettext_gettext.lst: gettext/gettext.c $(gettext/gettext.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Igettext -I$(srcdir)/gettext $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gettext_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gettext > $@ || (rm -f $@; exit 1) + +video-gettext_mod-gettext_gettext.lst: gettext/gettext.c $(gettext/gettext.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Igettext -I$(srcdir)/gettext $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gettext_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gettext > $@ || (rm -f $@; exit 1) + +gettext_mod_CFLAGS = $(COMMON_CFLAGS) +gettext_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# Misc. +pkglib_MODULES += xnu_uuid.mod + +# For elf.mod. +xnu_uuid_mod_SOURCES = commands/xnu_uuid.c + +clean-module-xnu_uuid.mod.1: + rm -f xnu_uuid.mod mod-xnu_uuid.o mod-xnu_uuid.c pre-xnu_uuid.o xnu_uuid_mod-commands_xnu_uuid.o und-xnu_uuid.lst + +CLEAN_MODULE_TARGETS += clean-module-xnu_uuid.mod.1 + +clean-module-xnu_uuid.mod-symbol.1: + rm -f def-xnu_uuid.lst + +CLEAN_MODULE_TARGETS += clean-module-xnu_uuid.mod-symbol.1 +DEFSYMFILES += def-xnu_uuid.lst +mostlyclean-module-xnu_uuid.mod.1: + rm -f xnu_uuid_mod-commands_xnu_uuid.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-xnu_uuid.mod.1 +UNDSYMFILES += und-xnu_uuid.lst + +ifeq ($(TARGET_NO_MODULES), yes) +xnu_uuid.mod: pre-xnu_uuid.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(xnu_uuid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-xnu_uuid.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +xnu_uuid.mod: pre-xnu_uuid.o mod-xnu_uuid.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(xnu_uuid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-xnu_uuid.o mod-xnu_uuid.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +xnu_uuid.mod: pre-xnu_uuid.o mod-xnu_uuid.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(xnu_uuid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-xnu_uuid.o mod-xnu_uuid.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-xnu_uuid.o: $(xnu_uuid_mod_DEPENDENCIES) xnu_uuid_mod-commands_xnu_uuid.o + -rm -f $@ + $(TARGET_CC) $(xnu_uuid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ xnu_uuid_mod-commands_xnu_uuid.o + +mod-xnu_uuid.o: mod-xnu_uuid.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_uuid_mod_CFLAGS) -DGRUB_FILE=\"mod-xnu_uuid.c\" -c -o $@ $< + +mod-xnu_uuid.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'xnu_uuid' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-xnu_uuid.lst: pre-xnu_uuid.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 xnu_uuid/' > $@ +else +def-xnu_uuid.lst: pre-xnu_uuid.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 xnu_uuid/' > $@ +endif + +und-xnu_uuid.lst: pre-xnu_uuid.o + echo 'xnu_uuid' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +xnu_uuid_mod-commands_xnu_uuid.o: commands/xnu_uuid.c $(commands/xnu_uuid.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_uuid_mod_CFLAGS) -DGRUB_FILE=\"commands/xnu_uuid.c\" -MD -c -o $@ $< +-include xnu_uuid_mod-commands_xnu_uuid.d + +clean-module-xnu_uuid_mod-commands_xnu_uuid-extra.1: + rm -f cmd-xnu_uuid_mod-commands_xnu_uuid.lst fs-xnu_uuid_mod-commands_xnu_uuid.lst partmap-xnu_uuid_mod-commands_xnu_uuid.lst handler-xnu_uuid_mod-commands_xnu_uuid.lst parttool-xnu_uuid_mod-commands_xnu_uuid.lst video-xnu_uuid_mod-commands_xnu_uuid.lst terminal-xnu_uuid_mod-commands_xnu_uuid.lst + +CLEAN_MODULE_TARGETS += clean-module-xnu_uuid_mod-commands_xnu_uuid-extra.1 + +COMMANDFILES += cmd-xnu_uuid_mod-commands_xnu_uuid.lst +FSFILES += fs-xnu_uuid_mod-commands_xnu_uuid.lst +PARTTOOLFILES += parttool-xnu_uuid_mod-commands_xnu_uuid.lst +PARTMAPFILES += partmap-xnu_uuid_mod-commands_xnu_uuid.lst +HANDLERFILES += handler-xnu_uuid_mod-commands_xnu_uuid.lst +TERMINALFILES += terminal-xnu_uuid_mod-commands_xnu_uuid.lst +VIDEOFILES += video-xnu_uuid_mod-commands_xnu_uuid.lst + +cmd-xnu_uuid_mod-commands_xnu_uuid.lst: commands/xnu_uuid.c $(commands/xnu_uuid.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_uuid_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh xnu_uuid > $@ || (rm -f $@; exit 1) + +fs-xnu_uuid_mod-commands_xnu_uuid.lst: commands/xnu_uuid.c $(commands/xnu_uuid.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_uuid_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh xnu_uuid > $@ || (rm -f $@; exit 1) + +parttool-xnu_uuid_mod-commands_xnu_uuid.lst: commands/xnu_uuid.c $(commands/xnu_uuid.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_uuid_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh xnu_uuid > $@ || (rm -f $@; exit 1) + +partmap-xnu_uuid_mod-commands_xnu_uuid.lst: commands/xnu_uuid.c $(commands/xnu_uuid.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_uuid_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh xnu_uuid > $@ || (rm -f $@; exit 1) + +handler-xnu_uuid_mod-commands_xnu_uuid.lst: commands/xnu_uuid.c $(commands/xnu_uuid.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_uuid_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh xnu_uuid > $@ || (rm -f $@; exit 1) + +terminal-xnu_uuid_mod-commands_xnu_uuid.lst: commands/xnu_uuid.c $(commands/xnu_uuid.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_uuid_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh xnu_uuid > $@ || (rm -f $@; exit 1) + +video-xnu_uuid_mod-commands_xnu_uuid.lst: commands/xnu_uuid.c $(commands/xnu_uuid.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_uuid_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh xnu_uuid > $@ || (rm -f $@; exit 1) + +xnu_uuid_mod_CFLAGS = $(COMMON_CFLAGS) +xnu_uuid_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += trig.mod +trig_mod_SOURCES = trigtables.c + +clean-module-trig.mod.1: + rm -f trig.mod mod-trig.o mod-trig.c pre-trig.o trig_mod-trigtables.o und-trig.lst + +CLEAN_MODULE_TARGETS += clean-module-trig.mod.1 + +clean-module-trig.mod-symbol.1: + rm -f def-trig.lst + +CLEAN_MODULE_TARGETS += clean-module-trig.mod-symbol.1 +DEFSYMFILES += def-trig.lst +mostlyclean-module-trig.mod.1: + rm -f trig_mod-trigtables.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-trig.mod.1 +UNDSYMFILES += und-trig.lst + +ifeq ($(TARGET_NO_MODULES), yes) +trig.mod: pre-trig.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(trig_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-trig.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +trig.mod: pre-trig.o mod-trig.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(trig_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-trig.o mod-trig.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +trig.mod: pre-trig.o mod-trig.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(trig_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-trig.o mod-trig.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-trig.o: $(trig_mod_DEPENDENCIES) trig_mod-trigtables.o + -rm -f $@ + $(TARGET_CC) $(trig_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ trig_mod-trigtables.o + +mod-trig.o: mod-trig.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(trig_mod_CFLAGS) -DGRUB_FILE=\"mod-trig.c\" -c -o $@ $< + +mod-trig.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'trig' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-trig.lst: pre-trig.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 trig/' > $@ +else +def-trig.lst: pre-trig.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 trig/' > $@ +endif + +und-trig.lst: pre-trig.o + echo 'trig' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +trig_mod-trigtables.o: trigtables.c $(trigtables.c_DEPENDENCIES) + $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(trig_mod_CFLAGS) -DGRUB_FILE=\"trigtables.c\" -MD -c -o $@ $< +-include trig_mod-trigtables.d + +clean-module-trig_mod-trigtables-extra.1: + rm -f cmd-trig_mod-trigtables.lst fs-trig_mod-trigtables.lst partmap-trig_mod-trigtables.lst handler-trig_mod-trigtables.lst parttool-trig_mod-trigtables.lst video-trig_mod-trigtables.lst terminal-trig_mod-trigtables.lst + +CLEAN_MODULE_TARGETS += clean-module-trig_mod-trigtables-extra.1 + +COMMANDFILES += cmd-trig_mod-trigtables.lst +FSFILES += fs-trig_mod-trigtables.lst +PARTTOOLFILES += parttool-trig_mod-trigtables.lst +PARTMAPFILES += partmap-trig_mod-trigtables.lst +HANDLERFILES += handler-trig_mod-trigtables.lst +TERMINALFILES += terminal-trig_mod-trigtables.lst +VIDEOFILES += video-trig_mod-trigtables.lst + +cmd-trig_mod-trigtables.lst: trigtables.c $(trigtables.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(trig_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh trig > $@ || (rm -f $@; exit 1) + +fs-trig_mod-trigtables.lst: trigtables.c $(trigtables.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(trig_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh trig > $@ || (rm -f $@; exit 1) + +parttool-trig_mod-trigtables.lst: trigtables.c $(trigtables.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(trig_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh trig > $@ || (rm -f $@; exit 1) + +partmap-trig_mod-trigtables.lst: trigtables.c $(trigtables.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(trig_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh trig > $@ || (rm -f $@; exit 1) + +handler-trig_mod-trigtables.lst: trigtables.c $(trigtables.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(trig_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh trig > $@ || (rm -f $@; exit 1) + +terminal-trig_mod-trigtables.lst: trigtables.c $(trigtables.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(trig_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh trig > $@ || (rm -f $@; exit 1) + +video-trig_mod-trigtables.lst: trigtables.c $(trigtables.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(trig_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh trig > $@ || (rm -f $@; exit 1) + +trig_mod_CFLAGS = $(COMMON_CFLAGS) +trig_mod_LDFLAGS = $(COMMON_LDFLAGS) + +trigtables.c: gentrigtables + ./gentrigtables > $@ +DISTCLEANFILES += trigtables.c +gentrigtables: gentrigtables.c + $(CC) -o $@ $^ $(CPPFLAGS) -lm +DISTCLEANFILES += gentrigtables + +pkglib_MODULES += setjmp.mod +setjmp_mod_SOURCES = lib/$(target_cpu)/setjmp.S + +clean-module-setjmp.mod.1: + rm -f setjmp.mod mod-setjmp.o mod-setjmp.c pre-setjmp.o setjmp_mod-lib___target_cpu__setjmp.o und-setjmp.lst + +CLEAN_MODULE_TARGETS += clean-module-setjmp.mod.1 + +clean-module-setjmp.mod-symbol.1: + rm -f def-setjmp.lst + +CLEAN_MODULE_TARGETS += clean-module-setjmp.mod-symbol.1 +DEFSYMFILES += def-setjmp.lst +mostlyclean-module-setjmp.mod.1: + rm -f setjmp_mod-lib___target_cpu__setjmp.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-setjmp.mod.1 +UNDSYMFILES += und-setjmp.lst + +ifeq ($(TARGET_NO_MODULES), yes) +setjmp.mod: pre-setjmp.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(setjmp_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-setjmp.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +setjmp.mod: pre-setjmp.o mod-setjmp.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(setjmp_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-setjmp.o mod-setjmp.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +setjmp.mod: pre-setjmp.o mod-setjmp.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(setjmp_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-setjmp.o mod-setjmp.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-setjmp.o: $(setjmp_mod_DEPENDENCIES) setjmp_mod-lib___target_cpu__setjmp.o + -rm -f $@ + $(TARGET_CC) $(setjmp_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ setjmp_mod-lib___target_cpu__setjmp.o + +mod-setjmp.o: mod-setjmp.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(setjmp_mod_CFLAGS) -DGRUB_FILE=\"mod-setjmp.c\" -c -o $@ $< + +mod-setjmp.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'setjmp' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-setjmp.lst: pre-setjmp.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 setjmp/' > $@ +else +def-setjmp.lst: pre-setjmp.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 setjmp/' > $@ +endif + +und-setjmp.lst: pre-setjmp.o + echo 'setjmp' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +setjmp_mod-lib___target_cpu__setjmp.o: lib/$(target_cpu)/setjmp.S $(lib/$(target_cpu)/setjmp.S_DEPENDENCIES) + $(TARGET_CC) -Ilib/$(target_cpu) -I$(srcdir)/lib/$(target_cpu) $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(setjmp_mod_ASFLAGS) -DGRUB_FILE=\"lib/$(target_cpu)/setjmp.S\" -MD -c -o $@ $< +-include setjmp_mod-lib___target_cpu__setjmp.d + +clean-module-setjmp_mod-lib___target_cpu__setjmp-extra.1: + rm -f cmd-setjmp_mod-lib___target_cpu__setjmp.lst fs-setjmp_mod-lib___target_cpu__setjmp.lst partmap-setjmp_mod-lib___target_cpu__setjmp.lst handler-setjmp_mod-lib___target_cpu__setjmp.lst parttool-setjmp_mod-lib___target_cpu__setjmp.lst video-setjmp_mod-lib___target_cpu__setjmp.lst terminal-setjmp_mod-lib___target_cpu__setjmp.lst + +CLEAN_MODULE_TARGETS += clean-module-setjmp_mod-lib___target_cpu__setjmp-extra.1 + +COMMANDFILES += cmd-setjmp_mod-lib___target_cpu__setjmp.lst +FSFILES += fs-setjmp_mod-lib___target_cpu__setjmp.lst +PARTTOOLFILES += parttool-setjmp_mod-lib___target_cpu__setjmp.lst +PARTMAPFILES += partmap-setjmp_mod-lib___target_cpu__setjmp.lst +HANDLERFILES += handler-setjmp_mod-lib___target_cpu__setjmp.lst +TERMINALFILES += terminal-setjmp_mod-lib___target_cpu__setjmp.lst +VIDEOFILES += video-setjmp_mod-lib___target_cpu__setjmp.lst + +cmd-setjmp_mod-lib___target_cpu__setjmp.lst: lib/$(target_cpu)/setjmp.S $(lib/$(target_cpu)/setjmp.S_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/$(target_cpu) -I$(srcdir)/lib/$(target_cpu) $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(setjmp_mod_ASFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh setjmp > $@ || (rm -f $@; exit 1) + +fs-setjmp_mod-lib___target_cpu__setjmp.lst: lib/$(target_cpu)/setjmp.S $(lib/$(target_cpu)/setjmp.S_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/$(target_cpu) -I$(srcdir)/lib/$(target_cpu) $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(setjmp_mod_ASFLAGS) -E $< | sh $(srcdir)/genfslist.sh setjmp > $@ || (rm -f $@; exit 1) + +parttool-setjmp_mod-lib___target_cpu__setjmp.lst: lib/$(target_cpu)/setjmp.S $(lib/$(target_cpu)/setjmp.S_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/$(target_cpu) -I$(srcdir)/lib/$(target_cpu) $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(setjmp_mod_ASFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh setjmp > $@ || (rm -f $@; exit 1) + +partmap-setjmp_mod-lib___target_cpu__setjmp.lst: lib/$(target_cpu)/setjmp.S $(lib/$(target_cpu)/setjmp.S_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/$(target_cpu) -I$(srcdir)/lib/$(target_cpu) $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(setjmp_mod_ASFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh setjmp > $@ || (rm -f $@; exit 1) + +handler-setjmp_mod-lib___target_cpu__setjmp.lst: lib/$(target_cpu)/setjmp.S $(lib/$(target_cpu)/setjmp.S_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/$(target_cpu) -I$(srcdir)/lib/$(target_cpu) $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(setjmp_mod_ASFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh setjmp > $@ || (rm -f $@; exit 1) + +terminal-setjmp_mod-lib___target_cpu__setjmp.lst: lib/$(target_cpu)/setjmp.S $(lib/$(target_cpu)/setjmp.S_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/$(target_cpu) -I$(srcdir)/lib/$(target_cpu) $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(setjmp_mod_ASFLAGS) -E $< | sh $(srcdir)/genterminallist.sh setjmp > $@ || (rm -f $@; exit 1) + +video-setjmp_mod-lib___target_cpu__setjmp.lst: lib/$(target_cpu)/setjmp.S $(lib/$(target_cpu)/setjmp.S_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/$(target_cpu) -I$(srcdir)/lib/$(target_cpu) $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(setjmp_mod_ASFLAGS) -E $< | sh $(srcdir)/genvideolist.sh setjmp > $@ || (rm -f $@; exit 1) + +setjmp_mod_ASFLAGS = $(COMMON_ASFLAGS) +setjmp_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += regexp.mod +regexp_mod_SOURCES = gnulib/regex.c commands/regexp.c + +clean-module-regexp.mod.1: + rm -f regexp.mod mod-regexp.o mod-regexp.c pre-regexp.o regexp_mod-gnulib_regex.o regexp_mod-commands_regexp.o und-regexp.lst + +CLEAN_MODULE_TARGETS += clean-module-regexp.mod.1 + +clean-module-regexp.mod-symbol.1: + rm -f def-regexp.lst + +CLEAN_MODULE_TARGETS += clean-module-regexp.mod-symbol.1 +DEFSYMFILES += def-regexp.lst +mostlyclean-module-regexp.mod.1: + rm -f regexp_mod-gnulib_regex.d regexp_mod-commands_regexp.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-regexp.mod.1 +UNDSYMFILES += und-regexp.lst + +ifeq ($(TARGET_NO_MODULES), yes) +regexp.mod: pre-regexp.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(regexp_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-regexp.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +regexp.mod: pre-regexp.o mod-regexp.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(regexp_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-regexp.o mod-regexp.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +regexp.mod: pre-regexp.o mod-regexp.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(regexp_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-regexp.o mod-regexp.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-regexp.o: $(regexp_mod_DEPENDENCIES) regexp_mod-gnulib_regex.o regexp_mod-commands_regexp.o + -rm -f $@ + $(TARGET_CC) $(regexp_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ regexp_mod-gnulib_regex.o regexp_mod-commands_regexp.o + +mod-regexp.o: mod-regexp.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(regexp_mod_CFLAGS) -DGRUB_FILE=\"mod-regexp.c\" -c -o $@ $< + +mod-regexp.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'regexp' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-regexp.lst: pre-regexp.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 regexp/' > $@ +else +def-regexp.lst: pre-regexp.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 regexp/' > $@ +endif + +und-regexp.lst: pre-regexp.o + echo 'regexp' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +regexp_mod-gnulib_regex.o: gnulib/regex.c $(gnulib/regex.c_DEPENDENCIES) + $(TARGET_CC) -Ignulib -I$(srcdir)/gnulib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(regexp_mod_CFLAGS) -DGRUB_FILE=\"gnulib/regex.c\" -MD -c -o $@ $< +-include regexp_mod-gnulib_regex.d + +clean-module-regexp_mod-gnulib_regex-extra.1: + rm -f cmd-regexp_mod-gnulib_regex.lst fs-regexp_mod-gnulib_regex.lst partmap-regexp_mod-gnulib_regex.lst handler-regexp_mod-gnulib_regex.lst parttool-regexp_mod-gnulib_regex.lst video-regexp_mod-gnulib_regex.lst terminal-regexp_mod-gnulib_regex.lst + +CLEAN_MODULE_TARGETS += clean-module-regexp_mod-gnulib_regex-extra.1 + +COMMANDFILES += cmd-regexp_mod-gnulib_regex.lst +FSFILES += fs-regexp_mod-gnulib_regex.lst +PARTTOOLFILES += parttool-regexp_mod-gnulib_regex.lst +PARTMAPFILES += partmap-regexp_mod-gnulib_regex.lst +HANDLERFILES += handler-regexp_mod-gnulib_regex.lst +TERMINALFILES += terminal-regexp_mod-gnulib_regex.lst +VIDEOFILES += video-regexp_mod-gnulib_regex.lst + +cmd-regexp_mod-gnulib_regex.lst: gnulib/regex.c $(gnulib/regex.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ignulib -I$(srcdir)/gnulib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(regexp_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh regexp > $@ || (rm -f $@; exit 1) + +fs-regexp_mod-gnulib_regex.lst: gnulib/regex.c $(gnulib/regex.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ignulib -I$(srcdir)/gnulib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(regexp_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh regexp > $@ || (rm -f $@; exit 1) + +parttool-regexp_mod-gnulib_regex.lst: gnulib/regex.c $(gnulib/regex.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ignulib -I$(srcdir)/gnulib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(regexp_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh regexp > $@ || (rm -f $@; exit 1) + +partmap-regexp_mod-gnulib_regex.lst: gnulib/regex.c $(gnulib/regex.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ignulib -I$(srcdir)/gnulib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(regexp_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh regexp > $@ || (rm -f $@; exit 1) + +handler-regexp_mod-gnulib_regex.lst: gnulib/regex.c $(gnulib/regex.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ignulib -I$(srcdir)/gnulib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(regexp_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh regexp > $@ || (rm -f $@; exit 1) + +terminal-regexp_mod-gnulib_regex.lst: gnulib/regex.c $(gnulib/regex.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ignulib -I$(srcdir)/gnulib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(regexp_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh regexp > $@ || (rm -f $@; exit 1) + +video-regexp_mod-gnulib_regex.lst: gnulib/regex.c $(gnulib/regex.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ignulib -I$(srcdir)/gnulib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(regexp_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh regexp > $@ || (rm -f $@; exit 1) + +regexp_mod-commands_regexp.o: commands/regexp.c $(commands/regexp.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(regexp_mod_CFLAGS) -DGRUB_FILE=\"commands/regexp.c\" -MD -c -o $@ $< +-include regexp_mod-commands_regexp.d + +clean-module-regexp_mod-commands_regexp-extra.1: + rm -f cmd-regexp_mod-commands_regexp.lst fs-regexp_mod-commands_regexp.lst partmap-regexp_mod-commands_regexp.lst handler-regexp_mod-commands_regexp.lst parttool-regexp_mod-commands_regexp.lst video-regexp_mod-commands_regexp.lst terminal-regexp_mod-commands_regexp.lst + +CLEAN_MODULE_TARGETS += clean-module-regexp_mod-commands_regexp-extra.1 + +COMMANDFILES += cmd-regexp_mod-commands_regexp.lst +FSFILES += fs-regexp_mod-commands_regexp.lst +PARTTOOLFILES += parttool-regexp_mod-commands_regexp.lst +PARTMAPFILES += partmap-regexp_mod-commands_regexp.lst +HANDLERFILES += handler-regexp_mod-commands_regexp.lst +TERMINALFILES += terminal-regexp_mod-commands_regexp.lst +VIDEOFILES += video-regexp_mod-commands_regexp.lst + +cmd-regexp_mod-commands_regexp.lst: commands/regexp.c $(commands/regexp.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(regexp_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh regexp > $@ || (rm -f $@; exit 1) + +fs-regexp_mod-commands_regexp.lst: commands/regexp.c $(commands/regexp.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(regexp_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh regexp > $@ || (rm -f $@; exit 1) + +parttool-regexp_mod-commands_regexp.lst: commands/regexp.c $(commands/regexp.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(regexp_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh regexp > $@ || (rm -f $@; exit 1) + +partmap-regexp_mod-commands_regexp.lst: commands/regexp.c $(commands/regexp.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(regexp_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh regexp > $@ || (rm -f $@; exit 1) + +handler-regexp_mod-commands_regexp.lst: commands/regexp.c $(commands/regexp.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(regexp_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh regexp > $@ || (rm -f $@; exit 1) + +terminal-regexp_mod-commands_regexp.lst: commands/regexp.c $(commands/regexp.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(regexp_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh regexp > $@ || (rm -f $@; exit 1) + +video-regexp_mod-commands_regexp.lst: commands/regexp.c $(commands/regexp.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(regexp_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh regexp > $@ || (rm -f $@; exit 1) + +regexp_mod_CFLAGS = $(COMMON_CFLAGS) $(GNULIB_CFLAGS) +regexp_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += terminal.mod +terminal_mod_SOURCES = commands/terminal.c + +clean-module-terminal.mod.1: + rm -f terminal.mod mod-terminal.o mod-terminal.c pre-terminal.o terminal_mod-commands_terminal.o und-terminal.lst + +CLEAN_MODULE_TARGETS += clean-module-terminal.mod.1 + +clean-module-terminal.mod-symbol.1: + rm -f def-terminal.lst + +CLEAN_MODULE_TARGETS += clean-module-terminal.mod-symbol.1 +DEFSYMFILES += def-terminal.lst +mostlyclean-module-terminal.mod.1: + rm -f terminal_mod-commands_terminal.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-terminal.mod.1 +UNDSYMFILES += und-terminal.lst + +ifeq ($(TARGET_NO_MODULES), yes) +terminal.mod: pre-terminal.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(terminal_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-terminal.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +terminal.mod: pre-terminal.o mod-terminal.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(terminal_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-terminal.o mod-terminal.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +terminal.mod: pre-terminal.o mod-terminal.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(terminal_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-terminal.o mod-terminal.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-terminal.o: $(terminal_mod_DEPENDENCIES) terminal_mod-commands_terminal.o + -rm -f $@ + $(TARGET_CC) $(terminal_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ terminal_mod-commands_terminal.o + +mod-terminal.o: mod-terminal.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(terminal_mod_CFLAGS) -DGRUB_FILE=\"mod-terminal.c\" -c -o $@ $< + +mod-terminal.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'terminal' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-terminal.lst: pre-terminal.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 terminal/' > $@ +else +def-terminal.lst: pre-terminal.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 terminal/' > $@ +endif + +und-terminal.lst: pre-terminal.o + echo 'terminal' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +terminal_mod-commands_terminal.o: commands/terminal.c $(commands/terminal.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(terminal_mod_CFLAGS) -DGRUB_FILE=\"commands/terminal.c\" -MD -c -o $@ $< +-include terminal_mod-commands_terminal.d + +clean-module-terminal_mod-commands_terminal-extra.1: + rm -f cmd-terminal_mod-commands_terminal.lst fs-terminal_mod-commands_terminal.lst partmap-terminal_mod-commands_terminal.lst handler-terminal_mod-commands_terminal.lst parttool-terminal_mod-commands_terminal.lst video-terminal_mod-commands_terminal.lst terminal-terminal_mod-commands_terminal.lst + +CLEAN_MODULE_TARGETS += clean-module-terminal_mod-commands_terminal-extra.1 + +COMMANDFILES += cmd-terminal_mod-commands_terminal.lst +FSFILES += fs-terminal_mod-commands_terminal.lst +PARTTOOLFILES += parttool-terminal_mod-commands_terminal.lst +PARTMAPFILES += partmap-terminal_mod-commands_terminal.lst +HANDLERFILES += handler-terminal_mod-commands_terminal.lst +TERMINALFILES += terminal-terminal_mod-commands_terminal.lst +VIDEOFILES += video-terminal_mod-commands_terminal.lst + +cmd-terminal_mod-commands_terminal.lst: commands/terminal.c $(commands/terminal.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(terminal_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh terminal > $@ || (rm -f $@; exit 1) + +fs-terminal_mod-commands_terminal.lst: commands/terminal.c $(commands/terminal.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(terminal_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh terminal > $@ || (rm -f $@; exit 1) + +parttool-terminal_mod-commands_terminal.lst: commands/terminal.c $(commands/terminal.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(terminal_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh terminal > $@ || (rm -f $@; exit 1) + +partmap-terminal_mod-commands_terminal.lst: commands/terminal.c $(commands/terminal.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(terminal_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh terminal > $@ || (rm -f $@; exit 1) + +handler-terminal_mod-commands_terminal.lst: commands/terminal.c $(commands/terminal.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(terminal_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh terminal > $@ || (rm -f $@; exit 1) + +terminal-terminal_mod-commands_terminal.lst: commands/terminal.c $(commands/terminal.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(terminal_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh terminal > $@ || (rm -f $@; exit 1) + +video-terminal_mod-commands_terminal.lst: commands/terminal.c $(commands/terminal.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(terminal_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh terminal > $@ || (rm -f $@; exit 1) + +terminal_mod_CFLAGS = $(COMMON_CFLAGS) +terminal_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += crypto.mod +crypto_mod_SOURCES = lib/crypto.c + +clean-module-crypto.mod.1: + rm -f crypto.mod mod-crypto.o mod-crypto.c pre-crypto.o crypto_mod-lib_crypto.o und-crypto.lst + +CLEAN_MODULE_TARGETS += clean-module-crypto.mod.1 + +clean-module-crypto.mod-symbol.1: + rm -f def-crypto.lst + +CLEAN_MODULE_TARGETS += clean-module-crypto.mod-symbol.1 +DEFSYMFILES += def-crypto.lst +mostlyclean-module-crypto.mod.1: + rm -f crypto_mod-lib_crypto.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-crypto.mod.1 +UNDSYMFILES += und-crypto.lst + +ifeq ($(TARGET_NO_MODULES), yes) +crypto.mod: pre-crypto.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(crypto_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-crypto.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +crypto.mod: pre-crypto.o mod-crypto.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(crypto_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-crypto.o mod-crypto.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +crypto.mod: pre-crypto.o mod-crypto.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(crypto_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-crypto.o mod-crypto.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-crypto.o: $(crypto_mod_DEPENDENCIES) crypto_mod-lib_crypto.o + -rm -f $@ + $(TARGET_CC) $(crypto_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ crypto_mod-lib_crypto.o + +mod-crypto.o: mod-crypto.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(crypto_mod_CFLAGS) -DGRUB_FILE=\"mod-crypto.c\" -c -o $@ $< + +mod-crypto.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'crypto' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-crypto.lst: pre-crypto.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 crypto/' > $@ +else +def-crypto.lst: pre-crypto.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 crypto/' > $@ +endif + +und-crypto.lst: pre-crypto.o + echo 'crypto' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +crypto_mod-lib_crypto.o: lib/crypto.c $(lib/crypto.c_DEPENDENCIES) + $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(crypto_mod_CFLAGS) -DGRUB_FILE=\"lib/crypto.c\" -MD -c -o $@ $< +-include crypto_mod-lib_crypto.d + +clean-module-crypto_mod-lib_crypto-extra.1: + rm -f cmd-crypto_mod-lib_crypto.lst fs-crypto_mod-lib_crypto.lst partmap-crypto_mod-lib_crypto.lst handler-crypto_mod-lib_crypto.lst parttool-crypto_mod-lib_crypto.lst video-crypto_mod-lib_crypto.lst terminal-crypto_mod-lib_crypto.lst + +CLEAN_MODULE_TARGETS += clean-module-crypto_mod-lib_crypto-extra.1 + +COMMANDFILES += cmd-crypto_mod-lib_crypto.lst +FSFILES += fs-crypto_mod-lib_crypto.lst +PARTTOOLFILES += parttool-crypto_mod-lib_crypto.lst +PARTMAPFILES += partmap-crypto_mod-lib_crypto.lst +HANDLERFILES += handler-crypto_mod-lib_crypto.lst +TERMINALFILES += terminal-crypto_mod-lib_crypto.lst +VIDEOFILES += video-crypto_mod-lib_crypto.lst + +cmd-crypto_mod-lib_crypto.lst: lib/crypto.c $(lib/crypto.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(crypto_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh crypto > $@ || (rm -f $@; exit 1) + +fs-crypto_mod-lib_crypto.lst: lib/crypto.c $(lib/crypto.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(crypto_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh crypto > $@ || (rm -f $@; exit 1) + +parttool-crypto_mod-lib_crypto.lst: lib/crypto.c $(lib/crypto.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(crypto_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh crypto > $@ || (rm -f $@; exit 1) + +partmap-crypto_mod-lib_crypto.lst: lib/crypto.c $(lib/crypto.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(crypto_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh crypto > $@ || (rm -f $@; exit 1) + +handler-crypto_mod-lib_crypto.lst: lib/crypto.c $(lib/crypto.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(crypto_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh crypto > $@ || (rm -f $@; exit 1) + +terminal-crypto_mod-lib_crypto.lst: lib/crypto.c $(lib/crypto.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(crypto_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh crypto > $@ || (rm -f $@; exit 1) + +video-crypto_mod-lib_crypto.lst: lib/crypto.c $(lib/crypto.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(crypto_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh crypto > $@ || (rm -f $@; exit 1) + +crypto_mod_CFLAGS = $(COMMON_CFLAGS) +crypto_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += hashsum.mod +hashsum_mod_SOURCES = commands/hashsum.c + +clean-module-hashsum.mod.1: + rm -f hashsum.mod mod-hashsum.o mod-hashsum.c pre-hashsum.o hashsum_mod-commands_hashsum.o und-hashsum.lst + +CLEAN_MODULE_TARGETS += clean-module-hashsum.mod.1 + +clean-module-hashsum.mod-symbol.1: + rm -f def-hashsum.lst + +CLEAN_MODULE_TARGETS += clean-module-hashsum.mod-symbol.1 +DEFSYMFILES += def-hashsum.lst +mostlyclean-module-hashsum.mod.1: + rm -f hashsum_mod-commands_hashsum.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-hashsum.mod.1 +UNDSYMFILES += und-hashsum.lst + +ifeq ($(TARGET_NO_MODULES), yes) +hashsum.mod: pre-hashsum.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(hashsum_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-hashsum.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +hashsum.mod: pre-hashsum.o mod-hashsum.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(hashsum_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-hashsum.o mod-hashsum.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +hashsum.mod: pre-hashsum.o mod-hashsum.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(hashsum_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-hashsum.o mod-hashsum.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-hashsum.o: $(hashsum_mod_DEPENDENCIES) hashsum_mod-commands_hashsum.o + -rm -f $@ + $(TARGET_CC) $(hashsum_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ hashsum_mod-commands_hashsum.o + +mod-hashsum.o: mod-hashsum.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hashsum_mod_CFLAGS) -DGRUB_FILE=\"mod-hashsum.c\" -c -o $@ $< + +mod-hashsum.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'hashsum' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-hashsum.lst: pre-hashsum.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 hashsum/' > $@ +else +def-hashsum.lst: pre-hashsum.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 hashsum/' > $@ +endif + +und-hashsum.lst: pre-hashsum.o + echo 'hashsum' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +hashsum_mod-commands_hashsum.o: commands/hashsum.c $(commands/hashsum.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hashsum_mod_CFLAGS) -DGRUB_FILE=\"commands/hashsum.c\" -MD -c -o $@ $< +-include hashsum_mod-commands_hashsum.d + +clean-module-hashsum_mod-commands_hashsum-extra.1: + rm -f cmd-hashsum_mod-commands_hashsum.lst fs-hashsum_mod-commands_hashsum.lst partmap-hashsum_mod-commands_hashsum.lst handler-hashsum_mod-commands_hashsum.lst parttool-hashsum_mod-commands_hashsum.lst video-hashsum_mod-commands_hashsum.lst terminal-hashsum_mod-commands_hashsum.lst + +CLEAN_MODULE_TARGETS += clean-module-hashsum_mod-commands_hashsum-extra.1 + +COMMANDFILES += cmd-hashsum_mod-commands_hashsum.lst +FSFILES += fs-hashsum_mod-commands_hashsum.lst +PARTTOOLFILES += parttool-hashsum_mod-commands_hashsum.lst +PARTMAPFILES += partmap-hashsum_mod-commands_hashsum.lst +HANDLERFILES += handler-hashsum_mod-commands_hashsum.lst +TERMINALFILES += terminal-hashsum_mod-commands_hashsum.lst +VIDEOFILES += video-hashsum_mod-commands_hashsum.lst + +cmd-hashsum_mod-commands_hashsum.lst: commands/hashsum.c $(commands/hashsum.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hashsum_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh hashsum > $@ || (rm -f $@; exit 1) + +fs-hashsum_mod-commands_hashsum.lst: commands/hashsum.c $(commands/hashsum.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(hashsum_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh hashsum > $@ || (rm -f $@; exit 1) + +parttool-hashsum_mod-commands_hashsum.lst: commands/hashsum.c $(commands/hashsum.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hashsum_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh hashsum > $@ || (rm -f $@; exit 1) + +partmap-hashsum_mod-commands_hashsum.lst: commands/hashsum.c $(commands/hashsum.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(hashsum_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh hashsum > $@ || (rm -f $@; exit 1) + +handler-hashsum_mod-commands_hashsum.lst: commands/hashsum.c $(commands/hashsum.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hashsum_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh hashsum > $@ || (rm -f $@; exit 1) + +terminal-hashsum_mod-commands_hashsum.lst: commands/hashsum.c $(commands/hashsum.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hashsum_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh hashsum > $@ || (rm -f $@; exit 1) + +video-hashsum_mod-commands_hashsum.lst: commands/hashsum.c $(commands/hashsum.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(hashsum_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh hashsum > $@ || (rm -f $@; exit 1) + +hashsum_mod_CFLAGS = $(COMMON_CFLAGS) +hashsum_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += pbkdf2.mod +pbkdf2_mod_SOURCES = lib/pbkdf2.c + +clean-module-pbkdf2.mod.1: + rm -f pbkdf2.mod mod-pbkdf2.o mod-pbkdf2.c pre-pbkdf2.o pbkdf2_mod-lib_pbkdf2.o und-pbkdf2.lst + +CLEAN_MODULE_TARGETS += clean-module-pbkdf2.mod.1 + +clean-module-pbkdf2.mod-symbol.1: + rm -f def-pbkdf2.lst + +CLEAN_MODULE_TARGETS += clean-module-pbkdf2.mod-symbol.1 +DEFSYMFILES += def-pbkdf2.lst +mostlyclean-module-pbkdf2.mod.1: + rm -f pbkdf2_mod-lib_pbkdf2.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-pbkdf2.mod.1 +UNDSYMFILES += und-pbkdf2.lst + +ifeq ($(TARGET_NO_MODULES), yes) +pbkdf2.mod: pre-pbkdf2.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(pbkdf2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-pbkdf2.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +pbkdf2.mod: pre-pbkdf2.o mod-pbkdf2.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(pbkdf2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-pbkdf2.o mod-pbkdf2.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +pbkdf2.mod: pre-pbkdf2.o mod-pbkdf2.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(pbkdf2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-pbkdf2.o mod-pbkdf2.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-pbkdf2.o: $(pbkdf2_mod_DEPENDENCIES) pbkdf2_mod-lib_pbkdf2.o + -rm -f $@ + $(TARGET_CC) $(pbkdf2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pbkdf2_mod-lib_pbkdf2.o + +mod-pbkdf2.o: mod-pbkdf2.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pbkdf2_mod_CFLAGS) -DGRUB_FILE=\"mod-pbkdf2.c\" -c -o $@ $< + +mod-pbkdf2.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'pbkdf2' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-pbkdf2.lst: pre-pbkdf2.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 pbkdf2/' > $@ +else +def-pbkdf2.lst: pre-pbkdf2.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 pbkdf2/' > $@ +endif + +und-pbkdf2.lst: pre-pbkdf2.o + echo 'pbkdf2' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +pbkdf2_mod-lib_pbkdf2.o: lib/pbkdf2.c $(lib/pbkdf2.c_DEPENDENCIES) + $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pbkdf2_mod_CFLAGS) -DGRUB_FILE=\"lib/pbkdf2.c\" -MD -c -o $@ $< +-include pbkdf2_mod-lib_pbkdf2.d + +clean-module-pbkdf2_mod-lib_pbkdf2-extra.1: + rm -f cmd-pbkdf2_mod-lib_pbkdf2.lst fs-pbkdf2_mod-lib_pbkdf2.lst partmap-pbkdf2_mod-lib_pbkdf2.lst handler-pbkdf2_mod-lib_pbkdf2.lst parttool-pbkdf2_mod-lib_pbkdf2.lst video-pbkdf2_mod-lib_pbkdf2.lst terminal-pbkdf2_mod-lib_pbkdf2.lst + +CLEAN_MODULE_TARGETS += clean-module-pbkdf2_mod-lib_pbkdf2-extra.1 + +COMMANDFILES += cmd-pbkdf2_mod-lib_pbkdf2.lst +FSFILES += fs-pbkdf2_mod-lib_pbkdf2.lst +PARTTOOLFILES += parttool-pbkdf2_mod-lib_pbkdf2.lst +PARTMAPFILES += partmap-pbkdf2_mod-lib_pbkdf2.lst +HANDLERFILES += handler-pbkdf2_mod-lib_pbkdf2.lst +TERMINALFILES += terminal-pbkdf2_mod-lib_pbkdf2.lst +VIDEOFILES += video-pbkdf2_mod-lib_pbkdf2.lst + +cmd-pbkdf2_mod-lib_pbkdf2.lst: lib/pbkdf2.c $(lib/pbkdf2.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pbkdf2_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh pbkdf2 > $@ || (rm -f $@; exit 1) + +fs-pbkdf2_mod-lib_pbkdf2.lst: lib/pbkdf2.c $(lib/pbkdf2.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(pbkdf2_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh pbkdf2 > $@ || (rm -f $@; exit 1) + +parttool-pbkdf2_mod-lib_pbkdf2.lst: lib/pbkdf2.c $(lib/pbkdf2.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pbkdf2_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh pbkdf2 > $@ || (rm -f $@; exit 1) + +partmap-pbkdf2_mod-lib_pbkdf2.lst: lib/pbkdf2.c $(lib/pbkdf2.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(pbkdf2_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh pbkdf2 > $@ || (rm -f $@; exit 1) + +handler-pbkdf2_mod-lib_pbkdf2.lst: lib/pbkdf2.c $(lib/pbkdf2.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pbkdf2_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh pbkdf2 > $@ || (rm -f $@; exit 1) + +terminal-pbkdf2_mod-lib_pbkdf2.lst: lib/pbkdf2.c $(lib/pbkdf2.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pbkdf2_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh pbkdf2 > $@ || (rm -f $@; exit 1) + +video-pbkdf2_mod-lib_pbkdf2.lst: lib/pbkdf2.c $(lib/pbkdf2.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(pbkdf2_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh pbkdf2 > $@ || (rm -f $@; exit 1) + +pbkdf2_mod_CFLAGS = $(COMMON_CFLAGS) +pbkdf2_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For password_pbkdf2.mod. +pkglib_MODULES += password_pbkdf2.mod +password_pbkdf2_mod_SOURCES = commands/password_pbkdf2.c + +clean-module-password_pbkdf2.mod.1: + rm -f password_pbkdf2.mod mod-password_pbkdf2.o mod-password_pbkdf2.c pre-password_pbkdf2.o password_pbkdf2_mod-commands_password_pbkdf2.o und-password_pbkdf2.lst + +CLEAN_MODULE_TARGETS += clean-module-password_pbkdf2.mod.1 + +clean-module-password_pbkdf2.mod-symbol.1: + rm -f def-password_pbkdf2.lst + +CLEAN_MODULE_TARGETS += clean-module-password_pbkdf2.mod-symbol.1 +DEFSYMFILES += def-password_pbkdf2.lst +mostlyclean-module-password_pbkdf2.mod.1: + rm -f password_pbkdf2_mod-commands_password_pbkdf2.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-password_pbkdf2.mod.1 +UNDSYMFILES += und-password_pbkdf2.lst + +ifeq ($(TARGET_NO_MODULES), yes) +password_pbkdf2.mod: pre-password_pbkdf2.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(password_pbkdf2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-password_pbkdf2.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +password_pbkdf2.mod: pre-password_pbkdf2.o mod-password_pbkdf2.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(password_pbkdf2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-password_pbkdf2.o mod-password_pbkdf2.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +password_pbkdf2.mod: pre-password_pbkdf2.o mod-password_pbkdf2.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(password_pbkdf2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-password_pbkdf2.o mod-password_pbkdf2.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-password_pbkdf2.o: $(password_pbkdf2_mod_DEPENDENCIES) password_pbkdf2_mod-commands_password_pbkdf2.o + -rm -f $@ + $(TARGET_CC) $(password_pbkdf2_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ password_pbkdf2_mod-commands_password_pbkdf2.o + +mod-password_pbkdf2.o: mod-password_pbkdf2.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(password_pbkdf2_mod_CFLAGS) -DGRUB_FILE=\"mod-password_pbkdf2.c\" -c -o $@ $< + +mod-password_pbkdf2.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'password_pbkdf2' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-password_pbkdf2.lst: pre-password_pbkdf2.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 password_pbkdf2/' > $@ +else +def-password_pbkdf2.lst: pre-password_pbkdf2.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 password_pbkdf2/' > $@ +endif + +und-password_pbkdf2.lst: pre-password_pbkdf2.o + echo 'password_pbkdf2' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +password_pbkdf2_mod-commands_password_pbkdf2.o: commands/password_pbkdf2.c $(commands/password_pbkdf2.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(password_pbkdf2_mod_CFLAGS) -DGRUB_FILE=\"commands/password_pbkdf2.c\" -MD -c -o $@ $< +-include password_pbkdf2_mod-commands_password_pbkdf2.d + +clean-module-password_pbkdf2_mod-commands_password_pbkdf2-extra.1: + rm -f cmd-password_pbkdf2_mod-commands_password_pbkdf2.lst fs-password_pbkdf2_mod-commands_password_pbkdf2.lst partmap-password_pbkdf2_mod-commands_password_pbkdf2.lst handler-password_pbkdf2_mod-commands_password_pbkdf2.lst parttool-password_pbkdf2_mod-commands_password_pbkdf2.lst video-password_pbkdf2_mod-commands_password_pbkdf2.lst terminal-password_pbkdf2_mod-commands_password_pbkdf2.lst + +CLEAN_MODULE_TARGETS += clean-module-password_pbkdf2_mod-commands_password_pbkdf2-extra.1 + +COMMANDFILES += cmd-password_pbkdf2_mod-commands_password_pbkdf2.lst +FSFILES += fs-password_pbkdf2_mod-commands_password_pbkdf2.lst +PARTTOOLFILES += parttool-password_pbkdf2_mod-commands_password_pbkdf2.lst +PARTMAPFILES += partmap-password_pbkdf2_mod-commands_password_pbkdf2.lst +HANDLERFILES += handler-password_pbkdf2_mod-commands_password_pbkdf2.lst +TERMINALFILES += terminal-password_pbkdf2_mod-commands_password_pbkdf2.lst +VIDEOFILES += video-password_pbkdf2_mod-commands_password_pbkdf2.lst + +cmd-password_pbkdf2_mod-commands_password_pbkdf2.lst: commands/password_pbkdf2.c $(commands/password_pbkdf2.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(password_pbkdf2_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh password_pbkdf2 > $@ || (rm -f $@; exit 1) + +fs-password_pbkdf2_mod-commands_password_pbkdf2.lst: commands/password_pbkdf2.c $(commands/password_pbkdf2.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(password_pbkdf2_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh password_pbkdf2 > $@ || (rm -f $@; exit 1) + +parttool-password_pbkdf2_mod-commands_password_pbkdf2.lst: commands/password_pbkdf2.c $(commands/password_pbkdf2.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(password_pbkdf2_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh password_pbkdf2 > $@ || (rm -f $@; exit 1) + +partmap-password_pbkdf2_mod-commands_password_pbkdf2.lst: commands/password_pbkdf2.c $(commands/password_pbkdf2.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(password_pbkdf2_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh password_pbkdf2 > $@ || (rm -f $@; exit 1) + +handler-password_pbkdf2_mod-commands_password_pbkdf2.lst: commands/password_pbkdf2.c $(commands/password_pbkdf2.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(password_pbkdf2_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh password_pbkdf2 > $@ || (rm -f $@; exit 1) + +terminal-password_pbkdf2_mod-commands_password_pbkdf2.lst: commands/password_pbkdf2.c $(commands/password_pbkdf2.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(password_pbkdf2_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh password_pbkdf2 > $@ || (rm -f $@; exit 1) + +video-password_pbkdf2_mod-commands_password_pbkdf2.lst: commands/password_pbkdf2.c $(commands/password_pbkdf2.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(password_pbkdf2_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh password_pbkdf2 > $@ || (rm -f $@; exit 1) + +password_pbkdf2_mod_CFLAGS = $(COMMON_CFLAGS) +password_pbkdf2_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For memdisk.mod. +pkglib_MODULES += memdisk.mod +memdisk_mod_SOURCES = disk/memdisk.c + +clean-module-memdisk.mod.1: + rm -f memdisk.mod mod-memdisk.o mod-memdisk.c pre-memdisk.o memdisk_mod-disk_memdisk.o und-memdisk.lst + +CLEAN_MODULE_TARGETS += clean-module-memdisk.mod.1 + +clean-module-memdisk.mod-symbol.1: + rm -f def-memdisk.lst + +CLEAN_MODULE_TARGETS += clean-module-memdisk.mod-symbol.1 +DEFSYMFILES += def-memdisk.lst +mostlyclean-module-memdisk.mod.1: + rm -f memdisk_mod-disk_memdisk.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-memdisk.mod.1 +UNDSYMFILES += und-memdisk.lst + +ifeq ($(TARGET_NO_MODULES), yes) +memdisk.mod: pre-memdisk.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(memdisk_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-memdisk.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +memdisk.mod: pre-memdisk.o mod-memdisk.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(memdisk_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-memdisk.o mod-memdisk.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +memdisk.mod: pre-memdisk.o mod-memdisk.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(memdisk_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-memdisk.o mod-memdisk.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-memdisk.o: $(memdisk_mod_DEPENDENCIES) memdisk_mod-disk_memdisk.o + -rm -f $@ + $(TARGET_CC) $(memdisk_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ memdisk_mod-disk_memdisk.o + +mod-memdisk.o: mod-memdisk.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(memdisk_mod_CFLAGS) -DGRUB_FILE=\"mod-memdisk.c\" -c -o $@ $< + +mod-memdisk.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'memdisk' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-memdisk.lst: pre-memdisk.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 memdisk/' > $@ +else +def-memdisk.lst: pre-memdisk.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 memdisk/' > $@ +endif + +und-memdisk.lst: pre-memdisk.o + echo 'memdisk' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +memdisk_mod-disk_memdisk.o: disk/memdisk.c $(disk/memdisk.c_DEPENDENCIES) + $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(memdisk_mod_CFLAGS) -DGRUB_FILE=\"disk/memdisk.c\" -MD -c -o $@ $< +-include memdisk_mod-disk_memdisk.d + +clean-module-memdisk_mod-disk_memdisk-extra.1: + rm -f cmd-memdisk_mod-disk_memdisk.lst fs-memdisk_mod-disk_memdisk.lst partmap-memdisk_mod-disk_memdisk.lst handler-memdisk_mod-disk_memdisk.lst parttool-memdisk_mod-disk_memdisk.lst video-memdisk_mod-disk_memdisk.lst terminal-memdisk_mod-disk_memdisk.lst + +CLEAN_MODULE_TARGETS += clean-module-memdisk_mod-disk_memdisk-extra.1 + +COMMANDFILES += cmd-memdisk_mod-disk_memdisk.lst +FSFILES += fs-memdisk_mod-disk_memdisk.lst +PARTTOOLFILES += parttool-memdisk_mod-disk_memdisk.lst +PARTMAPFILES += partmap-memdisk_mod-disk_memdisk.lst +HANDLERFILES += handler-memdisk_mod-disk_memdisk.lst +TERMINALFILES += terminal-memdisk_mod-disk_memdisk.lst +VIDEOFILES += video-memdisk_mod-disk_memdisk.lst + +cmd-memdisk_mod-disk_memdisk.lst: disk/memdisk.c $(disk/memdisk.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(memdisk_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh memdisk > $@ || (rm -f $@; exit 1) + +fs-memdisk_mod-disk_memdisk.lst: disk/memdisk.c $(disk/memdisk.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(memdisk_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh memdisk > $@ || (rm -f $@; exit 1) + +parttool-memdisk_mod-disk_memdisk.lst: disk/memdisk.c $(disk/memdisk.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(memdisk_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh memdisk > $@ || (rm -f $@; exit 1) + +partmap-memdisk_mod-disk_memdisk.lst: disk/memdisk.c $(disk/memdisk.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(memdisk_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh memdisk > $@ || (rm -f $@; exit 1) + +handler-memdisk_mod-disk_memdisk.lst: disk/memdisk.c $(disk/memdisk.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(memdisk_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh memdisk > $@ || (rm -f $@; exit 1) + +terminal-memdisk_mod-disk_memdisk.lst: disk/memdisk.c $(disk/memdisk.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(memdisk_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh memdisk > $@ || (rm -f $@; exit 1) + +video-memdisk_mod-disk_memdisk.lst: disk/memdisk.c $(disk/memdisk.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(memdisk_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh memdisk > $@ || (rm -f $@; exit 1) + +memdisk_mod_CFLAGS = $(COMMON_CFLAGS) +memdisk_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For reboot.mod. +pkglib_MODULES += reboot.mod +reboot_mod_SOURCES = commands/reboot.c + +clean-module-reboot.mod.1: + rm -f reboot.mod mod-reboot.o mod-reboot.c pre-reboot.o reboot_mod-commands_reboot.o und-reboot.lst + +CLEAN_MODULE_TARGETS += clean-module-reboot.mod.1 + +clean-module-reboot.mod-symbol.1: + rm -f def-reboot.lst + +CLEAN_MODULE_TARGETS += clean-module-reboot.mod-symbol.1 +DEFSYMFILES += def-reboot.lst +mostlyclean-module-reboot.mod.1: + rm -f reboot_mod-commands_reboot.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-reboot.mod.1 +UNDSYMFILES += und-reboot.lst + +ifeq ($(TARGET_NO_MODULES), yes) +reboot.mod: pre-reboot.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(reboot_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-reboot.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +reboot.mod: pre-reboot.o mod-reboot.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(reboot_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-reboot.o mod-reboot.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +reboot.mod: pre-reboot.o mod-reboot.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(reboot_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-reboot.o mod-reboot.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-reboot.o: $(reboot_mod_DEPENDENCIES) reboot_mod-commands_reboot.o + -rm -f $@ + $(TARGET_CC) $(reboot_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ reboot_mod-commands_reboot.o + +mod-reboot.o: mod-reboot.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(reboot_mod_CFLAGS) -DGRUB_FILE=\"mod-reboot.c\" -c -o $@ $< + +mod-reboot.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'reboot' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-reboot.lst: pre-reboot.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 reboot/' > $@ +else +def-reboot.lst: pre-reboot.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 reboot/' > $@ +endif + +und-reboot.lst: pre-reboot.o + echo 'reboot' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +reboot_mod-commands_reboot.o: commands/reboot.c $(commands/reboot.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(reboot_mod_CFLAGS) -DGRUB_FILE=\"commands/reboot.c\" -MD -c -o $@ $< +-include reboot_mod-commands_reboot.d + +clean-module-reboot_mod-commands_reboot-extra.1: + rm -f cmd-reboot_mod-commands_reboot.lst fs-reboot_mod-commands_reboot.lst partmap-reboot_mod-commands_reboot.lst handler-reboot_mod-commands_reboot.lst parttool-reboot_mod-commands_reboot.lst video-reboot_mod-commands_reboot.lst terminal-reboot_mod-commands_reboot.lst + +CLEAN_MODULE_TARGETS += clean-module-reboot_mod-commands_reboot-extra.1 + +COMMANDFILES += cmd-reboot_mod-commands_reboot.lst +FSFILES += fs-reboot_mod-commands_reboot.lst +PARTTOOLFILES += parttool-reboot_mod-commands_reboot.lst +PARTMAPFILES += partmap-reboot_mod-commands_reboot.lst +HANDLERFILES += handler-reboot_mod-commands_reboot.lst +TERMINALFILES += terminal-reboot_mod-commands_reboot.lst +VIDEOFILES += video-reboot_mod-commands_reboot.lst + +cmd-reboot_mod-commands_reboot.lst: commands/reboot.c $(commands/reboot.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(reboot_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh reboot > $@ || (rm -f $@; exit 1) + +fs-reboot_mod-commands_reboot.lst: commands/reboot.c $(commands/reboot.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(reboot_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh reboot > $@ || (rm -f $@; exit 1) + +parttool-reboot_mod-commands_reboot.lst: commands/reboot.c $(commands/reboot.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(reboot_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh reboot > $@ || (rm -f $@; exit 1) + +partmap-reboot_mod-commands_reboot.lst: commands/reboot.c $(commands/reboot.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(reboot_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh reboot > $@ || (rm -f $@; exit 1) + +handler-reboot_mod-commands_reboot.lst: commands/reboot.c $(commands/reboot.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(reboot_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh reboot > $@ || (rm -f $@; exit 1) + +terminal-reboot_mod-commands_reboot.lst: commands/reboot.c $(commands/reboot.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(reboot_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh reboot > $@ || (rm -f $@; exit 1) + +video-reboot_mod-commands_reboot.lst: commands/reboot.c $(commands/reboot.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(reboot_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh reboot > $@ || (rm -f $@; exit 1) + +reboot_mod_CFLAGS = $(COMMON_CFLAGS) +reboot_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For date.mod +pkglib_MODULES += date.mod +date_mod_SOURCES = commands/date.c + +clean-module-date.mod.1: + rm -f date.mod mod-date.o mod-date.c pre-date.o date_mod-commands_date.o und-date.lst + +CLEAN_MODULE_TARGETS += clean-module-date.mod.1 + +clean-module-date.mod-symbol.1: + rm -f def-date.lst + +CLEAN_MODULE_TARGETS += clean-module-date.mod-symbol.1 +DEFSYMFILES += def-date.lst +mostlyclean-module-date.mod.1: + rm -f date_mod-commands_date.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-date.mod.1 +UNDSYMFILES += und-date.lst + +ifeq ($(TARGET_NO_MODULES), yes) +date.mod: pre-date.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(date_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-date.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +date.mod: pre-date.o mod-date.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(date_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-date.o mod-date.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +date.mod: pre-date.o mod-date.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(date_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-date.o mod-date.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-date.o: $(date_mod_DEPENDENCIES) date_mod-commands_date.o + -rm -f $@ + $(TARGET_CC) $(date_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ date_mod-commands_date.o + +mod-date.o: mod-date.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(date_mod_CFLAGS) -DGRUB_FILE=\"mod-date.c\" -c -o $@ $< + +mod-date.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'date' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-date.lst: pre-date.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 date/' > $@ +else +def-date.lst: pre-date.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 date/' > $@ +endif + +und-date.lst: pre-date.o + echo 'date' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +date_mod-commands_date.o: commands/date.c $(commands/date.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(date_mod_CFLAGS) -DGRUB_FILE=\"commands/date.c\" -MD -c -o $@ $< +-include date_mod-commands_date.d + +clean-module-date_mod-commands_date-extra.1: + rm -f cmd-date_mod-commands_date.lst fs-date_mod-commands_date.lst partmap-date_mod-commands_date.lst handler-date_mod-commands_date.lst parttool-date_mod-commands_date.lst video-date_mod-commands_date.lst terminal-date_mod-commands_date.lst + +CLEAN_MODULE_TARGETS += clean-module-date_mod-commands_date-extra.1 + +COMMANDFILES += cmd-date_mod-commands_date.lst +FSFILES += fs-date_mod-commands_date.lst +PARTTOOLFILES += parttool-date_mod-commands_date.lst +PARTMAPFILES += partmap-date_mod-commands_date.lst +HANDLERFILES += handler-date_mod-commands_date.lst +TERMINALFILES += terminal-date_mod-commands_date.lst +VIDEOFILES += video-date_mod-commands_date.lst + +cmd-date_mod-commands_date.lst: commands/date.c $(commands/date.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(date_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh date > $@ || (rm -f $@; exit 1) + +fs-date_mod-commands_date.lst: commands/date.c $(commands/date.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(date_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh date > $@ || (rm -f $@; exit 1) + +parttool-date_mod-commands_date.lst: commands/date.c $(commands/date.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(date_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh date > $@ || (rm -f $@; exit 1) + +partmap-date_mod-commands_date.lst: commands/date.c $(commands/date.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(date_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh date > $@ || (rm -f $@; exit 1) + +handler-date_mod-commands_date.lst: commands/date.c $(commands/date.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(date_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh date > $@ || (rm -f $@; exit 1) + +terminal-date_mod-commands_date.lst: commands/date.c $(commands/date.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(date_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh date > $@ || (rm -f $@; exit 1) + +video-date_mod-commands_date.lst: commands/date.c $(commands/date.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(date_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh date > $@ || (rm -f $@; exit 1) + +date_mod_CFLAGS = $(COMMON_CFLAGS) +date_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For datehook.mod +pkglib_MODULES += datehook.mod +datehook_mod_SOURCES = hook/datehook.c + +clean-module-datehook.mod.1: + rm -f datehook.mod mod-datehook.o mod-datehook.c pre-datehook.o datehook_mod-hook_datehook.o und-datehook.lst + +CLEAN_MODULE_TARGETS += clean-module-datehook.mod.1 + +clean-module-datehook.mod-symbol.1: + rm -f def-datehook.lst + +CLEAN_MODULE_TARGETS += clean-module-datehook.mod-symbol.1 +DEFSYMFILES += def-datehook.lst +mostlyclean-module-datehook.mod.1: + rm -f datehook_mod-hook_datehook.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-datehook.mod.1 +UNDSYMFILES += und-datehook.lst + +ifeq ($(TARGET_NO_MODULES), yes) +datehook.mod: pre-datehook.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(datehook_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-datehook.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +datehook.mod: pre-datehook.o mod-datehook.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(datehook_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-datehook.o mod-datehook.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +datehook.mod: pre-datehook.o mod-datehook.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(datehook_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-datehook.o mod-datehook.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-datehook.o: $(datehook_mod_DEPENDENCIES) datehook_mod-hook_datehook.o + -rm -f $@ + $(TARGET_CC) $(datehook_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ datehook_mod-hook_datehook.o + +mod-datehook.o: mod-datehook.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datehook_mod_CFLAGS) -DGRUB_FILE=\"mod-datehook.c\" -c -o $@ $< + +mod-datehook.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'datehook' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-datehook.lst: pre-datehook.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 datehook/' > $@ +else +def-datehook.lst: pre-datehook.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 datehook/' > $@ +endif + +und-datehook.lst: pre-datehook.o + echo 'datehook' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +datehook_mod-hook_datehook.o: hook/datehook.c $(hook/datehook.c_DEPENDENCIES) + $(TARGET_CC) -Ihook -I$(srcdir)/hook $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datehook_mod_CFLAGS) -DGRUB_FILE=\"hook/datehook.c\" -MD -c -o $@ $< +-include datehook_mod-hook_datehook.d + +clean-module-datehook_mod-hook_datehook-extra.1: + rm -f cmd-datehook_mod-hook_datehook.lst fs-datehook_mod-hook_datehook.lst partmap-datehook_mod-hook_datehook.lst handler-datehook_mod-hook_datehook.lst parttool-datehook_mod-hook_datehook.lst video-datehook_mod-hook_datehook.lst terminal-datehook_mod-hook_datehook.lst + +CLEAN_MODULE_TARGETS += clean-module-datehook_mod-hook_datehook-extra.1 + +COMMANDFILES += cmd-datehook_mod-hook_datehook.lst +FSFILES += fs-datehook_mod-hook_datehook.lst +PARTTOOLFILES += parttool-datehook_mod-hook_datehook.lst +PARTMAPFILES += partmap-datehook_mod-hook_datehook.lst +HANDLERFILES += handler-datehook_mod-hook_datehook.lst +TERMINALFILES += terminal-datehook_mod-hook_datehook.lst +VIDEOFILES += video-datehook_mod-hook_datehook.lst + +cmd-datehook_mod-hook_datehook.lst: hook/datehook.c $(hook/datehook.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ihook -I$(srcdir)/hook $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datehook_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh datehook > $@ || (rm -f $@; exit 1) + +fs-datehook_mod-hook_datehook.lst: hook/datehook.c $(hook/datehook.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ihook -I$(srcdir)/hook $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datehook_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh datehook > $@ || (rm -f $@; exit 1) + +parttool-datehook_mod-hook_datehook.lst: hook/datehook.c $(hook/datehook.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ihook -I$(srcdir)/hook $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datehook_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh datehook > $@ || (rm -f $@; exit 1) + +partmap-datehook_mod-hook_datehook.lst: hook/datehook.c $(hook/datehook.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ihook -I$(srcdir)/hook $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datehook_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh datehook > $@ || (rm -f $@; exit 1) + +handler-datehook_mod-hook_datehook.lst: hook/datehook.c $(hook/datehook.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ihook -I$(srcdir)/hook $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datehook_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh datehook > $@ || (rm -f $@; exit 1) + +terminal-datehook_mod-hook_datehook.lst: hook/datehook.c $(hook/datehook.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ihook -I$(srcdir)/hook $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datehook_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh datehook > $@ || (rm -f $@; exit 1) + +video-datehook_mod-hook_datehook.lst: hook/datehook.c $(hook/datehook.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ihook -I$(srcdir)/hook $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datehook_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh datehook > $@ || (rm -f $@; exit 1) + +datehook_mod_CFLAGS = $(COMMON_CFLAGS) +datehook_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For lsmmap.mod +pkglib_MODULES += lsmmap.mod +lsmmap_mod_SOURCES = commands/lsmmap.c + +clean-module-lsmmap.mod.1: + rm -f lsmmap.mod mod-lsmmap.o mod-lsmmap.c pre-lsmmap.o lsmmap_mod-commands_lsmmap.o und-lsmmap.lst + +CLEAN_MODULE_TARGETS += clean-module-lsmmap.mod.1 + +clean-module-lsmmap.mod-symbol.1: + rm -f def-lsmmap.lst + +CLEAN_MODULE_TARGETS += clean-module-lsmmap.mod-symbol.1 +DEFSYMFILES += def-lsmmap.lst +mostlyclean-module-lsmmap.mod.1: + rm -f lsmmap_mod-commands_lsmmap.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-lsmmap.mod.1 +UNDSYMFILES += und-lsmmap.lst + +ifeq ($(TARGET_NO_MODULES), yes) +lsmmap.mod: pre-lsmmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(lsmmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-lsmmap.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +lsmmap.mod: pre-lsmmap.o mod-lsmmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(lsmmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-lsmmap.o mod-lsmmap.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +lsmmap.mod: pre-lsmmap.o mod-lsmmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(lsmmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-lsmmap.o mod-lsmmap.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-lsmmap.o: $(lsmmap_mod_DEPENDENCIES) lsmmap_mod-commands_lsmmap.o + -rm -f $@ + $(TARGET_CC) $(lsmmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ lsmmap_mod-commands_lsmmap.o + +mod-lsmmap.o: mod-lsmmap.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lsmmap_mod_CFLAGS) -DGRUB_FILE=\"mod-lsmmap.c\" -c -o $@ $< + +mod-lsmmap.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'lsmmap' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-lsmmap.lst: pre-lsmmap.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 lsmmap/' > $@ +else +def-lsmmap.lst: pre-lsmmap.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 lsmmap/' > $@ +endif + +und-lsmmap.lst: pre-lsmmap.o + echo 'lsmmap' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +lsmmap_mod-commands_lsmmap.o: commands/lsmmap.c $(commands/lsmmap.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lsmmap_mod_CFLAGS) -DGRUB_FILE=\"commands/lsmmap.c\" -MD -c -o $@ $< +-include lsmmap_mod-commands_lsmmap.d + +clean-module-lsmmap_mod-commands_lsmmap-extra.1: + rm -f cmd-lsmmap_mod-commands_lsmmap.lst fs-lsmmap_mod-commands_lsmmap.lst partmap-lsmmap_mod-commands_lsmmap.lst handler-lsmmap_mod-commands_lsmmap.lst parttool-lsmmap_mod-commands_lsmmap.lst video-lsmmap_mod-commands_lsmmap.lst terminal-lsmmap_mod-commands_lsmmap.lst + +CLEAN_MODULE_TARGETS += clean-module-lsmmap_mod-commands_lsmmap-extra.1 + +COMMANDFILES += cmd-lsmmap_mod-commands_lsmmap.lst +FSFILES += fs-lsmmap_mod-commands_lsmmap.lst +PARTTOOLFILES += parttool-lsmmap_mod-commands_lsmmap.lst +PARTMAPFILES += partmap-lsmmap_mod-commands_lsmmap.lst +HANDLERFILES += handler-lsmmap_mod-commands_lsmmap.lst +TERMINALFILES += terminal-lsmmap_mod-commands_lsmmap.lst +VIDEOFILES += video-lsmmap_mod-commands_lsmmap.lst + +cmd-lsmmap_mod-commands_lsmmap.lst: commands/lsmmap.c $(commands/lsmmap.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lsmmap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh lsmmap > $@ || (rm -f $@; exit 1) + +fs-lsmmap_mod-commands_lsmmap.lst: commands/lsmmap.c $(commands/lsmmap.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(lsmmap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh lsmmap > $@ || (rm -f $@; exit 1) + +parttool-lsmmap_mod-commands_lsmmap.lst: commands/lsmmap.c $(commands/lsmmap.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lsmmap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh lsmmap > $@ || (rm -f $@; exit 1) + +partmap-lsmmap_mod-commands_lsmmap.lst: commands/lsmmap.c $(commands/lsmmap.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(lsmmap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh lsmmap > $@ || (rm -f $@; exit 1) + +handler-lsmmap_mod-commands_lsmmap.lst: commands/lsmmap.c $(commands/lsmmap.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lsmmap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh lsmmap > $@ || (rm -f $@; exit 1) + +terminal-lsmmap_mod-commands_lsmmap.lst: commands/lsmmap.c $(commands/lsmmap.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(lsmmap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh lsmmap > $@ || (rm -f $@; exit 1) + +video-lsmmap_mod-commands_lsmmap.lst: commands/lsmmap.c $(commands/lsmmap.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(lsmmap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh lsmmap > $@ || (rm -f $@; exit 1) + +lsmmap_mod_CFLAGS = $(COMMON_CFLAGS) +lsmmap_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For boot.mod. +pkglib_MODULES += boot.mod +boot_mod_SOURCES = commands/boot.c lib/i386/pc/biosnum.c + +clean-module-boot.mod.1: + rm -f boot.mod mod-boot.o mod-boot.c pre-boot.o boot_mod-commands_boot.o boot_mod-lib_i386_pc_biosnum.o und-boot.lst + +CLEAN_MODULE_TARGETS += clean-module-boot.mod.1 + +clean-module-boot.mod-symbol.1: + rm -f def-boot.lst + +CLEAN_MODULE_TARGETS += clean-module-boot.mod-symbol.1 +DEFSYMFILES += def-boot.lst +mostlyclean-module-boot.mod.1: + rm -f boot_mod-commands_boot.d boot_mod-lib_i386_pc_biosnum.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-boot.mod.1 +UNDSYMFILES += und-boot.lst + +ifeq ($(TARGET_NO_MODULES), yes) +boot.mod: pre-boot.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(boot_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-boot.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +boot.mod: pre-boot.o mod-boot.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(boot_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-boot.o mod-boot.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +boot.mod: pre-boot.o mod-boot.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(boot_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-boot.o mod-boot.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-boot.o: $(boot_mod_DEPENDENCIES) boot_mod-commands_boot.o boot_mod-lib_i386_pc_biosnum.o + -rm -f $@ + $(TARGET_CC) $(boot_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ boot_mod-commands_boot.o boot_mod-lib_i386_pc_biosnum.o + +mod-boot.o: mod-boot.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(boot_mod_CFLAGS) -DGRUB_FILE=\"mod-boot.c\" -c -o $@ $< + +mod-boot.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'boot' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-boot.lst: pre-boot.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 boot/' > $@ +else +def-boot.lst: pre-boot.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 boot/' > $@ +endif + +und-boot.lst: pre-boot.o + echo 'boot' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +boot_mod-commands_boot.o: commands/boot.c $(commands/boot.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(boot_mod_CFLAGS) -DGRUB_FILE=\"commands/boot.c\" -MD -c -o $@ $< +-include boot_mod-commands_boot.d + +clean-module-boot_mod-commands_boot-extra.1: + rm -f cmd-boot_mod-commands_boot.lst fs-boot_mod-commands_boot.lst partmap-boot_mod-commands_boot.lst handler-boot_mod-commands_boot.lst parttool-boot_mod-commands_boot.lst video-boot_mod-commands_boot.lst terminal-boot_mod-commands_boot.lst + +CLEAN_MODULE_TARGETS += clean-module-boot_mod-commands_boot-extra.1 + +COMMANDFILES += cmd-boot_mod-commands_boot.lst +FSFILES += fs-boot_mod-commands_boot.lst +PARTTOOLFILES += parttool-boot_mod-commands_boot.lst +PARTMAPFILES += partmap-boot_mod-commands_boot.lst +HANDLERFILES += handler-boot_mod-commands_boot.lst +TERMINALFILES += terminal-boot_mod-commands_boot.lst +VIDEOFILES += video-boot_mod-commands_boot.lst + +cmd-boot_mod-commands_boot.lst: commands/boot.c $(commands/boot.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(boot_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh boot > $@ || (rm -f $@; exit 1) + +fs-boot_mod-commands_boot.lst: commands/boot.c $(commands/boot.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(boot_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh boot > $@ || (rm -f $@; exit 1) + +parttool-boot_mod-commands_boot.lst: commands/boot.c $(commands/boot.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(boot_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh boot > $@ || (rm -f $@; exit 1) + +partmap-boot_mod-commands_boot.lst: commands/boot.c $(commands/boot.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(boot_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh boot > $@ || (rm -f $@; exit 1) + +handler-boot_mod-commands_boot.lst: commands/boot.c $(commands/boot.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(boot_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh boot > $@ || (rm -f $@; exit 1) + +terminal-boot_mod-commands_boot.lst: commands/boot.c $(commands/boot.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(boot_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh boot > $@ || (rm -f $@; exit 1) + +video-boot_mod-commands_boot.lst: commands/boot.c $(commands/boot.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(boot_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh boot > $@ || (rm -f $@; exit 1) + +boot_mod-lib_i386_pc_biosnum.o: lib/i386/pc/biosnum.c $(lib/i386/pc/biosnum.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/i386/pc -I$(srcdir)/lib/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(boot_mod_CFLAGS) -DGRUB_FILE=\"lib/i386/pc/biosnum.c\" -MD -c -o $@ $< +-include boot_mod-lib_i386_pc_biosnum.d + +clean-module-boot_mod-lib_i386_pc_biosnum-extra.1: + rm -f cmd-boot_mod-lib_i386_pc_biosnum.lst fs-boot_mod-lib_i386_pc_biosnum.lst partmap-boot_mod-lib_i386_pc_biosnum.lst handler-boot_mod-lib_i386_pc_biosnum.lst parttool-boot_mod-lib_i386_pc_biosnum.lst video-boot_mod-lib_i386_pc_biosnum.lst terminal-boot_mod-lib_i386_pc_biosnum.lst + +CLEAN_MODULE_TARGETS += clean-module-boot_mod-lib_i386_pc_biosnum-extra.1 + +COMMANDFILES += cmd-boot_mod-lib_i386_pc_biosnum.lst +FSFILES += fs-boot_mod-lib_i386_pc_biosnum.lst +PARTTOOLFILES += parttool-boot_mod-lib_i386_pc_biosnum.lst +PARTMAPFILES += partmap-boot_mod-lib_i386_pc_biosnum.lst +HANDLERFILES += handler-boot_mod-lib_i386_pc_biosnum.lst +TERMINALFILES += terminal-boot_mod-lib_i386_pc_biosnum.lst +VIDEOFILES += video-boot_mod-lib_i386_pc_biosnum.lst + +cmd-boot_mod-lib_i386_pc_biosnum.lst: lib/i386/pc/biosnum.c $(lib/i386/pc/biosnum.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/i386/pc -I$(srcdir)/lib/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(boot_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh boot > $@ || (rm -f $@; exit 1) + +fs-boot_mod-lib_i386_pc_biosnum.lst: lib/i386/pc/biosnum.c $(lib/i386/pc/biosnum.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/i386/pc -I$(srcdir)/lib/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(boot_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh boot > $@ || (rm -f $@; exit 1) + +parttool-boot_mod-lib_i386_pc_biosnum.lst: lib/i386/pc/biosnum.c $(lib/i386/pc/biosnum.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/i386/pc -I$(srcdir)/lib/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(boot_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh boot > $@ || (rm -f $@; exit 1) + +partmap-boot_mod-lib_i386_pc_biosnum.lst: lib/i386/pc/biosnum.c $(lib/i386/pc/biosnum.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/i386/pc -I$(srcdir)/lib/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(boot_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh boot > $@ || (rm -f $@; exit 1) + +handler-boot_mod-lib_i386_pc_biosnum.lst: lib/i386/pc/biosnum.c $(lib/i386/pc/biosnum.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/i386/pc -I$(srcdir)/lib/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(boot_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh boot > $@ || (rm -f $@; exit 1) + +terminal-boot_mod-lib_i386_pc_biosnum.lst: lib/i386/pc/biosnum.c $(lib/i386/pc/biosnum.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/i386/pc -I$(srcdir)/lib/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(boot_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh boot > $@ || (rm -f $@; exit 1) + +video-boot_mod-lib_i386_pc_biosnum.lst: lib/i386/pc/biosnum.c $(lib/i386/pc/biosnum.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/i386/pc -I$(srcdir)/lib/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(boot_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh boot > $@ || (rm -f $@; exit 1) + +boot_mod_CFLAGS = $(COMMON_CFLAGS) +boot_mod_LDFLAGS = $(COMMON_LDFLAGS) + +bin_UTILITIES += grub-mkpasswd-pbkdf2 +grub_mkpasswd_pbkdf2_SOURCES = gnulib/progname.c gnulib/getdelim.c gnulib/getline.c util/grub-mkpasswd-pbkdf2.c lib/crypto.c lib/libgcrypt-grub/cipher/sha512.c lib/pbkdf2.c util/misc.c kern/emu/misc.c kern/emu/mm.c kern/err.c + +clean-utility-grub-mkpasswd-pbkdf2.1: + rm -f grub-mkpasswd-pbkdf2$(EXEEXT) grub_mkpasswd_pbkdf2-gnulib_progname.o grub_mkpasswd_pbkdf2-gnulib_getdelim.o grub_mkpasswd_pbkdf2-gnulib_getline.o grub_mkpasswd_pbkdf2-util_grub_mkpasswd_pbkdf2.o grub_mkpasswd_pbkdf2-lib_crypto.o grub_mkpasswd_pbkdf2-lib_libgcrypt_grub_cipher_sha512.o grub_mkpasswd_pbkdf2-lib_pbkdf2.o grub_mkpasswd_pbkdf2-util_misc.o grub_mkpasswd_pbkdf2-kern_emu_misc.o grub_mkpasswd_pbkdf2-kern_emu_mm.o grub_mkpasswd_pbkdf2-kern_err.o + +CLEAN_UTILITY_TARGETS += clean-utility-grub-mkpasswd-pbkdf2.1 + +mostlyclean-utility-grub-mkpasswd-pbkdf2.1: + rm -f grub_mkpasswd_pbkdf2-gnulib_progname.d grub_mkpasswd_pbkdf2-gnulib_getdelim.d grub_mkpasswd_pbkdf2-gnulib_getline.d grub_mkpasswd_pbkdf2-util_grub_mkpasswd_pbkdf2.d grub_mkpasswd_pbkdf2-lib_crypto.d grub_mkpasswd_pbkdf2-lib_libgcrypt_grub_cipher_sha512.d grub_mkpasswd_pbkdf2-lib_pbkdf2.d grub_mkpasswd_pbkdf2-util_misc.d grub_mkpasswd_pbkdf2-kern_emu_misc.d grub_mkpasswd_pbkdf2-kern_emu_mm.d grub_mkpasswd_pbkdf2-kern_err.d + +MOSTLYCLEAN_UTILITY_TARGETS += mostlyclean-utility-grub-mkpasswd-pbkdf2.1 + +grub_mkpasswd_pbkdf2_OBJECTS += grub_mkpasswd_pbkdf2-gnulib_progname.o grub_mkpasswd_pbkdf2-gnulib_getdelim.o grub_mkpasswd_pbkdf2-gnulib_getline.o grub_mkpasswd_pbkdf2-util_grub_mkpasswd_pbkdf2.o grub_mkpasswd_pbkdf2-lib_crypto.o grub_mkpasswd_pbkdf2-lib_libgcrypt_grub_cipher_sha512.o grub_mkpasswd_pbkdf2-lib_pbkdf2.o grub_mkpasswd_pbkdf2-util_misc.o grub_mkpasswd_pbkdf2-kern_emu_misc.o grub_mkpasswd_pbkdf2-kern_emu_mm.o grub_mkpasswd_pbkdf2-kern_err.o + +grub_mkpasswd_pbkdf2-gnulib_progname.o: gnulib/progname.c $(gnulib/progname.c_DEPENDENCIES) + $(CC) -Ignulib -I$(srcdir)/gnulib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkpasswd_pbkdf2_CFLAGS) -DGRUB_FILE=\"gnulib/progname.c\" -MD -c -o $@ $< +-include grub_mkpasswd_pbkdf2-gnulib_progname.d + +grub_mkpasswd_pbkdf2-gnulib_getdelim.o: gnulib/getdelim.c $(gnulib/getdelim.c_DEPENDENCIES) + $(CC) -Ignulib -I$(srcdir)/gnulib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkpasswd_pbkdf2_CFLAGS) -DGRUB_FILE=\"gnulib/getdelim.c\" -MD -c -o $@ $< +-include grub_mkpasswd_pbkdf2-gnulib_getdelim.d + +grub_mkpasswd_pbkdf2-gnulib_getline.o: gnulib/getline.c $(gnulib/getline.c_DEPENDENCIES) + $(CC) -Ignulib -I$(srcdir)/gnulib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkpasswd_pbkdf2_CFLAGS) -DGRUB_FILE=\"gnulib/getline.c\" -MD -c -o $@ $< +-include grub_mkpasswd_pbkdf2-gnulib_getline.d + +grub_mkpasswd_pbkdf2-util_grub_mkpasswd_pbkdf2.o: util/grub-mkpasswd-pbkdf2.c $(util/grub-mkpasswd-pbkdf2.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkpasswd_pbkdf2_CFLAGS) -DGRUB_FILE=\"util/grub-mkpasswd-pbkdf2.c\" -MD -c -o $@ $< +-include grub_mkpasswd_pbkdf2-util_grub_mkpasswd_pbkdf2.d + +grub_mkpasswd_pbkdf2-lib_crypto.o: lib/crypto.c $(lib/crypto.c_DEPENDENCIES) + $(CC) -Ilib -I$(srcdir)/lib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkpasswd_pbkdf2_CFLAGS) -DGRUB_FILE=\"lib/crypto.c\" -MD -c -o $@ $< +-include grub_mkpasswd_pbkdf2-lib_crypto.d + +grub_mkpasswd_pbkdf2-lib_libgcrypt_grub_cipher_sha512.o: lib/libgcrypt-grub/cipher/sha512.c $(lib/libgcrypt-grub/cipher/sha512.c_DEPENDENCIES) + $(CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkpasswd_pbkdf2_CFLAGS) -DGRUB_FILE=\"lib/libgcrypt-grub/cipher/sha512.c\" -MD -c -o $@ $< +-include grub_mkpasswd_pbkdf2-lib_libgcrypt_grub_cipher_sha512.d + +grub_mkpasswd_pbkdf2-lib_pbkdf2.o: lib/pbkdf2.c $(lib/pbkdf2.c_DEPENDENCIES) + $(CC) -Ilib -I$(srcdir)/lib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkpasswd_pbkdf2_CFLAGS) -DGRUB_FILE=\"lib/pbkdf2.c\" -MD -c -o $@ $< +-include grub_mkpasswd_pbkdf2-lib_pbkdf2.d + +grub_mkpasswd_pbkdf2-util_misc.o: util/misc.c $(util/misc.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkpasswd_pbkdf2_CFLAGS) -DGRUB_FILE=\"util/misc.c\" -MD -c -o $@ $< +-include grub_mkpasswd_pbkdf2-util_misc.d + +grub_mkpasswd_pbkdf2-kern_emu_misc.o: kern/emu/misc.c $(kern/emu/misc.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkpasswd_pbkdf2_CFLAGS) -DGRUB_FILE=\"kern/emu/misc.c\" -MD -c -o $@ $< +-include grub_mkpasswd_pbkdf2-kern_emu_misc.d + +grub_mkpasswd_pbkdf2-kern_emu_mm.o: kern/emu/mm.c $(kern/emu/mm.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkpasswd_pbkdf2_CFLAGS) -DGRUB_FILE=\"kern/emu/mm.c\" -MD -c -o $@ $< +-include grub_mkpasswd_pbkdf2-kern_emu_mm.d + +grub_mkpasswd_pbkdf2-kern_err.o: kern/err.c $(kern/err.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_mkpasswd_pbkdf2_CFLAGS) -DGRUB_FILE=\"kern/err.c\" -MD -c -o $@ $< +-include grub_mkpasswd_pbkdf2-kern_err.d + +grub_mkpasswd_pbkdf2_CFLAGS += -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap -DGRUB_MKPASSWD=1 + +include $(srcdir)/conf/gcry.mk +grub-mkdevicemap: $(grub_mkdevicemap_DEPENDENCIES) $(grub_mkdevicemap_OBJECTS) + $(CC) -o $@ $(grub_mkdevicemap_OBJECTS) $(LDFLAGS) $(grub_mkdevicemap_LDFLAGS) + +grub-mkimage: $(grub_mkimage_DEPENDENCIES) $(grub_mkimage_OBJECTS) + $(CC) -o $@ $(grub_mkimage_OBJECTS) $(LDFLAGS) $(grub_mkimage_LDFLAGS) + +grub-probe: $(grub_probe_DEPENDENCIES) $(grub_probe_OBJECTS) + $(CC) -o $@ $(grub_probe_OBJECTS) $(LDFLAGS) $(grub_probe_LDFLAGS) + +grub-fstest: $(grub_fstest_DEPENDENCIES) $(grub_fstest_OBJECTS) + $(CC) -o $@ $(grub_fstest_OBJECTS) $(LDFLAGS) $(grub_fstest_LDFLAGS) + +grub-mkfont: $(grub_mkfont_DEPENDENCIES) $(grub_mkfont_OBJECTS) + $(CC) -o $@ $(grub_mkfont_OBJECTS) $(LDFLAGS) $(grub_mkfont_LDFLAGS) + +grub-mkrelpath: $(grub_mkrelpath_DEPENDENCIES) $(grub_mkrelpath_OBJECTS) + $(CC) -o $@ $(grub_mkrelpath_OBJECTS) $(LDFLAGS) $(grub_mkrelpath_LDFLAGS) + +grub-bin2h: $(grub_bin2h_DEPENDENCIES) $(grub_bin2h_OBJECTS) + $(CC) -o $@ $(grub_bin2h_OBJECTS) $(LDFLAGS) $(grub_bin2h_LDFLAGS) + +grub-script-check: $(grub_script_check_DEPENDENCIES) $(grub_script_check_OBJECTS) + $(CC) -o $@ $(grub_script_check_OBJECTS) $(LDFLAGS) $(grub_script_check_LDFLAGS) + +grub-editenv: $(grub_editenv_DEPENDENCIES) $(grub_editenv_OBJECTS) + $(CC) -o $@ $(grub_editenv_OBJECTS) $(LDFLAGS) $(grub_editenv_LDFLAGS) + +grub-macho2img: $(grub_macho2img_DEPENDENCIES) $(grub_macho2img_OBJECTS) + $(CC) -o $@ $(grub_macho2img_OBJECTS) $(LDFLAGS) $(grub_macho2img_LDFLAGS) + +grub-pe2elf: $(grub_pe2elf_DEPENDENCIES) $(grub_pe2elf_OBJECTS) + $(CC) -o $@ $(grub_pe2elf_OBJECTS) $(LDFLAGS) $(grub_pe2elf_LDFLAGS) + +grub-mkpasswd-pbkdf2: $(grub_mkpasswd_pbkdf2_DEPENDENCIES) $(grub_mkpasswd_pbkdf2_OBJECTS) + $(CC) -o $@ $(grub_mkpasswd_pbkdf2_OBJECTS) $(LDFLAGS) $(grub_mkpasswd_pbkdf2_LDFLAGS) + --- grub2-1.98+20100804.orig/conf/gcry.rmk +++ grub2-1.98+20100804/conf/gcry.rmk @@ -0,0 +1,128 @@ +# -*- makefile -*- + +MAINTAINER_CLEANFILES += $(srcdir)/conf/gcry.rmk $(srcdir)/lib/libgcrypt-grub/cipher/ChangeLog $(srcdir)/lib/libgcrypt-grub/cipher/cipher.h $(srcdir)/lib/libgcrypt-grub/cipher/crypto.lst $(srcdir)/lib/libgcrypt-grub/cipher/g10lib.h $(srcdir)/lib/libgcrypt-grub/cipher/memory.h $(srcdir)/lib/libgcrypt-grub/cipher/types.h +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/rijndael.c +pkglib_MODULES += gcry_rijndael.mod +gcry_rijndael_mod_SOURCES = lib/libgcrypt-grub/cipher/rijndael.c +gcry_rijndael_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_rijndael_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/sha512.c +pkglib_MODULES += gcry_sha512.mod +gcry_sha512_mod_SOURCES = lib/libgcrypt-grub/cipher/sha512.c +gcry_sha512_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_sha512_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/camellia.h +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/seed.c +pkglib_MODULES += gcry_seed.mod +gcry_seed_mod_SOURCES = lib/libgcrypt-grub/cipher/seed.c +gcry_seed_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_seed_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/dsa.c +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/md4.c +pkglib_MODULES += gcry_md4.mod +gcry_md4_mod_SOURCES = lib/libgcrypt-grub/cipher/md4.c +gcry_md4_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_md4_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/tiger.c +pkglib_MODULES += gcry_tiger.mod +gcry_tiger_mod_SOURCES = lib/libgcrypt-grub/cipher/tiger.c +gcry_tiger_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_tiger_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/elgamal.c +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/ecc.c +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/rmd.h +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/crc.c +pkglib_MODULES += gcry_crc.mod +gcry_crc_mod_SOURCES = lib/libgcrypt-grub/cipher/crc.c +gcry_crc_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_crc_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/hash-common.h +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/md5.c +pkglib_MODULES += gcry_md5.mod +gcry_md5_mod_SOURCES = lib/libgcrypt-grub/cipher/md5.c +gcry_md5_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_md5_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/camellia.c +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/serpent.c +pkglib_MODULES += gcry_serpent.mod +gcry_serpent_mod_SOURCES = lib/libgcrypt-grub/cipher/serpent.c +gcry_serpent_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_serpent_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/arcfour.c +pkglib_MODULES += gcry_arcfour.mod +gcry_arcfour_mod_SOURCES = lib/libgcrypt-grub/cipher/arcfour.c +gcry_arcfour_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_arcfour_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/whirlpool.c +pkglib_MODULES += gcry_whirlpool.mod +gcry_whirlpool_mod_SOURCES = lib/libgcrypt-grub/cipher/whirlpool.c +gcry_whirlpool_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_whirlpool_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/des.c +pkglib_MODULES += gcry_des.mod +gcry_des_mod_SOURCES = lib/libgcrypt-grub/cipher/des.c +gcry_des_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_des_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/sha256.c +pkglib_MODULES += gcry_sha256.mod +gcry_sha256_mod_SOURCES = lib/libgcrypt-grub/cipher/sha256.c +gcry_sha256_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_sha256_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/twofish.c +pkglib_MODULES += gcry_twofish.mod +gcry_twofish_mod_SOURCES = lib/libgcrypt-grub/cipher/twofish.c +gcry_twofish_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_twofish_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/cast5.c +pkglib_MODULES += gcry_cast5.mod +gcry_cast5_mod_SOURCES = lib/libgcrypt-grub/cipher/cast5.c +gcry_cast5_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_cast5_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/rsa.c +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/sha1.c +pkglib_MODULES += gcry_sha1.mod +gcry_sha1_mod_SOURCES = lib/libgcrypt-grub/cipher/sha1.c +gcry_sha1_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_sha1_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/blowfish.c +pkglib_MODULES += gcry_blowfish.mod +gcry_blowfish_mod_SOURCES = lib/libgcrypt-grub/cipher/blowfish.c +gcry_blowfish_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_blowfish_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/camellia-glue.c +pkglib_MODULES += gcry_camellia.mod +gcry_camellia_mod_SOURCES = lib/libgcrypt-grub/cipher/camellia-glue.c lib/libgcrypt-grub/cipher/camellia.c +gcry_camellia_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_camellia_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/rmd160.c +pkglib_MODULES += gcry_rmd160.mod +gcry_rmd160_mod_SOURCES = lib/libgcrypt-grub/cipher/rmd160.c +gcry_rmd160_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_rmd160_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/rfc2268.c +pkglib_MODULES += gcry_rfc2268.mod +gcry_rfc2268_mod_SOURCES = lib/libgcrypt-grub/cipher/rfc2268.c +gcry_rfc2268_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_rfc2268_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/rijndael-tables.h +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/bithelp.h +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/primegen.c --- grub2-1.98+20100804.orig/conf/mips-qemu-mips.mk +++ grub2-1.98+20100804/conf/mips-qemu-mips.mk @@ -0,0 +1,304 @@ +# -*- makefile -*- +# Generated by genmk.rb, please don't edit! +LINK_BASE = 0x80010000 +target_machine=qemu-mips +COMMON_CFLAGS += -march=mips3 +COMMON_ASFLAGS += -march=mips3 +include $(srcdir)/conf/mips.mk + +pkglib_PROGRAMS = kernel.img +kernel_img_SOURCES = kern/$(target_cpu)/startup.S \ + kern/main.c kern/device.c kern/$(target_cpu)/init.c \ + kern/$(target_cpu)/$(target_machine)/init.c \ + kern/disk.c kern/dl.c kern/err.c kern/file.c kern/fs.c \ + kern/misc.c kern/mm.c kern/term.c \ + kern/rescue_parser.c kern/rescue_reader.c \ + kern/list.c kern/command.c kern/corecmd.c \ + kern/parser.c kern/partition.c kern/env.c kern/$(target_cpu)/dl.c \ + kern/generic/millisleep.c kern/generic/rtc_get_time_ms.c kern/time.c \ + symlist.c kern/$(target_cpu)/cache.S +MOSTLYCLEANFILES += kernel_img-kern___target_cpu__startup.d kernel_img-kern_main.d kernel_img-kern_device.d kernel_img-kern___target_cpu__init.d kernel_img-kern___target_cpu____target_machine__init.d kernel_img-kern_disk.d kernel_img-kern_dl.d kernel_img-kern_err.d kernel_img-kern_file.d kernel_img-kern_fs.d kernel_img-kern_misc.d kernel_img-kern_mm.d kernel_img-kern_term.d kernel_img-kern_rescue_parser.d kernel_img-kern_rescue_reader.d kernel_img-kern_list.d kernel_img-kern_command.d kernel_img-kern_corecmd.d kernel_img-kern_parser.d kernel_img-kern_partition.d kernel_img-kern_env.d kernel_img-kern___target_cpu__dl.d kernel_img-kern_generic_millisleep.d kernel_img-kern_generic_rtc_get_time_ms.d kernel_img-kern_time.d kernel_img-symlist.d kernel_img-kern___target_cpu__cache.d + +kernel_img-kern___target_cpu__startup.o: kern/$(target_cpu)/startup.S $(kern/$(target_cpu)/startup.S_DEPENDENCIES) + $(TARGET_CC) -Ikern/$(target_cpu) -I$(srcdir)/kern/$(target_cpu) $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(kernel_img_ASFLAGS) -DGRUB_FILE=\"kern/$(target_cpu)/startup.S\" -MD -c -o $@ $< + +-include kernel_img-kern___target_cpu__startup.d + +kernel_img_OBJECTS += kernel_img-kern___target_cpu__startup.o +kernel_img-kern_main.o: kern/main.c $(kern/main.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/main.c\" -MD -c -o $@ $< + +-include kernel_img-kern_main.d + +kernel_img_OBJECTS += kernel_img-kern_main.o +kernel_img-kern_device.o: kern/device.c $(kern/device.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/device.c\" -MD -c -o $@ $< + +-include kernel_img-kern_device.d + +kernel_img_OBJECTS += kernel_img-kern_device.o +kernel_img-kern___target_cpu__init.o: kern/$(target_cpu)/init.c $(kern/$(target_cpu)/init.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/$(target_cpu) -I$(srcdir)/kern/$(target_cpu) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/$(target_cpu)/init.c\" -MD -c -o $@ $< + +-include kernel_img-kern___target_cpu__init.d + +kernel_img_OBJECTS += kernel_img-kern___target_cpu__init.o +kernel_img-kern___target_cpu____target_machine__init.o: kern/$(target_cpu)/$(target_machine)/init.c $(kern/$(target_cpu)/$(target_machine)/init.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/$(target_cpu)/$(target_machine) -I$(srcdir)/kern/$(target_cpu)/$(target_machine) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/$(target_cpu)/$(target_machine)/init.c\" -MD -c -o $@ $< + +-include kernel_img-kern___target_cpu____target_machine__init.d + +kernel_img_OBJECTS += kernel_img-kern___target_cpu____target_machine__init.o +kernel_img-kern_disk.o: kern/disk.c $(kern/disk.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/disk.c\" -MD -c -o $@ $< + +-include kernel_img-kern_disk.d + +kernel_img_OBJECTS += kernel_img-kern_disk.o +kernel_img-kern_dl.o: kern/dl.c $(kern/dl.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/dl.c\" -MD -c -o $@ $< + +-include kernel_img-kern_dl.d + +kernel_img_OBJECTS += kernel_img-kern_dl.o +kernel_img-kern_err.o: kern/err.c $(kern/err.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/err.c\" -MD -c -o $@ $< + +-include kernel_img-kern_err.d + +kernel_img_OBJECTS += kernel_img-kern_err.o +kernel_img-kern_file.o: kern/file.c $(kern/file.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/file.c\" -MD -c -o $@ $< + +-include kernel_img-kern_file.d + +kernel_img_OBJECTS += kernel_img-kern_file.o +kernel_img-kern_fs.o: kern/fs.c $(kern/fs.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/fs.c\" -MD -c -o $@ $< + +-include kernel_img-kern_fs.d + +kernel_img_OBJECTS += kernel_img-kern_fs.o +kernel_img-kern_misc.o: kern/misc.c $(kern/misc.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/misc.c\" -MD -c -o $@ $< + +-include kernel_img-kern_misc.d + +kernel_img_OBJECTS += kernel_img-kern_misc.o +kernel_img-kern_mm.o: kern/mm.c $(kern/mm.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/mm.c\" -MD -c -o $@ $< + +-include kernel_img-kern_mm.d + +kernel_img_OBJECTS += kernel_img-kern_mm.o +kernel_img-kern_term.o: kern/term.c $(kern/term.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/term.c\" -MD -c -o $@ $< + +-include kernel_img-kern_term.d + +kernel_img_OBJECTS += kernel_img-kern_term.o +kernel_img-kern_rescue_parser.o: kern/rescue_parser.c $(kern/rescue_parser.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/rescue_parser.c\" -MD -c -o $@ $< + +-include kernel_img-kern_rescue_parser.d + +kernel_img_OBJECTS += kernel_img-kern_rescue_parser.o +kernel_img-kern_rescue_reader.o: kern/rescue_reader.c $(kern/rescue_reader.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/rescue_reader.c\" -MD -c -o $@ $< + +-include kernel_img-kern_rescue_reader.d + +kernel_img_OBJECTS += kernel_img-kern_rescue_reader.o +kernel_img-kern_list.o: kern/list.c $(kern/list.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/list.c\" -MD -c -o $@ $< + +-include kernel_img-kern_list.d + +kernel_img_OBJECTS += kernel_img-kern_list.o +kernel_img-kern_command.o: kern/command.c $(kern/command.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/command.c\" -MD -c -o $@ $< + +-include kernel_img-kern_command.d + +kernel_img_OBJECTS += kernel_img-kern_command.o +kernel_img-kern_corecmd.o: kern/corecmd.c $(kern/corecmd.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/corecmd.c\" -MD -c -o $@ $< + +-include kernel_img-kern_corecmd.d + +kernel_img_OBJECTS += kernel_img-kern_corecmd.o +kernel_img-kern_parser.o: kern/parser.c $(kern/parser.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/parser.c\" -MD -c -o $@ $< + +-include kernel_img-kern_parser.d + +kernel_img_OBJECTS += kernel_img-kern_parser.o +kernel_img-kern_partition.o: kern/partition.c $(kern/partition.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/partition.c\" -MD -c -o $@ $< + +-include kernel_img-kern_partition.d + +kernel_img_OBJECTS += kernel_img-kern_partition.o +kernel_img-kern_env.o: kern/env.c $(kern/env.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/env.c\" -MD -c -o $@ $< + +-include kernel_img-kern_env.d + +kernel_img_OBJECTS += kernel_img-kern_env.o +kernel_img-kern___target_cpu__dl.o: kern/$(target_cpu)/dl.c $(kern/$(target_cpu)/dl.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/$(target_cpu) -I$(srcdir)/kern/$(target_cpu) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/$(target_cpu)/dl.c\" -MD -c -o $@ $< + +-include kernel_img-kern___target_cpu__dl.d + +kernel_img_OBJECTS += kernel_img-kern___target_cpu__dl.o +kernel_img-kern_generic_millisleep.o: kern/generic/millisleep.c $(kern/generic/millisleep.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/generic -I$(srcdir)/kern/generic $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/generic/millisleep.c\" -MD -c -o $@ $< + +-include kernel_img-kern_generic_millisleep.d + +kernel_img_OBJECTS += kernel_img-kern_generic_millisleep.o +kernel_img-kern_generic_rtc_get_time_ms.o: kern/generic/rtc_get_time_ms.c $(kern/generic/rtc_get_time_ms.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/generic -I$(srcdir)/kern/generic $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/generic/rtc_get_time_ms.c\" -MD -c -o $@ $< + +-include kernel_img-kern_generic_rtc_get_time_ms.d + +kernel_img_OBJECTS += kernel_img-kern_generic_rtc_get_time_ms.o +kernel_img-kern_time.o: kern/time.c $(kern/time.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/time.c\" -MD -c -o $@ $< + +-include kernel_img-kern_time.d + +kernel_img_OBJECTS += kernel_img-kern_time.o +kernel_img-symlist.o: symlist.c $(symlist.c_DEPENDENCIES) + $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"symlist.c\" -MD -c -o $@ $< + +-include kernel_img-symlist.d + +kernel_img_OBJECTS += kernel_img-symlist.o +kernel_img-kern___target_cpu__cache.o: kern/$(target_cpu)/cache.S $(kern/$(target_cpu)/cache.S_DEPENDENCIES) + $(TARGET_CC) -Ikern/$(target_cpu) -I$(srcdir)/kern/$(target_cpu) $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(kernel_img_ASFLAGS) -DGRUB_FILE=\"kern/$(target_cpu)/cache.S\" -MD -c -o $@ $< + +-include kernel_img-kern___target_cpu__cache.d + +kernel_img_OBJECTS += kernel_img-kern___target_cpu__cache.o +kernel_img_CFLAGS = $(COMMON_CFLAGS) +kernel_img_ASFLAGS = $(COMMON_ASFLAGS) +kernel_img_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-S,-Ttext,$(LINK_BASE),-Bstatic +kernel_img_FORMAT = binary + +# For serial.mod. +pkglib_MODULES += serial.mod +serial_mod_SOURCES = term/serial.c + +clean-module-serial.mod.1: + rm -f serial.mod mod-serial.o mod-serial.c pre-serial.o serial_mod-term_serial.o und-serial.lst + +CLEAN_MODULE_TARGETS += clean-module-serial.mod.1 + +clean-module-serial.mod-symbol.1: + rm -f def-serial.lst + +CLEAN_MODULE_TARGETS += clean-module-serial.mod-symbol.1 +DEFSYMFILES += def-serial.lst +mostlyclean-module-serial.mod.1: + rm -f serial_mod-term_serial.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-serial.mod.1 +UNDSYMFILES += und-serial.lst + +ifeq ($(TARGET_NO_MODULES), yes) +serial.mod: pre-serial.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(serial_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-serial.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +serial.mod: pre-serial.o mod-serial.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(serial_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-serial.o mod-serial.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +serial.mod: pre-serial.o mod-serial.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(serial_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-serial.o mod-serial.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-serial.o: $(serial_mod_DEPENDENCIES) serial_mod-term_serial.o + -rm -f $@ + $(TARGET_CC) $(serial_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ serial_mod-term_serial.o + +mod-serial.o: mod-serial.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(serial_mod_CFLAGS) -DGRUB_FILE=\"mod-serial.c\" -c -o $@ $< + +mod-serial.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'serial' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-serial.lst: pre-serial.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 serial/' > $@ +else +def-serial.lst: pre-serial.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 serial/' > $@ +endif + +und-serial.lst: pre-serial.o + echo 'serial' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +serial_mod-term_serial.o: term/serial.c $(term/serial.c_DEPENDENCIES) + $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(serial_mod_CFLAGS) -DGRUB_FILE=\"term/serial.c\" -MD -c -o $@ $< +-include serial_mod-term_serial.d + +clean-module-serial_mod-term_serial-extra.1: + rm -f cmd-serial_mod-term_serial.lst fs-serial_mod-term_serial.lst partmap-serial_mod-term_serial.lst handler-serial_mod-term_serial.lst parttool-serial_mod-term_serial.lst video-serial_mod-term_serial.lst terminal-serial_mod-term_serial.lst + +CLEAN_MODULE_TARGETS += clean-module-serial_mod-term_serial-extra.1 + +COMMANDFILES += cmd-serial_mod-term_serial.lst +FSFILES += fs-serial_mod-term_serial.lst +PARTTOOLFILES += parttool-serial_mod-term_serial.lst +PARTMAPFILES += partmap-serial_mod-term_serial.lst +HANDLERFILES += handler-serial_mod-term_serial.lst +TERMINALFILES += terminal-serial_mod-term_serial.lst +VIDEOFILES += video-serial_mod-term_serial.lst + +cmd-serial_mod-term_serial.lst: term/serial.c $(term/serial.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(serial_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh serial > $@ || (rm -f $@; exit 1) + +fs-serial_mod-term_serial.lst: term/serial.c $(term/serial.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(serial_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh serial > $@ || (rm -f $@; exit 1) + +parttool-serial_mod-term_serial.lst: term/serial.c $(term/serial.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(serial_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh serial > $@ || (rm -f $@; exit 1) + +partmap-serial_mod-term_serial.lst: term/serial.c $(term/serial.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(serial_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh serial > $@ || (rm -f $@; exit 1) + +handler-serial_mod-term_serial.lst: term/serial.c $(term/serial.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(serial_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh serial > $@ || (rm -f $@; exit 1) + +terminal-serial_mod-term_serial.lst: term/serial.c $(term/serial.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(serial_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh serial > $@ || (rm -f $@; exit 1) + +video-serial_mod-term_serial.lst: term/serial.c $(term/serial.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(serial_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh serial > $@ || (rm -f $@; exit 1) + +serial_mod_CFLAGS = $(COMMON_CFLAGS) +serial_mod_LDFLAGS = $(COMMON_LDFLAGS) +CLEANFILES += kernel.img $(kernel_img_OBJECTS) +ifeq ($(kernel_img_RELOCATABLE),yes) +kernel.img: $(kernel_img_DEPENDENCIES) $(kernel_img_OBJECTS) + $(TARGET_CC) -Wl,-r,-d -o $@ $(kernel_img_OBJECTS) $(TARGET_LDFLAGS) $(kernel_img_LDFLAGS) + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K start -R .note -R .comment $@; fi +else +kernel.img: $(kernel_img_DEPENDENCIES) $(kernel_img_OBJECTS) + $(TARGET_CC) -o $@ $(kernel_img_OBJECTS) $(TARGET_LDFLAGS) $(kernel_img_LDFLAGS) + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) -R .rel.dyn -R .reginfo -R .note -R .comment $@; fi +endif + --- grub2-1.98+20100804.orig/conf/i386-coreboot.mk +++ grub2-1.98+20100804/conf/i386-coreboot.mk @@ -0,0 +1,1224 @@ +# -*- makefile -*- +# Generated by genmk.rb, please don't edit! + +COMMON_CFLAGS = -mrtd -mregparm=3 + +# Images. + +pkglib_PROGRAMS += kernel.img +kernel_img_SOURCES = kern/i386/coreboot/startup.S \ + kern/i386/misc.S \ + kern/i386/coreboot/init.c \ + kern/i386/coreboot/mmap.c \ + kern/i386/halt.c \ + kern/main.c kern/device.c \ + kern/disk.c kern/dl.c kern/file.c kern/fs.c kern/err.c \ + kern/misc.c kern/mm.c kern/term.c \ + kern/rescue_parser.c kern/rescue_reader.c \ + kern/time.c kern/list.c kern/command.c kern/corecmd.c \ + kern/$(target_cpu)/dl.c kern/parser.c kern/partition.c \ + kern/i386/tsc.c kern/i386/pit.c \ + kern/generic/rtc_get_time_ms.c \ + kern/generic/millisleep.c \ + kern/env.c \ + term/i386/pc/vga_text.c term/i386/vga_common.c \ + symlist.c +MOSTLYCLEANFILES += kernel_img-kern_i386_coreboot_startup.d kernel_img-kern_i386_misc.d kernel_img-kern_i386_coreboot_init.d kernel_img-kern_i386_coreboot_mmap.d kernel_img-kern_i386_halt.d kernel_img-kern_main.d kernel_img-kern_device.d kernel_img-kern_disk.d kernel_img-kern_dl.d kernel_img-kern_file.d kernel_img-kern_fs.d kernel_img-kern_err.d kernel_img-kern_misc.d kernel_img-kern_mm.d kernel_img-kern_term.d kernel_img-kern_rescue_parser.d kernel_img-kern_rescue_reader.d kernel_img-kern_time.d kernel_img-kern_list.d kernel_img-kern_command.d kernel_img-kern_corecmd.d kernel_img-kern___target_cpu__dl.d kernel_img-kern_parser.d kernel_img-kern_partition.d kernel_img-kern_i386_tsc.d kernel_img-kern_i386_pit.d kernel_img-kern_generic_rtc_get_time_ms.d kernel_img-kern_generic_millisleep.d kernel_img-kern_env.d kernel_img-term_i386_pc_vga_text.d kernel_img-term_i386_vga_common.d kernel_img-symlist.d + +kernel_img-kern_i386_coreboot_startup.o: kern/i386/coreboot/startup.S $(kern/i386/coreboot/startup.S_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386/coreboot -I$(srcdir)/kern/i386/coreboot $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(kernel_img_ASFLAGS) -DGRUB_FILE=\"kern/i386/coreboot/startup.S\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_coreboot_startup.d + +kernel_img_OBJECTS += kernel_img-kern_i386_coreboot_startup.o +kernel_img-kern_i386_misc.o: kern/i386/misc.S $(kern/i386/misc.S_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(kernel_img_ASFLAGS) -DGRUB_FILE=\"kern/i386/misc.S\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_misc.d + +kernel_img_OBJECTS += kernel_img-kern_i386_misc.o +kernel_img-kern_i386_coreboot_init.o: kern/i386/coreboot/init.c $(kern/i386/coreboot/init.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386/coreboot -I$(srcdir)/kern/i386/coreboot $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/i386/coreboot/init.c\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_coreboot_init.d + +kernel_img_OBJECTS += kernel_img-kern_i386_coreboot_init.o +kernel_img-kern_i386_coreboot_mmap.o: kern/i386/coreboot/mmap.c $(kern/i386/coreboot/mmap.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386/coreboot -I$(srcdir)/kern/i386/coreboot $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/i386/coreboot/mmap.c\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_coreboot_mmap.d + +kernel_img_OBJECTS += kernel_img-kern_i386_coreboot_mmap.o +kernel_img-kern_i386_halt.o: kern/i386/halt.c $(kern/i386/halt.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/i386/halt.c\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_halt.d + +kernel_img_OBJECTS += kernel_img-kern_i386_halt.o +kernel_img-kern_main.o: kern/main.c $(kern/main.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/main.c\" -MD -c -o $@ $< + +-include kernel_img-kern_main.d + +kernel_img_OBJECTS += kernel_img-kern_main.o +kernel_img-kern_device.o: kern/device.c $(kern/device.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/device.c\" -MD -c -o $@ $< + +-include kernel_img-kern_device.d + +kernel_img_OBJECTS += kernel_img-kern_device.o +kernel_img-kern_disk.o: kern/disk.c $(kern/disk.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/disk.c\" -MD -c -o $@ $< + +-include kernel_img-kern_disk.d + +kernel_img_OBJECTS += kernel_img-kern_disk.o +kernel_img-kern_dl.o: kern/dl.c $(kern/dl.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/dl.c\" -MD -c -o $@ $< + +-include kernel_img-kern_dl.d + +kernel_img_OBJECTS += kernel_img-kern_dl.o +kernel_img-kern_file.o: kern/file.c $(kern/file.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/file.c\" -MD -c -o $@ $< + +-include kernel_img-kern_file.d + +kernel_img_OBJECTS += kernel_img-kern_file.o +kernel_img-kern_fs.o: kern/fs.c $(kern/fs.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/fs.c\" -MD -c -o $@ $< + +-include kernel_img-kern_fs.d + +kernel_img_OBJECTS += kernel_img-kern_fs.o +kernel_img-kern_err.o: kern/err.c $(kern/err.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/err.c\" -MD -c -o $@ $< + +-include kernel_img-kern_err.d + +kernel_img_OBJECTS += kernel_img-kern_err.o +kernel_img-kern_misc.o: kern/misc.c $(kern/misc.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/misc.c\" -MD -c -o $@ $< + +-include kernel_img-kern_misc.d + +kernel_img_OBJECTS += kernel_img-kern_misc.o +kernel_img-kern_mm.o: kern/mm.c $(kern/mm.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/mm.c\" -MD -c -o $@ $< + +-include kernel_img-kern_mm.d + +kernel_img_OBJECTS += kernel_img-kern_mm.o +kernel_img-kern_term.o: kern/term.c $(kern/term.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/term.c\" -MD -c -o $@ $< + +-include kernel_img-kern_term.d + +kernel_img_OBJECTS += kernel_img-kern_term.o +kernel_img-kern_rescue_parser.o: kern/rescue_parser.c $(kern/rescue_parser.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/rescue_parser.c\" -MD -c -o $@ $< + +-include kernel_img-kern_rescue_parser.d + +kernel_img_OBJECTS += kernel_img-kern_rescue_parser.o +kernel_img-kern_rescue_reader.o: kern/rescue_reader.c $(kern/rescue_reader.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/rescue_reader.c\" -MD -c -o $@ $< + +-include kernel_img-kern_rescue_reader.d + +kernel_img_OBJECTS += kernel_img-kern_rescue_reader.o +kernel_img-kern_time.o: kern/time.c $(kern/time.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/time.c\" -MD -c -o $@ $< + +-include kernel_img-kern_time.d + +kernel_img_OBJECTS += kernel_img-kern_time.o +kernel_img-kern_list.o: kern/list.c $(kern/list.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/list.c\" -MD -c -o $@ $< + +-include kernel_img-kern_list.d + +kernel_img_OBJECTS += kernel_img-kern_list.o +kernel_img-kern_command.o: kern/command.c $(kern/command.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/command.c\" -MD -c -o $@ $< + +-include kernel_img-kern_command.d + +kernel_img_OBJECTS += kernel_img-kern_command.o +kernel_img-kern_corecmd.o: kern/corecmd.c $(kern/corecmd.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/corecmd.c\" -MD -c -o $@ $< + +-include kernel_img-kern_corecmd.d + +kernel_img_OBJECTS += kernel_img-kern_corecmd.o +kernel_img-kern___target_cpu__dl.o: kern/$(target_cpu)/dl.c $(kern/$(target_cpu)/dl.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/$(target_cpu) -I$(srcdir)/kern/$(target_cpu) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/$(target_cpu)/dl.c\" -MD -c -o $@ $< + +-include kernel_img-kern___target_cpu__dl.d + +kernel_img_OBJECTS += kernel_img-kern___target_cpu__dl.o +kernel_img-kern_parser.o: kern/parser.c $(kern/parser.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/parser.c\" -MD -c -o $@ $< + +-include kernel_img-kern_parser.d + +kernel_img_OBJECTS += kernel_img-kern_parser.o +kernel_img-kern_partition.o: kern/partition.c $(kern/partition.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/partition.c\" -MD -c -o $@ $< + +-include kernel_img-kern_partition.d + +kernel_img_OBJECTS += kernel_img-kern_partition.o +kernel_img-kern_i386_tsc.o: kern/i386/tsc.c $(kern/i386/tsc.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/i386/tsc.c\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_tsc.d + +kernel_img_OBJECTS += kernel_img-kern_i386_tsc.o +kernel_img-kern_i386_pit.o: kern/i386/pit.c $(kern/i386/pit.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/i386/pit.c\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_pit.d + +kernel_img_OBJECTS += kernel_img-kern_i386_pit.o +kernel_img-kern_generic_rtc_get_time_ms.o: kern/generic/rtc_get_time_ms.c $(kern/generic/rtc_get_time_ms.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/generic -I$(srcdir)/kern/generic $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/generic/rtc_get_time_ms.c\" -MD -c -o $@ $< + +-include kernel_img-kern_generic_rtc_get_time_ms.d + +kernel_img_OBJECTS += kernel_img-kern_generic_rtc_get_time_ms.o +kernel_img-kern_generic_millisleep.o: kern/generic/millisleep.c $(kern/generic/millisleep.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/generic -I$(srcdir)/kern/generic $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/generic/millisleep.c\" -MD -c -o $@ $< + +-include kernel_img-kern_generic_millisleep.d + +kernel_img_OBJECTS += kernel_img-kern_generic_millisleep.o +kernel_img-kern_env.o: kern/env.c $(kern/env.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/env.c\" -MD -c -o $@ $< + +-include kernel_img-kern_env.d + +kernel_img_OBJECTS += kernel_img-kern_env.o +kernel_img-term_i386_pc_vga_text.o: term/i386/pc/vga_text.c $(term/i386/pc/vga_text.c_DEPENDENCIES) + $(TARGET_CC) -Iterm/i386/pc -I$(srcdir)/term/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"term/i386/pc/vga_text.c\" -MD -c -o $@ $< + +-include kernel_img-term_i386_pc_vga_text.d + +kernel_img_OBJECTS += kernel_img-term_i386_pc_vga_text.o +kernel_img-term_i386_vga_common.o: term/i386/vga_common.c $(term/i386/vga_common.c_DEPENDENCIES) + $(TARGET_CC) -Iterm/i386 -I$(srcdir)/term/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"term/i386/vga_common.c\" -MD -c -o $@ $< + +-include kernel_img-term_i386_vga_common.d + +kernel_img_OBJECTS += kernel_img-term_i386_vga_common.o +kernel_img-symlist.o: symlist.c $(symlist.c_DEPENDENCIES) + $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"symlist.c\" -MD -c -o $@ $< + +-include kernel_img-symlist.d + +kernel_img_OBJECTS += kernel_img-symlist.o +kernel_img_CFLAGS = $(COMMON_CFLAGS) +kernel_img_ASFLAGS = $(COMMON_ASFLAGS) +kernel_img_LDFLAGS += $(COMMON_LDFLAGS) -Wl,-N,-S,-Ttext,0x8200,-Bstatic + +sbin_SCRIPTS += grub-install +grub_install_SOURCES = util/grub-install.in +CLEANFILES += grub-install + +grub-install: util/grub-install.in $(util/grub-install.in_DEPENDENCIES) config.status + ./config.status --file=-:util/grub-install.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +bin_SCRIPTS += grub-mkrescue +grub_mkrescue_SOURCES = util/grub-mkrescue.in +CLEANFILES += grub-mkrescue + +grub-mkrescue: util/grub-mkrescue.in $(util/grub-mkrescue.in_DEPENDENCIES) config.status + ./config.status --file=-:util/grub-mkrescue.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +# Modules. +pkglib_MODULES = linux.mod aout.mod halt.mod datetime.mod mmap.mod + +# For mmap.mod. +mmap_mod_SOURCES = mmap/mmap.c mmap/i386/uppermem.c mmap/i386/mmap.c + +clean-module-mmap.mod.1: + rm -f mmap.mod mod-mmap.o mod-mmap.c pre-mmap.o mmap_mod-mmap_mmap.o mmap_mod-mmap_i386_uppermem.o mmap_mod-mmap_i386_mmap.o und-mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap.mod.1 + +clean-module-mmap.mod-symbol.1: + rm -f def-mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap.mod-symbol.1 +DEFSYMFILES += def-mmap.lst +mostlyclean-module-mmap.mod.1: + rm -f mmap_mod-mmap_mmap.d mmap_mod-mmap_i386_uppermem.d mmap_mod-mmap_i386_mmap.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-mmap.mod.1 +UNDSYMFILES += und-mmap.lst + +ifeq ($(TARGET_NO_MODULES), yes) +mmap.mod: pre-mmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-mmap.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +mmap.mod: pre-mmap.o mod-mmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-mmap.o mod-mmap.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +mmap.mod: pre-mmap.o mod-mmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-mmap.o mod-mmap.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-mmap.o: $(mmap_mod_DEPENDENCIES) mmap_mod-mmap_mmap.o mmap_mod-mmap_i386_uppermem.o mmap_mod-mmap_i386_mmap.o + -rm -f $@ + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ mmap_mod-mmap_mmap.o mmap_mod-mmap_i386_uppermem.o mmap_mod-mmap_i386_mmap.o + +mod-mmap.o: mod-mmap.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mod-mmap.c\" -c -o $@ $< + +mod-mmap.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'mmap' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-mmap.lst: pre-mmap.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 mmap/' > $@ +else +def-mmap.lst: pre-mmap.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 mmap/' > $@ +endif + +und-mmap.lst: pre-mmap.o + echo 'mmap' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +mmap_mod-mmap_mmap.o: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) + $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mmap/mmap.c\" -MD -c -o $@ $< +-include mmap_mod-mmap_mmap.d + +clean-module-mmap_mod-mmap_mmap-extra.1: + rm -f cmd-mmap_mod-mmap_mmap.lst fs-mmap_mod-mmap_mmap.lst partmap-mmap_mod-mmap_mmap.lst handler-mmap_mod-mmap_mmap.lst parttool-mmap_mod-mmap_mmap.lst video-mmap_mod-mmap_mmap.lst terminal-mmap_mod-mmap_mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap_mod-mmap_mmap-extra.1 + +COMMANDFILES += cmd-mmap_mod-mmap_mmap.lst +FSFILES += fs-mmap_mod-mmap_mmap.lst +PARTTOOLFILES += parttool-mmap_mod-mmap_mmap.lst +PARTMAPFILES += partmap-mmap_mod-mmap_mmap.lst +HANDLERFILES += handler-mmap_mod-mmap_mmap.lst +TERMINALFILES += terminal-mmap_mod-mmap_mmap.lst +VIDEOFILES += video-mmap_mod-mmap_mmap.lst + +cmd-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh mmap > $@ || (rm -f $@; exit 1) + +fs-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh mmap > $@ || (rm -f $@; exit 1) + +parttool-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh mmap > $@ || (rm -f $@; exit 1) + +partmap-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh mmap > $@ || (rm -f $@; exit 1) + +handler-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh mmap > $@ || (rm -f $@; exit 1) + +terminal-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh mmap > $@ || (rm -f $@; exit 1) + +video-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh mmap > $@ || (rm -f $@; exit 1) + +mmap_mod-mmap_i386_uppermem.o: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) + $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mmap/i386/uppermem.c\" -MD -c -o $@ $< +-include mmap_mod-mmap_i386_uppermem.d + +clean-module-mmap_mod-mmap_i386_uppermem-extra.1: + rm -f cmd-mmap_mod-mmap_i386_uppermem.lst fs-mmap_mod-mmap_i386_uppermem.lst partmap-mmap_mod-mmap_i386_uppermem.lst handler-mmap_mod-mmap_i386_uppermem.lst parttool-mmap_mod-mmap_i386_uppermem.lst video-mmap_mod-mmap_i386_uppermem.lst terminal-mmap_mod-mmap_i386_uppermem.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap_mod-mmap_i386_uppermem-extra.1 + +COMMANDFILES += cmd-mmap_mod-mmap_i386_uppermem.lst +FSFILES += fs-mmap_mod-mmap_i386_uppermem.lst +PARTTOOLFILES += parttool-mmap_mod-mmap_i386_uppermem.lst +PARTMAPFILES += partmap-mmap_mod-mmap_i386_uppermem.lst +HANDLERFILES += handler-mmap_mod-mmap_i386_uppermem.lst +TERMINALFILES += terminal-mmap_mod-mmap_i386_uppermem.lst +VIDEOFILES += video-mmap_mod-mmap_i386_uppermem.lst + +cmd-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh mmap > $@ || (rm -f $@; exit 1) + +fs-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh mmap > $@ || (rm -f $@; exit 1) + +parttool-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh mmap > $@ || (rm -f $@; exit 1) + +partmap-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh mmap > $@ || (rm -f $@; exit 1) + +handler-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh mmap > $@ || (rm -f $@; exit 1) + +terminal-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh mmap > $@ || (rm -f $@; exit 1) + +video-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh mmap > $@ || (rm -f $@; exit 1) + +mmap_mod-mmap_i386_mmap.o: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) + $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mmap/i386/mmap.c\" -MD -c -o $@ $< +-include mmap_mod-mmap_i386_mmap.d + +clean-module-mmap_mod-mmap_i386_mmap-extra.1: + rm -f cmd-mmap_mod-mmap_i386_mmap.lst fs-mmap_mod-mmap_i386_mmap.lst partmap-mmap_mod-mmap_i386_mmap.lst handler-mmap_mod-mmap_i386_mmap.lst parttool-mmap_mod-mmap_i386_mmap.lst video-mmap_mod-mmap_i386_mmap.lst terminal-mmap_mod-mmap_i386_mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap_mod-mmap_i386_mmap-extra.1 + +COMMANDFILES += cmd-mmap_mod-mmap_i386_mmap.lst +FSFILES += fs-mmap_mod-mmap_i386_mmap.lst +PARTTOOLFILES += parttool-mmap_mod-mmap_i386_mmap.lst +PARTMAPFILES += partmap-mmap_mod-mmap_i386_mmap.lst +HANDLERFILES += handler-mmap_mod-mmap_i386_mmap.lst +TERMINALFILES += terminal-mmap_mod-mmap_i386_mmap.lst +VIDEOFILES += video-mmap_mod-mmap_i386_mmap.lst + +cmd-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh mmap > $@ || (rm -f $@; exit 1) + +fs-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh mmap > $@ || (rm -f $@; exit 1) + +parttool-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh mmap > $@ || (rm -f $@; exit 1) + +partmap-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh mmap > $@ || (rm -f $@; exit 1) + +handler-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh mmap > $@ || (rm -f $@; exit 1) + +terminal-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh mmap > $@ || (rm -f $@; exit 1) + +video-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh mmap > $@ || (rm -f $@; exit 1) + +mmap_mod_CFLAGS = $(COMMON_CFLAGS) +mmap_mod_LDFLAGS = $(COMMON_LDFLAGS) +mmap_mod_ASFLAGS = $(COMMON_ASFLAGS) + +# For linux.mod. +linux_mod_SOURCES = loader/i386/linux.c + +clean-module-linux.mod.1: + rm -f linux.mod mod-linux.o mod-linux.c pre-linux.o linux_mod-loader_i386_linux.o und-linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux.mod.1 + +clean-module-linux.mod-symbol.1: + rm -f def-linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux.mod-symbol.1 +DEFSYMFILES += def-linux.lst +mostlyclean-module-linux.mod.1: + rm -f linux_mod-loader_i386_linux.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-linux.mod.1 +UNDSYMFILES += und-linux.lst + +ifeq ($(TARGET_NO_MODULES), yes) +linux.mod: pre-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-linux.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-linux.o mod-linux.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-linux.o mod-linux.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-linux.o: $(linux_mod_DEPENDENCIES) linux_mod-loader_i386_linux.o + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ linux_mod-loader_i386_linux.o + +mod-linux.o: mod-linux.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -DGRUB_FILE=\"mod-linux.c\" -c -o $@ $< + +mod-linux.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'linux' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-linux.lst: pre-linux.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 linux/' > $@ +else +def-linux.lst: pre-linux.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 linux/' > $@ +endif + +und-linux.lst: pre-linux.o + echo 'linux' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +linux_mod-loader_i386_linux.o: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -DGRUB_FILE=\"loader/i386/linux.c\" -MD -c -o $@ $< +-include linux_mod-loader_i386_linux.d + +clean-module-linux_mod-loader_i386_linux-extra.1: + rm -f cmd-linux_mod-loader_i386_linux.lst fs-linux_mod-loader_i386_linux.lst partmap-linux_mod-loader_i386_linux.lst handler-linux_mod-loader_i386_linux.lst parttool-linux_mod-loader_i386_linux.lst video-linux_mod-loader_i386_linux.lst terminal-linux_mod-loader_i386_linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux_mod-loader_i386_linux-extra.1 + +COMMANDFILES += cmd-linux_mod-loader_i386_linux.lst +FSFILES += fs-linux_mod-loader_i386_linux.lst +PARTTOOLFILES += parttool-linux_mod-loader_i386_linux.lst +PARTMAPFILES += partmap-linux_mod-loader_i386_linux.lst +HANDLERFILES += handler-linux_mod-loader_i386_linux.lst +TERMINALFILES += terminal-linux_mod-loader_i386_linux.lst +VIDEOFILES += video-linux_mod-loader_i386_linux.lst + +cmd-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh linux > $@ || (rm -f $@; exit 1) + +fs-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh linux > $@ || (rm -f $@; exit 1) + +parttool-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh linux > $@ || (rm -f $@; exit 1) + +partmap-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh linux > $@ || (rm -f $@; exit 1) + +handler-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh linux > $@ || (rm -f $@; exit 1) + +terminal-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh linux > $@ || (rm -f $@; exit 1) + +video-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh linux > $@ || (rm -f $@; exit 1) + +linux_mod_CFLAGS = $(COMMON_CFLAGS) +linux_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For halt.mod. +halt_mod_SOURCES = commands/halt.c + +clean-module-halt.mod.1: + rm -f halt.mod mod-halt.o mod-halt.c pre-halt.o halt_mod-commands_halt.o und-halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt.mod.1 + +clean-module-halt.mod-symbol.1: + rm -f def-halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt.mod-symbol.1 +DEFSYMFILES += def-halt.lst +mostlyclean-module-halt.mod.1: + rm -f halt_mod-commands_halt.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-halt.mod.1 +UNDSYMFILES += und-halt.lst + +ifeq ($(TARGET_NO_MODULES), yes) +halt.mod: pre-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-halt.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +halt.mod: pre-halt.o mod-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-halt.o mod-halt.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +halt.mod: pre-halt.o mod-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-halt.o mod-halt.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-halt.o: $(halt_mod_DEPENDENCIES) halt_mod-commands_halt.o + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ halt_mod-commands_halt.o + +mod-halt.o: mod-halt.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -DGRUB_FILE=\"mod-halt.c\" -c -o $@ $< + +mod-halt.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'halt' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-halt.lst: pre-halt.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 halt/' > $@ +else +def-halt.lst: pre-halt.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 halt/' > $@ +endif + +und-halt.lst: pre-halt.o + echo 'halt' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +halt_mod-commands_halt.o: commands/halt.c $(commands/halt.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -DGRUB_FILE=\"commands/halt.c\" -MD -c -o $@ $< +-include halt_mod-commands_halt.d + +clean-module-halt_mod-commands_halt-extra.1: + rm -f cmd-halt_mod-commands_halt.lst fs-halt_mod-commands_halt.lst partmap-halt_mod-commands_halt.lst handler-halt_mod-commands_halt.lst parttool-halt_mod-commands_halt.lst video-halt_mod-commands_halt.lst terminal-halt_mod-commands_halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt_mod-commands_halt-extra.1 + +COMMANDFILES += cmd-halt_mod-commands_halt.lst +FSFILES += fs-halt_mod-commands_halt.lst +PARTTOOLFILES += parttool-halt_mod-commands_halt.lst +PARTMAPFILES += partmap-halt_mod-commands_halt.lst +HANDLERFILES += handler-halt_mod-commands_halt.lst +TERMINALFILES += terminal-halt_mod-commands_halt.lst +VIDEOFILES += video-halt_mod-commands_halt.lst + +cmd-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh halt > $@ || (rm -f $@; exit 1) + +fs-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh halt > $@ || (rm -f $@; exit 1) + +parttool-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh halt > $@ || (rm -f $@; exit 1) + +partmap-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh halt > $@ || (rm -f $@; exit 1) + +handler-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh halt > $@ || (rm -f $@; exit 1) + +terminal-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh halt > $@ || (rm -f $@; exit 1) + +video-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh halt > $@ || (rm -f $@; exit 1) + +halt_mod_CFLAGS = $(COMMON_CFLAGS) +halt_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For aout.mod. +aout_mod_SOURCES = loader/aout.c + +clean-module-aout.mod.1: + rm -f aout.mod mod-aout.o mod-aout.c pre-aout.o aout_mod-loader_aout.o und-aout.lst + +CLEAN_MODULE_TARGETS += clean-module-aout.mod.1 + +clean-module-aout.mod-symbol.1: + rm -f def-aout.lst + +CLEAN_MODULE_TARGETS += clean-module-aout.mod-symbol.1 +DEFSYMFILES += def-aout.lst +mostlyclean-module-aout.mod.1: + rm -f aout_mod-loader_aout.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-aout.mod.1 +UNDSYMFILES += und-aout.lst + +ifeq ($(TARGET_NO_MODULES), yes) +aout.mod: pre-aout.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-aout.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +aout.mod: pre-aout.o mod-aout.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-aout.o mod-aout.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +aout.mod: pre-aout.o mod-aout.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-aout.o mod-aout.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-aout.o: $(aout_mod_DEPENDENCIES) aout_mod-loader_aout.o + -rm -f $@ + $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ aout_mod-loader_aout.o + +mod-aout.o: mod-aout.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -DGRUB_FILE=\"mod-aout.c\" -c -o $@ $< + +mod-aout.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'aout' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-aout.lst: pre-aout.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 aout/' > $@ +else +def-aout.lst: pre-aout.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 aout/' > $@ +endif + +und-aout.lst: pre-aout.o + echo 'aout' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +aout_mod-loader_aout.o: loader/aout.c $(loader/aout.c_DEPENDENCIES) + $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -DGRUB_FILE=\"loader/aout.c\" -MD -c -o $@ $< +-include aout_mod-loader_aout.d + +clean-module-aout_mod-loader_aout-extra.1: + rm -f cmd-aout_mod-loader_aout.lst fs-aout_mod-loader_aout.lst partmap-aout_mod-loader_aout.lst handler-aout_mod-loader_aout.lst parttool-aout_mod-loader_aout.lst video-aout_mod-loader_aout.lst terminal-aout_mod-loader_aout.lst + +CLEAN_MODULE_TARGETS += clean-module-aout_mod-loader_aout-extra.1 + +COMMANDFILES += cmd-aout_mod-loader_aout.lst +FSFILES += fs-aout_mod-loader_aout.lst +PARTTOOLFILES += parttool-aout_mod-loader_aout.lst +PARTMAPFILES += partmap-aout_mod-loader_aout.lst +HANDLERFILES += handler-aout_mod-loader_aout.lst +TERMINALFILES += terminal-aout_mod-loader_aout.lst +VIDEOFILES += video-aout_mod-loader_aout.lst + +cmd-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh aout > $@ || (rm -f $@; exit 1) + +fs-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh aout > $@ || (rm -f $@; exit 1) + +parttool-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh aout > $@ || (rm -f $@; exit 1) + +partmap-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh aout > $@ || (rm -f $@; exit 1) + +handler-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh aout > $@ || (rm -f $@; exit 1) + +terminal-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh aout > $@ || (rm -f $@; exit 1) + +video-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh aout > $@ || (rm -f $@; exit 1) + +aout_mod_CFLAGS = $(COMMON_CFLAGS) +aout_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For bsd.mod +pkglib_MODULES += bsd.mod +bsd_mod_SOURCES = loader/i386/bsd.c loader/i386/bsd32.c loader/i386/bsd64.c loader/i386/bsd_helper.S loader/i386/bsd_trampoline.S + +clean-module-bsd.mod.1: + rm -f bsd.mod mod-bsd.o mod-bsd.c pre-bsd.o bsd_mod-loader_i386_bsd.o bsd_mod-loader_i386_bsd32.o bsd_mod-loader_i386_bsd64.o bsd_mod-loader_i386_bsd_helper.o bsd_mod-loader_i386_bsd_trampoline.o und-bsd.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd.mod.1 + +clean-module-bsd.mod-symbol.1: + rm -f def-bsd.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd.mod-symbol.1 +DEFSYMFILES += def-bsd.lst +mostlyclean-module-bsd.mod.1: + rm -f bsd_mod-loader_i386_bsd.d bsd_mod-loader_i386_bsd32.d bsd_mod-loader_i386_bsd64.d bsd_mod-loader_i386_bsd_helper.d bsd_mod-loader_i386_bsd_trampoline.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-bsd.mod.1 +UNDSYMFILES += und-bsd.lst + +ifeq ($(TARGET_NO_MODULES), yes) +bsd.mod: pre-bsd.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(bsd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-bsd.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +bsd.mod: pre-bsd.o mod-bsd.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(bsd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-bsd.o mod-bsd.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +bsd.mod: pre-bsd.o mod-bsd.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(bsd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-bsd.o mod-bsd.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-bsd.o: $(bsd_mod_DEPENDENCIES) bsd_mod-loader_i386_bsd.o bsd_mod-loader_i386_bsd32.o bsd_mod-loader_i386_bsd64.o bsd_mod-loader_i386_bsd_helper.o bsd_mod-loader_i386_bsd_trampoline.o + -rm -f $@ + $(TARGET_CC) $(bsd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ bsd_mod-loader_i386_bsd.o bsd_mod-loader_i386_bsd32.o bsd_mod-loader_i386_bsd64.o bsd_mod-loader_i386_bsd_helper.o bsd_mod-loader_i386_bsd_trampoline.o + +mod-bsd.o: mod-bsd.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -DGRUB_FILE=\"mod-bsd.c\" -c -o $@ $< + +mod-bsd.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'bsd' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-bsd.lst: pre-bsd.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 bsd/' > $@ +else +def-bsd.lst: pre-bsd.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 bsd/' > $@ +endif + +und-bsd.lst: pre-bsd.o + echo 'bsd' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +bsd_mod-loader_i386_bsd.o: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -DGRUB_FILE=\"loader/i386/bsd.c\" -MD -c -o $@ $< +-include bsd_mod-loader_i386_bsd.d + +clean-module-bsd_mod-loader_i386_bsd-extra.1: + rm -f cmd-bsd_mod-loader_i386_bsd.lst fs-bsd_mod-loader_i386_bsd.lst partmap-bsd_mod-loader_i386_bsd.lst handler-bsd_mod-loader_i386_bsd.lst parttool-bsd_mod-loader_i386_bsd.lst video-bsd_mod-loader_i386_bsd.lst terminal-bsd_mod-loader_i386_bsd.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd_mod-loader_i386_bsd-extra.1 + +COMMANDFILES += cmd-bsd_mod-loader_i386_bsd.lst +FSFILES += fs-bsd_mod-loader_i386_bsd.lst +PARTTOOLFILES += parttool-bsd_mod-loader_i386_bsd.lst +PARTMAPFILES += partmap-bsd_mod-loader_i386_bsd.lst +HANDLERFILES += handler-bsd_mod-loader_i386_bsd.lst +TERMINALFILES += terminal-bsd_mod-loader_i386_bsd.lst +VIDEOFILES += video-bsd_mod-loader_i386_bsd.lst + +cmd-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh bsd > $@ || (rm -f $@; exit 1) + +fs-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh bsd > $@ || (rm -f $@; exit 1) + +parttool-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh bsd > $@ || (rm -f $@; exit 1) + +partmap-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh bsd > $@ || (rm -f $@; exit 1) + +handler-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh bsd > $@ || (rm -f $@; exit 1) + +terminal-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh bsd > $@ || (rm -f $@; exit 1) + +video-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh bsd > $@ || (rm -f $@; exit 1) + +bsd_mod-loader_i386_bsd32.o: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -DGRUB_FILE=\"loader/i386/bsd32.c\" -MD -c -o $@ $< +-include bsd_mod-loader_i386_bsd32.d + +clean-module-bsd_mod-loader_i386_bsd32-extra.1: + rm -f cmd-bsd_mod-loader_i386_bsd32.lst fs-bsd_mod-loader_i386_bsd32.lst partmap-bsd_mod-loader_i386_bsd32.lst handler-bsd_mod-loader_i386_bsd32.lst parttool-bsd_mod-loader_i386_bsd32.lst video-bsd_mod-loader_i386_bsd32.lst terminal-bsd_mod-loader_i386_bsd32.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd_mod-loader_i386_bsd32-extra.1 + +COMMANDFILES += cmd-bsd_mod-loader_i386_bsd32.lst +FSFILES += fs-bsd_mod-loader_i386_bsd32.lst +PARTTOOLFILES += parttool-bsd_mod-loader_i386_bsd32.lst +PARTMAPFILES += partmap-bsd_mod-loader_i386_bsd32.lst +HANDLERFILES += handler-bsd_mod-loader_i386_bsd32.lst +TERMINALFILES += terminal-bsd_mod-loader_i386_bsd32.lst +VIDEOFILES += video-bsd_mod-loader_i386_bsd32.lst + +cmd-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh bsd > $@ || (rm -f $@; exit 1) + +fs-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh bsd > $@ || (rm -f $@; exit 1) + +parttool-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh bsd > $@ || (rm -f $@; exit 1) + +partmap-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh bsd > $@ || (rm -f $@; exit 1) + +handler-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh bsd > $@ || (rm -f $@; exit 1) + +terminal-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh bsd > $@ || (rm -f $@; exit 1) + +video-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh bsd > $@ || (rm -f $@; exit 1) + +bsd_mod-loader_i386_bsd64.o: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -DGRUB_FILE=\"loader/i386/bsd64.c\" -MD -c -o $@ $< +-include bsd_mod-loader_i386_bsd64.d + +clean-module-bsd_mod-loader_i386_bsd64-extra.1: + rm -f cmd-bsd_mod-loader_i386_bsd64.lst fs-bsd_mod-loader_i386_bsd64.lst partmap-bsd_mod-loader_i386_bsd64.lst handler-bsd_mod-loader_i386_bsd64.lst parttool-bsd_mod-loader_i386_bsd64.lst video-bsd_mod-loader_i386_bsd64.lst terminal-bsd_mod-loader_i386_bsd64.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd_mod-loader_i386_bsd64-extra.1 + +COMMANDFILES += cmd-bsd_mod-loader_i386_bsd64.lst +FSFILES += fs-bsd_mod-loader_i386_bsd64.lst +PARTTOOLFILES += parttool-bsd_mod-loader_i386_bsd64.lst +PARTMAPFILES += partmap-bsd_mod-loader_i386_bsd64.lst +HANDLERFILES += handler-bsd_mod-loader_i386_bsd64.lst +TERMINALFILES += terminal-bsd_mod-loader_i386_bsd64.lst +VIDEOFILES += video-bsd_mod-loader_i386_bsd64.lst + +cmd-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh bsd > $@ || (rm -f $@; exit 1) + +fs-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh bsd > $@ || (rm -f $@; exit 1) + +parttool-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh bsd > $@ || (rm -f $@; exit 1) + +partmap-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh bsd > $@ || (rm -f $@; exit 1) + +handler-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh bsd > $@ || (rm -f $@; exit 1) + +terminal-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh bsd > $@ || (rm -f $@; exit 1) + +video-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh bsd > $@ || (rm -f $@; exit 1) + +bsd_mod-loader_i386_bsd_helper.o: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -DGRUB_FILE=\"loader/i386/bsd_helper.S\" -MD -c -o $@ $< +-include bsd_mod-loader_i386_bsd_helper.d + +clean-module-bsd_mod-loader_i386_bsd_helper-extra.1: + rm -f cmd-bsd_mod-loader_i386_bsd_helper.lst fs-bsd_mod-loader_i386_bsd_helper.lst partmap-bsd_mod-loader_i386_bsd_helper.lst handler-bsd_mod-loader_i386_bsd_helper.lst parttool-bsd_mod-loader_i386_bsd_helper.lst video-bsd_mod-loader_i386_bsd_helper.lst terminal-bsd_mod-loader_i386_bsd_helper.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd_mod-loader_i386_bsd_helper-extra.1 + +COMMANDFILES += cmd-bsd_mod-loader_i386_bsd_helper.lst +FSFILES += fs-bsd_mod-loader_i386_bsd_helper.lst +PARTTOOLFILES += parttool-bsd_mod-loader_i386_bsd_helper.lst +PARTMAPFILES += partmap-bsd_mod-loader_i386_bsd_helper.lst +HANDLERFILES += handler-bsd_mod-loader_i386_bsd_helper.lst +TERMINALFILES += terminal-bsd_mod-loader_i386_bsd_helper.lst +VIDEOFILES += video-bsd_mod-loader_i386_bsd_helper.lst + +cmd-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh bsd > $@ || (rm -f $@; exit 1) + +fs-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genfslist.sh bsd > $@ || (rm -f $@; exit 1) + +parttool-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh bsd > $@ || (rm -f $@; exit 1) + +partmap-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh bsd > $@ || (rm -f $@; exit 1) + +handler-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh bsd > $@ || (rm -f $@; exit 1) + +terminal-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genterminallist.sh bsd > $@ || (rm -f $@; exit 1) + +video-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genvideolist.sh bsd > $@ || (rm -f $@; exit 1) + +bsd_mod-loader_i386_bsd_trampoline.o: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -DGRUB_FILE=\"loader/i386/bsd_trampoline.S\" -MD -c -o $@ $< +-include bsd_mod-loader_i386_bsd_trampoline.d + +clean-module-bsd_mod-loader_i386_bsd_trampoline-extra.1: + rm -f cmd-bsd_mod-loader_i386_bsd_trampoline.lst fs-bsd_mod-loader_i386_bsd_trampoline.lst partmap-bsd_mod-loader_i386_bsd_trampoline.lst handler-bsd_mod-loader_i386_bsd_trampoline.lst parttool-bsd_mod-loader_i386_bsd_trampoline.lst video-bsd_mod-loader_i386_bsd_trampoline.lst terminal-bsd_mod-loader_i386_bsd_trampoline.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd_mod-loader_i386_bsd_trampoline-extra.1 + +COMMANDFILES += cmd-bsd_mod-loader_i386_bsd_trampoline.lst +FSFILES += fs-bsd_mod-loader_i386_bsd_trampoline.lst +PARTTOOLFILES += parttool-bsd_mod-loader_i386_bsd_trampoline.lst +PARTMAPFILES += partmap-bsd_mod-loader_i386_bsd_trampoline.lst +HANDLERFILES += handler-bsd_mod-loader_i386_bsd_trampoline.lst +TERMINALFILES += terminal-bsd_mod-loader_i386_bsd_trampoline.lst +VIDEOFILES += video-bsd_mod-loader_i386_bsd_trampoline.lst + +cmd-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh bsd > $@ || (rm -f $@; exit 1) + +fs-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genfslist.sh bsd > $@ || (rm -f $@; exit 1) + +parttool-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh bsd > $@ || (rm -f $@; exit 1) + +partmap-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh bsd > $@ || (rm -f $@; exit 1) + +handler-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh bsd > $@ || (rm -f $@; exit 1) + +terminal-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genterminallist.sh bsd > $@ || (rm -f $@; exit 1) + +video-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genvideolist.sh bsd > $@ || (rm -f $@; exit 1) + +bsd_mod_CFLAGS = $(COMMON_CFLAGS) +bsd_mod_LDFLAGS = $(COMMON_LDFLAGS) +bsd_mod_ASFLAGS = $(COMMON_ASFLAGS) + +# For datetime.mod +datetime_mod_SOURCES = lib/cmos_datetime.c + +clean-module-datetime.mod.1: + rm -f datetime.mod mod-datetime.o mod-datetime.c pre-datetime.o datetime_mod-lib_cmos_datetime.o und-datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime.mod.1 + +clean-module-datetime.mod-symbol.1: + rm -f def-datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime.mod-symbol.1 +DEFSYMFILES += def-datetime.lst +mostlyclean-module-datetime.mod.1: + rm -f datetime_mod-lib_cmos_datetime.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-datetime.mod.1 +UNDSYMFILES += und-datetime.lst + +ifeq ($(TARGET_NO_MODULES), yes) +datetime.mod: pre-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-datetime.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +datetime.mod: pre-datetime.o mod-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-datetime.o mod-datetime.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +datetime.mod: pre-datetime.o mod-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-datetime.o mod-datetime.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-datetime.o: $(datetime_mod_DEPENDENCIES) datetime_mod-lib_cmos_datetime.o + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ datetime_mod-lib_cmos_datetime.o + +mod-datetime.o: mod-datetime.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -DGRUB_FILE=\"mod-datetime.c\" -c -o $@ $< + +mod-datetime.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'datetime' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-datetime.lst: pre-datetime.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 datetime/' > $@ +else +def-datetime.lst: pre-datetime.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 datetime/' > $@ +endif + +und-datetime.lst: pre-datetime.o + echo 'datetime' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +datetime_mod-lib_cmos_datetime.o: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) + $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -DGRUB_FILE=\"lib/cmos_datetime.c\" -MD -c -o $@ $< +-include datetime_mod-lib_cmos_datetime.d + +clean-module-datetime_mod-lib_cmos_datetime-extra.1: + rm -f cmd-datetime_mod-lib_cmos_datetime.lst fs-datetime_mod-lib_cmos_datetime.lst partmap-datetime_mod-lib_cmos_datetime.lst handler-datetime_mod-lib_cmos_datetime.lst parttool-datetime_mod-lib_cmos_datetime.lst video-datetime_mod-lib_cmos_datetime.lst terminal-datetime_mod-lib_cmos_datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime_mod-lib_cmos_datetime-extra.1 + +COMMANDFILES += cmd-datetime_mod-lib_cmos_datetime.lst +FSFILES += fs-datetime_mod-lib_cmos_datetime.lst +PARTTOOLFILES += parttool-datetime_mod-lib_cmos_datetime.lst +PARTMAPFILES += partmap-datetime_mod-lib_cmos_datetime.lst +HANDLERFILES += handler-datetime_mod-lib_cmos_datetime.lst +TERMINALFILES += terminal-datetime_mod-lib_cmos_datetime.lst +VIDEOFILES += video-datetime_mod-lib_cmos_datetime.lst + +cmd-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh datetime > $@ || (rm -f $@; exit 1) + +fs-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh datetime > $@ || (rm -f $@; exit 1) + +parttool-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh datetime > $@ || (rm -f $@; exit 1) + +partmap-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh datetime > $@ || (rm -f $@; exit 1) + +handler-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh datetime > $@ || (rm -f $@; exit 1) + +terminal-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh datetime > $@ || (rm -f $@; exit 1) + +video-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh datetime > $@ || (rm -f $@; exit 1) + +datetime_mod_CFLAGS = $(COMMON_CFLAGS) +datetime_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For cmostest.mod +pkglib_MODULES += cmostest.mod +cmostest_mod_SOURCES = commands/i386/cmostest.c + +clean-module-cmostest.mod.1: + rm -f cmostest.mod mod-cmostest.o mod-cmostest.c pre-cmostest.o cmostest_mod-commands_i386_cmostest.o und-cmostest.lst + +CLEAN_MODULE_TARGETS += clean-module-cmostest.mod.1 + +clean-module-cmostest.mod-symbol.1: + rm -f def-cmostest.lst + +CLEAN_MODULE_TARGETS += clean-module-cmostest.mod-symbol.1 +DEFSYMFILES += def-cmostest.lst +mostlyclean-module-cmostest.mod.1: + rm -f cmostest_mod-commands_i386_cmostest.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-cmostest.mod.1 +UNDSYMFILES += und-cmostest.lst + +ifeq ($(TARGET_NO_MODULES), yes) +cmostest.mod: pre-cmostest.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(cmostest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-cmostest.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +cmostest.mod: pre-cmostest.o mod-cmostest.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(cmostest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-cmostest.o mod-cmostest.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +cmostest.mod: pre-cmostest.o mod-cmostest.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(cmostest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-cmostest.o mod-cmostest.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-cmostest.o: $(cmostest_mod_DEPENDENCIES) cmostest_mod-commands_i386_cmostest.o + -rm -f $@ + $(TARGET_CC) $(cmostest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ cmostest_mod-commands_i386_cmostest.o + +mod-cmostest.o: mod-cmostest.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cmostest_mod_CFLAGS) -DGRUB_FILE=\"mod-cmostest.c\" -c -o $@ $< + +mod-cmostest.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'cmostest' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-cmostest.lst: pre-cmostest.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 cmostest/' > $@ +else +def-cmostest.lst: pre-cmostest.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 cmostest/' > $@ +endif + +und-cmostest.lst: pre-cmostest.o + echo 'cmostest' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +cmostest_mod-commands_i386_cmostest.o: commands/i386/cmostest.c $(commands/i386/cmostest.c_DEPENDENCIES) + $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cmostest_mod_CFLAGS) -DGRUB_FILE=\"commands/i386/cmostest.c\" -MD -c -o $@ $< +-include cmostest_mod-commands_i386_cmostest.d + +clean-module-cmostest_mod-commands_i386_cmostest-extra.1: + rm -f cmd-cmostest_mod-commands_i386_cmostest.lst fs-cmostest_mod-commands_i386_cmostest.lst partmap-cmostest_mod-commands_i386_cmostest.lst handler-cmostest_mod-commands_i386_cmostest.lst parttool-cmostest_mod-commands_i386_cmostest.lst video-cmostest_mod-commands_i386_cmostest.lst terminal-cmostest_mod-commands_i386_cmostest.lst + +CLEAN_MODULE_TARGETS += clean-module-cmostest_mod-commands_i386_cmostest-extra.1 + +COMMANDFILES += cmd-cmostest_mod-commands_i386_cmostest.lst +FSFILES += fs-cmostest_mod-commands_i386_cmostest.lst +PARTTOOLFILES += parttool-cmostest_mod-commands_i386_cmostest.lst +PARTMAPFILES += partmap-cmostest_mod-commands_i386_cmostest.lst +HANDLERFILES += handler-cmostest_mod-commands_i386_cmostest.lst +TERMINALFILES += terminal-cmostest_mod-commands_i386_cmostest.lst +VIDEOFILES += video-cmostest_mod-commands_i386_cmostest.lst + +cmd-cmostest_mod-commands_i386_cmostest.lst: commands/i386/cmostest.c $(commands/i386/cmostest.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cmostest_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh cmostest > $@ || (rm -f $@; exit 1) + +fs-cmostest_mod-commands_i386_cmostest.lst: commands/i386/cmostest.c $(commands/i386/cmostest.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(cmostest_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh cmostest > $@ || (rm -f $@; exit 1) + +parttool-cmostest_mod-commands_i386_cmostest.lst: commands/i386/cmostest.c $(commands/i386/cmostest.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cmostest_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh cmostest > $@ || (rm -f $@; exit 1) + +partmap-cmostest_mod-commands_i386_cmostest.lst: commands/i386/cmostest.c $(commands/i386/cmostest.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(cmostest_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh cmostest > $@ || (rm -f $@; exit 1) + +handler-cmostest_mod-commands_i386_cmostest.lst: commands/i386/cmostest.c $(commands/i386/cmostest.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cmostest_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh cmostest > $@ || (rm -f $@; exit 1) + +terminal-cmostest_mod-commands_i386_cmostest.lst: commands/i386/cmostest.c $(commands/i386/cmostest.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cmostest_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh cmostest > $@ || (rm -f $@; exit 1) + +video-cmostest_mod-commands_i386_cmostest.lst: commands/i386/cmostest.c $(commands/i386/cmostest.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(cmostest_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh cmostest > $@ || (rm -f $@; exit 1) + +cmostest_mod_CFLAGS = $(COMMON_CFLAGS) +cmostest_mod_LDFLAGS = $(COMMON_LDFLAGS) + +include $(srcdir)/conf/i386.mk +include $(srcdir)/conf/common.mk +CLEANFILES += kernel.img $(kernel_img_OBJECTS) +ifeq ($(kernel_img_RELOCATABLE),yes) +kernel.img: $(kernel_img_DEPENDENCIES) $(kernel_img_OBJECTS) + $(TARGET_CC) -Wl,-r,-d -o $@ $(kernel_img_OBJECTS) $(TARGET_LDFLAGS) $(kernel_img_LDFLAGS) + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K start -R .note -R .comment $@; fi +else +kernel.img: $(kernel_img_DEPENDENCIES) $(kernel_img_OBJECTS) + $(TARGET_CC) -o $@ $(kernel_img_OBJECTS) $(TARGET_LDFLAGS) $(kernel_img_LDFLAGS) + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) -R .rel.dyn -R .reginfo -R .note -R .comment $@; fi +endif + --- grub2-1.98+20100804.orig/conf/sparc64-ieee1275.mk +++ grub2-1.98+20100804/conf/sparc64-ieee1275.mk @@ -0,0 +1,1084 @@ + +# Generated by genmk.rb, please don't edit! +# -*- makefile -*- + +COMMON_CFLAGS = -mno-app-regs +COMMON_LDFLAGS = -melf64_sparc -mno-relax + +# Images. +pkglib_IMAGES = boot.img diskboot.img +pkglib_PROGRAMS = kernel.img + +# For boot.img. +boot_img_SOURCES = boot/sparc64/ieee1275/boot.S + +clean-image-boot.img.1: + rm -f boot.img boot.exec boot_img-boot_sparc64_ieee1275_boot.o + +CLEAN_IMAGE_TARGETS += clean-image-boot.img.1 + +mostlyclean-image-boot.img.1: + rm -f boot_img-boot_sparc64_ieee1275_boot.d + +MOSTLYCLEAN_IMAGE_TARGETS += mostlyclean-image-boot.img.1 + +ifneq ($(TARGET_APPLE_CC),1) +boot.img: boot.exec + $(OBJCOPY) -O $(boot_img_FORMAT) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .reginfo -R .rel.dyn $< $@ +else +ifneq (boot.exec,kernel.exec) +boot.img: boot.exec ./grub-macho2img + ./grub-macho2img $< $@ +else +boot.img: boot.exec ./grub-macho2img + ./grub-macho2img --bss $< $@ +endif +endif + +boot.exec: boot_img-boot_sparc64_ieee1275_boot.o + $(TARGET_CC) -o $@ $^ $(TARGET_LDFLAGS) $(boot_img_LDFLAGS) + +boot_img-boot_sparc64_ieee1275_boot.o: boot/sparc64/ieee1275/boot.S $(boot/sparc64/ieee1275/boot.S_DEPENDENCIES) + $(TARGET_CC) -Iboot/sparc64/ieee1275 -I$(srcdir)/boot/sparc64/ieee1275 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(boot_img_ASFLAGS) -DGRUB_FILE=\"boot/sparc64/ieee1275/boot.S\" -MD -c -o $@ $< +-include boot_img-boot_sparc64_ieee1275_boot.d + +boot_img_ASFLAGS = $(COMMON_ASFLAGS) +boot_img_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-Ttext,0x4000 +boot_img_FORMAT = a.out-sunos-big + +# For diskboot.img. +diskboot_img_SOURCES = boot/sparc64/ieee1275/diskboot.S + +clean-image-diskboot.img.1: + rm -f diskboot.img diskboot.exec diskboot_img-boot_sparc64_ieee1275_diskboot.o + +CLEAN_IMAGE_TARGETS += clean-image-diskboot.img.1 + +mostlyclean-image-diskboot.img.1: + rm -f diskboot_img-boot_sparc64_ieee1275_diskboot.d + +MOSTLYCLEAN_IMAGE_TARGETS += mostlyclean-image-diskboot.img.1 + +ifneq ($(TARGET_APPLE_CC),1) +diskboot.img: diskboot.exec + $(OBJCOPY) -O $(diskboot_img_FORMAT) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .reginfo -R .rel.dyn $< $@ +else +ifneq (diskboot.exec,kernel.exec) +diskboot.img: diskboot.exec ./grub-macho2img + ./grub-macho2img $< $@ +else +diskboot.img: diskboot.exec ./grub-macho2img + ./grub-macho2img --bss $< $@ +endif +endif + +diskboot.exec: diskboot_img-boot_sparc64_ieee1275_diskboot.o + $(TARGET_CC) -o $@ $^ $(TARGET_LDFLAGS) $(diskboot_img_LDFLAGS) + +diskboot_img-boot_sparc64_ieee1275_diskboot.o: boot/sparc64/ieee1275/diskboot.S $(boot/sparc64/ieee1275/diskboot.S_DEPENDENCIES) + $(TARGET_CC) -Iboot/sparc64/ieee1275 -I$(srcdir)/boot/sparc64/ieee1275 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(diskboot_img_ASFLAGS) -DGRUB_FILE=\"boot/sparc64/ieee1275/diskboot.S\" -MD -c -o $@ $< +-include diskboot_img-boot_sparc64_ieee1275_diskboot.d + +diskboot_img_ASFLAGS = $(COMMON_ASFLAGS) +diskboot_img_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-Ttext,0x4200 +diskboot_img_FORMAT = binary + +kernel_img_HEADERS += ieee1275/ieee1275.h cpu/ieee1275/ieee1275.h +kernel_img_SOURCES = kern/sparc64/ieee1275/crt0.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 \ + kern/misc.c kern/mm.c kern/term.c \ + kern/rescue_parser.c kern/rescue_reader.c \ + kern/list.c kern/command.c kern/corecmd.c \ + kern/sparc64/ieee1275/ieee1275.c \ + kern/sparc64/ieee1275/init.c \ + kern/ieee1275/mmap.c \ + term/ieee1275/ofconsole.c \ + kern/ieee1275/openfw.c term/terminfo.c term/tparm.c \ + disk/ieee1275/ofdisk.c \ + kern/parser.c kern/partition.c kern/env.c kern/$(target_cpu)/dl.c \ + kern/generic/millisleep.c kern/time.c \ + symlist.c kern/$(target_cpu)/cache.S +MOSTLYCLEANFILES += kernel_img-kern_sparc64_ieee1275_crt0.d kernel_img-kern_ieee1275_cmain.d kernel_img-kern_ieee1275_ieee1275.d kernel_img-kern_main.d kernel_img-kern_device.d kernel_img-kern_disk.d kernel_img-kern_dl.d kernel_img-kern_err.d kernel_img-kern_file.d kernel_img-kern_fs.d kernel_img-kern_misc.d kernel_img-kern_mm.d kernel_img-kern_term.d kernel_img-kern_rescue_parser.d kernel_img-kern_rescue_reader.d kernel_img-kern_list.d kernel_img-kern_command.d kernel_img-kern_corecmd.d kernel_img-kern_sparc64_ieee1275_ieee1275.d kernel_img-kern_sparc64_ieee1275_init.d kernel_img-kern_ieee1275_mmap.d kernel_img-term_ieee1275_ofconsole.d kernel_img-kern_ieee1275_openfw.d kernel_img-term_terminfo.d kernel_img-term_tparm.d kernel_img-disk_ieee1275_ofdisk.d kernel_img-kern_parser.d kernel_img-kern_partition.d kernel_img-kern_env.d kernel_img-kern___target_cpu__dl.d kernel_img-kern_generic_millisleep.d kernel_img-kern_time.d kernel_img-symlist.d kernel_img-kern___target_cpu__cache.d + +kernel_img-kern_sparc64_ieee1275_crt0.o: kern/sparc64/ieee1275/crt0.S $(kern/sparc64/ieee1275/crt0.S_DEPENDENCIES) + $(TARGET_CC) -Ikern/sparc64/ieee1275 -I$(srcdir)/kern/sparc64/ieee1275 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(kernel_img_ASFLAGS) -DGRUB_FILE=\"kern/sparc64/ieee1275/crt0.S\" -MD -c -o $@ $< + +-include kernel_img-kern_sparc64_ieee1275_crt0.d + +kernel_img_OBJECTS += kernel_img-kern_sparc64_ieee1275_crt0.o +kernel_img-kern_ieee1275_cmain.o: kern/ieee1275/cmain.c $(kern/ieee1275/cmain.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/ieee1275 -I$(srcdir)/kern/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/ieee1275/cmain.c\" -MD -c -o $@ $< + +-include kernel_img-kern_ieee1275_cmain.d + +kernel_img_OBJECTS += kernel_img-kern_ieee1275_cmain.o +kernel_img-kern_ieee1275_ieee1275.o: kern/ieee1275/ieee1275.c $(kern/ieee1275/ieee1275.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/ieee1275 -I$(srcdir)/kern/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/ieee1275/ieee1275.c\" -MD -c -o $@ $< + +-include kernel_img-kern_ieee1275_ieee1275.d + +kernel_img_OBJECTS += kernel_img-kern_ieee1275_ieee1275.o +kernel_img-kern_main.o: kern/main.c $(kern/main.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/main.c\" -MD -c -o $@ $< + +-include kernel_img-kern_main.d + +kernel_img_OBJECTS += kernel_img-kern_main.o +kernel_img-kern_device.o: kern/device.c $(kern/device.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/device.c\" -MD -c -o $@ $< + +-include kernel_img-kern_device.d + +kernel_img_OBJECTS += kernel_img-kern_device.o +kernel_img-kern_disk.o: kern/disk.c $(kern/disk.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/disk.c\" -MD -c -o $@ $< + +-include kernel_img-kern_disk.d + +kernel_img_OBJECTS += kernel_img-kern_disk.o +kernel_img-kern_dl.o: kern/dl.c $(kern/dl.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/dl.c\" -MD -c -o $@ $< + +-include kernel_img-kern_dl.d + +kernel_img_OBJECTS += kernel_img-kern_dl.o +kernel_img-kern_err.o: kern/err.c $(kern/err.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/err.c\" -MD -c -o $@ $< + +-include kernel_img-kern_err.d + +kernel_img_OBJECTS += kernel_img-kern_err.o +kernel_img-kern_file.o: kern/file.c $(kern/file.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/file.c\" -MD -c -o $@ $< + +-include kernel_img-kern_file.d + +kernel_img_OBJECTS += kernel_img-kern_file.o +kernel_img-kern_fs.o: kern/fs.c $(kern/fs.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/fs.c\" -MD -c -o $@ $< + +-include kernel_img-kern_fs.d + +kernel_img_OBJECTS += kernel_img-kern_fs.o +kernel_img-kern_misc.o: kern/misc.c $(kern/misc.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/misc.c\" -MD -c -o $@ $< + +-include kernel_img-kern_misc.d + +kernel_img_OBJECTS += kernel_img-kern_misc.o +kernel_img-kern_mm.o: kern/mm.c $(kern/mm.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/mm.c\" -MD -c -o $@ $< + +-include kernel_img-kern_mm.d + +kernel_img_OBJECTS += kernel_img-kern_mm.o +kernel_img-kern_term.o: kern/term.c $(kern/term.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/term.c\" -MD -c -o $@ $< + +-include kernel_img-kern_term.d + +kernel_img_OBJECTS += kernel_img-kern_term.o +kernel_img-kern_rescue_parser.o: kern/rescue_parser.c $(kern/rescue_parser.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/rescue_parser.c\" -MD -c -o $@ $< + +-include kernel_img-kern_rescue_parser.d + +kernel_img_OBJECTS += kernel_img-kern_rescue_parser.o +kernel_img-kern_rescue_reader.o: kern/rescue_reader.c $(kern/rescue_reader.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/rescue_reader.c\" -MD -c -o $@ $< + +-include kernel_img-kern_rescue_reader.d + +kernel_img_OBJECTS += kernel_img-kern_rescue_reader.o +kernel_img-kern_list.o: kern/list.c $(kern/list.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/list.c\" -MD -c -o $@ $< + +-include kernel_img-kern_list.d + +kernel_img_OBJECTS += kernel_img-kern_list.o +kernel_img-kern_command.o: kern/command.c $(kern/command.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/command.c\" -MD -c -o $@ $< + +-include kernel_img-kern_command.d + +kernel_img_OBJECTS += kernel_img-kern_command.o +kernel_img-kern_corecmd.o: kern/corecmd.c $(kern/corecmd.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/corecmd.c\" -MD -c -o $@ $< + +-include kernel_img-kern_corecmd.d + +kernel_img_OBJECTS += kernel_img-kern_corecmd.o +kernel_img-kern_sparc64_ieee1275_ieee1275.o: kern/sparc64/ieee1275/ieee1275.c $(kern/sparc64/ieee1275/ieee1275.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/sparc64/ieee1275 -I$(srcdir)/kern/sparc64/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/sparc64/ieee1275/ieee1275.c\" -MD -c -o $@ $< + +-include kernel_img-kern_sparc64_ieee1275_ieee1275.d + +kernel_img_OBJECTS += kernel_img-kern_sparc64_ieee1275_ieee1275.o +kernel_img-kern_sparc64_ieee1275_init.o: kern/sparc64/ieee1275/init.c $(kern/sparc64/ieee1275/init.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/sparc64/ieee1275 -I$(srcdir)/kern/sparc64/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/sparc64/ieee1275/init.c\" -MD -c -o $@ $< + +-include kernel_img-kern_sparc64_ieee1275_init.d + +kernel_img_OBJECTS += kernel_img-kern_sparc64_ieee1275_init.o +kernel_img-kern_ieee1275_mmap.o: kern/ieee1275/mmap.c $(kern/ieee1275/mmap.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/ieee1275 -I$(srcdir)/kern/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/ieee1275/mmap.c\" -MD -c -o $@ $< + +-include kernel_img-kern_ieee1275_mmap.d + +kernel_img_OBJECTS += kernel_img-kern_ieee1275_mmap.o +kernel_img-term_ieee1275_ofconsole.o: term/ieee1275/ofconsole.c $(term/ieee1275/ofconsole.c_DEPENDENCIES) + $(TARGET_CC) -Iterm/ieee1275 -I$(srcdir)/term/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"term/ieee1275/ofconsole.c\" -MD -c -o $@ $< + +-include kernel_img-term_ieee1275_ofconsole.d + +kernel_img_OBJECTS += kernel_img-term_ieee1275_ofconsole.o +kernel_img-kern_ieee1275_openfw.o: kern/ieee1275/openfw.c $(kern/ieee1275/openfw.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/ieee1275 -I$(srcdir)/kern/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/ieee1275/openfw.c\" -MD -c -o $@ $< + +-include kernel_img-kern_ieee1275_openfw.d + +kernel_img_OBJECTS += kernel_img-kern_ieee1275_openfw.o +kernel_img-term_terminfo.o: term/terminfo.c $(term/terminfo.c_DEPENDENCIES) + $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"term/terminfo.c\" -MD -c -o $@ $< + +-include kernel_img-term_terminfo.d + +kernel_img_OBJECTS += kernel_img-term_terminfo.o +kernel_img-term_tparm.o: term/tparm.c $(term/tparm.c_DEPENDENCIES) + $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"term/tparm.c\" -MD -c -o $@ $< + +-include kernel_img-term_tparm.d + +kernel_img_OBJECTS += kernel_img-term_tparm.o +kernel_img-disk_ieee1275_ofdisk.o: disk/ieee1275/ofdisk.c $(disk/ieee1275/ofdisk.c_DEPENDENCIES) + $(TARGET_CC) -Idisk/ieee1275 -I$(srcdir)/disk/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"disk/ieee1275/ofdisk.c\" -MD -c -o $@ $< + +-include kernel_img-disk_ieee1275_ofdisk.d + +kernel_img_OBJECTS += kernel_img-disk_ieee1275_ofdisk.o +kernel_img-kern_parser.o: kern/parser.c $(kern/parser.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/parser.c\" -MD -c -o $@ $< + +-include kernel_img-kern_parser.d + +kernel_img_OBJECTS += kernel_img-kern_parser.o +kernel_img-kern_partition.o: kern/partition.c $(kern/partition.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/partition.c\" -MD -c -o $@ $< + +-include kernel_img-kern_partition.d + +kernel_img_OBJECTS += kernel_img-kern_partition.o +kernel_img-kern_env.o: kern/env.c $(kern/env.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/env.c\" -MD -c -o $@ $< + +-include kernel_img-kern_env.d + +kernel_img_OBJECTS += kernel_img-kern_env.o +kernel_img-kern___target_cpu__dl.o: kern/$(target_cpu)/dl.c $(kern/$(target_cpu)/dl.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/$(target_cpu) -I$(srcdir)/kern/$(target_cpu) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/$(target_cpu)/dl.c\" -MD -c -o $@ $< + +-include kernel_img-kern___target_cpu__dl.d + +kernel_img_OBJECTS += kernel_img-kern___target_cpu__dl.o +kernel_img-kern_generic_millisleep.o: kern/generic/millisleep.c $(kern/generic/millisleep.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/generic -I$(srcdir)/kern/generic $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/generic/millisleep.c\" -MD -c -o $@ $< + +-include kernel_img-kern_generic_millisleep.d + +kernel_img_OBJECTS += kernel_img-kern_generic_millisleep.o +kernel_img-kern_time.o: kern/time.c $(kern/time.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/time.c\" -MD -c -o $@ $< + +-include kernel_img-kern_time.d + +kernel_img_OBJECTS += kernel_img-kern_time.o +kernel_img-symlist.o: symlist.c $(symlist.c_DEPENDENCIES) + $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"symlist.c\" -MD -c -o $@ $< + +-include kernel_img-symlist.d + +kernel_img_OBJECTS += kernel_img-symlist.o +kernel_img-kern___target_cpu__cache.o: kern/$(target_cpu)/cache.S $(kern/$(target_cpu)/cache.S_DEPENDENCIES) + $(TARGET_CC) -Ikern/$(target_cpu) -I$(srcdir)/kern/$(target_cpu) $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(kernel_img_ASFLAGS) -DGRUB_FILE=\"kern/$(target_cpu)/cache.S\" -MD -c -o $@ $< + +-include kernel_img-kern___target_cpu__cache.d + +kernel_img_OBJECTS += kernel_img-kern___target_cpu__cache.o +kernel_img_CFLAGS = $(COMMON_CFLAGS) +kernel_img_ASFLAGS = $(COMMON_ASFLAGS) +kernel_img_LDFLAGS += -nostdlib -Wl,-N,-Ttext,0x4400,-Bstatic,-melf64_sparc +kernel_img_FORMAT = binary + +# Utilities. +sbin_UTILITIES = grub-setup grub-ofpathname + +# For grub-setup. +util/sparc64/ieee1275/grub-setup.c_DEPENDENCIES = grub_setup_init.h +grub_setup_SOURCES = util/sparc64/ieee1275/grub-setup.c \ + util/ieee1275/ofpath.c util/misc.c kern/emu/hostdisk.c \ + kern/emu/misc.c kern/emu/getroot.c kern/emu/mm.c kern/device.c \ + kern/disk.c kern/err.c kern/misc.c \ + kern/partition.c kern/file.c kern/fs.c kern/env.c kern/list.c \ + fs/fshelp.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/nilfs2.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 \ + \ + $(GRUB_CONTRIB)/zfs/zfs.c \ + $(GRUB_CONTRIB)/zfs/zfs_lzjb.c \ + $(GRUB_CONTRIB)/zfs/zfs_sha256.c \ + $(GRUB_CONTRIB)/zfs/zfs_fletcher.c \ + \ + partmap/amiga.c partmap/apple.c partmap/msdos.c \ + partmap/bsdlabel.c partmap/sun.c partmap/acorn.c \ + \ + disk/raid.c disk/raid5_recover.c disk/raid6_recover.c \ + disk/mdraid_linux.c disk/lvm.c util/raid.c \ + util/lvm.c gnulib/progname.c grub_setup_init.c + +clean-utility-grub-setup.1: + rm -f grub-setup$(EXEEXT) grub_setup-util_sparc64_ieee1275_grub_setup.o grub_setup-util_ieee1275_ofpath.o grub_setup-util_misc.o grub_setup-kern_emu_hostdisk.o grub_setup-kern_emu_misc.o grub_setup-kern_emu_getroot.o grub_setup-kern_emu_mm.o grub_setup-kern_device.o grub_setup-kern_disk.o grub_setup-kern_err.o grub_setup-kern_misc.o grub_setup-kern_partition.o grub_setup-kern_file.o grub_setup-kern_fs.o grub_setup-kern_env.o grub_setup-kern_list.o grub_setup-fs_fshelp.o grub_setup-fs_affs.o grub_setup-fs_cpio.o grub_setup-fs_ext2.o grub_setup-fs_fat.o grub_setup-fs_hfs.o grub_setup-fs_hfsplus.o grub_setup-fs_iso9660.o grub_setup-fs_udf.o grub_setup-fs_jfs.o grub_setup-fs_minix.o grub_setup-fs_nilfs2.o grub_setup-fs_ntfs.o grub_setup-fs_ntfscomp.o grub_setup-fs_reiserfs.o grub_setup-fs_sfs.o grub_setup-fs_ufs.o grub_setup-fs_ufs2.o grub_setup-fs_xfs.o grub_setup-fs_afs.o grub_setup-fs_afs_be.o grub_setup-fs_befs.o grub_setup-fs_befs_be.o grub_setup-fs_tar.o grub_setup-__GRUB_CONTRIB__zfs_zfs.o grub_setup-__GRUB_CONTRIB__zfs_zfs_lzjb.o grub_setup-__GRUB_CONTRIB__zfs_zfs_sha256.o grub_setup-__GRUB_CONTRIB__zfs_zfs_fletcher.o grub_setup-partmap_amiga.o grub_setup-partmap_apple.o grub_setup-partmap_msdos.o grub_setup-partmap_bsdlabel.o grub_setup-partmap_sun.o grub_setup-partmap_acorn.o grub_setup-disk_raid.o grub_setup-disk_raid5_recover.o grub_setup-disk_raid6_recover.o grub_setup-disk_mdraid_linux.o grub_setup-disk_lvm.o grub_setup-util_raid.o grub_setup-util_lvm.o grub_setup-gnulib_progname.o grub_setup-grub_setup_init.o + +CLEAN_UTILITY_TARGETS += clean-utility-grub-setup.1 + +mostlyclean-utility-grub-setup.1: + rm -f grub_setup-util_sparc64_ieee1275_grub_setup.d grub_setup-util_ieee1275_ofpath.d grub_setup-util_misc.d grub_setup-kern_emu_hostdisk.d grub_setup-kern_emu_misc.d grub_setup-kern_emu_getroot.d grub_setup-kern_emu_mm.d grub_setup-kern_device.d grub_setup-kern_disk.d grub_setup-kern_err.d grub_setup-kern_misc.d grub_setup-kern_partition.d grub_setup-kern_file.d grub_setup-kern_fs.d grub_setup-kern_env.d grub_setup-kern_list.d grub_setup-fs_fshelp.d grub_setup-fs_affs.d grub_setup-fs_cpio.d grub_setup-fs_ext2.d grub_setup-fs_fat.d grub_setup-fs_hfs.d grub_setup-fs_hfsplus.d grub_setup-fs_iso9660.d grub_setup-fs_udf.d grub_setup-fs_jfs.d grub_setup-fs_minix.d grub_setup-fs_nilfs2.d grub_setup-fs_ntfs.d grub_setup-fs_ntfscomp.d grub_setup-fs_reiserfs.d grub_setup-fs_sfs.d grub_setup-fs_ufs.d grub_setup-fs_ufs2.d grub_setup-fs_xfs.d grub_setup-fs_afs.d grub_setup-fs_afs_be.d grub_setup-fs_befs.d grub_setup-fs_befs_be.d grub_setup-fs_tar.d grub_setup-__GRUB_CONTRIB__zfs_zfs.d grub_setup-__GRUB_CONTRIB__zfs_zfs_lzjb.d grub_setup-__GRUB_CONTRIB__zfs_zfs_sha256.d grub_setup-__GRUB_CONTRIB__zfs_zfs_fletcher.d grub_setup-partmap_amiga.d grub_setup-partmap_apple.d grub_setup-partmap_msdos.d grub_setup-partmap_bsdlabel.d grub_setup-partmap_sun.d grub_setup-partmap_acorn.d grub_setup-disk_raid.d grub_setup-disk_raid5_recover.d grub_setup-disk_raid6_recover.d grub_setup-disk_mdraid_linux.d grub_setup-disk_lvm.d grub_setup-util_raid.d grub_setup-util_lvm.d grub_setup-gnulib_progname.d grub_setup-grub_setup_init.d + +MOSTLYCLEAN_UTILITY_TARGETS += mostlyclean-utility-grub-setup.1 + +grub_setup_OBJECTS += grub_setup-util_sparc64_ieee1275_grub_setup.o grub_setup-util_ieee1275_ofpath.o grub_setup-util_misc.o grub_setup-kern_emu_hostdisk.o grub_setup-kern_emu_misc.o grub_setup-kern_emu_getroot.o grub_setup-kern_emu_mm.o grub_setup-kern_device.o grub_setup-kern_disk.o grub_setup-kern_err.o grub_setup-kern_misc.o grub_setup-kern_partition.o grub_setup-kern_file.o grub_setup-kern_fs.o grub_setup-kern_env.o grub_setup-kern_list.o grub_setup-fs_fshelp.o grub_setup-fs_affs.o grub_setup-fs_cpio.o grub_setup-fs_ext2.o grub_setup-fs_fat.o grub_setup-fs_hfs.o grub_setup-fs_hfsplus.o grub_setup-fs_iso9660.o grub_setup-fs_udf.o grub_setup-fs_jfs.o grub_setup-fs_minix.o grub_setup-fs_nilfs2.o grub_setup-fs_ntfs.o grub_setup-fs_ntfscomp.o grub_setup-fs_reiserfs.o grub_setup-fs_sfs.o grub_setup-fs_ufs.o grub_setup-fs_ufs2.o grub_setup-fs_xfs.o grub_setup-fs_afs.o grub_setup-fs_afs_be.o grub_setup-fs_befs.o grub_setup-fs_befs_be.o grub_setup-fs_tar.o grub_setup-__GRUB_CONTRIB__zfs_zfs.o grub_setup-__GRUB_CONTRIB__zfs_zfs_lzjb.o grub_setup-__GRUB_CONTRIB__zfs_zfs_sha256.o grub_setup-__GRUB_CONTRIB__zfs_zfs_fletcher.o grub_setup-partmap_amiga.o grub_setup-partmap_apple.o grub_setup-partmap_msdos.o grub_setup-partmap_bsdlabel.o grub_setup-partmap_sun.o grub_setup-partmap_acorn.o grub_setup-disk_raid.o grub_setup-disk_raid5_recover.o grub_setup-disk_raid6_recover.o grub_setup-disk_mdraid_linux.o grub_setup-disk_lvm.o grub_setup-util_raid.o grub_setup-util_lvm.o grub_setup-gnulib_progname.o grub_setup-grub_setup_init.o + +grub_setup-util_sparc64_ieee1275_grub_setup.o: util/sparc64/ieee1275/grub-setup.c $(util/sparc64/ieee1275/grub-setup.c_DEPENDENCIES) + $(CC) -Iutil/sparc64/ieee1275 -I$(srcdir)/util/sparc64/ieee1275 $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"util/sparc64/ieee1275/grub-setup.c\" -MD -c -o $@ $< +-include grub_setup-util_sparc64_ieee1275_grub_setup.d + +grub_setup-util_ieee1275_ofpath.o: util/ieee1275/ofpath.c $(util/ieee1275/ofpath.c_DEPENDENCIES) + $(CC) -Iutil/ieee1275 -I$(srcdir)/util/ieee1275 $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"util/ieee1275/ofpath.c\" -MD -c -o $@ $< +-include grub_setup-util_ieee1275_ofpath.d + +grub_setup-util_misc.o: util/misc.c $(util/misc.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"util/misc.c\" -MD -c -o $@ $< +-include grub_setup-util_misc.d + +grub_setup-kern_emu_hostdisk.o: kern/emu/hostdisk.c $(kern/emu/hostdisk.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/emu/hostdisk.c\" -MD -c -o $@ $< +-include grub_setup-kern_emu_hostdisk.d + +grub_setup-kern_emu_misc.o: kern/emu/misc.c $(kern/emu/misc.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/emu/misc.c\" -MD -c -o $@ $< +-include grub_setup-kern_emu_misc.d + +grub_setup-kern_emu_getroot.o: kern/emu/getroot.c $(kern/emu/getroot.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/emu/getroot.c\" -MD -c -o $@ $< +-include grub_setup-kern_emu_getroot.d + +grub_setup-kern_emu_mm.o: kern/emu/mm.c $(kern/emu/mm.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/emu/mm.c\" -MD -c -o $@ $< +-include grub_setup-kern_emu_mm.d + +grub_setup-kern_device.o: kern/device.c $(kern/device.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/device.c\" -MD -c -o $@ $< +-include grub_setup-kern_device.d + +grub_setup-kern_disk.o: kern/disk.c $(kern/disk.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/disk.c\" -MD -c -o $@ $< +-include grub_setup-kern_disk.d + +grub_setup-kern_err.o: kern/err.c $(kern/err.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/err.c\" -MD -c -o $@ $< +-include grub_setup-kern_err.d + +grub_setup-kern_misc.o: kern/misc.c $(kern/misc.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/misc.c\" -MD -c -o $@ $< +-include grub_setup-kern_misc.d + +grub_setup-kern_partition.o: kern/partition.c $(kern/partition.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/partition.c\" -MD -c -o $@ $< +-include grub_setup-kern_partition.d + +grub_setup-kern_file.o: kern/file.c $(kern/file.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/file.c\" -MD -c -o $@ $< +-include grub_setup-kern_file.d + +grub_setup-kern_fs.o: kern/fs.c $(kern/fs.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/fs.c\" -MD -c -o $@ $< +-include grub_setup-kern_fs.d + +grub_setup-kern_env.o: kern/env.c $(kern/env.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/env.c\" -MD -c -o $@ $< +-include grub_setup-kern_env.d + +grub_setup-kern_list.o: kern/list.c $(kern/list.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/list.c\" -MD -c -o $@ $< +-include grub_setup-kern_list.d + +grub_setup-fs_fshelp.o: fs/fshelp.c $(fs/fshelp.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/fshelp.c\" -MD -c -o $@ $< +-include grub_setup-fs_fshelp.d + +grub_setup-fs_affs.o: fs/affs.c $(fs/affs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/affs.c\" -MD -c -o $@ $< +-include grub_setup-fs_affs.d + +grub_setup-fs_cpio.o: fs/cpio.c $(fs/cpio.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/cpio.c\" -MD -c -o $@ $< +-include grub_setup-fs_cpio.d + +grub_setup-fs_ext2.o: fs/ext2.c $(fs/ext2.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/ext2.c\" -MD -c -o $@ $< +-include grub_setup-fs_ext2.d + +grub_setup-fs_fat.o: fs/fat.c $(fs/fat.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/fat.c\" -MD -c -o $@ $< +-include grub_setup-fs_fat.d + +grub_setup-fs_hfs.o: fs/hfs.c $(fs/hfs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/hfs.c\" -MD -c -o $@ $< +-include grub_setup-fs_hfs.d + +grub_setup-fs_hfsplus.o: fs/hfsplus.c $(fs/hfsplus.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/hfsplus.c\" -MD -c -o $@ $< +-include grub_setup-fs_hfsplus.d + +grub_setup-fs_iso9660.o: fs/iso9660.c $(fs/iso9660.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/iso9660.c\" -MD -c -o $@ $< +-include grub_setup-fs_iso9660.d + +grub_setup-fs_udf.o: fs/udf.c $(fs/udf.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/udf.c\" -MD -c -o $@ $< +-include grub_setup-fs_udf.d + +grub_setup-fs_jfs.o: fs/jfs.c $(fs/jfs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/jfs.c\" -MD -c -o $@ $< +-include grub_setup-fs_jfs.d + +grub_setup-fs_minix.o: fs/minix.c $(fs/minix.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/minix.c\" -MD -c -o $@ $< +-include grub_setup-fs_minix.d + +grub_setup-fs_nilfs2.o: fs/nilfs2.c $(fs/nilfs2.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/nilfs2.c\" -MD -c -o $@ $< +-include grub_setup-fs_nilfs2.d + +grub_setup-fs_ntfs.o: fs/ntfs.c $(fs/ntfs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/ntfs.c\" -MD -c -o $@ $< +-include grub_setup-fs_ntfs.d + +grub_setup-fs_ntfscomp.o: fs/ntfscomp.c $(fs/ntfscomp.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/ntfscomp.c\" -MD -c -o $@ $< +-include grub_setup-fs_ntfscomp.d + +grub_setup-fs_reiserfs.o: fs/reiserfs.c $(fs/reiserfs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/reiserfs.c\" -MD -c -o $@ $< +-include grub_setup-fs_reiserfs.d + +grub_setup-fs_sfs.o: fs/sfs.c $(fs/sfs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/sfs.c\" -MD -c -o $@ $< +-include grub_setup-fs_sfs.d + +grub_setup-fs_ufs.o: fs/ufs.c $(fs/ufs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/ufs.c\" -MD -c -o $@ $< +-include grub_setup-fs_ufs.d + +grub_setup-fs_ufs2.o: fs/ufs2.c $(fs/ufs2.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/ufs2.c\" -MD -c -o $@ $< +-include grub_setup-fs_ufs2.d + +grub_setup-fs_xfs.o: fs/xfs.c $(fs/xfs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/xfs.c\" -MD -c -o $@ $< +-include grub_setup-fs_xfs.d + +grub_setup-fs_afs.o: fs/afs.c $(fs/afs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/afs.c\" -MD -c -o $@ $< +-include grub_setup-fs_afs.d + +grub_setup-fs_afs_be.o: fs/afs_be.c $(fs/afs_be.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/afs_be.c\" -MD -c -o $@ $< +-include grub_setup-fs_afs_be.d + +grub_setup-fs_befs.o: fs/befs.c $(fs/befs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/befs.c\" -MD -c -o $@ $< +-include grub_setup-fs_befs.d + +grub_setup-fs_befs_be.o: fs/befs_be.c $(fs/befs_be.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/befs_be.c\" -MD -c -o $@ $< +-include grub_setup-fs_befs_be.d + +grub_setup-fs_tar.o: fs/tar.c $(fs/tar.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/tar.c\" -MD -c -o $@ $< +-include grub_setup-fs_tar.d + +grub_setup-__GRUB_CONTRIB__zfs_zfs.o: $(GRUB_CONTRIB)/zfs/zfs.c $($(GRUB_CONTRIB)/zfs/zfs.c_DEPENDENCIES) + $(CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/zfs/zfs.c\" -MD -c -o $@ $< +-include grub_setup-__GRUB_CONTRIB__zfs_zfs.d + +grub_setup-__GRUB_CONTRIB__zfs_zfs_lzjb.o: $(GRUB_CONTRIB)/zfs/zfs_lzjb.c $($(GRUB_CONTRIB)/zfs/zfs_lzjb.c_DEPENDENCIES) + $(CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/zfs/zfs_lzjb.c\" -MD -c -o $@ $< +-include grub_setup-__GRUB_CONTRIB__zfs_zfs_lzjb.d + +grub_setup-__GRUB_CONTRIB__zfs_zfs_sha256.o: $(GRUB_CONTRIB)/zfs/zfs_sha256.c $($(GRUB_CONTRIB)/zfs/zfs_sha256.c_DEPENDENCIES) + $(CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/zfs/zfs_sha256.c\" -MD -c -o $@ $< +-include grub_setup-__GRUB_CONTRIB__zfs_zfs_sha256.d + +grub_setup-__GRUB_CONTRIB__zfs_zfs_fletcher.o: $(GRUB_CONTRIB)/zfs/zfs_fletcher.c $($(GRUB_CONTRIB)/zfs/zfs_fletcher.c_DEPENDENCIES) + $(CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/zfs/zfs_fletcher.c\" -MD -c -o $@ $< +-include grub_setup-__GRUB_CONTRIB__zfs_zfs_fletcher.d + +grub_setup-partmap_amiga.o: partmap/amiga.c $(partmap/amiga.c_DEPENDENCIES) + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"partmap/amiga.c\" -MD -c -o $@ $< +-include grub_setup-partmap_amiga.d + +grub_setup-partmap_apple.o: partmap/apple.c $(partmap/apple.c_DEPENDENCIES) + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"partmap/apple.c\" -MD -c -o $@ $< +-include grub_setup-partmap_apple.d + +grub_setup-partmap_msdos.o: partmap/msdos.c $(partmap/msdos.c_DEPENDENCIES) + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"partmap/msdos.c\" -MD -c -o $@ $< +-include grub_setup-partmap_msdos.d + +grub_setup-partmap_bsdlabel.o: partmap/bsdlabel.c $(partmap/bsdlabel.c_DEPENDENCIES) + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"partmap/bsdlabel.c\" -MD -c -o $@ $< +-include grub_setup-partmap_bsdlabel.d + +grub_setup-partmap_sun.o: partmap/sun.c $(partmap/sun.c_DEPENDENCIES) + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"partmap/sun.c\" -MD -c -o $@ $< +-include grub_setup-partmap_sun.d + +grub_setup-partmap_acorn.o: partmap/acorn.c $(partmap/acorn.c_DEPENDENCIES) + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"partmap/acorn.c\" -MD -c -o $@ $< +-include grub_setup-partmap_acorn.d + +grub_setup-disk_raid.o: disk/raid.c $(disk/raid.c_DEPENDENCIES) + $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"disk/raid.c\" -MD -c -o $@ $< +-include grub_setup-disk_raid.d + +grub_setup-disk_raid5_recover.o: disk/raid5_recover.c $(disk/raid5_recover.c_DEPENDENCIES) + $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"disk/raid5_recover.c\" -MD -c -o $@ $< +-include grub_setup-disk_raid5_recover.d + +grub_setup-disk_raid6_recover.o: disk/raid6_recover.c $(disk/raid6_recover.c_DEPENDENCIES) + $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"disk/raid6_recover.c\" -MD -c -o $@ $< +-include grub_setup-disk_raid6_recover.d + +grub_setup-disk_mdraid_linux.o: disk/mdraid_linux.c $(disk/mdraid_linux.c_DEPENDENCIES) + $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"disk/mdraid_linux.c\" -MD -c -o $@ $< +-include grub_setup-disk_mdraid_linux.d + +grub_setup-disk_lvm.o: disk/lvm.c $(disk/lvm.c_DEPENDENCIES) + $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"disk/lvm.c\" -MD -c -o $@ $< +-include grub_setup-disk_lvm.d + +grub_setup-util_raid.o: util/raid.c $(util/raid.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"util/raid.c\" -MD -c -o $@ $< +-include grub_setup-util_raid.d + +grub_setup-util_lvm.o: util/lvm.c $(util/lvm.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"util/lvm.c\" -MD -c -o $@ $< +-include grub_setup-util_lvm.d + +grub_setup-gnulib_progname.o: gnulib/progname.c $(gnulib/progname.c_DEPENDENCIES) + $(CC) -Ignulib -I$(srcdir)/gnulib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"gnulib/progname.c\" -MD -c -o $@ $< +-include grub_setup-gnulib_progname.d + +grub_setup-grub_setup_init.o: grub_setup_init.c $(grub_setup_init.c_DEPENDENCIES) + $(CC) -I. -I$(srcdir)/. $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"grub_setup_init.c\" -MD -c -o $@ $< +-include grub_setup-grub_setup_init.d + +grub_setup_CFLAGS = -I$(GRUB_CONTRIB)/zfs/include + +# For grub-ofpathname. +grub_ofpathname_SOURCES = util/ieee1275/grub-ofpathname.c \ + util/ieee1275/ofpath.c util/misc.c kern/emu/misc.c \ + gnulib/progname.c + +clean-utility-grub-ofpathname.1: + rm -f grub-ofpathname$(EXEEXT) grub_ofpathname-util_ieee1275_grub_ofpathname.o grub_ofpathname-util_ieee1275_ofpath.o grub_ofpathname-util_misc.o grub_ofpathname-kern_emu_misc.o grub_ofpathname-gnulib_progname.o + +CLEAN_UTILITY_TARGETS += clean-utility-grub-ofpathname.1 + +mostlyclean-utility-grub-ofpathname.1: + rm -f grub_ofpathname-util_ieee1275_grub_ofpathname.d grub_ofpathname-util_ieee1275_ofpath.d grub_ofpathname-util_misc.d grub_ofpathname-kern_emu_misc.d grub_ofpathname-gnulib_progname.d + +MOSTLYCLEAN_UTILITY_TARGETS += mostlyclean-utility-grub-ofpathname.1 + +grub_ofpathname_OBJECTS += grub_ofpathname-util_ieee1275_grub_ofpathname.o grub_ofpathname-util_ieee1275_ofpath.o grub_ofpathname-util_misc.o grub_ofpathname-kern_emu_misc.o grub_ofpathname-gnulib_progname.o + +grub_ofpathname-util_ieee1275_grub_ofpathname.o: util/ieee1275/grub-ofpathname.c $(util/ieee1275/grub-ofpathname.c_DEPENDENCIES) + $(CC) -Iutil/ieee1275 -I$(srcdir)/util/ieee1275 $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_ofpathname_CFLAGS) -DGRUB_FILE=\"util/ieee1275/grub-ofpathname.c\" -MD -c -o $@ $< +-include grub_ofpathname-util_ieee1275_grub_ofpathname.d + +grub_ofpathname-util_ieee1275_ofpath.o: util/ieee1275/ofpath.c $(util/ieee1275/ofpath.c_DEPENDENCIES) + $(CC) -Iutil/ieee1275 -I$(srcdir)/util/ieee1275 $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_ofpathname_CFLAGS) -DGRUB_FILE=\"util/ieee1275/ofpath.c\" -MD -c -o $@ $< +-include grub_ofpathname-util_ieee1275_ofpath.d + +grub_ofpathname-util_misc.o: util/misc.c $(util/misc.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_ofpathname_CFLAGS) -DGRUB_FILE=\"util/misc.c\" -MD -c -o $@ $< +-include grub_ofpathname-util_misc.d + +grub_ofpathname-kern_emu_misc.o: kern/emu/misc.c $(kern/emu/misc.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_ofpathname_CFLAGS) -DGRUB_FILE=\"kern/emu/misc.c\" -MD -c -o $@ $< +-include grub_ofpathname-kern_emu_misc.d + +grub_ofpathname-gnulib_progname.o: gnulib/progname.c $(gnulib/progname.c_DEPENDENCIES) + $(CC) -Ignulib -I$(srcdir)/gnulib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_ofpathname_CFLAGS) -DGRUB_FILE=\"gnulib/progname.c\" -MD -c -o $@ $< +-include grub_ofpathname-gnulib_progname.d + + +# Scripts. +sbin_SCRIPTS = grub-install + +# For grub-install. +grub_install_SOURCES = util/grub-install.in +CLEANFILES += grub-install + +grub-install: util/grub-install.in $(util/grub-install.in_DEPENDENCIES) config.status + ./config.status --file=-:util/grub-install.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +# Modules. +pkglib_MODULES += ieee1275_fb.mod +ieee1275_fb_mod_SOURCES = video/ieee1275.c + +clean-module-ieee1275_fb.mod.1: + rm -f ieee1275_fb.mod mod-ieee1275_fb.o mod-ieee1275_fb.c pre-ieee1275_fb.o ieee1275_fb_mod-video_ieee1275.o und-ieee1275_fb.lst + +CLEAN_MODULE_TARGETS += clean-module-ieee1275_fb.mod.1 + +clean-module-ieee1275_fb.mod-symbol.1: + rm -f def-ieee1275_fb.lst + +CLEAN_MODULE_TARGETS += clean-module-ieee1275_fb.mod-symbol.1 +DEFSYMFILES += def-ieee1275_fb.lst +mostlyclean-module-ieee1275_fb.mod.1: + rm -f ieee1275_fb_mod-video_ieee1275.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-ieee1275_fb.mod.1 +UNDSYMFILES += und-ieee1275_fb.lst + +ifeq ($(TARGET_NO_MODULES), yes) +ieee1275_fb.mod: pre-ieee1275_fb.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ieee1275_fb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ieee1275_fb.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +ieee1275_fb.mod: pre-ieee1275_fb.o mod-ieee1275_fb.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ieee1275_fb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ieee1275_fb.o mod-ieee1275_fb.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ieee1275_fb.mod: pre-ieee1275_fb.o mod-ieee1275_fb.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(ieee1275_fb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-ieee1275_fb.o mod-ieee1275_fb.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-ieee1275_fb.o: $(ieee1275_fb_mod_DEPENDENCIES) ieee1275_fb_mod-video_ieee1275.o + -rm -f $@ + $(TARGET_CC) $(ieee1275_fb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ ieee1275_fb_mod-video_ieee1275.o + +mod-ieee1275_fb.o: mod-ieee1275_fb.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ieee1275_fb_mod_CFLAGS) -DGRUB_FILE=\"mod-ieee1275_fb.c\" -c -o $@ $< + +mod-ieee1275_fb.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'ieee1275_fb' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-ieee1275_fb.lst: pre-ieee1275_fb.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 ieee1275_fb/' > $@ +else +def-ieee1275_fb.lst: pre-ieee1275_fb.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 ieee1275_fb/' > $@ +endif + +und-ieee1275_fb.lst: pre-ieee1275_fb.o + echo 'ieee1275_fb' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +ieee1275_fb_mod-video_ieee1275.o: video/ieee1275.c $(video/ieee1275.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ieee1275_fb_mod_CFLAGS) -DGRUB_FILE=\"video/ieee1275.c\" -MD -c -o $@ $< +-include ieee1275_fb_mod-video_ieee1275.d + +clean-module-ieee1275_fb_mod-video_ieee1275-extra.1: + rm -f cmd-ieee1275_fb_mod-video_ieee1275.lst fs-ieee1275_fb_mod-video_ieee1275.lst partmap-ieee1275_fb_mod-video_ieee1275.lst handler-ieee1275_fb_mod-video_ieee1275.lst parttool-ieee1275_fb_mod-video_ieee1275.lst video-ieee1275_fb_mod-video_ieee1275.lst terminal-ieee1275_fb_mod-video_ieee1275.lst + +CLEAN_MODULE_TARGETS += clean-module-ieee1275_fb_mod-video_ieee1275-extra.1 + +COMMANDFILES += cmd-ieee1275_fb_mod-video_ieee1275.lst +FSFILES += fs-ieee1275_fb_mod-video_ieee1275.lst +PARTTOOLFILES += parttool-ieee1275_fb_mod-video_ieee1275.lst +PARTMAPFILES += partmap-ieee1275_fb_mod-video_ieee1275.lst +HANDLERFILES += handler-ieee1275_fb_mod-video_ieee1275.lst +TERMINALFILES += terminal-ieee1275_fb_mod-video_ieee1275.lst +VIDEOFILES += video-ieee1275_fb_mod-video_ieee1275.lst + +cmd-ieee1275_fb_mod-video_ieee1275.lst: video/ieee1275.c $(video/ieee1275.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ieee1275_fb_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh ieee1275_fb > $@ || (rm -f $@; exit 1) + +fs-ieee1275_fb_mod-video_ieee1275.lst: video/ieee1275.c $(video/ieee1275.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ieee1275_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh ieee1275_fb > $@ || (rm -f $@; exit 1) + +parttool-ieee1275_fb_mod-video_ieee1275.lst: video/ieee1275.c $(video/ieee1275.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ieee1275_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh ieee1275_fb > $@ || (rm -f $@; exit 1) + +partmap-ieee1275_fb_mod-video_ieee1275.lst: video/ieee1275.c $(video/ieee1275.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ieee1275_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh ieee1275_fb > $@ || (rm -f $@; exit 1) + +handler-ieee1275_fb_mod-video_ieee1275.lst: video/ieee1275.c $(video/ieee1275.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ieee1275_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh ieee1275_fb > $@ || (rm -f $@; exit 1) + +terminal-ieee1275_fb_mod-video_ieee1275.lst: video/ieee1275.c $(video/ieee1275.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ieee1275_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh ieee1275_fb > $@ || (rm -f $@; exit 1) + +video-ieee1275_fb_mod-video_ieee1275.lst: video/ieee1275.c $(video/ieee1275.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ieee1275_fb_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh ieee1275_fb > $@ || (rm -f $@; exit 1) + +ieee1275_fb_mod_CFLAGS = $(COMMON_CFLAGS) +ieee1275_fb_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For linux.mod. +pkglib_MODULES += linux.mod +linux_mod_SOURCES = loader/sparc64/ieee1275/linux.c + +clean-module-linux.mod.1: + rm -f linux.mod mod-linux.o mod-linux.c pre-linux.o linux_mod-loader_sparc64_ieee1275_linux.o und-linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux.mod.1 + +clean-module-linux.mod-symbol.1: + rm -f def-linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux.mod-symbol.1 +DEFSYMFILES += def-linux.lst +mostlyclean-module-linux.mod.1: + rm -f linux_mod-loader_sparc64_ieee1275_linux.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-linux.mod.1 +UNDSYMFILES += und-linux.lst + +ifeq ($(TARGET_NO_MODULES), yes) +linux.mod: pre-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-linux.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-linux.o mod-linux.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-linux.o mod-linux.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-linux.o: $(linux_mod_DEPENDENCIES) linux_mod-loader_sparc64_ieee1275_linux.o + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ linux_mod-loader_sparc64_ieee1275_linux.o + +mod-linux.o: mod-linux.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -DGRUB_FILE=\"mod-linux.c\" -c -o $@ $< + +mod-linux.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'linux' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-linux.lst: pre-linux.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 linux/' > $@ +else +def-linux.lst: pre-linux.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 linux/' > $@ +endif + +und-linux.lst: pre-linux.o + echo 'linux' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +linux_mod-loader_sparc64_ieee1275_linux.o: loader/sparc64/ieee1275/linux.c $(loader/sparc64/ieee1275/linux.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/sparc64/ieee1275 -I$(srcdir)/loader/sparc64/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -DGRUB_FILE=\"loader/sparc64/ieee1275/linux.c\" -MD -c -o $@ $< +-include linux_mod-loader_sparc64_ieee1275_linux.d + +clean-module-linux_mod-loader_sparc64_ieee1275_linux-extra.1: + rm -f cmd-linux_mod-loader_sparc64_ieee1275_linux.lst fs-linux_mod-loader_sparc64_ieee1275_linux.lst partmap-linux_mod-loader_sparc64_ieee1275_linux.lst handler-linux_mod-loader_sparc64_ieee1275_linux.lst parttool-linux_mod-loader_sparc64_ieee1275_linux.lst video-linux_mod-loader_sparc64_ieee1275_linux.lst terminal-linux_mod-loader_sparc64_ieee1275_linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux_mod-loader_sparc64_ieee1275_linux-extra.1 + +COMMANDFILES += cmd-linux_mod-loader_sparc64_ieee1275_linux.lst +FSFILES += fs-linux_mod-loader_sparc64_ieee1275_linux.lst +PARTTOOLFILES += parttool-linux_mod-loader_sparc64_ieee1275_linux.lst +PARTMAPFILES += partmap-linux_mod-loader_sparc64_ieee1275_linux.lst +HANDLERFILES += handler-linux_mod-loader_sparc64_ieee1275_linux.lst +TERMINALFILES += terminal-linux_mod-loader_sparc64_ieee1275_linux.lst +VIDEOFILES += video-linux_mod-loader_sparc64_ieee1275_linux.lst + +cmd-linux_mod-loader_sparc64_ieee1275_linux.lst: loader/sparc64/ieee1275/linux.c $(loader/sparc64/ieee1275/linux.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/sparc64/ieee1275 -I$(srcdir)/loader/sparc64/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh linux > $@ || (rm -f $@; exit 1) + +fs-linux_mod-loader_sparc64_ieee1275_linux.lst: loader/sparc64/ieee1275/linux.c $(loader/sparc64/ieee1275/linux.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/sparc64/ieee1275 -I$(srcdir)/loader/sparc64/ieee1275 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh linux > $@ || (rm -f $@; exit 1) + +parttool-linux_mod-loader_sparc64_ieee1275_linux.lst: loader/sparc64/ieee1275/linux.c $(loader/sparc64/ieee1275/linux.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/sparc64/ieee1275 -I$(srcdir)/loader/sparc64/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh linux > $@ || (rm -f $@; exit 1) + +partmap-linux_mod-loader_sparc64_ieee1275_linux.lst: loader/sparc64/ieee1275/linux.c $(loader/sparc64/ieee1275/linux.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/sparc64/ieee1275 -I$(srcdir)/loader/sparc64/ieee1275 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh linux > $@ || (rm -f $@; exit 1) + +handler-linux_mod-loader_sparc64_ieee1275_linux.lst: loader/sparc64/ieee1275/linux.c $(loader/sparc64/ieee1275/linux.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/sparc64/ieee1275 -I$(srcdir)/loader/sparc64/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh linux > $@ || (rm -f $@; exit 1) + +terminal-linux_mod-loader_sparc64_ieee1275_linux.lst: loader/sparc64/ieee1275/linux.c $(loader/sparc64/ieee1275/linux.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/sparc64/ieee1275 -I$(srcdir)/loader/sparc64/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh linux > $@ || (rm -f $@; exit 1) + +video-linux_mod-loader_sparc64_ieee1275_linux.lst: loader/sparc64/ieee1275/linux.c $(loader/sparc64/ieee1275/linux.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/sparc64/ieee1275 -I$(srcdir)/loader/sparc64/ieee1275 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh linux > $@ || (rm -f $@; exit 1) + +linux_mod_CFLAGS = $(COMMON_CFLAGS) +linux_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For halt.mod. +pkglib_MODULES += halt.mod +halt_mod_SOURCES = commands/halt.c + +clean-module-halt.mod.1: + rm -f halt.mod mod-halt.o mod-halt.c pre-halt.o halt_mod-commands_halt.o und-halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt.mod.1 + +clean-module-halt.mod-symbol.1: + rm -f def-halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt.mod-symbol.1 +DEFSYMFILES += def-halt.lst +mostlyclean-module-halt.mod.1: + rm -f halt_mod-commands_halt.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-halt.mod.1 +UNDSYMFILES += und-halt.lst + +ifeq ($(TARGET_NO_MODULES), yes) +halt.mod: pre-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-halt.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +halt.mod: pre-halt.o mod-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-halt.o mod-halt.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +halt.mod: pre-halt.o mod-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-halt.o mod-halt.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-halt.o: $(halt_mod_DEPENDENCIES) halt_mod-commands_halt.o + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ halt_mod-commands_halt.o + +mod-halt.o: mod-halt.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -DGRUB_FILE=\"mod-halt.c\" -c -o $@ $< + +mod-halt.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'halt' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-halt.lst: pre-halt.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 halt/' > $@ +else +def-halt.lst: pre-halt.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 halt/' > $@ +endif + +und-halt.lst: pre-halt.o + echo 'halt' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +halt_mod-commands_halt.o: commands/halt.c $(commands/halt.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -DGRUB_FILE=\"commands/halt.c\" -MD -c -o $@ $< +-include halt_mod-commands_halt.d + +clean-module-halt_mod-commands_halt-extra.1: + rm -f cmd-halt_mod-commands_halt.lst fs-halt_mod-commands_halt.lst partmap-halt_mod-commands_halt.lst handler-halt_mod-commands_halt.lst parttool-halt_mod-commands_halt.lst video-halt_mod-commands_halt.lst terminal-halt_mod-commands_halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt_mod-commands_halt-extra.1 + +COMMANDFILES += cmd-halt_mod-commands_halt.lst +FSFILES += fs-halt_mod-commands_halt.lst +PARTTOOLFILES += parttool-halt_mod-commands_halt.lst +PARTMAPFILES += partmap-halt_mod-commands_halt.lst +HANDLERFILES += handler-halt_mod-commands_halt.lst +TERMINALFILES += terminal-halt_mod-commands_halt.lst +VIDEOFILES += video-halt_mod-commands_halt.lst + +cmd-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh halt > $@ || (rm -f $@; exit 1) + +fs-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh halt > $@ || (rm -f $@; exit 1) + +parttool-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh halt > $@ || (rm -f $@; exit 1) + +partmap-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh halt > $@ || (rm -f $@; exit 1) + +handler-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh halt > $@ || (rm -f $@; exit 1) + +terminal-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh halt > $@ || (rm -f $@; exit 1) + +video-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh halt > $@ || (rm -f $@; exit 1) + +halt_mod_CFLAGS = $(COMMON_CFLAGS) +halt_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For datetime.mod +pkglib_MODULES += datetime.mod +datetime_mod_SOURCES = lib/ieee1275/datetime.c + +clean-module-datetime.mod.1: + rm -f datetime.mod mod-datetime.o mod-datetime.c pre-datetime.o datetime_mod-lib_ieee1275_datetime.o und-datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime.mod.1 + +clean-module-datetime.mod-symbol.1: + rm -f def-datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime.mod-symbol.1 +DEFSYMFILES += def-datetime.lst +mostlyclean-module-datetime.mod.1: + rm -f datetime_mod-lib_ieee1275_datetime.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-datetime.mod.1 +UNDSYMFILES += und-datetime.lst + +ifeq ($(TARGET_NO_MODULES), yes) +datetime.mod: pre-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-datetime.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +datetime.mod: pre-datetime.o mod-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-datetime.o mod-datetime.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +datetime.mod: pre-datetime.o mod-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-datetime.o mod-datetime.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-datetime.o: $(datetime_mod_DEPENDENCIES) datetime_mod-lib_ieee1275_datetime.o + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ datetime_mod-lib_ieee1275_datetime.o + +mod-datetime.o: mod-datetime.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -DGRUB_FILE=\"mod-datetime.c\" -c -o $@ $< + +mod-datetime.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'datetime' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-datetime.lst: pre-datetime.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 datetime/' > $@ +else +def-datetime.lst: pre-datetime.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 datetime/' > $@ +endif + +und-datetime.lst: pre-datetime.o + echo 'datetime' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +datetime_mod-lib_ieee1275_datetime.o: lib/ieee1275/datetime.c $(lib/ieee1275/datetime.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/ieee1275 -I$(srcdir)/lib/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -DGRUB_FILE=\"lib/ieee1275/datetime.c\" -MD -c -o $@ $< +-include datetime_mod-lib_ieee1275_datetime.d + +clean-module-datetime_mod-lib_ieee1275_datetime-extra.1: + rm -f cmd-datetime_mod-lib_ieee1275_datetime.lst fs-datetime_mod-lib_ieee1275_datetime.lst partmap-datetime_mod-lib_ieee1275_datetime.lst handler-datetime_mod-lib_ieee1275_datetime.lst parttool-datetime_mod-lib_ieee1275_datetime.lst video-datetime_mod-lib_ieee1275_datetime.lst terminal-datetime_mod-lib_ieee1275_datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime_mod-lib_ieee1275_datetime-extra.1 + +COMMANDFILES += cmd-datetime_mod-lib_ieee1275_datetime.lst +FSFILES += fs-datetime_mod-lib_ieee1275_datetime.lst +PARTTOOLFILES += parttool-datetime_mod-lib_ieee1275_datetime.lst +PARTMAPFILES += partmap-datetime_mod-lib_ieee1275_datetime.lst +HANDLERFILES += handler-datetime_mod-lib_ieee1275_datetime.lst +TERMINALFILES += terminal-datetime_mod-lib_ieee1275_datetime.lst +VIDEOFILES += video-datetime_mod-lib_ieee1275_datetime.lst + +cmd-datetime_mod-lib_ieee1275_datetime.lst: lib/ieee1275/datetime.c $(lib/ieee1275/datetime.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/ieee1275 -I$(srcdir)/lib/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh datetime > $@ || (rm -f $@; exit 1) + +fs-datetime_mod-lib_ieee1275_datetime.lst: lib/ieee1275/datetime.c $(lib/ieee1275/datetime.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/ieee1275 -I$(srcdir)/lib/ieee1275 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh datetime > $@ || (rm -f $@; exit 1) + +parttool-datetime_mod-lib_ieee1275_datetime.lst: lib/ieee1275/datetime.c $(lib/ieee1275/datetime.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/ieee1275 -I$(srcdir)/lib/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh datetime > $@ || (rm -f $@; exit 1) + +partmap-datetime_mod-lib_ieee1275_datetime.lst: lib/ieee1275/datetime.c $(lib/ieee1275/datetime.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/ieee1275 -I$(srcdir)/lib/ieee1275 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh datetime > $@ || (rm -f $@; exit 1) + +handler-datetime_mod-lib_ieee1275_datetime.lst: lib/ieee1275/datetime.c $(lib/ieee1275/datetime.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/ieee1275 -I$(srcdir)/lib/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh datetime > $@ || (rm -f $@; exit 1) + +terminal-datetime_mod-lib_ieee1275_datetime.lst: lib/ieee1275/datetime.c $(lib/ieee1275/datetime.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/ieee1275 -I$(srcdir)/lib/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh datetime > $@ || (rm -f $@; exit 1) + +video-datetime_mod-lib_ieee1275_datetime.lst: lib/ieee1275/datetime.c $(lib/ieee1275/datetime.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/ieee1275 -I$(srcdir)/lib/ieee1275 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh datetime > $@ || (rm -f $@; exit 1) + +datetime_mod_CFLAGS = $(COMMON_CFLAGS) +datetime_mod_LDFLAGS = $(COMMON_LDFLAGS) + +include $(srcdir)/conf/common.mk +grub-setup: $(grub_setup_DEPENDENCIES) $(grub_setup_OBJECTS) + $(CC) -o $@ $(grub_setup_OBJECTS) $(LDFLAGS) $(grub_setup_LDFLAGS) + +grub-ofpathname: $(grub_ofpathname_DEPENDENCIES) $(grub_ofpathname_OBJECTS) + $(CC) -o $@ $(grub_ofpathname_OBJECTS) $(LDFLAGS) $(grub_ofpathname_LDFLAGS) + +CLEANFILES += kernel.img $(kernel_img_OBJECTS) +ifeq ($(kernel_img_RELOCATABLE),yes) +kernel.img: $(kernel_img_DEPENDENCIES) $(kernel_img_OBJECTS) + $(TARGET_CC) -Wl,-r,-d -o $@ $(kernel_img_OBJECTS) $(TARGET_LDFLAGS) $(kernel_img_LDFLAGS) + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K start -R .note -R .comment $@; fi +else +kernel.img: $(kernel_img_DEPENDENCIES) $(kernel_img_OBJECTS) + $(TARGET_CC) -o $@ $(kernel_img_OBJECTS) $(TARGET_LDFLAGS) $(kernel_img_LDFLAGS) + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) -R .rel.dyn -R .reginfo -R .note -R .comment $@; fi +endif + --- grub2-1.98+20100804.orig/conf/tests.mk +++ grub2-1.98+20100804/conf/tests.mk @@ -0,0 +1,441 @@ +# -*- makefile -*- +# Generated by genmk.rb, please don't edit! + +# For grub-shell +grub-shell: tests/util/grub-shell.in config.status + ./config.status --file=$@:$< + chmod +x $@ +check_SCRIPTS += grub-shell +CLEANFILES += grub-shell + +# For grub-shell-tester +grub-shell-tester: tests/util/grub-shell-tester.in config.status + ./config.status --file=$@:$< + chmod +x $@ +check_SCRIPTS += grub-shell-tester +CLEANFILES += grub-shell-tester + +pkglib_MODULES += functional_test.mod +functional_test_mod_SOURCES = tests/lib/functional_test.c tests/lib/test.c + +clean-module-functional_test.mod.1: + rm -f functional_test.mod mod-functional_test.o mod-functional_test.c pre-functional_test.o functional_test_mod-tests_lib_functional_test.o functional_test_mod-tests_lib_test.o und-functional_test.lst + +CLEAN_MODULE_TARGETS += clean-module-functional_test.mod.1 + +clean-module-functional_test.mod-symbol.1: + rm -f def-functional_test.lst + +CLEAN_MODULE_TARGETS += clean-module-functional_test.mod-symbol.1 +DEFSYMFILES += def-functional_test.lst +mostlyclean-module-functional_test.mod.1: + rm -f functional_test_mod-tests_lib_functional_test.d functional_test_mod-tests_lib_test.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-functional_test.mod.1 +UNDSYMFILES += und-functional_test.lst + +ifeq ($(TARGET_NO_MODULES), yes) +functional_test.mod: pre-functional_test.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(functional_test_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-functional_test.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +functional_test.mod: pre-functional_test.o mod-functional_test.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(functional_test_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-functional_test.o mod-functional_test.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +functional_test.mod: pre-functional_test.o mod-functional_test.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(functional_test_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-functional_test.o mod-functional_test.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-functional_test.o: $(functional_test_mod_DEPENDENCIES) functional_test_mod-tests_lib_functional_test.o functional_test_mod-tests_lib_test.o + -rm -f $@ + $(TARGET_CC) $(functional_test_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ functional_test_mod-tests_lib_functional_test.o functional_test_mod-tests_lib_test.o + +mod-functional_test.o: mod-functional_test.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(functional_test_mod_CFLAGS) -DGRUB_FILE=\"mod-functional_test.c\" -c -o $@ $< + +mod-functional_test.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'functional_test' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-functional_test.lst: pre-functional_test.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 functional_test/' > $@ +else +def-functional_test.lst: pre-functional_test.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 functional_test/' > $@ +endif + +und-functional_test.lst: pre-functional_test.o + echo 'functional_test' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +functional_test_mod-tests_lib_functional_test.o: tests/lib/functional_test.c $(tests/lib/functional_test.c_DEPENDENCIES) + $(TARGET_CC) -Itests/lib -I$(srcdir)/tests/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(functional_test_mod_CFLAGS) -DGRUB_FILE=\"tests/lib/functional_test.c\" -MD -c -o $@ $< +-include functional_test_mod-tests_lib_functional_test.d + +clean-module-functional_test_mod-tests_lib_functional_test-extra.1: + rm -f cmd-functional_test_mod-tests_lib_functional_test.lst fs-functional_test_mod-tests_lib_functional_test.lst partmap-functional_test_mod-tests_lib_functional_test.lst handler-functional_test_mod-tests_lib_functional_test.lst parttool-functional_test_mod-tests_lib_functional_test.lst video-functional_test_mod-tests_lib_functional_test.lst terminal-functional_test_mod-tests_lib_functional_test.lst + +CLEAN_MODULE_TARGETS += clean-module-functional_test_mod-tests_lib_functional_test-extra.1 + +COMMANDFILES += cmd-functional_test_mod-tests_lib_functional_test.lst +FSFILES += fs-functional_test_mod-tests_lib_functional_test.lst +PARTTOOLFILES += parttool-functional_test_mod-tests_lib_functional_test.lst +PARTMAPFILES += partmap-functional_test_mod-tests_lib_functional_test.lst +HANDLERFILES += handler-functional_test_mod-tests_lib_functional_test.lst +TERMINALFILES += terminal-functional_test_mod-tests_lib_functional_test.lst +VIDEOFILES += video-functional_test_mod-tests_lib_functional_test.lst + +cmd-functional_test_mod-tests_lib_functional_test.lst: tests/lib/functional_test.c $(tests/lib/functional_test.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Itests/lib -I$(srcdir)/tests/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(functional_test_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh functional_test > $@ || (rm -f $@; exit 1) + +fs-functional_test_mod-tests_lib_functional_test.lst: tests/lib/functional_test.c $(tests/lib/functional_test.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Itests/lib -I$(srcdir)/tests/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(functional_test_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh functional_test > $@ || (rm -f $@; exit 1) + +parttool-functional_test_mod-tests_lib_functional_test.lst: tests/lib/functional_test.c $(tests/lib/functional_test.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Itests/lib -I$(srcdir)/tests/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(functional_test_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh functional_test > $@ || (rm -f $@; exit 1) + +partmap-functional_test_mod-tests_lib_functional_test.lst: tests/lib/functional_test.c $(tests/lib/functional_test.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Itests/lib -I$(srcdir)/tests/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(functional_test_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh functional_test > $@ || (rm -f $@; exit 1) + +handler-functional_test_mod-tests_lib_functional_test.lst: tests/lib/functional_test.c $(tests/lib/functional_test.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Itests/lib -I$(srcdir)/tests/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(functional_test_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh functional_test > $@ || (rm -f $@; exit 1) + +terminal-functional_test_mod-tests_lib_functional_test.lst: tests/lib/functional_test.c $(tests/lib/functional_test.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Itests/lib -I$(srcdir)/tests/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(functional_test_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh functional_test > $@ || (rm -f $@; exit 1) + +video-functional_test_mod-tests_lib_functional_test.lst: tests/lib/functional_test.c $(tests/lib/functional_test.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Itests/lib -I$(srcdir)/tests/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(functional_test_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh functional_test > $@ || (rm -f $@; exit 1) + +functional_test_mod-tests_lib_test.o: tests/lib/test.c $(tests/lib/test.c_DEPENDENCIES) + $(TARGET_CC) -Itests/lib -I$(srcdir)/tests/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(functional_test_mod_CFLAGS) -DGRUB_FILE=\"tests/lib/test.c\" -MD -c -o $@ $< +-include functional_test_mod-tests_lib_test.d + +clean-module-functional_test_mod-tests_lib_test-extra.1: + rm -f cmd-functional_test_mod-tests_lib_test.lst fs-functional_test_mod-tests_lib_test.lst partmap-functional_test_mod-tests_lib_test.lst handler-functional_test_mod-tests_lib_test.lst parttool-functional_test_mod-tests_lib_test.lst video-functional_test_mod-tests_lib_test.lst terminal-functional_test_mod-tests_lib_test.lst + +CLEAN_MODULE_TARGETS += clean-module-functional_test_mod-tests_lib_test-extra.1 + +COMMANDFILES += cmd-functional_test_mod-tests_lib_test.lst +FSFILES += fs-functional_test_mod-tests_lib_test.lst +PARTTOOLFILES += parttool-functional_test_mod-tests_lib_test.lst +PARTMAPFILES += partmap-functional_test_mod-tests_lib_test.lst +HANDLERFILES += handler-functional_test_mod-tests_lib_test.lst +TERMINALFILES += terminal-functional_test_mod-tests_lib_test.lst +VIDEOFILES += video-functional_test_mod-tests_lib_test.lst + +cmd-functional_test_mod-tests_lib_test.lst: tests/lib/test.c $(tests/lib/test.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Itests/lib -I$(srcdir)/tests/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(functional_test_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh functional_test > $@ || (rm -f $@; exit 1) + +fs-functional_test_mod-tests_lib_test.lst: tests/lib/test.c $(tests/lib/test.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Itests/lib -I$(srcdir)/tests/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(functional_test_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh functional_test > $@ || (rm -f $@; exit 1) + +parttool-functional_test_mod-tests_lib_test.lst: tests/lib/test.c $(tests/lib/test.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Itests/lib -I$(srcdir)/tests/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(functional_test_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh functional_test > $@ || (rm -f $@; exit 1) + +partmap-functional_test_mod-tests_lib_test.lst: tests/lib/test.c $(tests/lib/test.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Itests/lib -I$(srcdir)/tests/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(functional_test_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh functional_test > $@ || (rm -f $@; exit 1) + +handler-functional_test_mod-tests_lib_test.lst: tests/lib/test.c $(tests/lib/test.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Itests/lib -I$(srcdir)/tests/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(functional_test_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh functional_test > $@ || (rm -f $@; exit 1) + +terminal-functional_test_mod-tests_lib_test.lst: tests/lib/test.c $(tests/lib/test.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Itests/lib -I$(srcdir)/tests/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(functional_test_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh functional_test > $@ || (rm -f $@; exit 1) + +video-functional_test_mod-tests_lib_test.lst: tests/lib/test.c $(tests/lib/test.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Itests/lib -I$(srcdir)/tests/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(functional_test_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh functional_test > $@ || (rm -f $@; exit 1) + +functional_test_mod_CFLAGS = $(COMMON_CFLAGS) +functional_test_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# Rules for unit tests +check_UTILITIES += example_unit_test +example_unit_test_SOURCES = tests/example_unit_test.c kern/list.c kern/misc.c tests/lib/test.c tests/lib/unit_test.c + +clean-utility-example_unit_test.1: + rm -f example_unit_test$(EXEEXT) example_unit_test-tests_example_unit_test.o example_unit_test-kern_list.o example_unit_test-kern_misc.o example_unit_test-tests_lib_test.o example_unit_test-tests_lib_unit_test.o + +CLEAN_UTILITY_TARGETS += clean-utility-example_unit_test.1 + +mostlyclean-utility-example_unit_test.1: + rm -f example_unit_test-tests_example_unit_test.d example_unit_test-kern_list.d example_unit_test-kern_misc.d example_unit_test-tests_lib_test.d example_unit_test-tests_lib_unit_test.d + +MOSTLYCLEAN_UTILITY_TARGETS += mostlyclean-utility-example_unit_test.1 + +example_unit_test_OBJECTS += example_unit_test-tests_example_unit_test.o example_unit_test-kern_list.o example_unit_test-kern_misc.o example_unit_test-tests_lib_test.o example_unit_test-tests_lib_unit_test.o + +example_unit_test-tests_example_unit_test.o: tests/example_unit_test.c $(tests/example_unit_test.c_DEPENDENCIES) + $(CC) -Itests -I$(srcdir)/tests $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(example_unit_test_CFLAGS) -DGRUB_FILE=\"tests/example_unit_test.c\" -MD -c -o $@ $< +-include example_unit_test-tests_example_unit_test.d + +example_unit_test-kern_list.o: kern/list.c $(kern/list.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(example_unit_test_CFLAGS) -DGRUB_FILE=\"kern/list.c\" -MD -c -o $@ $< +-include example_unit_test-kern_list.d + +example_unit_test-kern_misc.o: kern/misc.c $(kern/misc.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(example_unit_test_CFLAGS) -DGRUB_FILE=\"kern/misc.c\" -MD -c -o $@ $< +-include example_unit_test-kern_misc.d + +example_unit_test-tests_lib_test.o: tests/lib/test.c $(tests/lib/test.c_DEPENDENCIES) + $(CC) -Itests/lib -I$(srcdir)/tests/lib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(example_unit_test_CFLAGS) -DGRUB_FILE=\"tests/lib/test.c\" -MD -c -o $@ $< +-include example_unit_test-tests_lib_test.d + +example_unit_test-tests_lib_unit_test.o: tests/lib/unit_test.c $(tests/lib/unit_test.c_DEPENDENCIES) + $(CC) -Itests/lib -I$(srcdir)/tests/lib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(example_unit_test_CFLAGS) -DGRUB_FILE=\"tests/lib/unit_test.c\" -MD -c -o $@ $< +-include example_unit_test-tests_lib_unit_test.d + +example_unit_test_CFLAGS = -Wno-format + +# Rules for functional tests +pkglib_MODULES += example_functional_test.mod +example_functional_test_mod_SOURCES = tests/example_functional_test.c + +clean-module-example_functional_test.mod.1: + rm -f example_functional_test.mod mod-example_functional_test.o mod-example_functional_test.c pre-example_functional_test.o example_functional_test_mod-tests_example_functional_test.o und-example_functional_test.lst + +CLEAN_MODULE_TARGETS += clean-module-example_functional_test.mod.1 + +clean-module-example_functional_test.mod-symbol.1: + rm -f def-example_functional_test.lst + +CLEAN_MODULE_TARGETS += clean-module-example_functional_test.mod-symbol.1 +DEFSYMFILES += def-example_functional_test.lst +mostlyclean-module-example_functional_test.mod.1: + rm -f example_functional_test_mod-tests_example_functional_test.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-example_functional_test.mod.1 +UNDSYMFILES += und-example_functional_test.lst + +ifeq ($(TARGET_NO_MODULES), yes) +example_functional_test.mod: pre-example_functional_test.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(example_functional_test_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-example_functional_test.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +example_functional_test.mod: pre-example_functional_test.o mod-example_functional_test.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(example_functional_test_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-example_functional_test.o mod-example_functional_test.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +example_functional_test.mod: pre-example_functional_test.o mod-example_functional_test.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(example_functional_test_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-example_functional_test.o mod-example_functional_test.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-example_functional_test.o: $(example_functional_test_mod_DEPENDENCIES) example_functional_test_mod-tests_example_functional_test.o + -rm -f $@ + $(TARGET_CC) $(example_functional_test_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ example_functional_test_mod-tests_example_functional_test.o + +mod-example_functional_test.o: mod-example_functional_test.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(example_functional_test_mod_CFLAGS) -DGRUB_FILE=\"mod-example_functional_test.c\" -c -o $@ $< + +mod-example_functional_test.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'example_functional_test' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-example_functional_test.lst: pre-example_functional_test.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 example_functional_test/' > $@ +else +def-example_functional_test.lst: pre-example_functional_test.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 example_functional_test/' > $@ +endif + +und-example_functional_test.lst: pre-example_functional_test.o + echo 'example_functional_test' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +example_functional_test_mod-tests_example_functional_test.o: tests/example_functional_test.c $(tests/example_functional_test.c_DEPENDENCIES) + $(TARGET_CC) -Itests -I$(srcdir)/tests $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(example_functional_test_mod_CFLAGS) -DGRUB_FILE=\"tests/example_functional_test.c\" -MD -c -o $@ $< +-include example_functional_test_mod-tests_example_functional_test.d + +clean-module-example_functional_test_mod-tests_example_functional_test-extra.1: + rm -f cmd-example_functional_test_mod-tests_example_functional_test.lst fs-example_functional_test_mod-tests_example_functional_test.lst partmap-example_functional_test_mod-tests_example_functional_test.lst handler-example_functional_test_mod-tests_example_functional_test.lst parttool-example_functional_test_mod-tests_example_functional_test.lst video-example_functional_test_mod-tests_example_functional_test.lst terminal-example_functional_test_mod-tests_example_functional_test.lst + +CLEAN_MODULE_TARGETS += clean-module-example_functional_test_mod-tests_example_functional_test-extra.1 + +COMMANDFILES += cmd-example_functional_test_mod-tests_example_functional_test.lst +FSFILES += fs-example_functional_test_mod-tests_example_functional_test.lst +PARTTOOLFILES += parttool-example_functional_test_mod-tests_example_functional_test.lst +PARTMAPFILES += partmap-example_functional_test_mod-tests_example_functional_test.lst +HANDLERFILES += handler-example_functional_test_mod-tests_example_functional_test.lst +TERMINALFILES += terminal-example_functional_test_mod-tests_example_functional_test.lst +VIDEOFILES += video-example_functional_test_mod-tests_example_functional_test.lst + +cmd-example_functional_test_mod-tests_example_functional_test.lst: tests/example_functional_test.c $(tests/example_functional_test.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Itests -I$(srcdir)/tests $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(example_functional_test_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh example_functional_test > $@ || (rm -f $@; exit 1) + +fs-example_functional_test_mod-tests_example_functional_test.lst: tests/example_functional_test.c $(tests/example_functional_test.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Itests -I$(srcdir)/tests $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(example_functional_test_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh example_functional_test > $@ || (rm -f $@; exit 1) + +parttool-example_functional_test_mod-tests_example_functional_test.lst: tests/example_functional_test.c $(tests/example_functional_test.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Itests -I$(srcdir)/tests $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(example_functional_test_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh example_functional_test > $@ || (rm -f $@; exit 1) + +partmap-example_functional_test_mod-tests_example_functional_test.lst: tests/example_functional_test.c $(tests/example_functional_test.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Itests -I$(srcdir)/tests $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(example_functional_test_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh example_functional_test > $@ || (rm -f $@; exit 1) + +handler-example_functional_test_mod-tests_example_functional_test.lst: tests/example_functional_test.c $(tests/example_functional_test.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Itests -I$(srcdir)/tests $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(example_functional_test_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh example_functional_test > $@ || (rm -f $@; exit 1) + +terminal-example_functional_test_mod-tests_example_functional_test.lst: tests/example_functional_test.c $(tests/example_functional_test.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Itests -I$(srcdir)/tests $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(example_functional_test_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh example_functional_test > $@ || (rm -f $@; exit 1) + +video-example_functional_test_mod-tests_example_functional_test.lst: tests/example_functional_test.c $(tests/example_functional_test.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Itests -I$(srcdir)/tests $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(example_functional_test_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh example_functional_test > $@ || (rm -f $@; exit 1) + +example_functional_test_mod_CFLAGS = -Wno-format $(COMMON_CFLAGS) +example_functional_test_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# Rules for scripted tests +check_SCRIPTS += example_scripted_test +example_scripted_test_SOURCES = tests/example_scripted_test.in +CLEANFILES += example_scripted_test + +example_scripted_test: tests/example_scripted_test.in $(tests/example_scripted_test.in_DEPENDENCIES) config.status + ./config.status --file=-:tests/example_scripted_test.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +check_SCRIPTS += example_grub_script_test +example_grub_script_test_SOURCES = tests/example_grub_script_test.in +CLEANFILES += example_grub_script_test + +example_grub_script_test: tests/example_grub_script_test.in $(tests/example_grub_script_test.in_DEPENDENCIES) config.status + ./config.status --file=-:tests/example_grub_script_test.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +# +# Rules for real tests +# + +check_SCRIPTS += grub_script_echo1 +grub_script_echo1_SOURCES = tests/grub_script_echo1.in +CLEANFILES += grub_script_echo1 + +grub_script_echo1: tests/grub_script_echo1.in $(tests/grub_script_echo1.in_DEPENDENCIES) config.status + ./config.status --file=-:tests/grub_script_echo1.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +check_SCRIPTS += grub_script_echo_keywords +grub_script_echo_keywords_SOURCES = tests/grub_script_echo_keywords.in +CLEANFILES += grub_script_echo_keywords + +grub_script_echo_keywords: tests/grub_script_echo_keywords.in $(tests/grub_script_echo_keywords.in_DEPENDENCIES) config.status + ./config.status --file=-:tests/grub_script_echo_keywords.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +check_SCRIPTS += grub_script_vars1 +grub_script_vars1_SOURCES = tests/grub_script_vars1.in +CLEANFILES += grub_script_vars1 + +grub_script_vars1: tests/grub_script_vars1.in $(tests/grub_script_vars1.in_DEPENDENCIES) config.status + ./config.status --file=-:tests/grub_script_vars1.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +check_SCRIPTS += grub_script_for1 +grub_script_for1_SOURCES = tests/grub_script_for1.in +CLEANFILES += grub_script_for1 + +grub_script_for1: tests/grub_script_for1.in $(tests/grub_script_for1.in_DEPENDENCIES) config.status + ./config.status --file=-:tests/grub_script_for1.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +check_SCRIPTS += grub_script_while1 +grub_script_while1_SOURCES = tests/grub_script_while1.in +CLEANFILES += grub_script_while1 + +grub_script_while1: tests/grub_script_while1.in $(tests/grub_script_while1.in_DEPENDENCIES) config.status + ./config.status --file=-:tests/grub_script_while1.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +check_SCRIPTS += grub_script_if +grub_script_if_SOURCES = tests/grub_script_if.in +CLEANFILES += grub_script_if + +grub_script_if: tests/grub_script_if.in $(tests/grub_script_if.in_DEPENDENCIES) config.status + ./config.status --file=-:tests/grub_script_if.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +check_SCRIPTS += grub_script_blanklines +grub_script_blanklines_SOURCES = tests/grub_script_blanklines.in +CLEANFILES += grub_script_blanklines + +grub_script_blanklines: tests/grub_script_blanklines.in $(tests/grub_script_blanklines.in_DEPENDENCIES) config.status + ./config.status --file=-:tests/grub_script_blanklines.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +check_SCRIPTS += grub_script_final_semicolon +grub_script_final_semicolon_SOURCES = tests/grub_script_final_semicolon.in +CLEANFILES += grub_script_final_semicolon + +grub_script_final_semicolon: tests/grub_script_final_semicolon.in $(tests/grub_script_final_semicolon.in_DEPENDENCIES) config.status + ./config.status --file=-:tests/grub_script_final_semicolon.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +check_SCRIPTS += grub_script_dollar +grub_script_dollar_SOURCES = tests/grub_script_dollar.in +CLEANFILES += grub_script_dollar + +grub_script_dollar: tests/grub_script_dollar.in $(tests/grub_script_dollar.in_DEPENDENCIES) config.status + ./config.status --file=-:tests/grub_script_dollar.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +check_SCRIPTS += grub_script_comments +grub_script_comments_SOURCES = tests/grub_script_comments.in +CLEANFILES += grub_script_comments + +grub_script_comments: tests/grub_script_comments.in $(tests/grub_script_comments.in_DEPENDENCIES) config.status + ./config.status --file=-:tests/grub_script_comments.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +# List of tests to execute on "make check" +# SCRIPTED_TESTS = example_scripted_test +# SCRIPTED_TESTS += example_grub_script_test +# UNIT_TESTS = example_unit_test +# FUNCTIONAL_TESTS = example_functional_test.mod + +SCRIPTED_TESTS = grub_script_echo1 +SCRIPTED_TESTS += grub_script_echo_keywords +SCRIPTED_TESTS += grub_script_vars1 +SCRIPTED_TESTS += grub_script_for1 +SCRIPTED_TESTS += grub_script_while1 +SCRIPTED_TESTS += grub_script_if +SCRIPTED_TESTS += grub_script_blanklines +SCRIPTED_TESTS += grub_script_final_semicolon +SCRIPTED_TESTS += grub_script_dollar +SCRIPTED_TESTS += grub_script_comments + +# dependencies between tests and testing-tools +$(SCRIPTED_TESTS): grub-shell grub-shell-tester +$(FUNCTIONAL_TESTS): functional_test.mod + +example_unit_test: $(example_unit_test_DEPENDENCIES) $(example_unit_test_OBJECTS) + $(CC) -o $@ $(example_unit_test_OBJECTS) $(LDFLAGS) $(example_unit_test_LDFLAGS) + --- grub2-1.98+20100804.orig/conf/i386-efi.mk +++ grub2-1.98+20100804/conf/i386-efi.mk @@ -0,0 +1,6 @@ +# -*- makefile -*- +# Generated by genmk.rb, please don't edit! + +COMMON_LDFLAGS = -melf_i386 + +include $(srcdir)/conf/x86-efi.mk --- grub2-1.98+20100804.orig/conf/any-emu.mk +++ grub2-1.98+20100804/conf/any-emu.mk @@ -0,0 +1,1156 @@ +# -*- makefile -*- +# Generated by genmk.rb, please don't edit! + +kernel_img_RELOCATABLE = yes +pkglib_PROGRAMS = kernel.img +kernel_img_SOURCES = kern/device.c kern/disk.c kern/dl.c kern/env.c \ + kern/err.c kern/list.c kern/command.c \ + kern/corecmd.c kern/file.c kern/fs.c kern/main.c kern/misc.c \ + kern/parser.c kern/partition.c kern/term.c \ + kern/rescue_reader.c kern/rescue_parser.c \ + \ + kern/emu/main.c kern/emu/mm.c kern/emu/misc.c \ + kern/emu/getroot.c kern/emu/time.c kern/emu/hostdisk.c \ + kern/emu/hostfs.c kern/emu/console.c \ + \ + gnulib/progname.c disk/host.c +MOSTLYCLEANFILES += kernel_img-kern_device.d kernel_img-kern_disk.d kernel_img-kern_dl.d kernel_img-kern_env.d kernel_img-kern_err.d kernel_img-kern_list.d kernel_img-kern_command.d kernel_img-kern_corecmd.d kernel_img-kern_file.d kernel_img-kern_fs.d kernel_img-kern_main.d kernel_img-kern_misc.d kernel_img-kern_parser.d kernel_img-kern_partition.d kernel_img-kern_term.d kernel_img-kern_rescue_reader.d kernel_img-kern_rescue_parser.d kernel_img-kern_emu_main.d kernel_img-kern_emu_mm.d kernel_img-kern_emu_misc.d kernel_img-kern_emu_getroot.d kernel_img-kern_emu_time.d kernel_img-kern_emu_hostdisk.d kernel_img-kern_emu_hostfs.d kernel_img-kern_emu_console.d kernel_img-gnulib_progname.d kernel_img-disk_host.d + +kernel_img-kern_device.o: kern/device.c $(kern/device.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/device.c\" -MD -c -o $@ $< + +-include kernel_img-kern_device.d + +kernel_img_OBJECTS += kernel_img-kern_device.o +kernel_img-kern_disk.o: kern/disk.c $(kern/disk.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/disk.c\" -MD -c -o $@ $< + +-include kernel_img-kern_disk.d + +kernel_img_OBJECTS += kernel_img-kern_disk.o +kernel_img-kern_dl.o: kern/dl.c $(kern/dl.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/dl.c\" -MD -c -o $@ $< + +-include kernel_img-kern_dl.d + +kernel_img_OBJECTS += kernel_img-kern_dl.o +kernel_img-kern_env.o: kern/env.c $(kern/env.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/env.c\" -MD -c -o $@ $< + +-include kernel_img-kern_env.d + +kernel_img_OBJECTS += kernel_img-kern_env.o +kernel_img-kern_err.o: kern/err.c $(kern/err.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/err.c\" -MD -c -o $@ $< + +-include kernel_img-kern_err.d + +kernel_img_OBJECTS += kernel_img-kern_err.o +kernel_img-kern_list.o: kern/list.c $(kern/list.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/list.c\" -MD -c -o $@ $< + +-include kernel_img-kern_list.d + +kernel_img_OBJECTS += kernel_img-kern_list.o +kernel_img-kern_command.o: kern/command.c $(kern/command.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/command.c\" -MD -c -o $@ $< + +-include kernel_img-kern_command.d + +kernel_img_OBJECTS += kernel_img-kern_command.o +kernel_img-kern_corecmd.o: kern/corecmd.c $(kern/corecmd.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/corecmd.c\" -MD -c -o $@ $< + +-include kernel_img-kern_corecmd.d + +kernel_img_OBJECTS += kernel_img-kern_corecmd.o +kernel_img-kern_file.o: kern/file.c $(kern/file.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/file.c\" -MD -c -o $@ $< + +-include kernel_img-kern_file.d + +kernel_img_OBJECTS += kernel_img-kern_file.o +kernel_img-kern_fs.o: kern/fs.c $(kern/fs.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/fs.c\" -MD -c -o $@ $< + +-include kernel_img-kern_fs.d + +kernel_img_OBJECTS += kernel_img-kern_fs.o +kernel_img-kern_main.o: kern/main.c $(kern/main.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/main.c\" -MD -c -o $@ $< + +-include kernel_img-kern_main.d + +kernel_img_OBJECTS += kernel_img-kern_main.o +kernel_img-kern_misc.o: kern/misc.c $(kern/misc.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/misc.c\" -MD -c -o $@ $< + +-include kernel_img-kern_misc.d + +kernel_img_OBJECTS += kernel_img-kern_misc.o +kernel_img-kern_parser.o: kern/parser.c $(kern/parser.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/parser.c\" -MD -c -o $@ $< + +-include kernel_img-kern_parser.d + +kernel_img_OBJECTS += kernel_img-kern_parser.o +kernel_img-kern_partition.o: kern/partition.c $(kern/partition.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/partition.c\" -MD -c -o $@ $< + +-include kernel_img-kern_partition.d + +kernel_img_OBJECTS += kernel_img-kern_partition.o +kernel_img-kern_term.o: kern/term.c $(kern/term.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/term.c\" -MD -c -o $@ $< + +-include kernel_img-kern_term.d + +kernel_img_OBJECTS += kernel_img-kern_term.o +kernel_img-kern_rescue_reader.o: kern/rescue_reader.c $(kern/rescue_reader.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/rescue_reader.c\" -MD -c -o $@ $< + +-include kernel_img-kern_rescue_reader.d + +kernel_img_OBJECTS += kernel_img-kern_rescue_reader.o +kernel_img-kern_rescue_parser.o: kern/rescue_parser.c $(kern/rescue_parser.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/rescue_parser.c\" -MD -c -o $@ $< + +-include kernel_img-kern_rescue_parser.d + +kernel_img_OBJECTS += kernel_img-kern_rescue_parser.o +kernel_img-kern_emu_main.o: kern/emu/main.c $(kern/emu/main.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/emu -I$(srcdir)/kern/emu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/emu/main.c\" -MD -c -o $@ $< + +-include kernel_img-kern_emu_main.d + +kernel_img_OBJECTS += kernel_img-kern_emu_main.o +kernel_img-kern_emu_mm.o: kern/emu/mm.c $(kern/emu/mm.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/emu -I$(srcdir)/kern/emu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/emu/mm.c\" -MD -c -o $@ $< + +-include kernel_img-kern_emu_mm.d + +kernel_img_OBJECTS += kernel_img-kern_emu_mm.o +kernel_img-kern_emu_misc.o: kern/emu/misc.c $(kern/emu/misc.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/emu -I$(srcdir)/kern/emu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/emu/misc.c\" -MD -c -o $@ $< + +-include kernel_img-kern_emu_misc.d + +kernel_img_OBJECTS += kernel_img-kern_emu_misc.o +kernel_img-kern_emu_getroot.o: kern/emu/getroot.c $(kern/emu/getroot.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/emu -I$(srcdir)/kern/emu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/emu/getroot.c\" -MD -c -o $@ $< + +-include kernel_img-kern_emu_getroot.d + +kernel_img_OBJECTS += kernel_img-kern_emu_getroot.o +kernel_img-kern_emu_time.o: kern/emu/time.c $(kern/emu/time.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/emu -I$(srcdir)/kern/emu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/emu/time.c\" -MD -c -o $@ $< + +-include kernel_img-kern_emu_time.d + +kernel_img_OBJECTS += kernel_img-kern_emu_time.o +kernel_img-kern_emu_hostdisk.o: kern/emu/hostdisk.c $(kern/emu/hostdisk.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/emu -I$(srcdir)/kern/emu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/emu/hostdisk.c\" -MD -c -o $@ $< + +-include kernel_img-kern_emu_hostdisk.d + +kernel_img_OBJECTS += kernel_img-kern_emu_hostdisk.o +kernel_img-kern_emu_hostfs.o: kern/emu/hostfs.c $(kern/emu/hostfs.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/emu -I$(srcdir)/kern/emu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/emu/hostfs.c\" -MD -c -o $@ $< + +-include kernel_img-kern_emu_hostfs.d + +kernel_img_OBJECTS += kernel_img-kern_emu_hostfs.o +kernel_img-kern_emu_console.o: kern/emu/console.c $(kern/emu/console.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/emu -I$(srcdir)/kern/emu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/emu/console.c\" -MD -c -o $@ $< + +-include kernel_img-kern_emu_console.d + +kernel_img_OBJECTS += kernel_img-kern_emu_console.o +kernel_img-gnulib_progname.o: gnulib/progname.c $(gnulib/progname.c_DEPENDENCIES) + $(TARGET_CC) -Ignulib -I$(srcdir)/gnulib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"gnulib/progname.c\" -MD -c -o $@ $< + +-include kernel_img-gnulib_progname.d + +kernel_img_OBJECTS += kernel_img-gnulib_progname.o +kernel_img-disk_host.o: disk/host.c $(disk/host.c_DEPENDENCIES) + $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"disk/host.c\" -MD -c -o $@ $< + +-include kernel_img-disk_host.d + +kernel_img_OBJECTS += kernel_img-disk_host.o +kernel_img_HEADERS += datetime.h emu/misc.h +kernel_img_CFLAGS = $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -Wno-char-subscripts -Wno-unused -Wno-deprecated-declarations -Wno-undef -I$(srcdir)/gnulib +kernel_img_LDFLAGS = $(COMMON_LDFLAGS) +TARGET_NO_STRIP = yes + +ifneq ($(TARGET_NO_MODULES), yes) +kernel_img_SOURCES += symlist.c kern/$(target_cpu)/dl.c +MOSTLYCLEANFILES += kernel_img-symlist.d kernel_img-kern___target_cpu__dl.d + +kernel_img-symlist.o: symlist.c $(symlist.c_DEPENDENCIES) + $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"symlist.c\" -MD -c -o $@ $< + +-include kernel_img-symlist.d + +kernel_img_OBJECTS += kernel_img-symlist.o +kernel_img-kern___target_cpu__dl.o: kern/$(target_cpu)/dl.c $(kern/$(target_cpu)/dl.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/$(target_cpu) -I$(srcdir)/kern/$(target_cpu) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/$(target_cpu)/dl.c\" -MD -c -o $@ $< + +-include kernel_img-kern___target_cpu__dl.d + +kernel_img_OBJECTS += kernel_img-kern___target_cpu__dl.o +else +kernel_img_SOURCES += grub_emu_init.c +MOSTLYCLEANFILES += kernel_img-grub_emu_init.d + +kernel_img-grub_emu_init.o: grub_emu_init.c $(grub_emu_init.c_DEPENDENCIES) + $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"grub_emu_init.c\" -MD -c -o $@ $< + +-include kernel_img-grub_emu_init.d + +kernel_img_OBJECTS += kernel_img-grub_emu_init.o +endif +ifneq ($(target_cpu), i386) +ifneq ($(target_cpu), x86_64) +kernel_img_SOURCES += kern/$(target_cpu)/cache.S +MOSTLYCLEANFILES += kernel_img-kern___target_cpu__cache.d + +kernel_img-kern___target_cpu__cache.o: kern/$(target_cpu)/cache.S $(kern/$(target_cpu)/cache.S_DEPENDENCIES) + $(TARGET_CC) -Ikern/$(target_cpu) -I$(srcdir)/kern/$(target_cpu) $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(kernel_img_ASFLAGS) -DGRUB_FILE=\"kern/$(target_cpu)/cache.S\" -MD -c -o $@ $< + +-include kernel_img-kern___target_cpu__cache.d + +kernel_img_OBJECTS += kernel_img-kern___target_cpu__cache.o +endif +endif + +# For halt.mod. +pkglib_MODULES += halt.mod +halt_mod_SOURCES = commands/halt.c + +clean-module-halt.mod.1: + rm -f halt.mod mod-halt.o mod-halt.c pre-halt.o halt_mod-commands_halt.o und-halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt.mod.1 + +clean-module-halt.mod-symbol.1: + rm -f def-halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt.mod-symbol.1 +DEFSYMFILES += def-halt.lst +mostlyclean-module-halt.mod.1: + rm -f halt_mod-commands_halt.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-halt.mod.1 +UNDSYMFILES += und-halt.lst + +ifeq ($(TARGET_NO_MODULES), yes) +halt.mod: pre-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-halt.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +halt.mod: pre-halt.o mod-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-halt.o mod-halt.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +halt.mod: pre-halt.o mod-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-halt.o mod-halt.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-halt.o: $(halt_mod_DEPENDENCIES) halt_mod-commands_halt.o + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ halt_mod-commands_halt.o + +mod-halt.o: mod-halt.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -DGRUB_FILE=\"mod-halt.c\" -c -o $@ $< + +mod-halt.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'halt' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-halt.lst: pre-halt.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 halt/' > $@ +else +def-halt.lst: pre-halt.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 halt/' > $@ +endif + +und-halt.lst: pre-halt.o + echo 'halt' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +halt_mod-commands_halt.o: commands/halt.c $(commands/halt.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -DGRUB_FILE=\"commands/halt.c\" -MD -c -o $@ $< +-include halt_mod-commands_halt.d + +clean-module-halt_mod-commands_halt-extra.1: + rm -f cmd-halt_mod-commands_halt.lst fs-halt_mod-commands_halt.lst partmap-halt_mod-commands_halt.lst handler-halt_mod-commands_halt.lst parttool-halt_mod-commands_halt.lst video-halt_mod-commands_halt.lst terminal-halt_mod-commands_halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt_mod-commands_halt-extra.1 + +COMMANDFILES += cmd-halt_mod-commands_halt.lst +FSFILES += fs-halt_mod-commands_halt.lst +PARTTOOLFILES += parttool-halt_mod-commands_halt.lst +PARTMAPFILES += partmap-halt_mod-commands_halt.lst +HANDLERFILES += handler-halt_mod-commands_halt.lst +TERMINALFILES += terminal-halt_mod-commands_halt.lst +VIDEOFILES += video-halt_mod-commands_halt.lst + +cmd-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh halt > $@ || (rm -f $@; exit 1) + +fs-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh halt > $@ || (rm -f $@; exit 1) + +parttool-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh halt > $@ || (rm -f $@; exit 1) + +partmap-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh halt > $@ || (rm -f $@; exit 1) + +handler-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh halt > $@ || (rm -f $@; exit 1) + +terminal-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh halt > $@ || (rm -f $@; exit 1) + +video-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh halt > $@ || (rm -f $@; exit 1) + +halt_mod_CFLAGS = $(COMMON_CFLAGS) +halt_mod_LDFLAGS = $(COMMON_LDFLAGS) + +ifeq ($(target_cpu), i386) +pkglib_MODULES += cpuid.mod +cpuid_mod_SOURCES = commands/i386/cpuid.c + +clean-module-cpuid.mod.1: + rm -f cpuid.mod mod-cpuid.o mod-cpuid.c pre-cpuid.o cpuid_mod-commands_i386_cpuid.o und-cpuid.lst + +CLEAN_MODULE_TARGETS += clean-module-cpuid.mod.1 + +clean-module-cpuid.mod-symbol.1: + rm -f def-cpuid.lst + +CLEAN_MODULE_TARGETS += clean-module-cpuid.mod-symbol.1 +DEFSYMFILES += def-cpuid.lst +mostlyclean-module-cpuid.mod.1: + rm -f cpuid_mod-commands_i386_cpuid.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-cpuid.mod.1 +UNDSYMFILES += und-cpuid.lst + +ifeq ($(TARGET_NO_MODULES), yes) +cpuid.mod: pre-cpuid.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(cpuid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-cpuid.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +cpuid.mod: pre-cpuid.o mod-cpuid.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(cpuid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-cpuid.o mod-cpuid.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +cpuid.mod: pre-cpuid.o mod-cpuid.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(cpuid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-cpuid.o mod-cpuid.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-cpuid.o: $(cpuid_mod_DEPENDENCIES) cpuid_mod-commands_i386_cpuid.o + -rm -f $@ + $(TARGET_CC) $(cpuid_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ cpuid_mod-commands_i386_cpuid.o + +mod-cpuid.o: mod-cpuid.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cpuid_mod_CFLAGS) -DGRUB_FILE=\"mod-cpuid.c\" -c -o $@ $< + +mod-cpuid.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'cpuid' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-cpuid.lst: pre-cpuid.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 cpuid/' > $@ +else +def-cpuid.lst: pre-cpuid.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 cpuid/' > $@ +endif + +und-cpuid.lst: pre-cpuid.o + echo 'cpuid' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +cpuid_mod-commands_i386_cpuid.o: commands/i386/cpuid.c $(commands/i386/cpuid.c_DEPENDENCIES) + $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cpuid_mod_CFLAGS) -DGRUB_FILE=\"commands/i386/cpuid.c\" -MD -c -o $@ $< +-include cpuid_mod-commands_i386_cpuid.d + +clean-module-cpuid_mod-commands_i386_cpuid-extra.1: + rm -f cmd-cpuid_mod-commands_i386_cpuid.lst fs-cpuid_mod-commands_i386_cpuid.lst partmap-cpuid_mod-commands_i386_cpuid.lst handler-cpuid_mod-commands_i386_cpuid.lst parttool-cpuid_mod-commands_i386_cpuid.lst video-cpuid_mod-commands_i386_cpuid.lst terminal-cpuid_mod-commands_i386_cpuid.lst + +CLEAN_MODULE_TARGETS += clean-module-cpuid_mod-commands_i386_cpuid-extra.1 + +COMMANDFILES += cmd-cpuid_mod-commands_i386_cpuid.lst +FSFILES += fs-cpuid_mod-commands_i386_cpuid.lst +PARTTOOLFILES += parttool-cpuid_mod-commands_i386_cpuid.lst +PARTMAPFILES += partmap-cpuid_mod-commands_i386_cpuid.lst +HANDLERFILES += handler-cpuid_mod-commands_i386_cpuid.lst +TERMINALFILES += terminal-cpuid_mod-commands_i386_cpuid.lst +VIDEOFILES += video-cpuid_mod-commands_i386_cpuid.lst + +cmd-cpuid_mod-commands_i386_cpuid.lst: commands/i386/cpuid.c $(commands/i386/cpuid.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cpuid_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh cpuid > $@ || (rm -f $@; exit 1) + +fs-cpuid_mod-commands_i386_cpuid.lst: commands/i386/cpuid.c $(commands/i386/cpuid.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(cpuid_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh cpuid > $@ || (rm -f $@; exit 1) + +parttool-cpuid_mod-commands_i386_cpuid.lst: commands/i386/cpuid.c $(commands/i386/cpuid.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cpuid_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh cpuid > $@ || (rm -f $@; exit 1) + +partmap-cpuid_mod-commands_i386_cpuid.lst: commands/i386/cpuid.c $(commands/i386/cpuid.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(cpuid_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh cpuid > $@ || (rm -f $@; exit 1) + +handler-cpuid_mod-commands_i386_cpuid.lst: commands/i386/cpuid.c $(commands/i386/cpuid.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cpuid_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh cpuid > $@ || (rm -f $@; exit 1) + +terminal-cpuid_mod-commands_i386_cpuid.lst: commands/i386/cpuid.c $(commands/i386/cpuid.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cpuid_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh cpuid > $@ || (rm -f $@; exit 1) + +video-cpuid_mod-commands_i386_cpuid.lst: commands/i386/cpuid.c $(commands/i386/cpuid.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(cpuid_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh cpuid > $@ || (rm -f $@; exit 1) + +cpuid_mod_CFLAGS = $(COMMON_CFLAGS) +cpuid_mod_LDFLAGS = $(COMMON_LDFLAGS) +endif + +grub_emu_LDFLAGS = $(LIBCURSES) + +ifeq ($(enable_grub_emu_usb), yes) +kernel_img_HEADERS += libusb.h + +pkglib_MODULES += libusb.mod +libusb_mod_SOURCES = bus/usb/emu/usb.c + +clean-module-libusb.mod.1: + rm -f libusb.mod mod-libusb.o mod-libusb.c pre-libusb.o libusb_mod-bus_usb_emu_usb.o und-libusb.lst + +CLEAN_MODULE_TARGETS += clean-module-libusb.mod.1 + +clean-module-libusb.mod-symbol.1: + rm -f def-libusb.lst + +CLEAN_MODULE_TARGETS += clean-module-libusb.mod-symbol.1 +DEFSYMFILES += def-libusb.lst +mostlyclean-module-libusb.mod.1: + rm -f libusb_mod-bus_usb_emu_usb.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-libusb.mod.1 +UNDSYMFILES += und-libusb.lst + +ifeq ($(TARGET_NO_MODULES), yes) +libusb.mod: pre-libusb.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(libusb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-libusb.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +libusb.mod: pre-libusb.o mod-libusb.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(libusb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-libusb.o mod-libusb.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +libusb.mod: pre-libusb.o mod-libusb.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(libusb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-libusb.o mod-libusb.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-libusb.o: $(libusb_mod_DEPENDENCIES) libusb_mod-bus_usb_emu_usb.o + -rm -f $@ + $(TARGET_CC) $(libusb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ libusb_mod-bus_usb_emu_usb.o + +mod-libusb.o: mod-libusb.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(libusb_mod_CFLAGS) -DGRUB_FILE=\"mod-libusb.c\" -c -o $@ $< + +mod-libusb.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'libusb' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-libusb.lst: pre-libusb.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 libusb/' > $@ +else +def-libusb.lst: pre-libusb.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 libusb/' > $@ +endif + +und-libusb.lst: pre-libusb.o + echo 'libusb' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +libusb_mod-bus_usb_emu_usb.o: bus/usb/emu/usb.c $(bus/usb/emu/usb.c_DEPENDENCIES) + $(TARGET_CC) -Ibus/usb/emu -I$(srcdir)/bus/usb/emu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(libusb_mod_CFLAGS) -DGRUB_FILE=\"bus/usb/emu/usb.c\" -MD -c -o $@ $< +-include libusb_mod-bus_usb_emu_usb.d + +clean-module-libusb_mod-bus_usb_emu_usb-extra.1: + rm -f cmd-libusb_mod-bus_usb_emu_usb.lst fs-libusb_mod-bus_usb_emu_usb.lst partmap-libusb_mod-bus_usb_emu_usb.lst handler-libusb_mod-bus_usb_emu_usb.lst parttool-libusb_mod-bus_usb_emu_usb.lst video-libusb_mod-bus_usb_emu_usb.lst terminal-libusb_mod-bus_usb_emu_usb.lst + +CLEAN_MODULE_TARGETS += clean-module-libusb_mod-bus_usb_emu_usb-extra.1 + +COMMANDFILES += cmd-libusb_mod-bus_usb_emu_usb.lst +FSFILES += fs-libusb_mod-bus_usb_emu_usb.lst +PARTTOOLFILES += parttool-libusb_mod-bus_usb_emu_usb.lst +PARTMAPFILES += partmap-libusb_mod-bus_usb_emu_usb.lst +HANDLERFILES += handler-libusb_mod-bus_usb_emu_usb.lst +TERMINALFILES += terminal-libusb_mod-bus_usb_emu_usb.lst +VIDEOFILES += video-libusb_mod-bus_usb_emu_usb.lst + +cmd-libusb_mod-bus_usb_emu_usb.lst: bus/usb/emu/usb.c $(bus/usb/emu/usb.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ibus/usb/emu -I$(srcdir)/bus/usb/emu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(libusb_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh libusb > $@ || (rm -f $@; exit 1) + +fs-libusb_mod-bus_usb_emu_usb.lst: bus/usb/emu/usb.c $(bus/usb/emu/usb.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ibus/usb/emu -I$(srcdir)/bus/usb/emu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(libusb_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh libusb > $@ || (rm -f $@; exit 1) + +parttool-libusb_mod-bus_usb_emu_usb.lst: bus/usb/emu/usb.c $(bus/usb/emu/usb.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ibus/usb/emu -I$(srcdir)/bus/usb/emu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(libusb_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh libusb > $@ || (rm -f $@; exit 1) + +partmap-libusb_mod-bus_usb_emu_usb.lst: bus/usb/emu/usb.c $(bus/usb/emu/usb.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ibus/usb/emu -I$(srcdir)/bus/usb/emu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(libusb_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh libusb > $@ || (rm -f $@; exit 1) + +handler-libusb_mod-bus_usb_emu_usb.lst: bus/usb/emu/usb.c $(bus/usb/emu/usb.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ibus/usb/emu -I$(srcdir)/bus/usb/emu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(libusb_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh libusb > $@ || (rm -f $@; exit 1) + +terminal-libusb_mod-bus_usb_emu_usb.lst: bus/usb/emu/usb.c $(bus/usb/emu/usb.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ibus/usb/emu -I$(srcdir)/bus/usb/emu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(libusb_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh libusb > $@ || (rm -f $@; exit 1) + +video-libusb_mod-bus_usb_emu_usb.lst: bus/usb/emu/usb.c $(bus/usb/emu/usb.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ibus/usb/emu -I$(srcdir)/bus/usb/emu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(libusb_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh libusb > $@ || (rm -f $@; exit 1) + +libusb_mod_CFLAGS = +libusb_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For usb.mod +pkglib_MODULES += usb.mod +usb_mod_SOURCES = bus/usb/usb.c + +clean-module-usb.mod.1: + rm -f usb.mod mod-usb.o mod-usb.c pre-usb.o usb_mod-bus_usb_usb.o und-usb.lst + +CLEAN_MODULE_TARGETS += clean-module-usb.mod.1 + +clean-module-usb.mod-symbol.1: + rm -f def-usb.lst + +CLEAN_MODULE_TARGETS += clean-module-usb.mod-symbol.1 +DEFSYMFILES += def-usb.lst +mostlyclean-module-usb.mod.1: + rm -f usb_mod-bus_usb_usb.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-usb.mod.1 +UNDSYMFILES += und-usb.lst + +ifeq ($(TARGET_NO_MODULES), yes) +usb.mod: pre-usb.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(usb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-usb.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +usb.mod: pre-usb.o mod-usb.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(usb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-usb.o mod-usb.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +usb.mod: pre-usb.o mod-usb.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(usb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-usb.o mod-usb.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-usb.o: $(usb_mod_DEPENDENCIES) usb_mod-bus_usb_usb.o + -rm -f $@ + $(TARGET_CC) $(usb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ usb_mod-bus_usb_usb.o + +mod-usb.o: mod-usb.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -DGRUB_FILE=\"mod-usb.c\" -c -o $@ $< + +mod-usb.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'usb' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-usb.lst: pre-usb.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 usb/' > $@ +else +def-usb.lst: pre-usb.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 usb/' > $@ +endif + +und-usb.lst: pre-usb.o + echo 'usb' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +usb_mod-bus_usb_usb.o: bus/usb/usb.c $(bus/usb/usb.c_DEPENDENCIES) + $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -DGRUB_FILE=\"bus/usb/usb.c\" -MD -c -o $@ $< +-include usb_mod-bus_usb_usb.d + +clean-module-usb_mod-bus_usb_usb-extra.1: + rm -f cmd-usb_mod-bus_usb_usb.lst fs-usb_mod-bus_usb_usb.lst partmap-usb_mod-bus_usb_usb.lst handler-usb_mod-bus_usb_usb.lst parttool-usb_mod-bus_usb_usb.lst video-usb_mod-bus_usb_usb.lst terminal-usb_mod-bus_usb_usb.lst + +CLEAN_MODULE_TARGETS += clean-module-usb_mod-bus_usb_usb-extra.1 + +COMMANDFILES += cmd-usb_mod-bus_usb_usb.lst +FSFILES += fs-usb_mod-bus_usb_usb.lst +PARTTOOLFILES += parttool-usb_mod-bus_usb_usb.lst +PARTMAPFILES += partmap-usb_mod-bus_usb_usb.lst +HANDLERFILES += handler-usb_mod-bus_usb_usb.lst +TERMINALFILES += terminal-usb_mod-bus_usb_usb.lst +VIDEOFILES += video-usb_mod-bus_usb_usb.lst + +cmd-usb_mod-bus_usb_usb.lst: bus/usb/usb.c $(bus/usb/usb.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh usb > $@ || (rm -f $@; exit 1) + +fs-usb_mod-bus_usb_usb.lst: bus/usb/usb.c $(bus/usb/usb.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh usb > $@ || (rm -f $@; exit 1) + +parttool-usb_mod-bus_usb_usb.lst: bus/usb/usb.c $(bus/usb/usb.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh usb > $@ || (rm -f $@; exit 1) + +partmap-usb_mod-bus_usb_usb.lst: bus/usb/usb.c $(bus/usb/usb.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh usb > $@ || (rm -f $@; exit 1) + +handler-usb_mod-bus_usb_usb.lst: bus/usb/usb.c $(bus/usb/usb.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh usb > $@ || (rm -f $@; exit 1) + +terminal-usb_mod-bus_usb_usb.lst: bus/usb/usb.c $(bus/usb/usb.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh usb > $@ || (rm -f $@; exit 1) + +video-usb_mod-bus_usb_usb.lst: bus/usb/usb.c $(bus/usb/usb.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh usb > $@ || (rm -f $@; exit 1) + +usb_mod_CFLAGS = $(COMMON_CFLAGS) +usb_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For usbtest.mod +pkglib_MODULES += usbtest.mod +usbtest_mod_SOURCES = commands/usbtest.c + +clean-module-usbtest.mod.1: + rm -f usbtest.mod mod-usbtest.o mod-usbtest.c pre-usbtest.o usbtest_mod-commands_usbtest.o und-usbtest.lst + +CLEAN_MODULE_TARGETS += clean-module-usbtest.mod.1 + +clean-module-usbtest.mod-symbol.1: + rm -f def-usbtest.lst + +CLEAN_MODULE_TARGETS += clean-module-usbtest.mod-symbol.1 +DEFSYMFILES += def-usbtest.lst +mostlyclean-module-usbtest.mod.1: + rm -f usbtest_mod-commands_usbtest.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-usbtest.mod.1 +UNDSYMFILES += und-usbtest.lst + +ifeq ($(TARGET_NO_MODULES), yes) +usbtest.mod: pre-usbtest.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(usbtest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-usbtest.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +usbtest.mod: pre-usbtest.o mod-usbtest.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(usbtest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-usbtest.o mod-usbtest.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +usbtest.mod: pre-usbtest.o mod-usbtest.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(usbtest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-usbtest.o mod-usbtest.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-usbtest.o: $(usbtest_mod_DEPENDENCIES) usbtest_mod-commands_usbtest.o + -rm -f $@ + $(TARGET_CC) $(usbtest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ usbtest_mod-commands_usbtest.o + +mod-usbtest.o: mod-usbtest.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -DGRUB_FILE=\"mod-usbtest.c\" -c -o $@ $< + +mod-usbtest.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'usbtest' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-usbtest.lst: pre-usbtest.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 usbtest/' > $@ +else +def-usbtest.lst: pre-usbtest.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 usbtest/' > $@ +endif + +und-usbtest.lst: pre-usbtest.o + echo 'usbtest' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +usbtest_mod-commands_usbtest.o: commands/usbtest.c $(commands/usbtest.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -DGRUB_FILE=\"commands/usbtest.c\" -MD -c -o $@ $< +-include usbtest_mod-commands_usbtest.d + +clean-module-usbtest_mod-commands_usbtest-extra.1: + rm -f cmd-usbtest_mod-commands_usbtest.lst fs-usbtest_mod-commands_usbtest.lst partmap-usbtest_mod-commands_usbtest.lst handler-usbtest_mod-commands_usbtest.lst parttool-usbtest_mod-commands_usbtest.lst video-usbtest_mod-commands_usbtest.lst terminal-usbtest_mod-commands_usbtest.lst + +CLEAN_MODULE_TARGETS += clean-module-usbtest_mod-commands_usbtest-extra.1 + +COMMANDFILES += cmd-usbtest_mod-commands_usbtest.lst +FSFILES += fs-usbtest_mod-commands_usbtest.lst +PARTTOOLFILES += parttool-usbtest_mod-commands_usbtest.lst +PARTMAPFILES += partmap-usbtest_mod-commands_usbtest.lst +HANDLERFILES += handler-usbtest_mod-commands_usbtest.lst +TERMINALFILES += terminal-usbtest_mod-commands_usbtest.lst +VIDEOFILES += video-usbtest_mod-commands_usbtest.lst + +cmd-usbtest_mod-commands_usbtest.lst: commands/usbtest.c $(commands/usbtest.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh usbtest > $@ || (rm -f $@; exit 1) + +fs-usbtest_mod-commands_usbtest.lst: commands/usbtest.c $(commands/usbtest.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh usbtest > $@ || (rm -f $@; exit 1) + +parttool-usbtest_mod-commands_usbtest.lst: commands/usbtest.c $(commands/usbtest.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh usbtest > $@ || (rm -f $@; exit 1) + +partmap-usbtest_mod-commands_usbtest.lst: commands/usbtest.c $(commands/usbtest.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh usbtest > $@ || (rm -f $@; exit 1) + +handler-usbtest_mod-commands_usbtest.lst: commands/usbtest.c $(commands/usbtest.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh usbtest > $@ || (rm -f $@; exit 1) + +terminal-usbtest_mod-commands_usbtest.lst: commands/usbtest.c $(commands/usbtest.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh usbtest > $@ || (rm -f $@; exit 1) + +video-usbtest_mod-commands_usbtest.lst: commands/usbtest.c $(commands/usbtest.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh usbtest > $@ || (rm -f $@; exit 1) + +usbtest_mod_CFLAGS = $(COMMON_CFLAGS) +usbtest_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For usbms.mod +pkglib_MODULES += usbms.mod +usbms_mod_SOURCES = disk/usbms.c + +clean-module-usbms.mod.1: + rm -f usbms.mod mod-usbms.o mod-usbms.c pre-usbms.o usbms_mod-disk_usbms.o und-usbms.lst + +CLEAN_MODULE_TARGETS += clean-module-usbms.mod.1 + +clean-module-usbms.mod-symbol.1: + rm -f def-usbms.lst + +CLEAN_MODULE_TARGETS += clean-module-usbms.mod-symbol.1 +DEFSYMFILES += def-usbms.lst +mostlyclean-module-usbms.mod.1: + rm -f usbms_mod-disk_usbms.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-usbms.mod.1 +UNDSYMFILES += und-usbms.lst + +ifeq ($(TARGET_NO_MODULES), yes) +usbms.mod: pre-usbms.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(usbms_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-usbms.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +usbms.mod: pre-usbms.o mod-usbms.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(usbms_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-usbms.o mod-usbms.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +usbms.mod: pre-usbms.o mod-usbms.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(usbms_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-usbms.o mod-usbms.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-usbms.o: $(usbms_mod_DEPENDENCIES) usbms_mod-disk_usbms.o + -rm -f $@ + $(TARGET_CC) $(usbms_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ usbms_mod-disk_usbms.o + +mod-usbms.o: mod-usbms.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -DGRUB_FILE=\"mod-usbms.c\" -c -o $@ $< + +mod-usbms.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'usbms' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-usbms.lst: pre-usbms.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 usbms/' > $@ +else +def-usbms.lst: pre-usbms.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 usbms/' > $@ +endif + +und-usbms.lst: pre-usbms.o + echo 'usbms' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +usbms_mod-disk_usbms.o: disk/usbms.c $(disk/usbms.c_DEPENDENCIES) + $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -DGRUB_FILE=\"disk/usbms.c\" -MD -c -o $@ $< +-include usbms_mod-disk_usbms.d + +clean-module-usbms_mod-disk_usbms-extra.1: + rm -f cmd-usbms_mod-disk_usbms.lst fs-usbms_mod-disk_usbms.lst partmap-usbms_mod-disk_usbms.lst handler-usbms_mod-disk_usbms.lst parttool-usbms_mod-disk_usbms.lst video-usbms_mod-disk_usbms.lst terminal-usbms_mod-disk_usbms.lst + +CLEAN_MODULE_TARGETS += clean-module-usbms_mod-disk_usbms-extra.1 + +COMMANDFILES += cmd-usbms_mod-disk_usbms.lst +FSFILES += fs-usbms_mod-disk_usbms.lst +PARTTOOLFILES += parttool-usbms_mod-disk_usbms.lst +PARTMAPFILES += partmap-usbms_mod-disk_usbms.lst +HANDLERFILES += handler-usbms_mod-disk_usbms.lst +TERMINALFILES += terminal-usbms_mod-disk_usbms.lst +VIDEOFILES += video-usbms_mod-disk_usbms.lst + +cmd-usbms_mod-disk_usbms.lst: disk/usbms.c $(disk/usbms.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh usbms > $@ || (rm -f $@; exit 1) + +fs-usbms_mod-disk_usbms.lst: disk/usbms.c $(disk/usbms.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh usbms > $@ || (rm -f $@; exit 1) + +parttool-usbms_mod-disk_usbms.lst: disk/usbms.c $(disk/usbms.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh usbms > $@ || (rm -f $@; exit 1) + +partmap-usbms_mod-disk_usbms.lst: disk/usbms.c $(disk/usbms.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh usbms > $@ || (rm -f $@; exit 1) + +handler-usbms_mod-disk_usbms.lst: disk/usbms.c $(disk/usbms.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh usbms > $@ || (rm -f $@; exit 1) + +terminal-usbms_mod-disk_usbms.lst: disk/usbms.c $(disk/usbms.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh usbms > $@ || (rm -f $@; exit 1) + +video-usbms_mod-disk_usbms.lst: disk/usbms.c $(disk/usbms.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh usbms > $@ || (rm -f $@; exit 1) + +usbms_mod_CFLAGS = $(COMMON_CFLAGS) +usbms_mod_LDFLAGS = $(COMMON_LDFLAGS) + +grub_emu_LDFLAGS += $(LIBUSB) +endif + +ifeq ($(enable_grub_emu_sdl), yes) +pkglib_MODULES += sdl.mod +sdl_mod_SOURCES = video/emu/sdl.c + +clean-module-sdl.mod.1: + rm -f sdl.mod mod-sdl.o mod-sdl.c pre-sdl.o sdl_mod-video_emu_sdl.o und-sdl.lst + +CLEAN_MODULE_TARGETS += clean-module-sdl.mod.1 + +clean-module-sdl.mod-symbol.1: + rm -f def-sdl.lst + +CLEAN_MODULE_TARGETS += clean-module-sdl.mod-symbol.1 +DEFSYMFILES += def-sdl.lst +mostlyclean-module-sdl.mod.1: + rm -f sdl_mod-video_emu_sdl.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-sdl.mod.1 +UNDSYMFILES += und-sdl.lst + +ifeq ($(TARGET_NO_MODULES), yes) +sdl.mod: pre-sdl.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(sdl_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-sdl.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +sdl.mod: pre-sdl.o mod-sdl.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(sdl_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-sdl.o mod-sdl.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +sdl.mod: pre-sdl.o mod-sdl.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(sdl_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-sdl.o mod-sdl.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-sdl.o: $(sdl_mod_DEPENDENCIES) sdl_mod-video_emu_sdl.o + -rm -f $@ + $(TARGET_CC) $(sdl_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ sdl_mod-video_emu_sdl.o + +mod-sdl.o: mod-sdl.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(sdl_mod_CFLAGS) -DGRUB_FILE=\"mod-sdl.c\" -c -o $@ $< + +mod-sdl.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'sdl' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-sdl.lst: pre-sdl.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 sdl/' > $@ +else +def-sdl.lst: pre-sdl.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 sdl/' > $@ +endif + +und-sdl.lst: pre-sdl.o + echo 'sdl' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +sdl_mod-video_emu_sdl.o: video/emu/sdl.c $(video/emu/sdl.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo/emu -I$(srcdir)/video/emu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(sdl_mod_CFLAGS) -DGRUB_FILE=\"video/emu/sdl.c\" -MD -c -o $@ $< +-include sdl_mod-video_emu_sdl.d + +clean-module-sdl_mod-video_emu_sdl-extra.1: + rm -f cmd-sdl_mod-video_emu_sdl.lst fs-sdl_mod-video_emu_sdl.lst partmap-sdl_mod-video_emu_sdl.lst handler-sdl_mod-video_emu_sdl.lst parttool-sdl_mod-video_emu_sdl.lst video-sdl_mod-video_emu_sdl.lst terminal-sdl_mod-video_emu_sdl.lst + +CLEAN_MODULE_TARGETS += clean-module-sdl_mod-video_emu_sdl-extra.1 + +COMMANDFILES += cmd-sdl_mod-video_emu_sdl.lst +FSFILES += fs-sdl_mod-video_emu_sdl.lst +PARTTOOLFILES += parttool-sdl_mod-video_emu_sdl.lst +PARTMAPFILES += partmap-sdl_mod-video_emu_sdl.lst +HANDLERFILES += handler-sdl_mod-video_emu_sdl.lst +TERMINALFILES += terminal-sdl_mod-video_emu_sdl.lst +VIDEOFILES += video-sdl_mod-video_emu_sdl.lst + +cmd-sdl_mod-video_emu_sdl.lst: video/emu/sdl.c $(video/emu/sdl.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ivideo/emu -I$(srcdir)/video/emu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(sdl_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh sdl > $@ || (rm -f $@; exit 1) + +fs-sdl_mod-video_emu_sdl.lst: video/emu/sdl.c $(video/emu/sdl.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ivideo/emu -I$(srcdir)/video/emu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(sdl_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh sdl > $@ || (rm -f $@; exit 1) + +parttool-sdl_mod-video_emu_sdl.lst: video/emu/sdl.c $(video/emu/sdl.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ivideo/emu -I$(srcdir)/video/emu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(sdl_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh sdl > $@ || (rm -f $@; exit 1) + +partmap-sdl_mod-video_emu_sdl.lst: video/emu/sdl.c $(video/emu/sdl.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ivideo/emu -I$(srcdir)/video/emu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(sdl_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh sdl > $@ || (rm -f $@; exit 1) + +handler-sdl_mod-video_emu_sdl.lst: video/emu/sdl.c $(video/emu/sdl.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ivideo/emu -I$(srcdir)/video/emu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(sdl_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh sdl > $@ || (rm -f $@; exit 1) + +terminal-sdl_mod-video_emu_sdl.lst: video/emu/sdl.c $(video/emu/sdl.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ivideo/emu -I$(srcdir)/video/emu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(sdl_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh sdl > $@ || (rm -f $@; exit 1) + +video-sdl_mod-video_emu_sdl.lst: video/emu/sdl.c $(video/emu/sdl.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ivideo/emu -I$(srcdir)/video/emu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(sdl_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh sdl > $@ || (rm -f $@; exit 1) + +sdl_mod_CFLAGS = +sdl_mod_LDFLAGS = $(COMMON_LDFLAGS) +grub_emu_LDFLAGS += $(LIBSDL) +kernel_img_HEADERS += sdl.h +endif + +ifeq ($(enable_grub_emu_pci), yes) +pkglib_MODULES += pci.mod +pci_mod_SOURCES = bus/emu/pci.c commands/lspci.c + +clean-module-pci.mod.1: + rm -f pci.mod mod-pci.o mod-pci.c pre-pci.o pci_mod-bus_emu_pci.o pci_mod-commands_lspci.o und-pci.lst + +CLEAN_MODULE_TARGETS += clean-module-pci.mod.1 + +clean-module-pci.mod-symbol.1: + rm -f def-pci.lst + +CLEAN_MODULE_TARGETS += clean-module-pci.mod-symbol.1 +DEFSYMFILES += def-pci.lst +mostlyclean-module-pci.mod.1: + rm -f pci_mod-bus_emu_pci.d pci_mod-commands_lspci.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-pci.mod.1 +UNDSYMFILES += und-pci.lst + +ifeq ($(TARGET_NO_MODULES), yes) +pci.mod: pre-pci.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(pci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-pci.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +pci.mod: pre-pci.o mod-pci.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(pci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-pci.o mod-pci.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +pci.mod: pre-pci.o mod-pci.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(pci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-pci.o mod-pci.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-pci.o: $(pci_mod_DEPENDENCIES) pci_mod-bus_emu_pci.o pci_mod-commands_lspci.o + -rm -f $@ + $(TARGET_CC) $(pci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pci_mod-bus_emu_pci.o pci_mod-commands_lspci.o + +mod-pci.o: mod-pci.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -DGRUB_FILE=\"mod-pci.c\" -c -o $@ $< + +mod-pci.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'pci' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-pci.lst: pre-pci.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 pci/' > $@ +else +def-pci.lst: pre-pci.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 pci/' > $@ +endif + +und-pci.lst: pre-pci.o + echo 'pci' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +pci_mod-bus_emu_pci.o: bus/emu/pci.c $(bus/emu/pci.c_DEPENDENCIES) + $(TARGET_CC) -Ibus/emu -I$(srcdir)/bus/emu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -DGRUB_FILE=\"bus/emu/pci.c\" -MD -c -o $@ $< +-include pci_mod-bus_emu_pci.d + +clean-module-pci_mod-bus_emu_pci-extra.1: + rm -f cmd-pci_mod-bus_emu_pci.lst fs-pci_mod-bus_emu_pci.lst partmap-pci_mod-bus_emu_pci.lst handler-pci_mod-bus_emu_pci.lst parttool-pci_mod-bus_emu_pci.lst video-pci_mod-bus_emu_pci.lst terminal-pci_mod-bus_emu_pci.lst + +CLEAN_MODULE_TARGETS += clean-module-pci_mod-bus_emu_pci-extra.1 + +COMMANDFILES += cmd-pci_mod-bus_emu_pci.lst +FSFILES += fs-pci_mod-bus_emu_pci.lst +PARTTOOLFILES += parttool-pci_mod-bus_emu_pci.lst +PARTMAPFILES += partmap-pci_mod-bus_emu_pci.lst +HANDLERFILES += handler-pci_mod-bus_emu_pci.lst +TERMINALFILES += terminal-pci_mod-bus_emu_pci.lst +VIDEOFILES += video-pci_mod-bus_emu_pci.lst + +cmd-pci_mod-bus_emu_pci.lst: bus/emu/pci.c $(bus/emu/pci.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ibus/emu -I$(srcdir)/bus/emu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh pci > $@ || (rm -f $@; exit 1) + +fs-pci_mod-bus_emu_pci.lst: bus/emu/pci.c $(bus/emu/pci.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ibus/emu -I$(srcdir)/bus/emu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh pci > $@ || (rm -f $@; exit 1) + +parttool-pci_mod-bus_emu_pci.lst: bus/emu/pci.c $(bus/emu/pci.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ibus/emu -I$(srcdir)/bus/emu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh pci > $@ || (rm -f $@; exit 1) + +partmap-pci_mod-bus_emu_pci.lst: bus/emu/pci.c $(bus/emu/pci.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ibus/emu -I$(srcdir)/bus/emu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh pci > $@ || (rm -f $@; exit 1) + +handler-pci_mod-bus_emu_pci.lst: bus/emu/pci.c $(bus/emu/pci.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ibus/emu -I$(srcdir)/bus/emu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh pci > $@ || (rm -f $@; exit 1) + +terminal-pci_mod-bus_emu_pci.lst: bus/emu/pci.c $(bus/emu/pci.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ibus/emu -I$(srcdir)/bus/emu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh pci > $@ || (rm -f $@; exit 1) + +video-pci_mod-bus_emu_pci.lst: bus/emu/pci.c $(bus/emu/pci.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ibus/emu -I$(srcdir)/bus/emu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh pci > $@ || (rm -f $@; exit 1) + +pci_mod-commands_lspci.o: commands/lspci.c $(commands/lspci.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -DGRUB_FILE=\"commands/lspci.c\" -MD -c -o $@ $< +-include pci_mod-commands_lspci.d + +clean-module-pci_mod-commands_lspci-extra.1: + rm -f cmd-pci_mod-commands_lspci.lst fs-pci_mod-commands_lspci.lst partmap-pci_mod-commands_lspci.lst handler-pci_mod-commands_lspci.lst parttool-pci_mod-commands_lspci.lst video-pci_mod-commands_lspci.lst terminal-pci_mod-commands_lspci.lst + +CLEAN_MODULE_TARGETS += clean-module-pci_mod-commands_lspci-extra.1 + +COMMANDFILES += cmd-pci_mod-commands_lspci.lst +FSFILES += fs-pci_mod-commands_lspci.lst +PARTTOOLFILES += parttool-pci_mod-commands_lspci.lst +PARTMAPFILES += partmap-pci_mod-commands_lspci.lst +HANDLERFILES += handler-pci_mod-commands_lspci.lst +TERMINALFILES += terminal-pci_mod-commands_lspci.lst +VIDEOFILES += video-pci_mod-commands_lspci.lst + +cmd-pci_mod-commands_lspci.lst: commands/lspci.c $(commands/lspci.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh pci > $@ || (rm -f $@; exit 1) + +fs-pci_mod-commands_lspci.lst: commands/lspci.c $(commands/lspci.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh pci > $@ || (rm -f $@; exit 1) + +parttool-pci_mod-commands_lspci.lst: commands/lspci.c $(commands/lspci.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh pci > $@ || (rm -f $@; exit 1) + +partmap-pci_mod-commands_lspci.lst: commands/lspci.c $(commands/lspci.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh pci > $@ || (rm -f $@; exit 1) + +handler-pci_mod-commands_lspci.lst: commands/lspci.c $(commands/lspci.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh pci > $@ || (rm -f $@; exit 1) + +terminal-pci_mod-commands_lspci.lst: commands/lspci.c $(commands/lspci.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh pci > $@ || (rm -f $@; exit 1) + +video-pci_mod-commands_lspci.lst: commands/lspci.c $(commands/lspci.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(pci_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh pci > $@ || (rm -f $@; exit 1) + +pci_mod_LDFLAGS = $(COMMON_LDFLAGS) +grub_emu_LDFLAGS += $(LIBPCIACCESS) +kernel_img_HEADERS += libpciaccess.h +endif + +include $(srcdir)/conf/common.mk + +grub_emu_init.h: genemuinitheader.sh $(pkglib_MODULES) + rm -f $@; echo $(pkglib_MODULES) | sh $(srcdir)/genemuinitheader.sh $(NM) > $@ +DISTCLEANFILES += grub_emu_init.h + +grub_emu_init.c: genemuinit.sh $(pkglib_MODULES) grub_emu_init.h + rm -f $@; echo $(pkglib_MODULES) | sh $(srcdir)/genemuinit.sh $(NM) > $@ +DISTCLEANFILES += grub_emu_init.c + +CLEANFILES += grub-emu +ifneq ($(TARGET_NO_MODULES), yes) +grub-emu: $(pkglib_PROGRAMS) + $(CC) -o $@ $^ $(grub_emu_LDFLAGS) $(LDFLAGS) +else +grub-emu: $(pkglib_MODULES) $(pkglib_PROGRAMS) + $(CC) -o $@ $^ $(grub_emu_LDFLAGS) $(LDFLAGS) +endif +GRUB_EMU=grub-emu + +CLEANFILES += kernel.img $(kernel_img_OBJECTS) +ifeq ($(kernel_img_RELOCATABLE),yes) +kernel.img: $(kernel_img_DEPENDENCIES) $(kernel_img_OBJECTS) + $(TARGET_CC) -Wl,-r,-d -o $@ $(kernel_img_OBJECTS) $(TARGET_LDFLAGS) $(kernel_img_LDFLAGS) + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K start -R .note -R .comment $@; fi +else +kernel.img: $(kernel_img_DEPENDENCIES) $(kernel_img_OBJECTS) + $(TARGET_CC) -o $@ $(kernel_img_OBJECTS) $(TARGET_LDFLAGS) $(kernel_img_LDFLAGS) + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) -R .rel.dyn -R .reginfo -R .note -R .comment $@; fi +endif + --- grub2-1.98+20100804.orig/conf/i386-ieee1275.mk +++ grub2-1.98+20100804/conf/i386-ieee1275.mk @@ -0,0 +1,1082 @@ +# -*- makefile -*- +# Generated by genmk.rb, please don't edit! + +COMMON_CFLAGS = -mrtd -mregparm=3 + +# Images. +pkglib_PROGRAMS = kernel.img + +# For kernel.img. +kernel_img_SOURCES = kern/i386/ieee1275/startup.S \ + kern/i386/misc.S \ + kern/i386/ieee1275/init.c \ + kern/ieee1275/init.c \ + kern/ieee1275/mmap.c \ + kern/ieee1275/cmain.c kern/ieee1275/openfw.c \ + kern/main.c kern/device.c \ + kern/disk.c kern/dl.c kern/file.c kern/fs.c kern/err.c \ + kern/misc.c kern/mm.c kern/term.c \ + kern/rescue_parser.c kern/rescue_reader.c \ + kern/$(target_cpu)/dl.c kern/parser.c kern/partition.c \ + kern/env.c \ + kern/time.c kern/list.c kern/command.c kern/corecmd.c \ + kern/generic/millisleep.c \ + kern/ieee1275/ieee1275.c \ + term/ieee1275/ofconsole.c \ + term/terminfo.c term/tparm.c \ + disk/ieee1275/ofdisk.c \ + symlist.c +MOSTLYCLEANFILES += kernel_img-kern_i386_ieee1275_startup.d kernel_img-kern_i386_misc.d kernel_img-kern_i386_ieee1275_init.d kernel_img-kern_ieee1275_init.d kernel_img-kern_ieee1275_mmap.d kernel_img-kern_ieee1275_cmain.d kernel_img-kern_ieee1275_openfw.d kernel_img-kern_main.d kernel_img-kern_device.d kernel_img-kern_disk.d kernel_img-kern_dl.d kernel_img-kern_file.d kernel_img-kern_fs.d kernel_img-kern_err.d kernel_img-kern_misc.d kernel_img-kern_mm.d kernel_img-kern_term.d kernel_img-kern_rescue_parser.d kernel_img-kern_rescue_reader.d kernel_img-kern___target_cpu__dl.d kernel_img-kern_parser.d kernel_img-kern_partition.d kernel_img-kern_env.d kernel_img-kern_time.d kernel_img-kern_list.d kernel_img-kern_command.d kernel_img-kern_corecmd.d kernel_img-kern_generic_millisleep.d kernel_img-kern_ieee1275_ieee1275.d kernel_img-term_ieee1275_ofconsole.d kernel_img-term_terminfo.d kernel_img-term_tparm.d kernel_img-disk_ieee1275_ofdisk.d kernel_img-symlist.d + +kernel_img-kern_i386_ieee1275_startup.o: kern/i386/ieee1275/startup.S $(kern/i386/ieee1275/startup.S_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386/ieee1275 -I$(srcdir)/kern/i386/ieee1275 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(kernel_img_ASFLAGS) -DGRUB_FILE=\"kern/i386/ieee1275/startup.S\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_ieee1275_startup.d + +kernel_img_OBJECTS += kernel_img-kern_i386_ieee1275_startup.o +kernel_img-kern_i386_misc.o: kern/i386/misc.S $(kern/i386/misc.S_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(kernel_img_ASFLAGS) -DGRUB_FILE=\"kern/i386/misc.S\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_misc.d + +kernel_img_OBJECTS += kernel_img-kern_i386_misc.o +kernel_img-kern_i386_ieee1275_init.o: kern/i386/ieee1275/init.c $(kern/i386/ieee1275/init.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386/ieee1275 -I$(srcdir)/kern/i386/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/i386/ieee1275/init.c\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_ieee1275_init.d + +kernel_img_OBJECTS += kernel_img-kern_i386_ieee1275_init.o +kernel_img-kern_ieee1275_init.o: kern/ieee1275/init.c $(kern/ieee1275/init.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/ieee1275 -I$(srcdir)/kern/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/ieee1275/init.c\" -MD -c -o $@ $< + +-include kernel_img-kern_ieee1275_init.d + +kernel_img_OBJECTS += kernel_img-kern_ieee1275_init.o +kernel_img-kern_ieee1275_mmap.o: kern/ieee1275/mmap.c $(kern/ieee1275/mmap.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/ieee1275 -I$(srcdir)/kern/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/ieee1275/mmap.c\" -MD -c -o $@ $< + +-include kernel_img-kern_ieee1275_mmap.d + +kernel_img_OBJECTS += kernel_img-kern_ieee1275_mmap.o +kernel_img-kern_ieee1275_cmain.o: kern/ieee1275/cmain.c $(kern/ieee1275/cmain.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/ieee1275 -I$(srcdir)/kern/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/ieee1275/cmain.c\" -MD -c -o $@ $< + +-include kernel_img-kern_ieee1275_cmain.d + +kernel_img_OBJECTS += kernel_img-kern_ieee1275_cmain.o +kernel_img-kern_ieee1275_openfw.o: kern/ieee1275/openfw.c $(kern/ieee1275/openfw.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/ieee1275 -I$(srcdir)/kern/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/ieee1275/openfw.c\" -MD -c -o $@ $< + +-include kernel_img-kern_ieee1275_openfw.d + +kernel_img_OBJECTS += kernel_img-kern_ieee1275_openfw.o +kernel_img-kern_main.o: kern/main.c $(kern/main.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/main.c\" -MD -c -o $@ $< + +-include kernel_img-kern_main.d + +kernel_img_OBJECTS += kernel_img-kern_main.o +kernel_img-kern_device.o: kern/device.c $(kern/device.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/device.c\" -MD -c -o $@ $< + +-include kernel_img-kern_device.d + +kernel_img_OBJECTS += kernel_img-kern_device.o +kernel_img-kern_disk.o: kern/disk.c $(kern/disk.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/disk.c\" -MD -c -o $@ $< + +-include kernel_img-kern_disk.d + +kernel_img_OBJECTS += kernel_img-kern_disk.o +kernel_img-kern_dl.o: kern/dl.c $(kern/dl.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/dl.c\" -MD -c -o $@ $< + +-include kernel_img-kern_dl.d + +kernel_img_OBJECTS += kernel_img-kern_dl.o +kernel_img-kern_file.o: kern/file.c $(kern/file.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/file.c\" -MD -c -o $@ $< + +-include kernel_img-kern_file.d + +kernel_img_OBJECTS += kernel_img-kern_file.o +kernel_img-kern_fs.o: kern/fs.c $(kern/fs.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/fs.c\" -MD -c -o $@ $< + +-include kernel_img-kern_fs.d + +kernel_img_OBJECTS += kernel_img-kern_fs.o +kernel_img-kern_err.o: kern/err.c $(kern/err.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/err.c\" -MD -c -o $@ $< + +-include kernel_img-kern_err.d + +kernel_img_OBJECTS += kernel_img-kern_err.o +kernel_img-kern_misc.o: kern/misc.c $(kern/misc.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/misc.c\" -MD -c -o $@ $< + +-include kernel_img-kern_misc.d + +kernel_img_OBJECTS += kernel_img-kern_misc.o +kernel_img-kern_mm.o: kern/mm.c $(kern/mm.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/mm.c\" -MD -c -o $@ $< + +-include kernel_img-kern_mm.d + +kernel_img_OBJECTS += kernel_img-kern_mm.o +kernel_img-kern_term.o: kern/term.c $(kern/term.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/term.c\" -MD -c -o $@ $< + +-include kernel_img-kern_term.d + +kernel_img_OBJECTS += kernel_img-kern_term.o +kernel_img-kern_rescue_parser.o: kern/rescue_parser.c $(kern/rescue_parser.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/rescue_parser.c\" -MD -c -o $@ $< + +-include kernel_img-kern_rescue_parser.d + +kernel_img_OBJECTS += kernel_img-kern_rescue_parser.o +kernel_img-kern_rescue_reader.o: kern/rescue_reader.c $(kern/rescue_reader.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/rescue_reader.c\" -MD -c -o $@ $< + +-include kernel_img-kern_rescue_reader.d + +kernel_img_OBJECTS += kernel_img-kern_rescue_reader.o +kernel_img-kern___target_cpu__dl.o: kern/$(target_cpu)/dl.c $(kern/$(target_cpu)/dl.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/$(target_cpu) -I$(srcdir)/kern/$(target_cpu) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/$(target_cpu)/dl.c\" -MD -c -o $@ $< + +-include kernel_img-kern___target_cpu__dl.d + +kernel_img_OBJECTS += kernel_img-kern___target_cpu__dl.o +kernel_img-kern_parser.o: kern/parser.c $(kern/parser.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/parser.c\" -MD -c -o $@ $< + +-include kernel_img-kern_parser.d + +kernel_img_OBJECTS += kernel_img-kern_parser.o +kernel_img-kern_partition.o: kern/partition.c $(kern/partition.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/partition.c\" -MD -c -o $@ $< + +-include kernel_img-kern_partition.d + +kernel_img_OBJECTS += kernel_img-kern_partition.o +kernel_img-kern_env.o: kern/env.c $(kern/env.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/env.c\" -MD -c -o $@ $< + +-include kernel_img-kern_env.d + +kernel_img_OBJECTS += kernel_img-kern_env.o +kernel_img-kern_time.o: kern/time.c $(kern/time.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/time.c\" -MD -c -o $@ $< + +-include kernel_img-kern_time.d + +kernel_img_OBJECTS += kernel_img-kern_time.o +kernel_img-kern_list.o: kern/list.c $(kern/list.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/list.c\" -MD -c -o $@ $< + +-include kernel_img-kern_list.d + +kernel_img_OBJECTS += kernel_img-kern_list.o +kernel_img-kern_command.o: kern/command.c $(kern/command.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/command.c\" -MD -c -o $@ $< + +-include kernel_img-kern_command.d + +kernel_img_OBJECTS += kernel_img-kern_command.o +kernel_img-kern_corecmd.o: kern/corecmd.c $(kern/corecmd.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/corecmd.c\" -MD -c -o $@ $< + +-include kernel_img-kern_corecmd.d + +kernel_img_OBJECTS += kernel_img-kern_corecmd.o +kernel_img-kern_generic_millisleep.o: kern/generic/millisleep.c $(kern/generic/millisleep.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/generic -I$(srcdir)/kern/generic $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/generic/millisleep.c\" -MD -c -o $@ $< + +-include kernel_img-kern_generic_millisleep.d + +kernel_img_OBJECTS += kernel_img-kern_generic_millisleep.o +kernel_img-kern_ieee1275_ieee1275.o: kern/ieee1275/ieee1275.c $(kern/ieee1275/ieee1275.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/ieee1275 -I$(srcdir)/kern/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/ieee1275/ieee1275.c\" -MD -c -o $@ $< + +-include kernel_img-kern_ieee1275_ieee1275.d + +kernel_img_OBJECTS += kernel_img-kern_ieee1275_ieee1275.o +kernel_img-term_ieee1275_ofconsole.o: term/ieee1275/ofconsole.c $(term/ieee1275/ofconsole.c_DEPENDENCIES) + $(TARGET_CC) -Iterm/ieee1275 -I$(srcdir)/term/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"term/ieee1275/ofconsole.c\" -MD -c -o $@ $< + +-include kernel_img-term_ieee1275_ofconsole.d + +kernel_img_OBJECTS += kernel_img-term_ieee1275_ofconsole.o +kernel_img-term_terminfo.o: term/terminfo.c $(term/terminfo.c_DEPENDENCIES) + $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"term/terminfo.c\" -MD -c -o $@ $< + +-include kernel_img-term_terminfo.d + +kernel_img_OBJECTS += kernel_img-term_terminfo.o +kernel_img-term_tparm.o: term/tparm.c $(term/tparm.c_DEPENDENCIES) + $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"term/tparm.c\" -MD -c -o $@ $< + +-include kernel_img-term_tparm.d + +kernel_img_OBJECTS += kernel_img-term_tparm.o +kernel_img-disk_ieee1275_ofdisk.o: disk/ieee1275/ofdisk.c $(disk/ieee1275/ofdisk.c_DEPENDENCIES) + $(TARGET_CC) -Idisk/ieee1275 -I$(srcdir)/disk/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"disk/ieee1275/ofdisk.c\" -MD -c -o $@ $< + +-include kernel_img-disk_ieee1275_ofdisk.d + +kernel_img_OBJECTS += kernel_img-disk_ieee1275_ofdisk.o +kernel_img-symlist.o: symlist.c $(symlist.c_DEPENDENCIES) + $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"symlist.c\" -MD -c -o $@ $< + +-include kernel_img-symlist.d + +kernel_img_OBJECTS += kernel_img-symlist.o +kernel_img_HEADERS += ieee1275/ieee1275.h terminfo.h +kernel_img_CFLAGS = $(COMMON_CFLAGS) +kernel_img_ASFLAGS = $(COMMON_ASFLAGS) +kernel_img_LDFLAGS += $(COMMON_LDFLAGS) -Wl,-N,-S,-Ttext,0x10000,-Bstatic + +# Scripts. +sbin_SCRIPTS = grub-install + +# For grub-install. +grub_install_SOURCES = util/ieee1275/grub-install.in +CLEANFILES += grub-install + +grub-install: util/ieee1275/grub-install.in $(util/ieee1275/grub-install.in_DEPENDENCIES) config.status + ./config.status --file=-:util/ieee1275/grub-install.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +# Modules. +pkglib_MODULES = halt.mod suspend.mod \ + aout.mod linux.mod \ + nand.mod datetime.mod \ + mmap.mod + +# For mmap.mod. +mmap_mod_SOURCES = mmap/mmap.c mmap/i386/uppermem.c mmap/i386/mmap.c + +clean-module-mmap.mod.1: + rm -f mmap.mod mod-mmap.o mod-mmap.c pre-mmap.o mmap_mod-mmap_mmap.o mmap_mod-mmap_i386_uppermem.o mmap_mod-mmap_i386_mmap.o und-mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap.mod.1 + +clean-module-mmap.mod-symbol.1: + rm -f def-mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap.mod-symbol.1 +DEFSYMFILES += def-mmap.lst +mostlyclean-module-mmap.mod.1: + rm -f mmap_mod-mmap_mmap.d mmap_mod-mmap_i386_uppermem.d mmap_mod-mmap_i386_mmap.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-mmap.mod.1 +UNDSYMFILES += und-mmap.lst + +ifeq ($(TARGET_NO_MODULES), yes) +mmap.mod: pre-mmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-mmap.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +mmap.mod: pre-mmap.o mod-mmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-mmap.o mod-mmap.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +mmap.mod: pre-mmap.o mod-mmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-mmap.o mod-mmap.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-mmap.o: $(mmap_mod_DEPENDENCIES) mmap_mod-mmap_mmap.o mmap_mod-mmap_i386_uppermem.o mmap_mod-mmap_i386_mmap.o + -rm -f $@ + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ mmap_mod-mmap_mmap.o mmap_mod-mmap_i386_uppermem.o mmap_mod-mmap_i386_mmap.o + +mod-mmap.o: mod-mmap.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mod-mmap.c\" -c -o $@ $< + +mod-mmap.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'mmap' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-mmap.lst: pre-mmap.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 mmap/' > $@ +else +def-mmap.lst: pre-mmap.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 mmap/' > $@ +endif + +und-mmap.lst: pre-mmap.o + echo 'mmap' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +mmap_mod-mmap_mmap.o: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) + $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mmap/mmap.c\" -MD -c -o $@ $< +-include mmap_mod-mmap_mmap.d + +clean-module-mmap_mod-mmap_mmap-extra.1: + rm -f cmd-mmap_mod-mmap_mmap.lst fs-mmap_mod-mmap_mmap.lst partmap-mmap_mod-mmap_mmap.lst handler-mmap_mod-mmap_mmap.lst parttool-mmap_mod-mmap_mmap.lst video-mmap_mod-mmap_mmap.lst terminal-mmap_mod-mmap_mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap_mod-mmap_mmap-extra.1 + +COMMANDFILES += cmd-mmap_mod-mmap_mmap.lst +FSFILES += fs-mmap_mod-mmap_mmap.lst +PARTTOOLFILES += parttool-mmap_mod-mmap_mmap.lst +PARTMAPFILES += partmap-mmap_mod-mmap_mmap.lst +HANDLERFILES += handler-mmap_mod-mmap_mmap.lst +TERMINALFILES += terminal-mmap_mod-mmap_mmap.lst +VIDEOFILES += video-mmap_mod-mmap_mmap.lst + +cmd-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh mmap > $@ || (rm -f $@; exit 1) + +fs-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh mmap > $@ || (rm -f $@; exit 1) + +parttool-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh mmap > $@ || (rm -f $@; exit 1) + +partmap-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh mmap > $@ || (rm -f $@; exit 1) + +handler-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh mmap > $@ || (rm -f $@; exit 1) + +terminal-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh mmap > $@ || (rm -f $@; exit 1) + +video-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh mmap > $@ || (rm -f $@; exit 1) + +mmap_mod-mmap_i386_uppermem.o: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) + $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mmap/i386/uppermem.c\" -MD -c -o $@ $< +-include mmap_mod-mmap_i386_uppermem.d + +clean-module-mmap_mod-mmap_i386_uppermem-extra.1: + rm -f cmd-mmap_mod-mmap_i386_uppermem.lst fs-mmap_mod-mmap_i386_uppermem.lst partmap-mmap_mod-mmap_i386_uppermem.lst handler-mmap_mod-mmap_i386_uppermem.lst parttool-mmap_mod-mmap_i386_uppermem.lst video-mmap_mod-mmap_i386_uppermem.lst terminal-mmap_mod-mmap_i386_uppermem.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap_mod-mmap_i386_uppermem-extra.1 + +COMMANDFILES += cmd-mmap_mod-mmap_i386_uppermem.lst +FSFILES += fs-mmap_mod-mmap_i386_uppermem.lst +PARTTOOLFILES += parttool-mmap_mod-mmap_i386_uppermem.lst +PARTMAPFILES += partmap-mmap_mod-mmap_i386_uppermem.lst +HANDLERFILES += handler-mmap_mod-mmap_i386_uppermem.lst +TERMINALFILES += terminal-mmap_mod-mmap_i386_uppermem.lst +VIDEOFILES += video-mmap_mod-mmap_i386_uppermem.lst + +cmd-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh mmap > $@ || (rm -f $@; exit 1) + +fs-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh mmap > $@ || (rm -f $@; exit 1) + +parttool-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh mmap > $@ || (rm -f $@; exit 1) + +partmap-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh mmap > $@ || (rm -f $@; exit 1) + +handler-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh mmap > $@ || (rm -f $@; exit 1) + +terminal-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh mmap > $@ || (rm -f $@; exit 1) + +video-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh mmap > $@ || (rm -f $@; exit 1) + +mmap_mod-mmap_i386_mmap.o: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) + $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mmap/i386/mmap.c\" -MD -c -o $@ $< +-include mmap_mod-mmap_i386_mmap.d + +clean-module-mmap_mod-mmap_i386_mmap-extra.1: + rm -f cmd-mmap_mod-mmap_i386_mmap.lst fs-mmap_mod-mmap_i386_mmap.lst partmap-mmap_mod-mmap_i386_mmap.lst handler-mmap_mod-mmap_i386_mmap.lst parttool-mmap_mod-mmap_i386_mmap.lst video-mmap_mod-mmap_i386_mmap.lst terminal-mmap_mod-mmap_i386_mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap_mod-mmap_i386_mmap-extra.1 + +COMMANDFILES += cmd-mmap_mod-mmap_i386_mmap.lst +FSFILES += fs-mmap_mod-mmap_i386_mmap.lst +PARTTOOLFILES += parttool-mmap_mod-mmap_i386_mmap.lst +PARTMAPFILES += partmap-mmap_mod-mmap_i386_mmap.lst +HANDLERFILES += handler-mmap_mod-mmap_i386_mmap.lst +TERMINALFILES += terminal-mmap_mod-mmap_i386_mmap.lst +VIDEOFILES += video-mmap_mod-mmap_i386_mmap.lst + +cmd-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh mmap > $@ || (rm -f $@; exit 1) + +fs-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh mmap > $@ || (rm -f $@; exit 1) + +parttool-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh mmap > $@ || (rm -f $@; exit 1) + +partmap-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh mmap > $@ || (rm -f $@; exit 1) + +handler-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh mmap > $@ || (rm -f $@; exit 1) + +terminal-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh mmap > $@ || (rm -f $@; exit 1) + +video-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh mmap > $@ || (rm -f $@; exit 1) + +mmap_mod_CFLAGS = $(COMMON_CFLAGS) +mmap_mod_LDFLAGS = $(COMMON_LDFLAGS) +mmap_mod_ASFLAGS = $(COMMON_ASFLAGS) + +# For aout.mod. +aout_mod_SOURCES = loader/aout.c + +clean-module-aout.mod.1: + rm -f aout.mod mod-aout.o mod-aout.c pre-aout.o aout_mod-loader_aout.o und-aout.lst + +CLEAN_MODULE_TARGETS += clean-module-aout.mod.1 + +clean-module-aout.mod-symbol.1: + rm -f def-aout.lst + +CLEAN_MODULE_TARGETS += clean-module-aout.mod-symbol.1 +DEFSYMFILES += def-aout.lst +mostlyclean-module-aout.mod.1: + rm -f aout_mod-loader_aout.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-aout.mod.1 +UNDSYMFILES += und-aout.lst + +ifeq ($(TARGET_NO_MODULES), yes) +aout.mod: pre-aout.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-aout.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +aout.mod: pre-aout.o mod-aout.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-aout.o mod-aout.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +aout.mod: pre-aout.o mod-aout.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-aout.o mod-aout.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-aout.o: $(aout_mod_DEPENDENCIES) aout_mod-loader_aout.o + -rm -f $@ + $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ aout_mod-loader_aout.o + +mod-aout.o: mod-aout.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -DGRUB_FILE=\"mod-aout.c\" -c -o $@ $< + +mod-aout.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'aout' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-aout.lst: pre-aout.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 aout/' > $@ +else +def-aout.lst: pre-aout.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 aout/' > $@ +endif + +und-aout.lst: pre-aout.o + echo 'aout' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +aout_mod-loader_aout.o: loader/aout.c $(loader/aout.c_DEPENDENCIES) + $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -DGRUB_FILE=\"loader/aout.c\" -MD -c -o $@ $< +-include aout_mod-loader_aout.d + +clean-module-aout_mod-loader_aout-extra.1: + rm -f cmd-aout_mod-loader_aout.lst fs-aout_mod-loader_aout.lst partmap-aout_mod-loader_aout.lst handler-aout_mod-loader_aout.lst parttool-aout_mod-loader_aout.lst video-aout_mod-loader_aout.lst terminal-aout_mod-loader_aout.lst + +CLEAN_MODULE_TARGETS += clean-module-aout_mod-loader_aout-extra.1 + +COMMANDFILES += cmd-aout_mod-loader_aout.lst +FSFILES += fs-aout_mod-loader_aout.lst +PARTTOOLFILES += parttool-aout_mod-loader_aout.lst +PARTMAPFILES += partmap-aout_mod-loader_aout.lst +HANDLERFILES += handler-aout_mod-loader_aout.lst +TERMINALFILES += terminal-aout_mod-loader_aout.lst +VIDEOFILES += video-aout_mod-loader_aout.lst + +cmd-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh aout > $@ || (rm -f $@; exit 1) + +fs-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh aout > $@ || (rm -f $@; exit 1) + +parttool-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh aout > $@ || (rm -f $@; exit 1) + +partmap-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh aout > $@ || (rm -f $@; exit 1) + +handler-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh aout > $@ || (rm -f $@; exit 1) + +terminal-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh aout > $@ || (rm -f $@; exit 1) + +video-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh aout > $@ || (rm -f $@; exit 1) + +aout_mod_CFLAGS = $(COMMON_CFLAGS) +aout_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For suspend.mod +suspend_mod_SOURCES = commands/ieee1275/suspend.c + +clean-module-suspend.mod.1: + rm -f suspend.mod mod-suspend.o mod-suspend.c pre-suspend.o suspend_mod-commands_ieee1275_suspend.o und-suspend.lst + +CLEAN_MODULE_TARGETS += clean-module-suspend.mod.1 + +clean-module-suspend.mod-symbol.1: + rm -f def-suspend.lst + +CLEAN_MODULE_TARGETS += clean-module-suspend.mod-symbol.1 +DEFSYMFILES += def-suspend.lst +mostlyclean-module-suspend.mod.1: + rm -f suspend_mod-commands_ieee1275_suspend.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-suspend.mod.1 +UNDSYMFILES += und-suspend.lst + +ifeq ($(TARGET_NO_MODULES), yes) +suspend.mod: pre-suspend.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(suspend_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-suspend.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +suspend.mod: pre-suspend.o mod-suspend.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(suspend_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-suspend.o mod-suspend.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +suspend.mod: pre-suspend.o mod-suspend.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(suspend_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-suspend.o mod-suspend.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-suspend.o: $(suspend_mod_DEPENDENCIES) suspend_mod-commands_ieee1275_suspend.o + -rm -f $@ + $(TARGET_CC) $(suspend_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ suspend_mod-commands_ieee1275_suspend.o + +mod-suspend.o: mod-suspend.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(suspend_mod_CFLAGS) -DGRUB_FILE=\"mod-suspend.c\" -c -o $@ $< + +mod-suspend.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'suspend' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-suspend.lst: pre-suspend.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 suspend/' > $@ +else +def-suspend.lst: pre-suspend.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 suspend/' > $@ +endif + +und-suspend.lst: pre-suspend.o + echo 'suspend' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +suspend_mod-commands_ieee1275_suspend.o: commands/ieee1275/suspend.c $(commands/ieee1275/suspend.c_DEPENDENCIES) + $(TARGET_CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(suspend_mod_CFLAGS) -DGRUB_FILE=\"commands/ieee1275/suspend.c\" -MD -c -o $@ $< +-include suspend_mod-commands_ieee1275_suspend.d + +clean-module-suspend_mod-commands_ieee1275_suspend-extra.1: + rm -f cmd-suspend_mod-commands_ieee1275_suspend.lst fs-suspend_mod-commands_ieee1275_suspend.lst partmap-suspend_mod-commands_ieee1275_suspend.lst handler-suspend_mod-commands_ieee1275_suspend.lst parttool-suspend_mod-commands_ieee1275_suspend.lst video-suspend_mod-commands_ieee1275_suspend.lst terminal-suspend_mod-commands_ieee1275_suspend.lst + +CLEAN_MODULE_TARGETS += clean-module-suspend_mod-commands_ieee1275_suspend-extra.1 + +COMMANDFILES += cmd-suspend_mod-commands_ieee1275_suspend.lst +FSFILES += fs-suspend_mod-commands_ieee1275_suspend.lst +PARTTOOLFILES += parttool-suspend_mod-commands_ieee1275_suspend.lst +PARTMAPFILES += partmap-suspend_mod-commands_ieee1275_suspend.lst +HANDLERFILES += handler-suspend_mod-commands_ieee1275_suspend.lst +TERMINALFILES += terminal-suspend_mod-commands_ieee1275_suspend.lst +VIDEOFILES += video-suspend_mod-commands_ieee1275_suspend.lst + +cmd-suspend_mod-commands_ieee1275_suspend.lst: commands/ieee1275/suspend.c $(commands/ieee1275/suspend.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(suspend_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh suspend > $@ || (rm -f $@; exit 1) + +fs-suspend_mod-commands_ieee1275_suspend.lst: commands/ieee1275/suspend.c $(commands/ieee1275/suspend.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(suspend_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh suspend > $@ || (rm -f $@; exit 1) + +parttool-suspend_mod-commands_ieee1275_suspend.lst: commands/ieee1275/suspend.c $(commands/ieee1275/suspend.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(suspend_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh suspend > $@ || (rm -f $@; exit 1) + +partmap-suspend_mod-commands_ieee1275_suspend.lst: commands/ieee1275/suspend.c $(commands/ieee1275/suspend.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(suspend_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh suspend > $@ || (rm -f $@; exit 1) + +handler-suspend_mod-commands_ieee1275_suspend.lst: commands/ieee1275/suspend.c $(commands/ieee1275/suspend.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(suspend_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh suspend > $@ || (rm -f $@; exit 1) + +terminal-suspend_mod-commands_ieee1275_suspend.lst: commands/ieee1275/suspend.c $(commands/ieee1275/suspend.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(suspend_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh suspend > $@ || (rm -f $@; exit 1) + +video-suspend_mod-commands_ieee1275_suspend.lst: commands/ieee1275/suspend.c $(commands/ieee1275/suspend.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands/ieee1275 -I$(srcdir)/commands/ieee1275 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(suspend_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh suspend > $@ || (rm -f $@; exit 1) + +suspend_mod_CFLAGS = $(COMMON_CFLAGS) +suspend_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For halt.mod +halt_mod_SOURCES = commands/halt.c + +clean-module-halt.mod.1: + rm -f halt.mod mod-halt.o mod-halt.c pre-halt.o halt_mod-commands_halt.o und-halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt.mod.1 + +clean-module-halt.mod-symbol.1: + rm -f def-halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt.mod-symbol.1 +DEFSYMFILES += def-halt.lst +mostlyclean-module-halt.mod.1: + rm -f halt_mod-commands_halt.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-halt.mod.1 +UNDSYMFILES += und-halt.lst + +ifeq ($(TARGET_NO_MODULES), yes) +halt.mod: pre-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-halt.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +halt.mod: pre-halt.o mod-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-halt.o mod-halt.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +halt.mod: pre-halt.o mod-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-halt.o mod-halt.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-halt.o: $(halt_mod_DEPENDENCIES) halt_mod-commands_halt.o + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ halt_mod-commands_halt.o + +mod-halt.o: mod-halt.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -DGRUB_FILE=\"mod-halt.c\" -c -o $@ $< + +mod-halt.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'halt' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-halt.lst: pre-halt.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 halt/' > $@ +else +def-halt.lst: pre-halt.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 halt/' > $@ +endif + +und-halt.lst: pre-halt.o + echo 'halt' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +halt_mod-commands_halt.o: commands/halt.c $(commands/halt.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -DGRUB_FILE=\"commands/halt.c\" -MD -c -o $@ $< +-include halt_mod-commands_halt.d + +clean-module-halt_mod-commands_halt-extra.1: + rm -f cmd-halt_mod-commands_halt.lst fs-halt_mod-commands_halt.lst partmap-halt_mod-commands_halt.lst handler-halt_mod-commands_halt.lst parttool-halt_mod-commands_halt.lst video-halt_mod-commands_halt.lst terminal-halt_mod-commands_halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt_mod-commands_halt-extra.1 + +COMMANDFILES += cmd-halt_mod-commands_halt.lst +FSFILES += fs-halt_mod-commands_halt.lst +PARTTOOLFILES += parttool-halt_mod-commands_halt.lst +PARTMAPFILES += partmap-halt_mod-commands_halt.lst +HANDLERFILES += handler-halt_mod-commands_halt.lst +TERMINALFILES += terminal-halt_mod-commands_halt.lst +VIDEOFILES += video-halt_mod-commands_halt.lst + +cmd-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh halt > $@ || (rm -f $@; exit 1) + +fs-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh halt > $@ || (rm -f $@; exit 1) + +parttool-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh halt > $@ || (rm -f $@; exit 1) + +partmap-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh halt > $@ || (rm -f $@; exit 1) + +handler-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh halt > $@ || (rm -f $@; exit 1) + +terminal-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh halt > $@ || (rm -f $@; exit 1) + +video-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh halt > $@ || (rm -f $@; exit 1) + +halt_mod_CFLAGS = $(COMMON_CFLAGS) +halt_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For linux.mod. +linux_mod_SOURCES = loader/i386/ieee1275/linux.c + +clean-module-linux.mod.1: + rm -f linux.mod mod-linux.o mod-linux.c pre-linux.o linux_mod-loader_i386_ieee1275_linux.o und-linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux.mod.1 + +clean-module-linux.mod-symbol.1: + rm -f def-linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux.mod-symbol.1 +DEFSYMFILES += def-linux.lst +mostlyclean-module-linux.mod.1: + rm -f linux_mod-loader_i386_ieee1275_linux.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-linux.mod.1 +UNDSYMFILES += und-linux.lst + +ifeq ($(TARGET_NO_MODULES), yes) +linux.mod: pre-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-linux.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-linux.o mod-linux.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-linux.o mod-linux.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-linux.o: $(linux_mod_DEPENDENCIES) linux_mod-loader_i386_ieee1275_linux.o + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ linux_mod-loader_i386_ieee1275_linux.o + +mod-linux.o: mod-linux.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -DGRUB_FILE=\"mod-linux.c\" -c -o $@ $< + +mod-linux.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'linux' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-linux.lst: pre-linux.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 linux/' > $@ +else +def-linux.lst: pre-linux.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 linux/' > $@ +endif + +und-linux.lst: pre-linux.o + echo 'linux' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +linux_mod-loader_i386_ieee1275_linux.o: loader/i386/ieee1275/linux.c $(loader/i386/ieee1275/linux.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386/ieee1275 -I$(srcdir)/loader/i386/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -DGRUB_FILE=\"loader/i386/ieee1275/linux.c\" -MD -c -o $@ $< +-include linux_mod-loader_i386_ieee1275_linux.d + +clean-module-linux_mod-loader_i386_ieee1275_linux-extra.1: + rm -f cmd-linux_mod-loader_i386_ieee1275_linux.lst fs-linux_mod-loader_i386_ieee1275_linux.lst partmap-linux_mod-loader_i386_ieee1275_linux.lst handler-linux_mod-loader_i386_ieee1275_linux.lst parttool-linux_mod-loader_i386_ieee1275_linux.lst video-linux_mod-loader_i386_ieee1275_linux.lst terminal-linux_mod-loader_i386_ieee1275_linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux_mod-loader_i386_ieee1275_linux-extra.1 + +COMMANDFILES += cmd-linux_mod-loader_i386_ieee1275_linux.lst +FSFILES += fs-linux_mod-loader_i386_ieee1275_linux.lst +PARTTOOLFILES += parttool-linux_mod-loader_i386_ieee1275_linux.lst +PARTMAPFILES += partmap-linux_mod-loader_i386_ieee1275_linux.lst +HANDLERFILES += handler-linux_mod-loader_i386_ieee1275_linux.lst +TERMINALFILES += terminal-linux_mod-loader_i386_ieee1275_linux.lst +VIDEOFILES += video-linux_mod-loader_i386_ieee1275_linux.lst + +cmd-linux_mod-loader_i386_ieee1275_linux.lst: loader/i386/ieee1275/linux.c $(loader/i386/ieee1275/linux.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386/ieee1275 -I$(srcdir)/loader/i386/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh linux > $@ || (rm -f $@; exit 1) + +fs-linux_mod-loader_i386_ieee1275_linux.lst: loader/i386/ieee1275/linux.c $(loader/i386/ieee1275/linux.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386/ieee1275 -I$(srcdir)/loader/i386/ieee1275 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh linux > $@ || (rm -f $@; exit 1) + +parttool-linux_mod-loader_i386_ieee1275_linux.lst: loader/i386/ieee1275/linux.c $(loader/i386/ieee1275/linux.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386/ieee1275 -I$(srcdir)/loader/i386/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh linux > $@ || (rm -f $@; exit 1) + +partmap-linux_mod-loader_i386_ieee1275_linux.lst: loader/i386/ieee1275/linux.c $(loader/i386/ieee1275/linux.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386/ieee1275 -I$(srcdir)/loader/i386/ieee1275 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh linux > $@ || (rm -f $@; exit 1) + +handler-linux_mod-loader_i386_ieee1275_linux.lst: loader/i386/ieee1275/linux.c $(loader/i386/ieee1275/linux.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386/ieee1275 -I$(srcdir)/loader/i386/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh linux > $@ || (rm -f $@; exit 1) + +terminal-linux_mod-loader_i386_ieee1275_linux.lst: loader/i386/ieee1275/linux.c $(loader/i386/ieee1275/linux.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386/ieee1275 -I$(srcdir)/loader/i386/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh linux > $@ || (rm -f $@; exit 1) + +video-linux_mod-loader_i386_ieee1275_linux.lst: loader/i386/ieee1275/linux.c $(loader/i386/ieee1275/linux.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386/ieee1275 -I$(srcdir)/loader/i386/ieee1275 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh linux > $@ || (rm -f $@; exit 1) + +linux_mod_CFLAGS = $(COMMON_CFLAGS) +linux_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For nand.mod. +nand_mod_SOURCES = disk/ieee1275/nand.c + +clean-module-nand.mod.1: + rm -f nand.mod mod-nand.o mod-nand.c pre-nand.o nand_mod-disk_ieee1275_nand.o und-nand.lst + +CLEAN_MODULE_TARGETS += clean-module-nand.mod.1 + +clean-module-nand.mod-symbol.1: + rm -f def-nand.lst + +CLEAN_MODULE_TARGETS += clean-module-nand.mod-symbol.1 +DEFSYMFILES += def-nand.lst +mostlyclean-module-nand.mod.1: + rm -f nand_mod-disk_ieee1275_nand.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-nand.mod.1 +UNDSYMFILES += und-nand.lst + +ifeq ($(TARGET_NO_MODULES), yes) +nand.mod: pre-nand.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(nand_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-nand.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +nand.mod: pre-nand.o mod-nand.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(nand_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-nand.o mod-nand.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +nand.mod: pre-nand.o mod-nand.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(nand_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-nand.o mod-nand.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-nand.o: $(nand_mod_DEPENDENCIES) nand_mod-disk_ieee1275_nand.o + -rm -f $@ + $(TARGET_CC) $(nand_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ nand_mod-disk_ieee1275_nand.o + +mod-nand.o: mod-nand.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(nand_mod_CFLAGS) -DGRUB_FILE=\"mod-nand.c\" -c -o $@ $< + +mod-nand.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'nand' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-nand.lst: pre-nand.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 nand/' > $@ +else +def-nand.lst: pre-nand.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 nand/' > $@ +endif + +und-nand.lst: pre-nand.o + echo 'nand' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +nand_mod-disk_ieee1275_nand.o: disk/ieee1275/nand.c $(disk/ieee1275/nand.c_DEPENDENCIES) + $(TARGET_CC) -Idisk/ieee1275 -I$(srcdir)/disk/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(nand_mod_CFLAGS) -DGRUB_FILE=\"disk/ieee1275/nand.c\" -MD -c -o $@ $< +-include nand_mod-disk_ieee1275_nand.d + +clean-module-nand_mod-disk_ieee1275_nand-extra.1: + rm -f cmd-nand_mod-disk_ieee1275_nand.lst fs-nand_mod-disk_ieee1275_nand.lst partmap-nand_mod-disk_ieee1275_nand.lst handler-nand_mod-disk_ieee1275_nand.lst parttool-nand_mod-disk_ieee1275_nand.lst video-nand_mod-disk_ieee1275_nand.lst terminal-nand_mod-disk_ieee1275_nand.lst + +CLEAN_MODULE_TARGETS += clean-module-nand_mod-disk_ieee1275_nand-extra.1 + +COMMANDFILES += cmd-nand_mod-disk_ieee1275_nand.lst +FSFILES += fs-nand_mod-disk_ieee1275_nand.lst +PARTTOOLFILES += parttool-nand_mod-disk_ieee1275_nand.lst +PARTMAPFILES += partmap-nand_mod-disk_ieee1275_nand.lst +HANDLERFILES += handler-nand_mod-disk_ieee1275_nand.lst +TERMINALFILES += terminal-nand_mod-disk_ieee1275_nand.lst +VIDEOFILES += video-nand_mod-disk_ieee1275_nand.lst + +cmd-nand_mod-disk_ieee1275_nand.lst: disk/ieee1275/nand.c $(disk/ieee1275/nand.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Idisk/ieee1275 -I$(srcdir)/disk/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(nand_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh nand > $@ || (rm -f $@; exit 1) + +fs-nand_mod-disk_ieee1275_nand.lst: disk/ieee1275/nand.c $(disk/ieee1275/nand.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Idisk/ieee1275 -I$(srcdir)/disk/ieee1275 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(nand_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh nand > $@ || (rm -f $@; exit 1) + +parttool-nand_mod-disk_ieee1275_nand.lst: disk/ieee1275/nand.c $(disk/ieee1275/nand.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Idisk/ieee1275 -I$(srcdir)/disk/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(nand_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh nand > $@ || (rm -f $@; exit 1) + +partmap-nand_mod-disk_ieee1275_nand.lst: disk/ieee1275/nand.c $(disk/ieee1275/nand.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Idisk/ieee1275 -I$(srcdir)/disk/ieee1275 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(nand_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh nand > $@ || (rm -f $@; exit 1) + +handler-nand_mod-disk_ieee1275_nand.lst: disk/ieee1275/nand.c $(disk/ieee1275/nand.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Idisk/ieee1275 -I$(srcdir)/disk/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(nand_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh nand > $@ || (rm -f $@; exit 1) + +terminal-nand_mod-disk_ieee1275_nand.lst: disk/ieee1275/nand.c $(disk/ieee1275/nand.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Idisk/ieee1275 -I$(srcdir)/disk/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(nand_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh nand > $@ || (rm -f $@; exit 1) + +video-nand_mod-disk_ieee1275_nand.lst: disk/ieee1275/nand.c $(disk/ieee1275/nand.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Idisk/ieee1275 -I$(srcdir)/disk/ieee1275 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(nand_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh nand > $@ || (rm -f $@; exit 1) + +nand_mod_CFLAGS = $(COMMON_CFLAGS) +nand_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For datetime.mod +datetime_mod_SOURCES = lib/cmos_datetime.c + +clean-module-datetime.mod.1: + rm -f datetime.mod mod-datetime.o mod-datetime.c pre-datetime.o datetime_mod-lib_cmos_datetime.o und-datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime.mod.1 + +clean-module-datetime.mod-symbol.1: + rm -f def-datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime.mod-symbol.1 +DEFSYMFILES += def-datetime.lst +mostlyclean-module-datetime.mod.1: + rm -f datetime_mod-lib_cmos_datetime.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-datetime.mod.1 +UNDSYMFILES += und-datetime.lst + +ifeq ($(TARGET_NO_MODULES), yes) +datetime.mod: pre-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-datetime.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +datetime.mod: pre-datetime.o mod-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-datetime.o mod-datetime.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +datetime.mod: pre-datetime.o mod-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-datetime.o mod-datetime.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-datetime.o: $(datetime_mod_DEPENDENCIES) datetime_mod-lib_cmos_datetime.o + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ datetime_mod-lib_cmos_datetime.o + +mod-datetime.o: mod-datetime.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -DGRUB_FILE=\"mod-datetime.c\" -c -o $@ $< + +mod-datetime.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'datetime' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-datetime.lst: pre-datetime.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 datetime/' > $@ +else +def-datetime.lst: pre-datetime.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 datetime/' > $@ +endif + +und-datetime.lst: pre-datetime.o + echo 'datetime' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +datetime_mod-lib_cmos_datetime.o: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) + $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -DGRUB_FILE=\"lib/cmos_datetime.c\" -MD -c -o $@ $< +-include datetime_mod-lib_cmos_datetime.d + +clean-module-datetime_mod-lib_cmos_datetime-extra.1: + rm -f cmd-datetime_mod-lib_cmos_datetime.lst fs-datetime_mod-lib_cmos_datetime.lst partmap-datetime_mod-lib_cmos_datetime.lst handler-datetime_mod-lib_cmos_datetime.lst parttool-datetime_mod-lib_cmos_datetime.lst video-datetime_mod-lib_cmos_datetime.lst terminal-datetime_mod-lib_cmos_datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime_mod-lib_cmos_datetime-extra.1 + +COMMANDFILES += cmd-datetime_mod-lib_cmos_datetime.lst +FSFILES += fs-datetime_mod-lib_cmos_datetime.lst +PARTTOOLFILES += parttool-datetime_mod-lib_cmos_datetime.lst +PARTMAPFILES += partmap-datetime_mod-lib_cmos_datetime.lst +HANDLERFILES += handler-datetime_mod-lib_cmos_datetime.lst +TERMINALFILES += terminal-datetime_mod-lib_cmos_datetime.lst +VIDEOFILES += video-datetime_mod-lib_cmos_datetime.lst + +cmd-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh datetime > $@ || (rm -f $@; exit 1) + +fs-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh datetime > $@ || (rm -f $@; exit 1) + +parttool-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh datetime > $@ || (rm -f $@; exit 1) + +partmap-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh datetime > $@ || (rm -f $@; exit 1) + +handler-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh datetime > $@ || (rm -f $@; exit 1) + +terminal-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh datetime > $@ || (rm -f $@; exit 1) + +video-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh datetime > $@ || (rm -f $@; exit 1) + +datetime_mod_CFLAGS = $(COMMON_CFLAGS) +datetime_mod_LDFLAGS = $(COMMON_LDFLAGS) + +include $(srcdir)/conf/i386.mk +include $(srcdir)/conf/common.mk +CLEANFILES += kernel.img $(kernel_img_OBJECTS) +ifeq ($(kernel_img_RELOCATABLE),yes) +kernel.img: $(kernel_img_DEPENDENCIES) $(kernel_img_OBJECTS) + $(TARGET_CC) -Wl,-r,-d -o $@ $(kernel_img_OBJECTS) $(TARGET_LDFLAGS) $(kernel_img_LDFLAGS) + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K start -R .note -R .comment $@; fi +else +kernel.img: $(kernel_img_DEPENDENCIES) $(kernel_img_OBJECTS) + $(TARGET_CC) -o $@ $(kernel_img_OBJECTS) $(TARGET_LDFLAGS) $(kernel_img_LDFLAGS) + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) -R .rel.dyn -R .reginfo -R .note -R .comment $@; fi +endif + --- grub2-1.98+20100804.orig/conf/i386-pc.mk +++ grub2-1.98+20100804/conf/i386-pc.mk @@ -0,0 +1,4855 @@ +# -*- makefile -*- +# Generated by genmk.rb, please don't edit! + +COMMON_CFLAGS = -mrtd -mregparm=3 + +# Images. +pkglib_IMAGES = boot.img cdboot.img diskboot.img lnxboot.img pxeboot.img + +# For boot.img. +boot_img_SOURCES = boot/i386/pc/boot.S + +clean-image-boot.img.1: + rm -f boot.img boot.exec boot_img-boot_i386_pc_boot.o + +CLEAN_IMAGE_TARGETS += clean-image-boot.img.1 + +mostlyclean-image-boot.img.1: + rm -f boot_img-boot_i386_pc_boot.d + +MOSTLYCLEAN_IMAGE_TARGETS += mostlyclean-image-boot.img.1 + +ifneq ($(TARGET_APPLE_CC),1) +boot.img: boot.exec + $(OBJCOPY) -O $(boot_img_FORMAT) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .reginfo -R .rel.dyn $< $@ +else +ifneq (boot.exec,kernel.exec) +boot.img: boot.exec ./grub-macho2img + ./grub-macho2img $< $@ +else +boot.img: boot.exec ./grub-macho2img + ./grub-macho2img --bss $< $@ +endif +endif + +boot.exec: boot_img-boot_i386_pc_boot.o + $(TARGET_CC) -o $@ $^ $(TARGET_LDFLAGS) $(boot_img_LDFLAGS) + +boot_img-boot_i386_pc_boot.o: boot/i386/pc/boot.S $(boot/i386/pc/boot.S_DEPENDENCIES) + $(TARGET_CC) -Iboot/i386/pc -I$(srcdir)/boot/i386/pc $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(boot_img_ASFLAGS) -DGRUB_FILE=\"boot/i386/pc/boot.S\" -MD -c -o $@ $< +-include boot_img-boot_i386_pc_boot.d + +boot_img_ASFLAGS = $(COMMON_ASFLAGS) +boot_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS)0x7C00 +boot_img_FORMAT = binary + +# For pxeboot.img +pxeboot_img_SOURCES = boot/i386/pc/pxeboot.S + +clean-image-pxeboot.img.1: + rm -f pxeboot.img pxeboot.exec pxeboot_img-boot_i386_pc_pxeboot.o + +CLEAN_IMAGE_TARGETS += clean-image-pxeboot.img.1 + +mostlyclean-image-pxeboot.img.1: + rm -f pxeboot_img-boot_i386_pc_pxeboot.d + +MOSTLYCLEAN_IMAGE_TARGETS += mostlyclean-image-pxeboot.img.1 + +ifneq ($(TARGET_APPLE_CC),1) +pxeboot.img: pxeboot.exec + $(OBJCOPY) -O $(pxeboot_img_FORMAT) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .reginfo -R .rel.dyn $< $@ +else +ifneq (pxeboot.exec,kernel.exec) +pxeboot.img: pxeboot.exec ./grub-macho2img + ./grub-macho2img $< $@ +else +pxeboot.img: pxeboot.exec ./grub-macho2img + ./grub-macho2img --bss $< $@ +endif +endif + +pxeboot.exec: pxeboot_img-boot_i386_pc_pxeboot.o + $(TARGET_CC) -o $@ $^ $(TARGET_LDFLAGS) $(pxeboot_img_LDFLAGS) + +pxeboot_img-boot_i386_pc_pxeboot.o: boot/i386/pc/pxeboot.S $(boot/i386/pc/pxeboot.S_DEPENDENCIES) + $(TARGET_CC) -Iboot/i386/pc -I$(srcdir)/boot/i386/pc $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(pxeboot_img_ASFLAGS) -DGRUB_FILE=\"boot/i386/pc/pxeboot.S\" -MD -c -o $@ $< +-include pxeboot_img-boot_i386_pc_pxeboot.d + +pxeboot_img_ASFLAGS = $(COMMON_ASFLAGS) +pxeboot_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS)0x7C00 +pxeboot_img_FORMAT = binary + +# For diskboot.img. +diskboot_img_SOURCES = boot/i386/pc/diskboot.S + +clean-image-diskboot.img.1: + rm -f diskboot.img diskboot.exec diskboot_img-boot_i386_pc_diskboot.o + +CLEAN_IMAGE_TARGETS += clean-image-diskboot.img.1 + +mostlyclean-image-diskboot.img.1: + rm -f diskboot_img-boot_i386_pc_diskboot.d + +MOSTLYCLEAN_IMAGE_TARGETS += mostlyclean-image-diskboot.img.1 + +ifneq ($(TARGET_APPLE_CC),1) +diskboot.img: diskboot.exec + $(OBJCOPY) -O $(diskboot_img_FORMAT) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .reginfo -R .rel.dyn $< $@ +else +ifneq (diskboot.exec,kernel.exec) +diskboot.img: diskboot.exec ./grub-macho2img + ./grub-macho2img $< $@ +else +diskboot.img: diskboot.exec ./grub-macho2img + ./grub-macho2img --bss $< $@ +endif +endif + +diskboot.exec: diskboot_img-boot_i386_pc_diskboot.o + $(TARGET_CC) -o $@ $^ $(TARGET_LDFLAGS) $(diskboot_img_LDFLAGS) + +diskboot_img-boot_i386_pc_diskboot.o: boot/i386/pc/diskboot.S $(boot/i386/pc/diskboot.S_DEPENDENCIES) + $(TARGET_CC) -Iboot/i386/pc -I$(srcdir)/boot/i386/pc $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(diskboot_img_ASFLAGS) -DGRUB_FILE=\"boot/i386/pc/diskboot.S\" -MD -c -o $@ $< +-include diskboot_img-boot_i386_pc_diskboot.d + +diskboot_img_ASFLAGS = $(COMMON_ASFLAGS) +diskboot_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS)0x8000 +diskboot_img_FORMAT = binary + +# For lnxboot.img. +lnxboot_img_SOURCES = boot/i386/pc/lnxboot.S + +clean-image-lnxboot.img.1: + rm -f lnxboot.img lnxboot.exec lnxboot_img-boot_i386_pc_lnxboot.o + +CLEAN_IMAGE_TARGETS += clean-image-lnxboot.img.1 + +mostlyclean-image-lnxboot.img.1: + rm -f lnxboot_img-boot_i386_pc_lnxboot.d + +MOSTLYCLEAN_IMAGE_TARGETS += mostlyclean-image-lnxboot.img.1 + +ifneq ($(TARGET_APPLE_CC),1) +lnxboot.img: lnxboot.exec + $(OBJCOPY) -O $(lnxboot_img_FORMAT) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .reginfo -R .rel.dyn $< $@ +else +ifneq (lnxboot.exec,kernel.exec) +lnxboot.img: lnxboot.exec ./grub-macho2img + ./grub-macho2img $< $@ +else +lnxboot.img: lnxboot.exec ./grub-macho2img + ./grub-macho2img --bss $< $@ +endif +endif + +lnxboot.exec: lnxboot_img-boot_i386_pc_lnxboot.o + $(TARGET_CC) -o $@ $^ $(TARGET_LDFLAGS) $(lnxboot_img_LDFLAGS) + +lnxboot_img-boot_i386_pc_lnxboot.o: boot/i386/pc/lnxboot.S $(boot/i386/pc/lnxboot.S_DEPENDENCIES) + $(TARGET_CC) -Iboot/i386/pc -I$(srcdir)/boot/i386/pc $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(lnxboot_img_ASFLAGS) -DGRUB_FILE=\"boot/i386/pc/lnxboot.S\" -MD -c -o $@ $< +-include lnxboot_img-boot_i386_pc_lnxboot.d + +lnxboot_img_ASFLAGS = $(COMMON_ASFLAGS) +lnxboot_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS)0x6000 +lnxboot_img_FORMAT = binary + +# For cdboot.img. +cdboot_img_SOURCES = boot/i386/pc/cdboot.S + +clean-image-cdboot.img.1: + rm -f cdboot.img cdboot.exec cdboot_img-boot_i386_pc_cdboot.o + +CLEAN_IMAGE_TARGETS += clean-image-cdboot.img.1 + +mostlyclean-image-cdboot.img.1: + rm -f cdboot_img-boot_i386_pc_cdboot.d + +MOSTLYCLEAN_IMAGE_TARGETS += mostlyclean-image-cdboot.img.1 + +ifneq ($(TARGET_APPLE_CC),1) +cdboot.img: cdboot.exec + $(OBJCOPY) -O $(cdboot_img_FORMAT) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .reginfo -R .rel.dyn $< $@ +else +ifneq (cdboot.exec,kernel.exec) +cdboot.img: cdboot.exec ./grub-macho2img + ./grub-macho2img $< $@ +else +cdboot.img: cdboot.exec ./grub-macho2img + ./grub-macho2img --bss $< $@ +endif +endif + +cdboot.exec: cdboot_img-boot_i386_pc_cdboot.o + $(TARGET_CC) -o $@ $^ $(TARGET_LDFLAGS) $(cdboot_img_LDFLAGS) + +cdboot_img-boot_i386_pc_cdboot.o: boot/i386/pc/cdboot.S $(boot/i386/pc/cdboot.S_DEPENDENCIES) + $(TARGET_CC) -Iboot/i386/pc -I$(srcdir)/boot/i386/pc $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(cdboot_img_ASFLAGS) -DGRUB_FILE=\"boot/i386/pc/cdboot.S\" -MD -c -o $@ $< +-include cdboot_img-boot_i386_pc_cdboot.d + +cdboot_img_ASFLAGS = $(COMMON_ASFLAGS) +cdboot_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS)0x7C00 +cdboot_img_FORMAT = binary + +# For kernel.img. +pkglib_PROGRAMS = kernel.img +kernel_img_SOURCES = kern/i386/pc/startup.S \ + kern/i386/misc.S \ + kern/main.c kern/device.c \ + kern/disk.c kern/dl.c kern/file.c kern/fs.c kern/err.c \ + kern/misc.c kern/mm.c kern/term.c \ + kern/rescue_parser.c kern/rescue_reader.c \ + kern/time.c kern/list.c kern/command.c kern/corecmd.c \ + kern/$(target_cpu)/dl.c kern/i386/pc/init.c kern/i386/pc/mmap.c \ + kern/parser.c kern/partition.c \ + kern/i386/tsc.c kern/i386/pit.c \ + kern/generic/rtc_get_time_ms.c \ + kern/generic/millisleep.c \ + kern/env.c \ + term/i386/pc/console.c term/i386/vga_common.c \ + symlist.c +MOSTLYCLEANFILES += kernel_img-kern_i386_pc_startup.d kernel_img-kern_i386_misc.d kernel_img-kern_main.d kernel_img-kern_device.d kernel_img-kern_disk.d kernel_img-kern_dl.d kernel_img-kern_file.d kernel_img-kern_fs.d kernel_img-kern_err.d kernel_img-kern_misc.d kernel_img-kern_mm.d kernel_img-kern_term.d kernel_img-kern_rescue_parser.d kernel_img-kern_rescue_reader.d kernel_img-kern_time.d kernel_img-kern_list.d kernel_img-kern_command.d kernel_img-kern_corecmd.d kernel_img-kern___target_cpu__dl.d kernel_img-kern_i386_pc_init.d kernel_img-kern_i386_pc_mmap.d kernel_img-kern_parser.d kernel_img-kern_partition.d kernel_img-kern_i386_tsc.d kernel_img-kern_i386_pit.d kernel_img-kern_generic_rtc_get_time_ms.d kernel_img-kern_generic_millisleep.d kernel_img-kern_env.d kernel_img-term_i386_pc_console.d kernel_img-term_i386_vga_common.d kernel_img-symlist.d + +kernel_img-kern_i386_pc_startup.o: kern/i386/pc/startup.S $(kern/i386/pc/startup.S_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386/pc -I$(srcdir)/kern/i386/pc $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(kernel_img_ASFLAGS) -DGRUB_FILE=\"kern/i386/pc/startup.S\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_pc_startup.d + +kernel_img_OBJECTS += kernel_img-kern_i386_pc_startup.o +kernel_img-kern_i386_misc.o: kern/i386/misc.S $(kern/i386/misc.S_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(kernel_img_ASFLAGS) -DGRUB_FILE=\"kern/i386/misc.S\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_misc.d + +kernel_img_OBJECTS += kernel_img-kern_i386_misc.o +kernel_img-kern_main.o: kern/main.c $(kern/main.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/main.c\" -MD -c -o $@ $< + +-include kernel_img-kern_main.d + +kernel_img_OBJECTS += kernel_img-kern_main.o +kernel_img-kern_device.o: kern/device.c $(kern/device.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/device.c\" -MD -c -o $@ $< + +-include kernel_img-kern_device.d + +kernel_img_OBJECTS += kernel_img-kern_device.o +kernel_img-kern_disk.o: kern/disk.c $(kern/disk.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/disk.c\" -MD -c -o $@ $< + +-include kernel_img-kern_disk.d + +kernel_img_OBJECTS += kernel_img-kern_disk.o +kernel_img-kern_dl.o: kern/dl.c $(kern/dl.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/dl.c\" -MD -c -o $@ $< + +-include kernel_img-kern_dl.d + +kernel_img_OBJECTS += kernel_img-kern_dl.o +kernel_img-kern_file.o: kern/file.c $(kern/file.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/file.c\" -MD -c -o $@ $< + +-include kernel_img-kern_file.d + +kernel_img_OBJECTS += kernel_img-kern_file.o +kernel_img-kern_fs.o: kern/fs.c $(kern/fs.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/fs.c\" -MD -c -o $@ $< + +-include kernel_img-kern_fs.d + +kernel_img_OBJECTS += kernel_img-kern_fs.o +kernel_img-kern_err.o: kern/err.c $(kern/err.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/err.c\" -MD -c -o $@ $< + +-include kernel_img-kern_err.d + +kernel_img_OBJECTS += kernel_img-kern_err.o +kernel_img-kern_misc.o: kern/misc.c $(kern/misc.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/misc.c\" -MD -c -o $@ $< + +-include kernel_img-kern_misc.d + +kernel_img_OBJECTS += kernel_img-kern_misc.o +kernel_img-kern_mm.o: kern/mm.c $(kern/mm.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/mm.c\" -MD -c -o $@ $< + +-include kernel_img-kern_mm.d + +kernel_img_OBJECTS += kernel_img-kern_mm.o +kernel_img-kern_term.o: kern/term.c $(kern/term.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/term.c\" -MD -c -o $@ $< + +-include kernel_img-kern_term.d + +kernel_img_OBJECTS += kernel_img-kern_term.o +kernel_img-kern_rescue_parser.o: kern/rescue_parser.c $(kern/rescue_parser.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/rescue_parser.c\" -MD -c -o $@ $< + +-include kernel_img-kern_rescue_parser.d + +kernel_img_OBJECTS += kernel_img-kern_rescue_parser.o +kernel_img-kern_rescue_reader.o: kern/rescue_reader.c $(kern/rescue_reader.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/rescue_reader.c\" -MD -c -o $@ $< + +-include kernel_img-kern_rescue_reader.d + +kernel_img_OBJECTS += kernel_img-kern_rescue_reader.o +kernel_img-kern_time.o: kern/time.c $(kern/time.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/time.c\" -MD -c -o $@ $< + +-include kernel_img-kern_time.d + +kernel_img_OBJECTS += kernel_img-kern_time.o +kernel_img-kern_list.o: kern/list.c $(kern/list.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/list.c\" -MD -c -o $@ $< + +-include kernel_img-kern_list.d + +kernel_img_OBJECTS += kernel_img-kern_list.o +kernel_img-kern_command.o: kern/command.c $(kern/command.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/command.c\" -MD -c -o $@ $< + +-include kernel_img-kern_command.d + +kernel_img_OBJECTS += kernel_img-kern_command.o +kernel_img-kern_corecmd.o: kern/corecmd.c $(kern/corecmd.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/corecmd.c\" -MD -c -o $@ $< + +-include kernel_img-kern_corecmd.d + +kernel_img_OBJECTS += kernel_img-kern_corecmd.o +kernel_img-kern___target_cpu__dl.o: kern/$(target_cpu)/dl.c $(kern/$(target_cpu)/dl.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/$(target_cpu) -I$(srcdir)/kern/$(target_cpu) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/$(target_cpu)/dl.c\" -MD -c -o $@ $< + +-include kernel_img-kern___target_cpu__dl.d + +kernel_img_OBJECTS += kernel_img-kern___target_cpu__dl.o +kernel_img-kern_i386_pc_init.o: kern/i386/pc/init.c $(kern/i386/pc/init.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386/pc -I$(srcdir)/kern/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/i386/pc/init.c\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_pc_init.d + +kernel_img_OBJECTS += kernel_img-kern_i386_pc_init.o +kernel_img-kern_i386_pc_mmap.o: kern/i386/pc/mmap.c $(kern/i386/pc/mmap.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386/pc -I$(srcdir)/kern/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/i386/pc/mmap.c\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_pc_mmap.d + +kernel_img_OBJECTS += kernel_img-kern_i386_pc_mmap.o +kernel_img-kern_parser.o: kern/parser.c $(kern/parser.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/parser.c\" -MD -c -o $@ $< + +-include kernel_img-kern_parser.d + +kernel_img_OBJECTS += kernel_img-kern_parser.o +kernel_img-kern_partition.o: kern/partition.c $(kern/partition.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/partition.c\" -MD -c -o $@ $< + +-include kernel_img-kern_partition.d + +kernel_img_OBJECTS += kernel_img-kern_partition.o +kernel_img-kern_i386_tsc.o: kern/i386/tsc.c $(kern/i386/tsc.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/i386/tsc.c\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_tsc.d + +kernel_img_OBJECTS += kernel_img-kern_i386_tsc.o +kernel_img-kern_i386_pit.o: kern/i386/pit.c $(kern/i386/pit.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/i386/pit.c\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_pit.d + +kernel_img_OBJECTS += kernel_img-kern_i386_pit.o +kernel_img-kern_generic_rtc_get_time_ms.o: kern/generic/rtc_get_time_ms.c $(kern/generic/rtc_get_time_ms.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/generic -I$(srcdir)/kern/generic $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/generic/rtc_get_time_ms.c\" -MD -c -o $@ $< + +-include kernel_img-kern_generic_rtc_get_time_ms.d + +kernel_img_OBJECTS += kernel_img-kern_generic_rtc_get_time_ms.o +kernel_img-kern_generic_millisleep.o: kern/generic/millisleep.c $(kern/generic/millisleep.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/generic -I$(srcdir)/kern/generic $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/generic/millisleep.c\" -MD -c -o $@ $< + +-include kernel_img-kern_generic_millisleep.d + +kernel_img_OBJECTS += kernel_img-kern_generic_millisleep.o +kernel_img-kern_env.o: kern/env.c $(kern/env.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/env.c\" -MD -c -o $@ $< + +-include kernel_img-kern_env.d + +kernel_img_OBJECTS += kernel_img-kern_env.o +kernel_img-term_i386_pc_console.o: term/i386/pc/console.c $(term/i386/pc/console.c_DEPENDENCIES) + $(TARGET_CC) -Iterm/i386/pc -I$(srcdir)/term/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"term/i386/pc/console.c\" -MD -c -o $@ $< + +-include kernel_img-term_i386_pc_console.d + +kernel_img_OBJECTS += kernel_img-term_i386_pc_console.o +kernel_img-term_i386_vga_common.o: term/i386/vga_common.c $(term/i386/vga_common.c_DEPENDENCIES) + $(TARGET_CC) -Iterm/i386 -I$(srcdir)/term/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"term/i386/vga_common.c\" -MD -c -o $@ $< + +-include kernel_img-term_i386_vga_common.d + +kernel_img_OBJECTS += kernel_img-term_i386_vga_common.o +kernel_img-symlist.o: symlist.c $(symlist.c_DEPENDENCIES) + $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"symlist.c\" -MD -c -o $@ $< + +-include kernel_img-symlist.d + +kernel_img_OBJECTS += kernel_img-symlist.o +kernel_img_HEADERS += machine/biosdisk.h machine/vga.h machine/vbe.h \ + machine/pxe.h i386/pit.h machine/kernel.h +kernel_img_CFLAGS = $(COMMON_CFLAGS) $(TARGET_IMG_CFLAGS) +kernel_img_ASFLAGS = $(COMMON_ASFLAGS) +kernel_img_LDFLAGS += $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS)0x8200 $(COMMON_CFLAGS) + +# Utilities. +sbin_UTILITIES = grub-setup + +# For grub-setup. +util/i386/pc/grub-setup.c_DEPENDENCIES = grub_setup_init.h +grub_setup_SOURCES = gnulib/progname.c util/i386/pc/grub-setup.c \ + util/misc.c kern/emu/misc.c kern/emu/getroot.c \ + kern/emu/hostdisk.c kern/device.c kern/disk.c kern/err.c \ + kern/misc.c kern/partition.c kern/file.c \ + kern/emu/mm.c kern/fs.c kern/env.c kern/list.c fs/fshelp.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/nilfs2.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 \ + \ + $(GRUB_CONTRIB)/zfs/zfs.c \ + $(GRUB_CONTRIB)/zfs/zfs_lzjb.c \ + $(GRUB_CONTRIB)/zfs/zfs_sha256.c \ + $(GRUB_CONTRIB)/zfs/zfs_fletcher.c \ + \ + \ + partmap/msdos.c partmap/bsdlabel.c partmap/sunpc.c \ + partmap/gpt.c \ + \ + disk/raid.c disk/raid5_recover.c disk/raid6_recover.c \ + disk/mdraid_linux.c disk/lvm.c \ + util/raid.c util/lvm.c \ + grub_setup_init.c + +clean-utility-grub-setup.1: + rm -f grub-setup$(EXEEXT) grub_setup-gnulib_progname.o grub_setup-util_i386_pc_grub_setup.o grub_setup-util_misc.o grub_setup-kern_emu_misc.o grub_setup-kern_emu_getroot.o grub_setup-kern_emu_hostdisk.o grub_setup-kern_device.o grub_setup-kern_disk.o grub_setup-kern_err.o grub_setup-kern_misc.o grub_setup-kern_partition.o grub_setup-kern_file.o grub_setup-kern_emu_mm.o grub_setup-kern_fs.o grub_setup-kern_env.o grub_setup-kern_list.o grub_setup-fs_fshelp.o grub_setup-fs_affs.o grub_setup-fs_cpio.o grub_setup-fs_ext2.o grub_setup-fs_fat.o grub_setup-fs_hfs.o grub_setup-fs_hfsplus.o grub_setup-fs_iso9660.o grub_setup-fs_udf.o grub_setup-fs_jfs.o grub_setup-fs_minix.o grub_setup-fs_nilfs2.o grub_setup-fs_ntfs.o grub_setup-fs_ntfscomp.o grub_setup-fs_reiserfs.o grub_setup-fs_sfs.o grub_setup-fs_ufs.o grub_setup-fs_ufs2.o grub_setup-fs_xfs.o grub_setup-fs_afs.o grub_setup-fs_afs_be.o grub_setup-fs_befs.o grub_setup-fs_befs_be.o grub_setup-fs_tar.o grub_setup-__GRUB_CONTRIB__zfs_zfs.o grub_setup-__GRUB_CONTRIB__zfs_zfs_lzjb.o grub_setup-__GRUB_CONTRIB__zfs_zfs_sha256.o grub_setup-__GRUB_CONTRIB__zfs_zfs_fletcher.o grub_setup-partmap_msdos.o grub_setup-partmap_bsdlabel.o grub_setup-partmap_sunpc.o grub_setup-partmap_gpt.o grub_setup-disk_raid.o grub_setup-disk_raid5_recover.o grub_setup-disk_raid6_recover.o grub_setup-disk_mdraid_linux.o grub_setup-disk_lvm.o grub_setup-util_raid.o grub_setup-util_lvm.o grub_setup-grub_setup_init.o + +CLEAN_UTILITY_TARGETS += clean-utility-grub-setup.1 + +mostlyclean-utility-grub-setup.1: + rm -f grub_setup-gnulib_progname.d grub_setup-util_i386_pc_grub_setup.d grub_setup-util_misc.d grub_setup-kern_emu_misc.d grub_setup-kern_emu_getroot.d grub_setup-kern_emu_hostdisk.d grub_setup-kern_device.d grub_setup-kern_disk.d grub_setup-kern_err.d grub_setup-kern_misc.d grub_setup-kern_partition.d grub_setup-kern_file.d grub_setup-kern_emu_mm.d grub_setup-kern_fs.d grub_setup-kern_env.d grub_setup-kern_list.d grub_setup-fs_fshelp.d grub_setup-fs_affs.d grub_setup-fs_cpio.d grub_setup-fs_ext2.d grub_setup-fs_fat.d grub_setup-fs_hfs.d grub_setup-fs_hfsplus.d grub_setup-fs_iso9660.d grub_setup-fs_udf.d grub_setup-fs_jfs.d grub_setup-fs_minix.d grub_setup-fs_nilfs2.d grub_setup-fs_ntfs.d grub_setup-fs_ntfscomp.d grub_setup-fs_reiserfs.d grub_setup-fs_sfs.d grub_setup-fs_ufs.d grub_setup-fs_ufs2.d grub_setup-fs_xfs.d grub_setup-fs_afs.d grub_setup-fs_afs_be.d grub_setup-fs_befs.d grub_setup-fs_befs_be.d grub_setup-fs_tar.d grub_setup-__GRUB_CONTRIB__zfs_zfs.d grub_setup-__GRUB_CONTRIB__zfs_zfs_lzjb.d grub_setup-__GRUB_CONTRIB__zfs_zfs_sha256.d grub_setup-__GRUB_CONTRIB__zfs_zfs_fletcher.d grub_setup-partmap_msdos.d grub_setup-partmap_bsdlabel.d grub_setup-partmap_sunpc.d grub_setup-partmap_gpt.d grub_setup-disk_raid.d grub_setup-disk_raid5_recover.d grub_setup-disk_raid6_recover.d grub_setup-disk_mdraid_linux.d grub_setup-disk_lvm.d grub_setup-util_raid.d grub_setup-util_lvm.d grub_setup-grub_setup_init.d + +MOSTLYCLEAN_UTILITY_TARGETS += mostlyclean-utility-grub-setup.1 + +grub_setup_OBJECTS += grub_setup-gnulib_progname.o grub_setup-util_i386_pc_grub_setup.o grub_setup-util_misc.o grub_setup-kern_emu_misc.o grub_setup-kern_emu_getroot.o grub_setup-kern_emu_hostdisk.o grub_setup-kern_device.o grub_setup-kern_disk.o grub_setup-kern_err.o grub_setup-kern_misc.o grub_setup-kern_partition.o grub_setup-kern_file.o grub_setup-kern_emu_mm.o grub_setup-kern_fs.o grub_setup-kern_env.o grub_setup-kern_list.o grub_setup-fs_fshelp.o grub_setup-fs_affs.o grub_setup-fs_cpio.o grub_setup-fs_ext2.o grub_setup-fs_fat.o grub_setup-fs_hfs.o grub_setup-fs_hfsplus.o grub_setup-fs_iso9660.o grub_setup-fs_udf.o grub_setup-fs_jfs.o grub_setup-fs_minix.o grub_setup-fs_nilfs2.o grub_setup-fs_ntfs.o grub_setup-fs_ntfscomp.o grub_setup-fs_reiserfs.o grub_setup-fs_sfs.o grub_setup-fs_ufs.o grub_setup-fs_ufs2.o grub_setup-fs_xfs.o grub_setup-fs_afs.o grub_setup-fs_afs_be.o grub_setup-fs_befs.o grub_setup-fs_befs_be.o grub_setup-fs_tar.o grub_setup-__GRUB_CONTRIB__zfs_zfs.o grub_setup-__GRUB_CONTRIB__zfs_zfs_lzjb.o grub_setup-__GRUB_CONTRIB__zfs_zfs_sha256.o grub_setup-__GRUB_CONTRIB__zfs_zfs_fletcher.o grub_setup-partmap_msdos.o grub_setup-partmap_bsdlabel.o grub_setup-partmap_sunpc.o grub_setup-partmap_gpt.o grub_setup-disk_raid.o grub_setup-disk_raid5_recover.o grub_setup-disk_raid6_recover.o grub_setup-disk_mdraid_linux.o grub_setup-disk_lvm.o grub_setup-util_raid.o grub_setup-util_lvm.o grub_setup-grub_setup_init.o + +grub_setup-gnulib_progname.o: gnulib/progname.c $(gnulib/progname.c_DEPENDENCIES) + $(CC) -Ignulib -I$(srcdir)/gnulib $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"gnulib/progname.c\" -MD -c -o $@ $< +-include grub_setup-gnulib_progname.d + +grub_setup-util_i386_pc_grub_setup.o: util/i386/pc/grub-setup.c $(util/i386/pc/grub-setup.c_DEPENDENCIES) + $(CC) -Iutil/i386/pc -I$(srcdir)/util/i386/pc $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"util/i386/pc/grub-setup.c\" -MD -c -o $@ $< +-include grub_setup-util_i386_pc_grub_setup.d + +grub_setup-util_misc.o: util/misc.c $(util/misc.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"util/misc.c\" -MD -c -o $@ $< +-include grub_setup-util_misc.d + +grub_setup-kern_emu_misc.o: kern/emu/misc.c $(kern/emu/misc.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/emu/misc.c\" -MD -c -o $@ $< +-include grub_setup-kern_emu_misc.d + +grub_setup-kern_emu_getroot.o: kern/emu/getroot.c $(kern/emu/getroot.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/emu/getroot.c\" -MD -c -o $@ $< +-include grub_setup-kern_emu_getroot.d + +grub_setup-kern_emu_hostdisk.o: kern/emu/hostdisk.c $(kern/emu/hostdisk.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/emu/hostdisk.c\" -MD -c -o $@ $< +-include grub_setup-kern_emu_hostdisk.d + +grub_setup-kern_device.o: kern/device.c $(kern/device.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/device.c\" -MD -c -o $@ $< +-include grub_setup-kern_device.d + +grub_setup-kern_disk.o: kern/disk.c $(kern/disk.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/disk.c\" -MD -c -o $@ $< +-include grub_setup-kern_disk.d + +grub_setup-kern_err.o: kern/err.c $(kern/err.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/err.c\" -MD -c -o $@ $< +-include grub_setup-kern_err.d + +grub_setup-kern_misc.o: kern/misc.c $(kern/misc.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/misc.c\" -MD -c -o $@ $< +-include grub_setup-kern_misc.d + +grub_setup-kern_partition.o: kern/partition.c $(kern/partition.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/partition.c\" -MD -c -o $@ $< +-include grub_setup-kern_partition.d + +grub_setup-kern_file.o: kern/file.c $(kern/file.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/file.c\" -MD -c -o $@ $< +-include grub_setup-kern_file.d + +grub_setup-kern_emu_mm.o: kern/emu/mm.c $(kern/emu/mm.c_DEPENDENCIES) + $(CC) -Ikern/emu -I$(srcdir)/kern/emu $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/emu/mm.c\" -MD -c -o $@ $< +-include grub_setup-kern_emu_mm.d + +grub_setup-kern_fs.o: kern/fs.c $(kern/fs.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/fs.c\" -MD -c -o $@ $< +-include grub_setup-kern_fs.d + +grub_setup-kern_env.o: kern/env.c $(kern/env.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/env.c\" -MD -c -o $@ $< +-include grub_setup-kern_env.d + +grub_setup-kern_list.o: kern/list.c $(kern/list.c_DEPENDENCIES) + $(CC) -Ikern -I$(srcdir)/kern $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"kern/list.c\" -MD -c -o $@ $< +-include grub_setup-kern_list.d + +grub_setup-fs_fshelp.o: fs/fshelp.c $(fs/fshelp.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/fshelp.c\" -MD -c -o $@ $< +-include grub_setup-fs_fshelp.d + +grub_setup-fs_affs.o: fs/affs.c $(fs/affs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/affs.c\" -MD -c -o $@ $< +-include grub_setup-fs_affs.d + +grub_setup-fs_cpio.o: fs/cpio.c $(fs/cpio.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/cpio.c\" -MD -c -o $@ $< +-include grub_setup-fs_cpio.d + +grub_setup-fs_ext2.o: fs/ext2.c $(fs/ext2.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/ext2.c\" -MD -c -o $@ $< +-include grub_setup-fs_ext2.d + +grub_setup-fs_fat.o: fs/fat.c $(fs/fat.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/fat.c\" -MD -c -o $@ $< +-include grub_setup-fs_fat.d + +grub_setup-fs_hfs.o: fs/hfs.c $(fs/hfs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/hfs.c\" -MD -c -o $@ $< +-include grub_setup-fs_hfs.d + +grub_setup-fs_hfsplus.o: fs/hfsplus.c $(fs/hfsplus.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/hfsplus.c\" -MD -c -o $@ $< +-include grub_setup-fs_hfsplus.d + +grub_setup-fs_iso9660.o: fs/iso9660.c $(fs/iso9660.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/iso9660.c\" -MD -c -o $@ $< +-include grub_setup-fs_iso9660.d + +grub_setup-fs_udf.o: fs/udf.c $(fs/udf.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/udf.c\" -MD -c -o $@ $< +-include grub_setup-fs_udf.d + +grub_setup-fs_jfs.o: fs/jfs.c $(fs/jfs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/jfs.c\" -MD -c -o $@ $< +-include grub_setup-fs_jfs.d + +grub_setup-fs_minix.o: fs/minix.c $(fs/minix.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/minix.c\" -MD -c -o $@ $< +-include grub_setup-fs_minix.d + +grub_setup-fs_nilfs2.o: fs/nilfs2.c $(fs/nilfs2.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/nilfs2.c\" -MD -c -o $@ $< +-include grub_setup-fs_nilfs2.d + +grub_setup-fs_ntfs.o: fs/ntfs.c $(fs/ntfs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/ntfs.c\" -MD -c -o $@ $< +-include grub_setup-fs_ntfs.d + +grub_setup-fs_ntfscomp.o: fs/ntfscomp.c $(fs/ntfscomp.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/ntfscomp.c\" -MD -c -o $@ $< +-include grub_setup-fs_ntfscomp.d + +grub_setup-fs_reiserfs.o: fs/reiserfs.c $(fs/reiserfs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/reiserfs.c\" -MD -c -o $@ $< +-include grub_setup-fs_reiserfs.d + +grub_setup-fs_sfs.o: fs/sfs.c $(fs/sfs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/sfs.c\" -MD -c -o $@ $< +-include grub_setup-fs_sfs.d + +grub_setup-fs_ufs.o: fs/ufs.c $(fs/ufs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/ufs.c\" -MD -c -o $@ $< +-include grub_setup-fs_ufs.d + +grub_setup-fs_ufs2.o: fs/ufs2.c $(fs/ufs2.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/ufs2.c\" -MD -c -o $@ $< +-include grub_setup-fs_ufs2.d + +grub_setup-fs_xfs.o: fs/xfs.c $(fs/xfs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/xfs.c\" -MD -c -o $@ $< +-include grub_setup-fs_xfs.d + +grub_setup-fs_afs.o: fs/afs.c $(fs/afs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/afs.c\" -MD -c -o $@ $< +-include grub_setup-fs_afs.d + +grub_setup-fs_afs_be.o: fs/afs_be.c $(fs/afs_be.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/afs_be.c\" -MD -c -o $@ $< +-include grub_setup-fs_afs_be.d + +grub_setup-fs_befs.o: fs/befs.c $(fs/befs.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/befs.c\" -MD -c -o $@ $< +-include grub_setup-fs_befs.d + +grub_setup-fs_befs_be.o: fs/befs_be.c $(fs/befs_be.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/befs_be.c\" -MD -c -o $@ $< +-include grub_setup-fs_befs_be.d + +grub_setup-fs_tar.o: fs/tar.c $(fs/tar.c_DEPENDENCIES) + $(CC) -Ifs -I$(srcdir)/fs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"fs/tar.c\" -MD -c -o $@ $< +-include grub_setup-fs_tar.d + +grub_setup-__GRUB_CONTRIB__zfs_zfs.o: $(GRUB_CONTRIB)/zfs/zfs.c $($(GRUB_CONTRIB)/zfs/zfs.c_DEPENDENCIES) + $(CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/zfs/zfs.c\" -MD -c -o $@ $< +-include grub_setup-__GRUB_CONTRIB__zfs_zfs.d + +grub_setup-__GRUB_CONTRIB__zfs_zfs_lzjb.o: $(GRUB_CONTRIB)/zfs/zfs_lzjb.c $($(GRUB_CONTRIB)/zfs/zfs_lzjb.c_DEPENDENCIES) + $(CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/zfs/zfs_lzjb.c\" -MD -c -o $@ $< +-include grub_setup-__GRUB_CONTRIB__zfs_zfs_lzjb.d + +grub_setup-__GRUB_CONTRIB__zfs_zfs_sha256.o: $(GRUB_CONTRIB)/zfs/zfs_sha256.c $($(GRUB_CONTRIB)/zfs/zfs_sha256.c_DEPENDENCIES) + $(CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/zfs/zfs_sha256.c\" -MD -c -o $@ $< +-include grub_setup-__GRUB_CONTRIB__zfs_zfs_sha256.d + +grub_setup-__GRUB_CONTRIB__zfs_zfs_fletcher.o: $(GRUB_CONTRIB)/zfs/zfs_fletcher.c $($(GRUB_CONTRIB)/zfs/zfs_fletcher.c_DEPENDENCIES) + $(CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/zfs/zfs_fletcher.c\" -MD -c -o $@ $< +-include grub_setup-__GRUB_CONTRIB__zfs_zfs_fletcher.d + +grub_setup-partmap_msdos.o: partmap/msdos.c $(partmap/msdos.c_DEPENDENCIES) + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"partmap/msdos.c\" -MD -c -o $@ $< +-include grub_setup-partmap_msdos.d + +grub_setup-partmap_bsdlabel.o: partmap/bsdlabel.c $(partmap/bsdlabel.c_DEPENDENCIES) + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"partmap/bsdlabel.c\" -MD -c -o $@ $< +-include grub_setup-partmap_bsdlabel.d + +grub_setup-partmap_sunpc.o: partmap/sunpc.c $(partmap/sunpc.c_DEPENDENCIES) + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"partmap/sunpc.c\" -MD -c -o $@ $< +-include grub_setup-partmap_sunpc.d + +grub_setup-partmap_gpt.o: partmap/gpt.c $(partmap/gpt.c_DEPENDENCIES) + $(CC) -Ipartmap -I$(srcdir)/partmap $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"partmap/gpt.c\" -MD -c -o $@ $< +-include grub_setup-partmap_gpt.d + +grub_setup-disk_raid.o: disk/raid.c $(disk/raid.c_DEPENDENCIES) + $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"disk/raid.c\" -MD -c -o $@ $< +-include grub_setup-disk_raid.d + +grub_setup-disk_raid5_recover.o: disk/raid5_recover.c $(disk/raid5_recover.c_DEPENDENCIES) + $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"disk/raid5_recover.c\" -MD -c -o $@ $< +-include grub_setup-disk_raid5_recover.d + +grub_setup-disk_raid6_recover.o: disk/raid6_recover.c $(disk/raid6_recover.c_DEPENDENCIES) + $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"disk/raid6_recover.c\" -MD -c -o $@ $< +-include grub_setup-disk_raid6_recover.d + +grub_setup-disk_mdraid_linux.o: disk/mdraid_linux.c $(disk/mdraid_linux.c_DEPENDENCIES) + $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"disk/mdraid_linux.c\" -MD -c -o $@ $< +-include grub_setup-disk_mdraid_linux.d + +grub_setup-disk_lvm.o: disk/lvm.c $(disk/lvm.c_DEPENDENCIES) + $(CC) -Idisk -I$(srcdir)/disk $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"disk/lvm.c\" -MD -c -o $@ $< +-include grub_setup-disk_lvm.d + +grub_setup-util_raid.o: util/raid.c $(util/raid.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"util/raid.c\" -MD -c -o $@ $< +-include grub_setup-util_raid.d + +grub_setup-util_lvm.o: util/lvm.c $(util/lvm.c_DEPENDENCIES) + $(CC) -Iutil -I$(srcdir)/util $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"util/lvm.c\" -MD -c -o $@ $< +-include grub_setup-util_lvm.d + +grub_setup-grub_setup_init.o: grub_setup_init.c $(grub_setup_init.c_DEPENDENCIES) + $(CC) -I. -I$(srcdir)/. $(CPPFLAGS) $(CFLAGS) -DGRUB_UTIL=1 $(grub_setup_CFLAGS) -DGRUB_FILE=\"grub_setup_init.c\" -MD -c -o $@ $< +-include grub_setup-grub_setup_init.d + +grub_setup_CFLAGS = -I$(GRUB_CONTRIB)/zfs/include + +sbin_SCRIPTS += grub-install +grub_install_SOURCES = util/grub-install.in +CLEANFILES += grub-install + +grub-install: util/grub-install.in $(util/grub-install.in_DEPENDENCIES) config.status + ./config.status --file=-:util/grub-install.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +bin_SCRIPTS += grub-mkrescue +grub_mkrescue_SOURCES = util/grub-mkrescue.in +CLEANFILES += grub-mkrescue + +grub-mkrescue: util/grub-mkrescue.in $(util/grub-mkrescue.in_DEPENDENCIES) config.status + ./config.status --file=-:util/grub-mkrescue.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +pkglib_MODULES = biosdisk.mod chain.mod \ + halt.mod \ + vbe.mod vbetest.mod vbeinfo.mod \ + vga.mod \ + aout.mod bsd.mod pxe.mod pxecmd.mod datetime.mod \ + ata_pthru.mod hdparm.mod \ + usb.mod uhci.mod ohci.mod usbtest.mod usbms.mod usb_keyboard.mod \ + efiemu.mod mmap.mod acpi.mod drivemap.mod + +# For drivemap.mod. +drivemap_mod_SOURCES = commands/i386/pc/drivemap.c \ + commands/i386/pc/drivemap_int13h.S + +clean-module-drivemap.mod.1: + rm -f drivemap.mod mod-drivemap.o mod-drivemap.c pre-drivemap.o drivemap_mod-commands_i386_pc_drivemap.o drivemap_mod-commands_i386_pc_drivemap_int13h.o und-drivemap.lst + +CLEAN_MODULE_TARGETS += clean-module-drivemap.mod.1 + +clean-module-drivemap.mod-symbol.1: + rm -f def-drivemap.lst + +CLEAN_MODULE_TARGETS += clean-module-drivemap.mod-symbol.1 +DEFSYMFILES += def-drivemap.lst +mostlyclean-module-drivemap.mod.1: + rm -f drivemap_mod-commands_i386_pc_drivemap.d drivemap_mod-commands_i386_pc_drivemap_int13h.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-drivemap.mod.1 +UNDSYMFILES += und-drivemap.lst + +ifeq ($(TARGET_NO_MODULES), yes) +drivemap.mod: pre-drivemap.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(drivemap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-drivemap.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +drivemap.mod: pre-drivemap.o mod-drivemap.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(drivemap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-drivemap.o mod-drivemap.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +drivemap.mod: pre-drivemap.o mod-drivemap.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(drivemap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-drivemap.o mod-drivemap.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-drivemap.o: $(drivemap_mod_DEPENDENCIES) drivemap_mod-commands_i386_pc_drivemap.o drivemap_mod-commands_i386_pc_drivemap_int13h.o + -rm -f $@ + $(TARGET_CC) $(drivemap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ drivemap_mod-commands_i386_pc_drivemap.o drivemap_mod-commands_i386_pc_drivemap_int13h.o + +mod-drivemap.o: mod-drivemap.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(drivemap_mod_CFLAGS) -DGRUB_FILE=\"mod-drivemap.c\" -c -o $@ $< + +mod-drivemap.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'drivemap' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-drivemap.lst: pre-drivemap.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 drivemap/' > $@ +else +def-drivemap.lst: pre-drivemap.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 drivemap/' > $@ +endif + +und-drivemap.lst: pre-drivemap.o + echo 'drivemap' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +drivemap_mod-commands_i386_pc_drivemap.o: commands/i386/pc/drivemap.c $(commands/i386/pc/drivemap.c_DEPENDENCIES) + $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(drivemap_mod_CFLAGS) -DGRUB_FILE=\"commands/i386/pc/drivemap.c\" -MD -c -o $@ $< +-include drivemap_mod-commands_i386_pc_drivemap.d + +clean-module-drivemap_mod-commands_i386_pc_drivemap-extra.1: + rm -f cmd-drivemap_mod-commands_i386_pc_drivemap.lst fs-drivemap_mod-commands_i386_pc_drivemap.lst partmap-drivemap_mod-commands_i386_pc_drivemap.lst handler-drivemap_mod-commands_i386_pc_drivemap.lst parttool-drivemap_mod-commands_i386_pc_drivemap.lst video-drivemap_mod-commands_i386_pc_drivemap.lst terminal-drivemap_mod-commands_i386_pc_drivemap.lst + +CLEAN_MODULE_TARGETS += clean-module-drivemap_mod-commands_i386_pc_drivemap-extra.1 + +COMMANDFILES += cmd-drivemap_mod-commands_i386_pc_drivemap.lst +FSFILES += fs-drivemap_mod-commands_i386_pc_drivemap.lst +PARTTOOLFILES += parttool-drivemap_mod-commands_i386_pc_drivemap.lst +PARTMAPFILES += partmap-drivemap_mod-commands_i386_pc_drivemap.lst +HANDLERFILES += handler-drivemap_mod-commands_i386_pc_drivemap.lst +TERMINALFILES += terminal-drivemap_mod-commands_i386_pc_drivemap.lst +VIDEOFILES += video-drivemap_mod-commands_i386_pc_drivemap.lst + +cmd-drivemap_mod-commands_i386_pc_drivemap.lst: commands/i386/pc/drivemap.c $(commands/i386/pc/drivemap.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(drivemap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh drivemap > $@ || (rm -f $@; exit 1) + +fs-drivemap_mod-commands_i386_pc_drivemap.lst: commands/i386/pc/drivemap.c $(commands/i386/pc/drivemap.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(drivemap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh drivemap > $@ || (rm -f $@; exit 1) + +parttool-drivemap_mod-commands_i386_pc_drivemap.lst: commands/i386/pc/drivemap.c $(commands/i386/pc/drivemap.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(drivemap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh drivemap > $@ || (rm -f $@; exit 1) + +partmap-drivemap_mod-commands_i386_pc_drivemap.lst: commands/i386/pc/drivemap.c $(commands/i386/pc/drivemap.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(drivemap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh drivemap > $@ || (rm -f $@; exit 1) + +handler-drivemap_mod-commands_i386_pc_drivemap.lst: commands/i386/pc/drivemap.c $(commands/i386/pc/drivemap.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(drivemap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh drivemap > $@ || (rm -f $@; exit 1) + +terminal-drivemap_mod-commands_i386_pc_drivemap.lst: commands/i386/pc/drivemap.c $(commands/i386/pc/drivemap.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(drivemap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh drivemap > $@ || (rm -f $@; exit 1) + +video-drivemap_mod-commands_i386_pc_drivemap.lst: commands/i386/pc/drivemap.c $(commands/i386/pc/drivemap.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(drivemap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh drivemap > $@ || (rm -f $@; exit 1) + +drivemap_mod-commands_i386_pc_drivemap_int13h.o: commands/i386/pc/drivemap_int13h.S $(commands/i386/pc/drivemap_int13h.S_DEPENDENCIES) + $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(drivemap_mod_ASFLAGS) -DGRUB_FILE=\"commands/i386/pc/drivemap_int13h.S\" -MD -c -o $@ $< +-include drivemap_mod-commands_i386_pc_drivemap_int13h.d + +clean-module-drivemap_mod-commands_i386_pc_drivemap_int13h-extra.1: + rm -f cmd-drivemap_mod-commands_i386_pc_drivemap_int13h.lst fs-drivemap_mod-commands_i386_pc_drivemap_int13h.lst partmap-drivemap_mod-commands_i386_pc_drivemap_int13h.lst handler-drivemap_mod-commands_i386_pc_drivemap_int13h.lst parttool-drivemap_mod-commands_i386_pc_drivemap_int13h.lst video-drivemap_mod-commands_i386_pc_drivemap_int13h.lst terminal-drivemap_mod-commands_i386_pc_drivemap_int13h.lst + +CLEAN_MODULE_TARGETS += clean-module-drivemap_mod-commands_i386_pc_drivemap_int13h-extra.1 + +COMMANDFILES += cmd-drivemap_mod-commands_i386_pc_drivemap_int13h.lst +FSFILES += fs-drivemap_mod-commands_i386_pc_drivemap_int13h.lst +PARTTOOLFILES += parttool-drivemap_mod-commands_i386_pc_drivemap_int13h.lst +PARTMAPFILES += partmap-drivemap_mod-commands_i386_pc_drivemap_int13h.lst +HANDLERFILES += handler-drivemap_mod-commands_i386_pc_drivemap_int13h.lst +TERMINALFILES += terminal-drivemap_mod-commands_i386_pc_drivemap_int13h.lst +VIDEOFILES += video-drivemap_mod-commands_i386_pc_drivemap_int13h.lst + +cmd-drivemap_mod-commands_i386_pc_drivemap_int13h.lst: commands/i386/pc/drivemap_int13h.S $(commands/i386/pc/drivemap_int13h.S_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(drivemap_mod_ASFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh drivemap > $@ || (rm -f $@; exit 1) + +fs-drivemap_mod-commands_i386_pc_drivemap_int13h.lst: commands/i386/pc/drivemap_int13h.S $(commands/i386/pc/drivemap_int13h.S_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(drivemap_mod_ASFLAGS) -E $< | sh $(srcdir)/genfslist.sh drivemap > $@ || (rm -f $@; exit 1) + +parttool-drivemap_mod-commands_i386_pc_drivemap_int13h.lst: commands/i386/pc/drivemap_int13h.S $(commands/i386/pc/drivemap_int13h.S_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(drivemap_mod_ASFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh drivemap > $@ || (rm -f $@; exit 1) + +partmap-drivemap_mod-commands_i386_pc_drivemap_int13h.lst: commands/i386/pc/drivemap_int13h.S $(commands/i386/pc/drivemap_int13h.S_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(drivemap_mod_ASFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh drivemap > $@ || (rm -f $@; exit 1) + +handler-drivemap_mod-commands_i386_pc_drivemap_int13h.lst: commands/i386/pc/drivemap_int13h.S $(commands/i386/pc/drivemap_int13h.S_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(drivemap_mod_ASFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh drivemap > $@ || (rm -f $@; exit 1) + +terminal-drivemap_mod-commands_i386_pc_drivemap_int13h.lst: commands/i386/pc/drivemap_int13h.S $(commands/i386/pc/drivemap_int13h.S_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(drivemap_mod_ASFLAGS) -E $< | sh $(srcdir)/genterminallist.sh drivemap > $@ || (rm -f $@; exit 1) + +video-drivemap_mod-commands_i386_pc_drivemap_int13h.lst: commands/i386/pc/drivemap_int13h.S $(commands/i386/pc/drivemap_int13h.S_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(drivemap_mod_ASFLAGS) -E $< | sh $(srcdir)/genvideolist.sh drivemap > $@ || (rm -f $@; exit 1) + +drivemap_mod_ASFLAGS = $(COMMON_ASFLAGS) +drivemap_mod_CFLAGS = $(COMMON_CFLAGS) +drivemap_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For efiemu.mod. +efiemu_mod_SOURCES = efiemu/main.c efiemu/i386/loadcore32.c \ + efiemu/i386/loadcore64.c efiemu/i386/pc/cfgtables.c \ + efiemu/mm.c efiemu/loadcore_common.c efiemu/symbols.c \ + efiemu/loadcore32.c efiemu/loadcore64.c \ + efiemu/prepare32.c efiemu/prepare64.c efiemu/pnvram.c \ + efiemu/i386/coredetect.c + +clean-module-efiemu.mod.1: + rm -f efiemu.mod mod-efiemu.o mod-efiemu.c pre-efiemu.o efiemu_mod-efiemu_main.o efiemu_mod-efiemu_i386_loadcore32.o efiemu_mod-efiemu_i386_loadcore64.o efiemu_mod-efiemu_i386_pc_cfgtables.o efiemu_mod-efiemu_mm.o efiemu_mod-efiemu_loadcore_common.o efiemu_mod-efiemu_symbols.o efiemu_mod-efiemu_loadcore32.o efiemu_mod-efiemu_loadcore64.o efiemu_mod-efiemu_prepare32.o efiemu_mod-efiemu_prepare64.o efiemu_mod-efiemu_pnvram.o efiemu_mod-efiemu_i386_coredetect.o und-efiemu.lst + +CLEAN_MODULE_TARGETS += clean-module-efiemu.mod.1 + +clean-module-efiemu.mod-symbol.1: + rm -f def-efiemu.lst + +CLEAN_MODULE_TARGETS += clean-module-efiemu.mod-symbol.1 +DEFSYMFILES += def-efiemu.lst +mostlyclean-module-efiemu.mod.1: + rm -f efiemu_mod-efiemu_main.d efiemu_mod-efiemu_i386_loadcore32.d efiemu_mod-efiemu_i386_loadcore64.d efiemu_mod-efiemu_i386_pc_cfgtables.d efiemu_mod-efiemu_mm.d efiemu_mod-efiemu_loadcore_common.d efiemu_mod-efiemu_symbols.d efiemu_mod-efiemu_loadcore32.d efiemu_mod-efiemu_loadcore64.d efiemu_mod-efiemu_prepare32.d efiemu_mod-efiemu_prepare64.d efiemu_mod-efiemu_pnvram.d efiemu_mod-efiemu_i386_coredetect.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-efiemu.mod.1 +UNDSYMFILES += und-efiemu.lst + +ifeq ($(TARGET_NO_MODULES), yes) +efiemu.mod: pre-efiemu.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(efiemu_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-efiemu.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +efiemu.mod: pre-efiemu.o mod-efiemu.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(efiemu_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-efiemu.o mod-efiemu.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +efiemu.mod: pre-efiemu.o mod-efiemu.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(efiemu_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-efiemu.o mod-efiemu.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-efiemu.o: $(efiemu_mod_DEPENDENCIES) efiemu_mod-efiemu_main.o efiemu_mod-efiemu_i386_loadcore32.o efiemu_mod-efiemu_i386_loadcore64.o efiemu_mod-efiemu_i386_pc_cfgtables.o efiemu_mod-efiemu_mm.o efiemu_mod-efiemu_loadcore_common.o efiemu_mod-efiemu_symbols.o efiemu_mod-efiemu_loadcore32.o efiemu_mod-efiemu_loadcore64.o efiemu_mod-efiemu_prepare32.o efiemu_mod-efiemu_prepare64.o efiemu_mod-efiemu_pnvram.o efiemu_mod-efiemu_i386_coredetect.o + -rm -f $@ + $(TARGET_CC) $(efiemu_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ efiemu_mod-efiemu_main.o efiemu_mod-efiemu_i386_loadcore32.o efiemu_mod-efiemu_i386_loadcore64.o efiemu_mod-efiemu_i386_pc_cfgtables.o efiemu_mod-efiemu_mm.o efiemu_mod-efiemu_loadcore_common.o efiemu_mod-efiemu_symbols.o efiemu_mod-efiemu_loadcore32.o efiemu_mod-efiemu_loadcore64.o efiemu_mod-efiemu_prepare32.o efiemu_mod-efiemu_prepare64.o efiemu_mod-efiemu_pnvram.o efiemu_mod-efiemu_i386_coredetect.o + +mod-efiemu.o: mod-efiemu.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -DGRUB_FILE=\"mod-efiemu.c\" -c -o $@ $< + +mod-efiemu.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'efiemu' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-efiemu.lst: pre-efiemu.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 efiemu/' > $@ +else +def-efiemu.lst: pre-efiemu.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 efiemu/' > $@ +endif + +und-efiemu.lst: pre-efiemu.o + echo 'efiemu' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +efiemu_mod-efiemu_main.o: efiemu/main.c $(efiemu/main.c_DEPENDENCIES) + $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -DGRUB_FILE=\"efiemu/main.c\" -MD -c -o $@ $< +-include efiemu_mod-efiemu_main.d + +clean-module-efiemu_mod-efiemu_main-extra.1: + rm -f cmd-efiemu_mod-efiemu_main.lst fs-efiemu_mod-efiemu_main.lst partmap-efiemu_mod-efiemu_main.lst handler-efiemu_mod-efiemu_main.lst parttool-efiemu_mod-efiemu_main.lst video-efiemu_mod-efiemu_main.lst terminal-efiemu_mod-efiemu_main.lst + +CLEAN_MODULE_TARGETS += clean-module-efiemu_mod-efiemu_main-extra.1 + +COMMANDFILES += cmd-efiemu_mod-efiemu_main.lst +FSFILES += fs-efiemu_mod-efiemu_main.lst +PARTTOOLFILES += parttool-efiemu_mod-efiemu_main.lst +PARTMAPFILES += partmap-efiemu_mod-efiemu_main.lst +HANDLERFILES += handler-efiemu_mod-efiemu_main.lst +TERMINALFILES += terminal-efiemu_mod-efiemu_main.lst +VIDEOFILES += video-efiemu_mod-efiemu_main.lst + +cmd-efiemu_mod-efiemu_main.lst: efiemu/main.c $(efiemu/main.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh efiemu > $@ || (rm -f $@; exit 1) + +fs-efiemu_mod-efiemu_main.lst: efiemu/main.c $(efiemu/main.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh efiemu > $@ || (rm -f $@; exit 1) + +parttool-efiemu_mod-efiemu_main.lst: efiemu/main.c $(efiemu/main.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh efiemu > $@ || (rm -f $@; exit 1) + +partmap-efiemu_mod-efiemu_main.lst: efiemu/main.c $(efiemu/main.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh efiemu > $@ || (rm -f $@; exit 1) + +handler-efiemu_mod-efiemu_main.lst: efiemu/main.c $(efiemu/main.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh efiemu > $@ || (rm -f $@; exit 1) + +terminal-efiemu_mod-efiemu_main.lst: efiemu/main.c $(efiemu/main.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh efiemu > $@ || (rm -f $@; exit 1) + +video-efiemu_mod-efiemu_main.lst: efiemu/main.c $(efiemu/main.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh efiemu > $@ || (rm -f $@; exit 1) + +efiemu_mod-efiemu_i386_loadcore32.o: efiemu/i386/loadcore32.c $(efiemu/i386/loadcore32.c_DEPENDENCIES) + $(TARGET_CC) -Iefiemu/i386 -I$(srcdir)/efiemu/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -DGRUB_FILE=\"efiemu/i386/loadcore32.c\" -MD -c -o $@ $< +-include efiemu_mod-efiemu_i386_loadcore32.d + +clean-module-efiemu_mod-efiemu_i386_loadcore32-extra.1: + rm -f cmd-efiemu_mod-efiemu_i386_loadcore32.lst fs-efiemu_mod-efiemu_i386_loadcore32.lst partmap-efiemu_mod-efiemu_i386_loadcore32.lst handler-efiemu_mod-efiemu_i386_loadcore32.lst parttool-efiemu_mod-efiemu_i386_loadcore32.lst video-efiemu_mod-efiemu_i386_loadcore32.lst terminal-efiemu_mod-efiemu_i386_loadcore32.lst + +CLEAN_MODULE_TARGETS += clean-module-efiemu_mod-efiemu_i386_loadcore32-extra.1 + +COMMANDFILES += cmd-efiemu_mod-efiemu_i386_loadcore32.lst +FSFILES += fs-efiemu_mod-efiemu_i386_loadcore32.lst +PARTTOOLFILES += parttool-efiemu_mod-efiemu_i386_loadcore32.lst +PARTMAPFILES += partmap-efiemu_mod-efiemu_i386_loadcore32.lst +HANDLERFILES += handler-efiemu_mod-efiemu_i386_loadcore32.lst +TERMINALFILES += terminal-efiemu_mod-efiemu_i386_loadcore32.lst +VIDEOFILES += video-efiemu_mod-efiemu_i386_loadcore32.lst + +cmd-efiemu_mod-efiemu_i386_loadcore32.lst: efiemu/i386/loadcore32.c $(efiemu/i386/loadcore32.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iefiemu/i386 -I$(srcdir)/efiemu/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh efiemu > $@ || (rm -f $@; exit 1) + +fs-efiemu_mod-efiemu_i386_loadcore32.lst: efiemu/i386/loadcore32.c $(efiemu/i386/loadcore32.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iefiemu/i386 -I$(srcdir)/efiemu/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh efiemu > $@ || (rm -f $@; exit 1) + +parttool-efiemu_mod-efiemu_i386_loadcore32.lst: efiemu/i386/loadcore32.c $(efiemu/i386/loadcore32.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iefiemu/i386 -I$(srcdir)/efiemu/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh efiemu > $@ || (rm -f $@; exit 1) + +partmap-efiemu_mod-efiemu_i386_loadcore32.lst: efiemu/i386/loadcore32.c $(efiemu/i386/loadcore32.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iefiemu/i386 -I$(srcdir)/efiemu/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh efiemu > $@ || (rm -f $@; exit 1) + +handler-efiemu_mod-efiemu_i386_loadcore32.lst: efiemu/i386/loadcore32.c $(efiemu/i386/loadcore32.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iefiemu/i386 -I$(srcdir)/efiemu/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh efiemu > $@ || (rm -f $@; exit 1) + +terminal-efiemu_mod-efiemu_i386_loadcore32.lst: efiemu/i386/loadcore32.c $(efiemu/i386/loadcore32.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iefiemu/i386 -I$(srcdir)/efiemu/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh efiemu > $@ || (rm -f $@; exit 1) + +video-efiemu_mod-efiemu_i386_loadcore32.lst: efiemu/i386/loadcore32.c $(efiemu/i386/loadcore32.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iefiemu/i386 -I$(srcdir)/efiemu/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh efiemu > $@ || (rm -f $@; exit 1) + +efiemu_mod-efiemu_i386_loadcore64.o: efiemu/i386/loadcore64.c $(efiemu/i386/loadcore64.c_DEPENDENCIES) + $(TARGET_CC) -Iefiemu/i386 -I$(srcdir)/efiemu/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -DGRUB_FILE=\"efiemu/i386/loadcore64.c\" -MD -c -o $@ $< +-include efiemu_mod-efiemu_i386_loadcore64.d + +clean-module-efiemu_mod-efiemu_i386_loadcore64-extra.1: + rm -f cmd-efiemu_mod-efiemu_i386_loadcore64.lst fs-efiemu_mod-efiemu_i386_loadcore64.lst partmap-efiemu_mod-efiemu_i386_loadcore64.lst handler-efiemu_mod-efiemu_i386_loadcore64.lst parttool-efiemu_mod-efiemu_i386_loadcore64.lst video-efiemu_mod-efiemu_i386_loadcore64.lst terminal-efiemu_mod-efiemu_i386_loadcore64.lst + +CLEAN_MODULE_TARGETS += clean-module-efiemu_mod-efiemu_i386_loadcore64-extra.1 + +COMMANDFILES += cmd-efiemu_mod-efiemu_i386_loadcore64.lst +FSFILES += fs-efiemu_mod-efiemu_i386_loadcore64.lst +PARTTOOLFILES += parttool-efiemu_mod-efiemu_i386_loadcore64.lst +PARTMAPFILES += partmap-efiemu_mod-efiemu_i386_loadcore64.lst +HANDLERFILES += handler-efiemu_mod-efiemu_i386_loadcore64.lst +TERMINALFILES += terminal-efiemu_mod-efiemu_i386_loadcore64.lst +VIDEOFILES += video-efiemu_mod-efiemu_i386_loadcore64.lst + +cmd-efiemu_mod-efiemu_i386_loadcore64.lst: efiemu/i386/loadcore64.c $(efiemu/i386/loadcore64.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iefiemu/i386 -I$(srcdir)/efiemu/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh efiemu > $@ || (rm -f $@; exit 1) + +fs-efiemu_mod-efiemu_i386_loadcore64.lst: efiemu/i386/loadcore64.c $(efiemu/i386/loadcore64.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iefiemu/i386 -I$(srcdir)/efiemu/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh efiemu > $@ || (rm -f $@; exit 1) + +parttool-efiemu_mod-efiemu_i386_loadcore64.lst: efiemu/i386/loadcore64.c $(efiemu/i386/loadcore64.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iefiemu/i386 -I$(srcdir)/efiemu/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh efiemu > $@ || (rm -f $@; exit 1) + +partmap-efiemu_mod-efiemu_i386_loadcore64.lst: efiemu/i386/loadcore64.c $(efiemu/i386/loadcore64.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iefiemu/i386 -I$(srcdir)/efiemu/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh efiemu > $@ || (rm -f $@; exit 1) + +handler-efiemu_mod-efiemu_i386_loadcore64.lst: efiemu/i386/loadcore64.c $(efiemu/i386/loadcore64.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iefiemu/i386 -I$(srcdir)/efiemu/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh efiemu > $@ || (rm -f $@; exit 1) + +terminal-efiemu_mod-efiemu_i386_loadcore64.lst: efiemu/i386/loadcore64.c $(efiemu/i386/loadcore64.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iefiemu/i386 -I$(srcdir)/efiemu/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh efiemu > $@ || (rm -f $@; exit 1) + +video-efiemu_mod-efiemu_i386_loadcore64.lst: efiemu/i386/loadcore64.c $(efiemu/i386/loadcore64.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iefiemu/i386 -I$(srcdir)/efiemu/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh efiemu > $@ || (rm -f $@; exit 1) + +efiemu_mod-efiemu_i386_pc_cfgtables.o: efiemu/i386/pc/cfgtables.c $(efiemu/i386/pc/cfgtables.c_DEPENDENCIES) + $(TARGET_CC) -Iefiemu/i386/pc -I$(srcdir)/efiemu/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -DGRUB_FILE=\"efiemu/i386/pc/cfgtables.c\" -MD -c -o $@ $< +-include efiemu_mod-efiemu_i386_pc_cfgtables.d + +clean-module-efiemu_mod-efiemu_i386_pc_cfgtables-extra.1: + rm -f cmd-efiemu_mod-efiemu_i386_pc_cfgtables.lst fs-efiemu_mod-efiemu_i386_pc_cfgtables.lst partmap-efiemu_mod-efiemu_i386_pc_cfgtables.lst handler-efiemu_mod-efiemu_i386_pc_cfgtables.lst parttool-efiemu_mod-efiemu_i386_pc_cfgtables.lst video-efiemu_mod-efiemu_i386_pc_cfgtables.lst terminal-efiemu_mod-efiemu_i386_pc_cfgtables.lst + +CLEAN_MODULE_TARGETS += clean-module-efiemu_mod-efiemu_i386_pc_cfgtables-extra.1 + +COMMANDFILES += cmd-efiemu_mod-efiemu_i386_pc_cfgtables.lst +FSFILES += fs-efiemu_mod-efiemu_i386_pc_cfgtables.lst +PARTTOOLFILES += parttool-efiemu_mod-efiemu_i386_pc_cfgtables.lst +PARTMAPFILES += partmap-efiemu_mod-efiemu_i386_pc_cfgtables.lst +HANDLERFILES += handler-efiemu_mod-efiemu_i386_pc_cfgtables.lst +TERMINALFILES += terminal-efiemu_mod-efiemu_i386_pc_cfgtables.lst +VIDEOFILES += video-efiemu_mod-efiemu_i386_pc_cfgtables.lst + +cmd-efiemu_mod-efiemu_i386_pc_cfgtables.lst: efiemu/i386/pc/cfgtables.c $(efiemu/i386/pc/cfgtables.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iefiemu/i386/pc -I$(srcdir)/efiemu/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh efiemu > $@ || (rm -f $@; exit 1) + +fs-efiemu_mod-efiemu_i386_pc_cfgtables.lst: efiemu/i386/pc/cfgtables.c $(efiemu/i386/pc/cfgtables.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iefiemu/i386/pc -I$(srcdir)/efiemu/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh efiemu > $@ || (rm -f $@; exit 1) + +parttool-efiemu_mod-efiemu_i386_pc_cfgtables.lst: efiemu/i386/pc/cfgtables.c $(efiemu/i386/pc/cfgtables.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iefiemu/i386/pc -I$(srcdir)/efiemu/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh efiemu > $@ || (rm -f $@; exit 1) + +partmap-efiemu_mod-efiemu_i386_pc_cfgtables.lst: efiemu/i386/pc/cfgtables.c $(efiemu/i386/pc/cfgtables.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iefiemu/i386/pc -I$(srcdir)/efiemu/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh efiemu > $@ || (rm -f $@; exit 1) + +handler-efiemu_mod-efiemu_i386_pc_cfgtables.lst: efiemu/i386/pc/cfgtables.c $(efiemu/i386/pc/cfgtables.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iefiemu/i386/pc -I$(srcdir)/efiemu/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh efiemu > $@ || (rm -f $@; exit 1) + +terminal-efiemu_mod-efiemu_i386_pc_cfgtables.lst: efiemu/i386/pc/cfgtables.c $(efiemu/i386/pc/cfgtables.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iefiemu/i386/pc -I$(srcdir)/efiemu/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh efiemu > $@ || (rm -f $@; exit 1) + +video-efiemu_mod-efiemu_i386_pc_cfgtables.lst: efiemu/i386/pc/cfgtables.c $(efiemu/i386/pc/cfgtables.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iefiemu/i386/pc -I$(srcdir)/efiemu/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh efiemu > $@ || (rm -f $@; exit 1) + +efiemu_mod-efiemu_mm.o: efiemu/mm.c $(efiemu/mm.c_DEPENDENCIES) + $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -DGRUB_FILE=\"efiemu/mm.c\" -MD -c -o $@ $< +-include efiemu_mod-efiemu_mm.d + +clean-module-efiemu_mod-efiemu_mm-extra.1: + rm -f cmd-efiemu_mod-efiemu_mm.lst fs-efiemu_mod-efiemu_mm.lst partmap-efiemu_mod-efiemu_mm.lst handler-efiemu_mod-efiemu_mm.lst parttool-efiemu_mod-efiemu_mm.lst video-efiemu_mod-efiemu_mm.lst terminal-efiemu_mod-efiemu_mm.lst + +CLEAN_MODULE_TARGETS += clean-module-efiemu_mod-efiemu_mm-extra.1 + +COMMANDFILES += cmd-efiemu_mod-efiemu_mm.lst +FSFILES += fs-efiemu_mod-efiemu_mm.lst +PARTTOOLFILES += parttool-efiemu_mod-efiemu_mm.lst +PARTMAPFILES += partmap-efiemu_mod-efiemu_mm.lst +HANDLERFILES += handler-efiemu_mod-efiemu_mm.lst +TERMINALFILES += terminal-efiemu_mod-efiemu_mm.lst +VIDEOFILES += video-efiemu_mod-efiemu_mm.lst + +cmd-efiemu_mod-efiemu_mm.lst: efiemu/mm.c $(efiemu/mm.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh efiemu > $@ || (rm -f $@; exit 1) + +fs-efiemu_mod-efiemu_mm.lst: efiemu/mm.c $(efiemu/mm.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh efiemu > $@ || (rm -f $@; exit 1) + +parttool-efiemu_mod-efiemu_mm.lst: efiemu/mm.c $(efiemu/mm.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh efiemu > $@ || (rm -f $@; exit 1) + +partmap-efiemu_mod-efiemu_mm.lst: efiemu/mm.c $(efiemu/mm.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh efiemu > $@ || (rm -f $@; exit 1) + +handler-efiemu_mod-efiemu_mm.lst: efiemu/mm.c $(efiemu/mm.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh efiemu > $@ || (rm -f $@; exit 1) + +terminal-efiemu_mod-efiemu_mm.lst: efiemu/mm.c $(efiemu/mm.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh efiemu > $@ || (rm -f $@; exit 1) + +video-efiemu_mod-efiemu_mm.lst: efiemu/mm.c $(efiemu/mm.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh efiemu > $@ || (rm -f $@; exit 1) + +efiemu_mod-efiemu_loadcore_common.o: efiemu/loadcore_common.c $(efiemu/loadcore_common.c_DEPENDENCIES) + $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -DGRUB_FILE=\"efiemu/loadcore_common.c\" -MD -c -o $@ $< +-include efiemu_mod-efiemu_loadcore_common.d + +clean-module-efiemu_mod-efiemu_loadcore_common-extra.1: + rm -f cmd-efiemu_mod-efiemu_loadcore_common.lst fs-efiemu_mod-efiemu_loadcore_common.lst partmap-efiemu_mod-efiemu_loadcore_common.lst handler-efiemu_mod-efiemu_loadcore_common.lst parttool-efiemu_mod-efiemu_loadcore_common.lst video-efiemu_mod-efiemu_loadcore_common.lst terminal-efiemu_mod-efiemu_loadcore_common.lst + +CLEAN_MODULE_TARGETS += clean-module-efiemu_mod-efiemu_loadcore_common-extra.1 + +COMMANDFILES += cmd-efiemu_mod-efiemu_loadcore_common.lst +FSFILES += fs-efiemu_mod-efiemu_loadcore_common.lst +PARTTOOLFILES += parttool-efiemu_mod-efiemu_loadcore_common.lst +PARTMAPFILES += partmap-efiemu_mod-efiemu_loadcore_common.lst +HANDLERFILES += handler-efiemu_mod-efiemu_loadcore_common.lst +TERMINALFILES += terminal-efiemu_mod-efiemu_loadcore_common.lst +VIDEOFILES += video-efiemu_mod-efiemu_loadcore_common.lst + +cmd-efiemu_mod-efiemu_loadcore_common.lst: efiemu/loadcore_common.c $(efiemu/loadcore_common.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh efiemu > $@ || (rm -f $@; exit 1) + +fs-efiemu_mod-efiemu_loadcore_common.lst: efiemu/loadcore_common.c $(efiemu/loadcore_common.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh efiemu > $@ || (rm -f $@; exit 1) + +parttool-efiemu_mod-efiemu_loadcore_common.lst: efiemu/loadcore_common.c $(efiemu/loadcore_common.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh efiemu > $@ || (rm -f $@; exit 1) + +partmap-efiemu_mod-efiemu_loadcore_common.lst: efiemu/loadcore_common.c $(efiemu/loadcore_common.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh efiemu > $@ || (rm -f $@; exit 1) + +handler-efiemu_mod-efiemu_loadcore_common.lst: efiemu/loadcore_common.c $(efiemu/loadcore_common.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh efiemu > $@ || (rm -f $@; exit 1) + +terminal-efiemu_mod-efiemu_loadcore_common.lst: efiemu/loadcore_common.c $(efiemu/loadcore_common.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh efiemu > $@ || (rm -f $@; exit 1) + +video-efiemu_mod-efiemu_loadcore_common.lst: efiemu/loadcore_common.c $(efiemu/loadcore_common.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh efiemu > $@ || (rm -f $@; exit 1) + +efiemu_mod-efiemu_symbols.o: efiemu/symbols.c $(efiemu/symbols.c_DEPENDENCIES) + $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -DGRUB_FILE=\"efiemu/symbols.c\" -MD -c -o $@ $< +-include efiemu_mod-efiemu_symbols.d + +clean-module-efiemu_mod-efiemu_symbols-extra.1: + rm -f cmd-efiemu_mod-efiemu_symbols.lst fs-efiemu_mod-efiemu_symbols.lst partmap-efiemu_mod-efiemu_symbols.lst handler-efiemu_mod-efiemu_symbols.lst parttool-efiemu_mod-efiemu_symbols.lst video-efiemu_mod-efiemu_symbols.lst terminal-efiemu_mod-efiemu_symbols.lst + +CLEAN_MODULE_TARGETS += clean-module-efiemu_mod-efiemu_symbols-extra.1 + +COMMANDFILES += cmd-efiemu_mod-efiemu_symbols.lst +FSFILES += fs-efiemu_mod-efiemu_symbols.lst +PARTTOOLFILES += parttool-efiemu_mod-efiemu_symbols.lst +PARTMAPFILES += partmap-efiemu_mod-efiemu_symbols.lst +HANDLERFILES += handler-efiemu_mod-efiemu_symbols.lst +TERMINALFILES += terminal-efiemu_mod-efiemu_symbols.lst +VIDEOFILES += video-efiemu_mod-efiemu_symbols.lst + +cmd-efiemu_mod-efiemu_symbols.lst: efiemu/symbols.c $(efiemu/symbols.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh efiemu > $@ || (rm -f $@; exit 1) + +fs-efiemu_mod-efiemu_symbols.lst: efiemu/symbols.c $(efiemu/symbols.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh efiemu > $@ || (rm -f $@; exit 1) + +parttool-efiemu_mod-efiemu_symbols.lst: efiemu/symbols.c $(efiemu/symbols.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh efiemu > $@ || (rm -f $@; exit 1) + +partmap-efiemu_mod-efiemu_symbols.lst: efiemu/symbols.c $(efiemu/symbols.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh efiemu > $@ || (rm -f $@; exit 1) + +handler-efiemu_mod-efiemu_symbols.lst: efiemu/symbols.c $(efiemu/symbols.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh efiemu > $@ || (rm -f $@; exit 1) + +terminal-efiemu_mod-efiemu_symbols.lst: efiemu/symbols.c $(efiemu/symbols.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh efiemu > $@ || (rm -f $@; exit 1) + +video-efiemu_mod-efiemu_symbols.lst: efiemu/symbols.c $(efiemu/symbols.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh efiemu > $@ || (rm -f $@; exit 1) + +efiemu_mod-efiemu_loadcore32.o: efiemu/loadcore32.c $(efiemu/loadcore32.c_DEPENDENCIES) + $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -DGRUB_FILE=\"efiemu/loadcore32.c\" -MD -c -o $@ $< +-include efiemu_mod-efiemu_loadcore32.d + +clean-module-efiemu_mod-efiemu_loadcore32-extra.1: + rm -f cmd-efiemu_mod-efiemu_loadcore32.lst fs-efiemu_mod-efiemu_loadcore32.lst partmap-efiemu_mod-efiemu_loadcore32.lst handler-efiemu_mod-efiemu_loadcore32.lst parttool-efiemu_mod-efiemu_loadcore32.lst video-efiemu_mod-efiemu_loadcore32.lst terminal-efiemu_mod-efiemu_loadcore32.lst + +CLEAN_MODULE_TARGETS += clean-module-efiemu_mod-efiemu_loadcore32-extra.1 + +COMMANDFILES += cmd-efiemu_mod-efiemu_loadcore32.lst +FSFILES += fs-efiemu_mod-efiemu_loadcore32.lst +PARTTOOLFILES += parttool-efiemu_mod-efiemu_loadcore32.lst +PARTMAPFILES += partmap-efiemu_mod-efiemu_loadcore32.lst +HANDLERFILES += handler-efiemu_mod-efiemu_loadcore32.lst +TERMINALFILES += terminal-efiemu_mod-efiemu_loadcore32.lst +VIDEOFILES += video-efiemu_mod-efiemu_loadcore32.lst + +cmd-efiemu_mod-efiemu_loadcore32.lst: efiemu/loadcore32.c $(efiemu/loadcore32.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh efiemu > $@ || (rm -f $@; exit 1) + +fs-efiemu_mod-efiemu_loadcore32.lst: efiemu/loadcore32.c $(efiemu/loadcore32.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh efiemu > $@ || (rm -f $@; exit 1) + +parttool-efiemu_mod-efiemu_loadcore32.lst: efiemu/loadcore32.c $(efiemu/loadcore32.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh efiemu > $@ || (rm -f $@; exit 1) + +partmap-efiemu_mod-efiemu_loadcore32.lst: efiemu/loadcore32.c $(efiemu/loadcore32.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh efiemu > $@ || (rm -f $@; exit 1) + +handler-efiemu_mod-efiemu_loadcore32.lst: efiemu/loadcore32.c $(efiemu/loadcore32.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh efiemu > $@ || (rm -f $@; exit 1) + +terminal-efiemu_mod-efiemu_loadcore32.lst: efiemu/loadcore32.c $(efiemu/loadcore32.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh efiemu > $@ || (rm -f $@; exit 1) + +video-efiemu_mod-efiemu_loadcore32.lst: efiemu/loadcore32.c $(efiemu/loadcore32.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh efiemu > $@ || (rm -f $@; exit 1) + +efiemu_mod-efiemu_loadcore64.o: efiemu/loadcore64.c $(efiemu/loadcore64.c_DEPENDENCIES) + $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -DGRUB_FILE=\"efiemu/loadcore64.c\" -MD -c -o $@ $< +-include efiemu_mod-efiemu_loadcore64.d + +clean-module-efiemu_mod-efiemu_loadcore64-extra.1: + rm -f cmd-efiemu_mod-efiemu_loadcore64.lst fs-efiemu_mod-efiemu_loadcore64.lst partmap-efiemu_mod-efiemu_loadcore64.lst handler-efiemu_mod-efiemu_loadcore64.lst parttool-efiemu_mod-efiemu_loadcore64.lst video-efiemu_mod-efiemu_loadcore64.lst terminal-efiemu_mod-efiemu_loadcore64.lst + +CLEAN_MODULE_TARGETS += clean-module-efiemu_mod-efiemu_loadcore64-extra.1 + +COMMANDFILES += cmd-efiemu_mod-efiemu_loadcore64.lst +FSFILES += fs-efiemu_mod-efiemu_loadcore64.lst +PARTTOOLFILES += parttool-efiemu_mod-efiemu_loadcore64.lst +PARTMAPFILES += partmap-efiemu_mod-efiemu_loadcore64.lst +HANDLERFILES += handler-efiemu_mod-efiemu_loadcore64.lst +TERMINALFILES += terminal-efiemu_mod-efiemu_loadcore64.lst +VIDEOFILES += video-efiemu_mod-efiemu_loadcore64.lst + +cmd-efiemu_mod-efiemu_loadcore64.lst: efiemu/loadcore64.c $(efiemu/loadcore64.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh efiemu > $@ || (rm -f $@; exit 1) + +fs-efiemu_mod-efiemu_loadcore64.lst: efiemu/loadcore64.c $(efiemu/loadcore64.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh efiemu > $@ || (rm -f $@; exit 1) + +parttool-efiemu_mod-efiemu_loadcore64.lst: efiemu/loadcore64.c $(efiemu/loadcore64.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh efiemu > $@ || (rm -f $@; exit 1) + +partmap-efiemu_mod-efiemu_loadcore64.lst: efiemu/loadcore64.c $(efiemu/loadcore64.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh efiemu > $@ || (rm -f $@; exit 1) + +handler-efiemu_mod-efiemu_loadcore64.lst: efiemu/loadcore64.c $(efiemu/loadcore64.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh efiemu > $@ || (rm -f $@; exit 1) + +terminal-efiemu_mod-efiemu_loadcore64.lst: efiemu/loadcore64.c $(efiemu/loadcore64.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh efiemu > $@ || (rm -f $@; exit 1) + +video-efiemu_mod-efiemu_loadcore64.lst: efiemu/loadcore64.c $(efiemu/loadcore64.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh efiemu > $@ || (rm -f $@; exit 1) + +efiemu_mod-efiemu_prepare32.o: efiemu/prepare32.c $(efiemu/prepare32.c_DEPENDENCIES) + $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -DGRUB_FILE=\"efiemu/prepare32.c\" -MD -c -o $@ $< +-include efiemu_mod-efiemu_prepare32.d + +clean-module-efiemu_mod-efiemu_prepare32-extra.1: + rm -f cmd-efiemu_mod-efiemu_prepare32.lst fs-efiemu_mod-efiemu_prepare32.lst partmap-efiemu_mod-efiemu_prepare32.lst handler-efiemu_mod-efiemu_prepare32.lst parttool-efiemu_mod-efiemu_prepare32.lst video-efiemu_mod-efiemu_prepare32.lst terminal-efiemu_mod-efiemu_prepare32.lst + +CLEAN_MODULE_TARGETS += clean-module-efiemu_mod-efiemu_prepare32-extra.1 + +COMMANDFILES += cmd-efiemu_mod-efiemu_prepare32.lst +FSFILES += fs-efiemu_mod-efiemu_prepare32.lst +PARTTOOLFILES += parttool-efiemu_mod-efiemu_prepare32.lst +PARTMAPFILES += partmap-efiemu_mod-efiemu_prepare32.lst +HANDLERFILES += handler-efiemu_mod-efiemu_prepare32.lst +TERMINALFILES += terminal-efiemu_mod-efiemu_prepare32.lst +VIDEOFILES += video-efiemu_mod-efiemu_prepare32.lst + +cmd-efiemu_mod-efiemu_prepare32.lst: efiemu/prepare32.c $(efiemu/prepare32.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh efiemu > $@ || (rm -f $@; exit 1) + +fs-efiemu_mod-efiemu_prepare32.lst: efiemu/prepare32.c $(efiemu/prepare32.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh efiemu > $@ || (rm -f $@; exit 1) + +parttool-efiemu_mod-efiemu_prepare32.lst: efiemu/prepare32.c $(efiemu/prepare32.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh efiemu > $@ || (rm -f $@; exit 1) + +partmap-efiemu_mod-efiemu_prepare32.lst: efiemu/prepare32.c $(efiemu/prepare32.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh efiemu > $@ || (rm -f $@; exit 1) + +handler-efiemu_mod-efiemu_prepare32.lst: efiemu/prepare32.c $(efiemu/prepare32.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh efiemu > $@ || (rm -f $@; exit 1) + +terminal-efiemu_mod-efiemu_prepare32.lst: efiemu/prepare32.c $(efiemu/prepare32.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh efiemu > $@ || (rm -f $@; exit 1) + +video-efiemu_mod-efiemu_prepare32.lst: efiemu/prepare32.c $(efiemu/prepare32.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh efiemu > $@ || (rm -f $@; exit 1) + +efiemu_mod-efiemu_prepare64.o: efiemu/prepare64.c $(efiemu/prepare64.c_DEPENDENCIES) + $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -DGRUB_FILE=\"efiemu/prepare64.c\" -MD -c -o $@ $< +-include efiemu_mod-efiemu_prepare64.d + +clean-module-efiemu_mod-efiemu_prepare64-extra.1: + rm -f cmd-efiemu_mod-efiemu_prepare64.lst fs-efiemu_mod-efiemu_prepare64.lst partmap-efiemu_mod-efiemu_prepare64.lst handler-efiemu_mod-efiemu_prepare64.lst parttool-efiemu_mod-efiemu_prepare64.lst video-efiemu_mod-efiemu_prepare64.lst terminal-efiemu_mod-efiemu_prepare64.lst + +CLEAN_MODULE_TARGETS += clean-module-efiemu_mod-efiemu_prepare64-extra.1 + +COMMANDFILES += cmd-efiemu_mod-efiemu_prepare64.lst +FSFILES += fs-efiemu_mod-efiemu_prepare64.lst +PARTTOOLFILES += parttool-efiemu_mod-efiemu_prepare64.lst +PARTMAPFILES += partmap-efiemu_mod-efiemu_prepare64.lst +HANDLERFILES += handler-efiemu_mod-efiemu_prepare64.lst +TERMINALFILES += terminal-efiemu_mod-efiemu_prepare64.lst +VIDEOFILES += video-efiemu_mod-efiemu_prepare64.lst + +cmd-efiemu_mod-efiemu_prepare64.lst: efiemu/prepare64.c $(efiemu/prepare64.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh efiemu > $@ || (rm -f $@; exit 1) + +fs-efiemu_mod-efiemu_prepare64.lst: efiemu/prepare64.c $(efiemu/prepare64.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh efiemu > $@ || (rm -f $@; exit 1) + +parttool-efiemu_mod-efiemu_prepare64.lst: efiemu/prepare64.c $(efiemu/prepare64.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh efiemu > $@ || (rm -f $@; exit 1) + +partmap-efiemu_mod-efiemu_prepare64.lst: efiemu/prepare64.c $(efiemu/prepare64.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh efiemu > $@ || (rm -f $@; exit 1) + +handler-efiemu_mod-efiemu_prepare64.lst: efiemu/prepare64.c $(efiemu/prepare64.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh efiemu > $@ || (rm -f $@; exit 1) + +terminal-efiemu_mod-efiemu_prepare64.lst: efiemu/prepare64.c $(efiemu/prepare64.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh efiemu > $@ || (rm -f $@; exit 1) + +video-efiemu_mod-efiemu_prepare64.lst: efiemu/prepare64.c $(efiemu/prepare64.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh efiemu > $@ || (rm -f $@; exit 1) + +efiemu_mod-efiemu_pnvram.o: efiemu/pnvram.c $(efiemu/pnvram.c_DEPENDENCIES) + $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -DGRUB_FILE=\"efiemu/pnvram.c\" -MD -c -o $@ $< +-include efiemu_mod-efiemu_pnvram.d + +clean-module-efiemu_mod-efiemu_pnvram-extra.1: + rm -f cmd-efiemu_mod-efiemu_pnvram.lst fs-efiemu_mod-efiemu_pnvram.lst partmap-efiemu_mod-efiemu_pnvram.lst handler-efiemu_mod-efiemu_pnvram.lst parttool-efiemu_mod-efiemu_pnvram.lst video-efiemu_mod-efiemu_pnvram.lst terminal-efiemu_mod-efiemu_pnvram.lst + +CLEAN_MODULE_TARGETS += clean-module-efiemu_mod-efiemu_pnvram-extra.1 + +COMMANDFILES += cmd-efiemu_mod-efiemu_pnvram.lst +FSFILES += fs-efiemu_mod-efiemu_pnvram.lst +PARTTOOLFILES += parttool-efiemu_mod-efiemu_pnvram.lst +PARTMAPFILES += partmap-efiemu_mod-efiemu_pnvram.lst +HANDLERFILES += handler-efiemu_mod-efiemu_pnvram.lst +TERMINALFILES += terminal-efiemu_mod-efiemu_pnvram.lst +VIDEOFILES += video-efiemu_mod-efiemu_pnvram.lst + +cmd-efiemu_mod-efiemu_pnvram.lst: efiemu/pnvram.c $(efiemu/pnvram.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh efiemu > $@ || (rm -f $@; exit 1) + +fs-efiemu_mod-efiemu_pnvram.lst: efiemu/pnvram.c $(efiemu/pnvram.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh efiemu > $@ || (rm -f $@; exit 1) + +parttool-efiemu_mod-efiemu_pnvram.lst: efiemu/pnvram.c $(efiemu/pnvram.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh efiemu > $@ || (rm -f $@; exit 1) + +partmap-efiemu_mod-efiemu_pnvram.lst: efiemu/pnvram.c $(efiemu/pnvram.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh efiemu > $@ || (rm -f $@; exit 1) + +handler-efiemu_mod-efiemu_pnvram.lst: efiemu/pnvram.c $(efiemu/pnvram.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh efiemu > $@ || (rm -f $@; exit 1) + +terminal-efiemu_mod-efiemu_pnvram.lst: efiemu/pnvram.c $(efiemu/pnvram.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh efiemu > $@ || (rm -f $@; exit 1) + +video-efiemu_mod-efiemu_pnvram.lst: efiemu/pnvram.c $(efiemu/pnvram.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iefiemu -I$(srcdir)/efiemu $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh efiemu > $@ || (rm -f $@; exit 1) + +efiemu_mod-efiemu_i386_coredetect.o: efiemu/i386/coredetect.c $(efiemu/i386/coredetect.c_DEPENDENCIES) + $(TARGET_CC) -Iefiemu/i386 -I$(srcdir)/efiemu/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -DGRUB_FILE=\"efiemu/i386/coredetect.c\" -MD -c -o $@ $< +-include efiemu_mod-efiemu_i386_coredetect.d + +clean-module-efiemu_mod-efiemu_i386_coredetect-extra.1: + rm -f cmd-efiemu_mod-efiemu_i386_coredetect.lst fs-efiemu_mod-efiemu_i386_coredetect.lst partmap-efiemu_mod-efiemu_i386_coredetect.lst handler-efiemu_mod-efiemu_i386_coredetect.lst parttool-efiemu_mod-efiemu_i386_coredetect.lst video-efiemu_mod-efiemu_i386_coredetect.lst terminal-efiemu_mod-efiemu_i386_coredetect.lst + +CLEAN_MODULE_TARGETS += clean-module-efiemu_mod-efiemu_i386_coredetect-extra.1 + +COMMANDFILES += cmd-efiemu_mod-efiemu_i386_coredetect.lst +FSFILES += fs-efiemu_mod-efiemu_i386_coredetect.lst +PARTTOOLFILES += parttool-efiemu_mod-efiemu_i386_coredetect.lst +PARTMAPFILES += partmap-efiemu_mod-efiemu_i386_coredetect.lst +HANDLERFILES += handler-efiemu_mod-efiemu_i386_coredetect.lst +TERMINALFILES += terminal-efiemu_mod-efiemu_i386_coredetect.lst +VIDEOFILES += video-efiemu_mod-efiemu_i386_coredetect.lst + +cmd-efiemu_mod-efiemu_i386_coredetect.lst: efiemu/i386/coredetect.c $(efiemu/i386/coredetect.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iefiemu/i386 -I$(srcdir)/efiemu/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh efiemu > $@ || (rm -f $@; exit 1) + +fs-efiemu_mod-efiemu_i386_coredetect.lst: efiemu/i386/coredetect.c $(efiemu/i386/coredetect.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iefiemu/i386 -I$(srcdir)/efiemu/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh efiemu > $@ || (rm -f $@; exit 1) + +parttool-efiemu_mod-efiemu_i386_coredetect.lst: efiemu/i386/coredetect.c $(efiemu/i386/coredetect.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iefiemu/i386 -I$(srcdir)/efiemu/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh efiemu > $@ || (rm -f $@; exit 1) + +partmap-efiemu_mod-efiemu_i386_coredetect.lst: efiemu/i386/coredetect.c $(efiemu/i386/coredetect.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iefiemu/i386 -I$(srcdir)/efiemu/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh efiemu > $@ || (rm -f $@; exit 1) + +handler-efiemu_mod-efiemu_i386_coredetect.lst: efiemu/i386/coredetect.c $(efiemu/i386/coredetect.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iefiemu/i386 -I$(srcdir)/efiemu/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh efiemu > $@ || (rm -f $@; exit 1) + +terminal-efiemu_mod-efiemu_i386_coredetect.lst: efiemu/i386/coredetect.c $(efiemu/i386/coredetect.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iefiemu/i386 -I$(srcdir)/efiemu/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh efiemu > $@ || (rm -f $@; exit 1) + +video-efiemu_mod-efiemu_i386_coredetect.lst: efiemu/i386/coredetect.c $(efiemu/i386/coredetect.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iefiemu/i386 -I$(srcdir)/efiemu/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efiemu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh efiemu > $@ || (rm -f $@; exit 1) + +efiemu_mod_CFLAGS = $(COMMON_CFLAGS) +efiemu_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For acpi.mod. +acpi_mod_SOURCES = commands/acpi.c commands/i386/pc/acpi.c + +clean-module-acpi.mod.1: + rm -f acpi.mod mod-acpi.o mod-acpi.c pre-acpi.o acpi_mod-commands_acpi.o acpi_mod-commands_i386_pc_acpi.o und-acpi.lst + +CLEAN_MODULE_TARGETS += clean-module-acpi.mod.1 + +clean-module-acpi.mod-symbol.1: + rm -f def-acpi.lst + +CLEAN_MODULE_TARGETS += clean-module-acpi.mod-symbol.1 +DEFSYMFILES += def-acpi.lst +mostlyclean-module-acpi.mod.1: + rm -f acpi_mod-commands_acpi.d acpi_mod-commands_i386_pc_acpi.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-acpi.mod.1 +UNDSYMFILES += und-acpi.lst + +ifeq ($(TARGET_NO_MODULES), yes) +acpi.mod: pre-acpi.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(acpi_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-acpi.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +acpi.mod: pre-acpi.o mod-acpi.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(acpi_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-acpi.o mod-acpi.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +acpi.mod: pre-acpi.o mod-acpi.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(acpi_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-acpi.o mod-acpi.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-acpi.o: $(acpi_mod_DEPENDENCIES) acpi_mod-commands_acpi.o acpi_mod-commands_i386_pc_acpi.o + -rm -f $@ + $(TARGET_CC) $(acpi_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ acpi_mod-commands_acpi.o acpi_mod-commands_i386_pc_acpi.o + +mod-acpi.o: mod-acpi.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -DGRUB_FILE=\"mod-acpi.c\" -c -o $@ $< + +mod-acpi.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'acpi' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-acpi.lst: pre-acpi.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 acpi/' > $@ +else +def-acpi.lst: pre-acpi.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 acpi/' > $@ +endif + +und-acpi.lst: pre-acpi.o + echo 'acpi' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +acpi_mod-commands_acpi.o: commands/acpi.c $(commands/acpi.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -DGRUB_FILE=\"commands/acpi.c\" -MD -c -o $@ $< +-include acpi_mod-commands_acpi.d + +clean-module-acpi_mod-commands_acpi-extra.1: + rm -f cmd-acpi_mod-commands_acpi.lst fs-acpi_mod-commands_acpi.lst partmap-acpi_mod-commands_acpi.lst handler-acpi_mod-commands_acpi.lst parttool-acpi_mod-commands_acpi.lst video-acpi_mod-commands_acpi.lst terminal-acpi_mod-commands_acpi.lst + +CLEAN_MODULE_TARGETS += clean-module-acpi_mod-commands_acpi-extra.1 + +COMMANDFILES += cmd-acpi_mod-commands_acpi.lst +FSFILES += fs-acpi_mod-commands_acpi.lst +PARTTOOLFILES += parttool-acpi_mod-commands_acpi.lst +PARTMAPFILES += partmap-acpi_mod-commands_acpi.lst +HANDLERFILES += handler-acpi_mod-commands_acpi.lst +TERMINALFILES += terminal-acpi_mod-commands_acpi.lst +VIDEOFILES += video-acpi_mod-commands_acpi.lst + +cmd-acpi_mod-commands_acpi.lst: commands/acpi.c $(commands/acpi.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh acpi > $@ || (rm -f $@; exit 1) + +fs-acpi_mod-commands_acpi.lst: commands/acpi.c $(commands/acpi.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh acpi > $@ || (rm -f $@; exit 1) + +parttool-acpi_mod-commands_acpi.lst: commands/acpi.c $(commands/acpi.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh acpi > $@ || (rm -f $@; exit 1) + +partmap-acpi_mod-commands_acpi.lst: commands/acpi.c $(commands/acpi.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh acpi > $@ || (rm -f $@; exit 1) + +handler-acpi_mod-commands_acpi.lst: commands/acpi.c $(commands/acpi.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh acpi > $@ || (rm -f $@; exit 1) + +terminal-acpi_mod-commands_acpi.lst: commands/acpi.c $(commands/acpi.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh acpi > $@ || (rm -f $@; exit 1) + +video-acpi_mod-commands_acpi.lst: commands/acpi.c $(commands/acpi.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh acpi > $@ || (rm -f $@; exit 1) + +acpi_mod-commands_i386_pc_acpi.o: commands/i386/pc/acpi.c $(commands/i386/pc/acpi.c_DEPENDENCIES) + $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -DGRUB_FILE=\"commands/i386/pc/acpi.c\" -MD -c -o $@ $< +-include acpi_mod-commands_i386_pc_acpi.d + +clean-module-acpi_mod-commands_i386_pc_acpi-extra.1: + rm -f cmd-acpi_mod-commands_i386_pc_acpi.lst fs-acpi_mod-commands_i386_pc_acpi.lst partmap-acpi_mod-commands_i386_pc_acpi.lst handler-acpi_mod-commands_i386_pc_acpi.lst parttool-acpi_mod-commands_i386_pc_acpi.lst video-acpi_mod-commands_i386_pc_acpi.lst terminal-acpi_mod-commands_i386_pc_acpi.lst + +CLEAN_MODULE_TARGETS += clean-module-acpi_mod-commands_i386_pc_acpi-extra.1 + +COMMANDFILES += cmd-acpi_mod-commands_i386_pc_acpi.lst +FSFILES += fs-acpi_mod-commands_i386_pc_acpi.lst +PARTTOOLFILES += parttool-acpi_mod-commands_i386_pc_acpi.lst +PARTMAPFILES += partmap-acpi_mod-commands_i386_pc_acpi.lst +HANDLERFILES += handler-acpi_mod-commands_i386_pc_acpi.lst +TERMINALFILES += terminal-acpi_mod-commands_i386_pc_acpi.lst +VIDEOFILES += video-acpi_mod-commands_i386_pc_acpi.lst + +cmd-acpi_mod-commands_i386_pc_acpi.lst: commands/i386/pc/acpi.c $(commands/i386/pc/acpi.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh acpi > $@ || (rm -f $@; exit 1) + +fs-acpi_mod-commands_i386_pc_acpi.lst: commands/i386/pc/acpi.c $(commands/i386/pc/acpi.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh acpi > $@ || (rm -f $@; exit 1) + +parttool-acpi_mod-commands_i386_pc_acpi.lst: commands/i386/pc/acpi.c $(commands/i386/pc/acpi.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh acpi > $@ || (rm -f $@; exit 1) + +partmap-acpi_mod-commands_i386_pc_acpi.lst: commands/i386/pc/acpi.c $(commands/i386/pc/acpi.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh acpi > $@ || (rm -f $@; exit 1) + +handler-acpi_mod-commands_i386_pc_acpi.lst: commands/i386/pc/acpi.c $(commands/i386/pc/acpi.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh acpi > $@ || (rm -f $@; exit 1) + +terminal-acpi_mod-commands_i386_pc_acpi.lst: commands/i386/pc/acpi.c $(commands/i386/pc/acpi.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh acpi > $@ || (rm -f $@; exit 1) + +video-acpi_mod-commands_i386_pc_acpi.lst: commands/i386/pc/acpi.c $(commands/i386/pc/acpi.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh acpi > $@ || (rm -f $@; exit 1) + +acpi_mod_CFLAGS = $(COMMON_CFLAGS) +acpi_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For mmap.mod. +mmap_mod_SOURCES = mmap/mmap.c mmap/i386/uppermem.c mmap/i386/mmap.c \ + mmap/i386/pc/mmap.c mmap/i386/pc/mmap_helper.S + +clean-module-mmap.mod.1: + rm -f mmap.mod mod-mmap.o mod-mmap.c pre-mmap.o mmap_mod-mmap_mmap.o mmap_mod-mmap_i386_uppermem.o mmap_mod-mmap_i386_mmap.o mmap_mod-mmap_i386_pc_mmap.o mmap_mod-mmap_i386_pc_mmap_helper.o und-mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap.mod.1 + +clean-module-mmap.mod-symbol.1: + rm -f def-mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap.mod-symbol.1 +DEFSYMFILES += def-mmap.lst +mostlyclean-module-mmap.mod.1: + rm -f mmap_mod-mmap_mmap.d mmap_mod-mmap_i386_uppermem.d mmap_mod-mmap_i386_mmap.d mmap_mod-mmap_i386_pc_mmap.d mmap_mod-mmap_i386_pc_mmap_helper.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-mmap.mod.1 +UNDSYMFILES += und-mmap.lst + +ifeq ($(TARGET_NO_MODULES), yes) +mmap.mod: pre-mmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-mmap.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +mmap.mod: pre-mmap.o mod-mmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-mmap.o mod-mmap.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +mmap.mod: pre-mmap.o mod-mmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-mmap.o mod-mmap.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-mmap.o: $(mmap_mod_DEPENDENCIES) mmap_mod-mmap_mmap.o mmap_mod-mmap_i386_uppermem.o mmap_mod-mmap_i386_mmap.o mmap_mod-mmap_i386_pc_mmap.o mmap_mod-mmap_i386_pc_mmap_helper.o + -rm -f $@ + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ mmap_mod-mmap_mmap.o mmap_mod-mmap_i386_uppermem.o mmap_mod-mmap_i386_mmap.o mmap_mod-mmap_i386_pc_mmap.o mmap_mod-mmap_i386_pc_mmap_helper.o + +mod-mmap.o: mod-mmap.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mod-mmap.c\" -c -o $@ $< + +mod-mmap.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'mmap' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-mmap.lst: pre-mmap.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 mmap/' > $@ +else +def-mmap.lst: pre-mmap.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 mmap/' > $@ +endif + +und-mmap.lst: pre-mmap.o + echo 'mmap' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +mmap_mod-mmap_mmap.o: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) + $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mmap/mmap.c\" -MD -c -o $@ $< +-include mmap_mod-mmap_mmap.d + +clean-module-mmap_mod-mmap_mmap-extra.1: + rm -f cmd-mmap_mod-mmap_mmap.lst fs-mmap_mod-mmap_mmap.lst partmap-mmap_mod-mmap_mmap.lst handler-mmap_mod-mmap_mmap.lst parttool-mmap_mod-mmap_mmap.lst video-mmap_mod-mmap_mmap.lst terminal-mmap_mod-mmap_mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap_mod-mmap_mmap-extra.1 + +COMMANDFILES += cmd-mmap_mod-mmap_mmap.lst +FSFILES += fs-mmap_mod-mmap_mmap.lst +PARTTOOLFILES += parttool-mmap_mod-mmap_mmap.lst +PARTMAPFILES += partmap-mmap_mod-mmap_mmap.lst +HANDLERFILES += handler-mmap_mod-mmap_mmap.lst +TERMINALFILES += terminal-mmap_mod-mmap_mmap.lst +VIDEOFILES += video-mmap_mod-mmap_mmap.lst + +cmd-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh mmap > $@ || (rm -f $@; exit 1) + +fs-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh mmap > $@ || (rm -f $@; exit 1) + +parttool-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh mmap > $@ || (rm -f $@; exit 1) + +partmap-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh mmap > $@ || (rm -f $@; exit 1) + +handler-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh mmap > $@ || (rm -f $@; exit 1) + +terminal-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh mmap > $@ || (rm -f $@; exit 1) + +video-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh mmap > $@ || (rm -f $@; exit 1) + +mmap_mod-mmap_i386_uppermem.o: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) + $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mmap/i386/uppermem.c\" -MD -c -o $@ $< +-include mmap_mod-mmap_i386_uppermem.d + +clean-module-mmap_mod-mmap_i386_uppermem-extra.1: + rm -f cmd-mmap_mod-mmap_i386_uppermem.lst fs-mmap_mod-mmap_i386_uppermem.lst partmap-mmap_mod-mmap_i386_uppermem.lst handler-mmap_mod-mmap_i386_uppermem.lst parttool-mmap_mod-mmap_i386_uppermem.lst video-mmap_mod-mmap_i386_uppermem.lst terminal-mmap_mod-mmap_i386_uppermem.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap_mod-mmap_i386_uppermem-extra.1 + +COMMANDFILES += cmd-mmap_mod-mmap_i386_uppermem.lst +FSFILES += fs-mmap_mod-mmap_i386_uppermem.lst +PARTTOOLFILES += parttool-mmap_mod-mmap_i386_uppermem.lst +PARTMAPFILES += partmap-mmap_mod-mmap_i386_uppermem.lst +HANDLERFILES += handler-mmap_mod-mmap_i386_uppermem.lst +TERMINALFILES += terminal-mmap_mod-mmap_i386_uppermem.lst +VIDEOFILES += video-mmap_mod-mmap_i386_uppermem.lst + +cmd-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh mmap > $@ || (rm -f $@; exit 1) + +fs-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh mmap > $@ || (rm -f $@; exit 1) + +parttool-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh mmap > $@ || (rm -f $@; exit 1) + +partmap-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh mmap > $@ || (rm -f $@; exit 1) + +handler-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh mmap > $@ || (rm -f $@; exit 1) + +terminal-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh mmap > $@ || (rm -f $@; exit 1) + +video-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh mmap > $@ || (rm -f $@; exit 1) + +mmap_mod-mmap_i386_mmap.o: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) + $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mmap/i386/mmap.c\" -MD -c -o $@ $< +-include mmap_mod-mmap_i386_mmap.d + +clean-module-mmap_mod-mmap_i386_mmap-extra.1: + rm -f cmd-mmap_mod-mmap_i386_mmap.lst fs-mmap_mod-mmap_i386_mmap.lst partmap-mmap_mod-mmap_i386_mmap.lst handler-mmap_mod-mmap_i386_mmap.lst parttool-mmap_mod-mmap_i386_mmap.lst video-mmap_mod-mmap_i386_mmap.lst terminal-mmap_mod-mmap_i386_mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap_mod-mmap_i386_mmap-extra.1 + +COMMANDFILES += cmd-mmap_mod-mmap_i386_mmap.lst +FSFILES += fs-mmap_mod-mmap_i386_mmap.lst +PARTTOOLFILES += parttool-mmap_mod-mmap_i386_mmap.lst +PARTMAPFILES += partmap-mmap_mod-mmap_i386_mmap.lst +HANDLERFILES += handler-mmap_mod-mmap_i386_mmap.lst +TERMINALFILES += terminal-mmap_mod-mmap_i386_mmap.lst +VIDEOFILES += video-mmap_mod-mmap_i386_mmap.lst + +cmd-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh mmap > $@ || (rm -f $@; exit 1) + +fs-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh mmap > $@ || (rm -f $@; exit 1) + +parttool-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh mmap > $@ || (rm -f $@; exit 1) + +partmap-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh mmap > $@ || (rm -f $@; exit 1) + +handler-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh mmap > $@ || (rm -f $@; exit 1) + +terminal-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh mmap > $@ || (rm -f $@; exit 1) + +video-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh mmap > $@ || (rm -f $@; exit 1) + +mmap_mod-mmap_i386_pc_mmap.o: mmap/i386/pc/mmap.c $(mmap/i386/pc/mmap.c_DEPENDENCIES) + $(TARGET_CC) -Immap/i386/pc -I$(srcdir)/mmap/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mmap/i386/pc/mmap.c\" -MD -c -o $@ $< +-include mmap_mod-mmap_i386_pc_mmap.d + +clean-module-mmap_mod-mmap_i386_pc_mmap-extra.1: + rm -f cmd-mmap_mod-mmap_i386_pc_mmap.lst fs-mmap_mod-mmap_i386_pc_mmap.lst partmap-mmap_mod-mmap_i386_pc_mmap.lst handler-mmap_mod-mmap_i386_pc_mmap.lst parttool-mmap_mod-mmap_i386_pc_mmap.lst video-mmap_mod-mmap_i386_pc_mmap.lst terminal-mmap_mod-mmap_i386_pc_mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap_mod-mmap_i386_pc_mmap-extra.1 + +COMMANDFILES += cmd-mmap_mod-mmap_i386_pc_mmap.lst +FSFILES += fs-mmap_mod-mmap_i386_pc_mmap.lst +PARTTOOLFILES += parttool-mmap_mod-mmap_i386_pc_mmap.lst +PARTMAPFILES += partmap-mmap_mod-mmap_i386_pc_mmap.lst +HANDLERFILES += handler-mmap_mod-mmap_i386_pc_mmap.lst +TERMINALFILES += terminal-mmap_mod-mmap_i386_pc_mmap.lst +VIDEOFILES += video-mmap_mod-mmap_i386_pc_mmap.lst + +cmd-mmap_mod-mmap_i386_pc_mmap.lst: mmap/i386/pc/mmap.c $(mmap/i386/pc/mmap.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Immap/i386/pc -I$(srcdir)/mmap/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh mmap > $@ || (rm -f $@; exit 1) + +fs-mmap_mod-mmap_i386_pc_mmap.lst: mmap/i386/pc/mmap.c $(mmap/i386/pc/mmap.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Immap/i386/pc -I$(srcdir)/mmap/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh mmap > $@ || (rm -f $@; exit 1) + +parttool-mmap_mod-mmap_i386_pc_mmap.lst: mmap/i386/pc/mmap.c $(mmap/i386/pc/mmap.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Immap/i386/pc -I$(srcdir)/mmap/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh mmap > $@ || (rm -f $@; exit 1) + +partmap-mmap_mod-mmap_i386_pc_mmap.lst: mmap/i386/pc/mmap.c $(mmap/i386/pc/mmap.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Immap/i386/pc -I$(srcdir)/mmap/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh mmap > $@ || (rm -f $@; exit 1) + +handler-mmap_mod-mmap_i386_pc_mmap.lst: mmap/i386/pc/mmap.c $(mmap/i386/pc/mmap.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Immap/i386/pc -I$(srcdir)/mmap/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh mmap > $@ || (rm -f $@; exit 1) + +terminal-mmap_mod-mmap_i386_pc_mmap.lst: mmap/i386/pc/mmap.c $(mmap/i386/pc/mmap.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Immap/i386/pc -I$(srcdir)/mmap/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh mmap > $@ || (rm -f $@; exit 1) + +video-mmap_mod-mmap_i386_pc_mmap.lst: mmap/i386/pc/mmap.c $(mmap/i386/pc/mmap.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Immap/i386/pc -I$(srcdir)/mmap/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh mmap > $@ || (rm -f $@; exit 1) + +mmap_mod-mmap_i386_pc_mmap_helper.o: mmap/i386/pc/mmap_helper.S $(mmap/i386/pc/mmap_helper.S_DEPENDENCIES) + $(TARGET_CC) -Immap/i386/pc -I$(srcdir)/mmap/i386/pc $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(mmap_mod_ASFLAGS) -DGRUB_FILE=\"mmap/i386/pc/mmap_helper.S\" -MD -c -o $@ $< +-include mmap_mod-mmap_i386_pc_mmap_helper.d + +clean-module-mmap_mod-mmap_i386_pc_mmap_helper-extra.1: + rm -f cmd-mmap_mod-mmap_i386_pc_mmap_helper.lst fs-mmap_mod-mmap_i386_pc_mmap_helper.lst partmap-mmap_mod-mmap_i386_pc_mmap_helper.lst handler-mmap_mod-mmap_i386_pc_mmap_helper.lst parttool-mmap_mod-mmap_i386_pc_mmap_helper.lst video-mmap_mod-mmap_i386_pc_mmap_helper.lst terminal-mmap_mod-mmap_i386_pc_mmap_helper.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap_mod-mmap_i386_pc_mmap_helper-extra.1 + +COMMANDFILES += cmd-mmap_mod-mmap_i386_pc_mmap_helper.lst +FSFILES += fs-mmap_mod-mmap_i386_pc_mmap_helper.lst +PARTTOOLFILES += parttool-mmap_mod-mmap_i386_pc_mmap_helper.lst +PARTMAPFILES += partmap-mmap_mod-mmap_i386_pc_mmap_helper.lst +HANDLERFILES += handler-mmap_mod-mmap_i386_pc_mmap_helper.lst +TERMINALFILES += terminal-mmap_mod-mmap_i386_pc_mmap_helper.lst +VIDEOFILES += video-mmap_mod-mmap_i386_pc_mmap_helper.lst + +cmd-mmap_mod-mmap_i386_pc_mmap_helper.lst: mmap/i386/pc/mmap_helper.S $(mmap/i386/pc/mmap_helper.S_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Immap/i386/pc -I$(srcdir)/mmap/i386/pc $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(mmap_mod_ASFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh mmap > $@ || (rm -f $@; exit 1) + +fs-mmap_mod-mmap_i386_pc_mmap_helper.lst: mmap/i386/pc/mmap_helper.S $(mmap/i386/pc/mmap_helper.S_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Immap/i386/pc -I$(srcdir)/mmap/i386/pc $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(mmap_mod_ASFLAGS) -E $< | sh $(srcdir)/genfslist.sh mmap > $@ || (rm -f $@; exit 1) + +parttool-mmap_mod-mmap_i386_pc_mmap_helper.lst: mmap/i386/pc/mmap_helper.S $(mmap/i386/pc/mmap_helper.S_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Immap/i386/pc -I$(srcdir)/mmap/i386/pc $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(mmap_mod_ASFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh mmap > $@ || (rm -f $@; exit 1) + +partmap-mmap_mod-mmap_i386_pc_mmap_helper.lst: mmap/i386/pc/mmap_helper.S $(mmap/i386/pc/mmap_helper.S_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Immap/i386/pc -I$(srcdir)/mmap/i386/pc $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(mmap_mod_ASFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh mmap > $@ || (rm -f $@; exit 1) + +handler-mmap_mod-mmap_i386_pc_mmap_helper.lst: mmap/i386/pc/mmap_helper.S $(mmap/i386/pc/mmap_helper.S_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Immap/i386/pc -I$(srcdir)/mmap/i386/pc $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(mmap_mod_ASFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh mmap > $@ || (rm -f $@; exit 1) + +terminal-mmap_mod-mmap_i386_pc_mmap_helper.lst: mmap/i386/pc/mmap_helper.S $(mmap/i386/pc/mmap_helper.S_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Immap/i386/pc -I$(srcdir)/mmap/i386/pc $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(mmap_mod_ASFLAGS) -E $< | sh $(srcdir)/genterminallist.sh mmap > $@ || (rm -f $@; exit 1) + +video-mmap_mod-mmap_i386_pc_mmap_helper.lst: mmap/i386/pc/mmap_helper.S $(mmap/i386/pc/mmap_helper.S_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Immap/i386/pc -I$(srcdir)/mmap/i386/pc $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(mmap_mod_ASFLAGS) -E $< | sh $(srcdir)/genvideolist.sh mmap > $@ || (rm -f $@; exit 1) + +mmap_mod_CFLAGS = $(COMMON_CFLAGS) +mmap_mod_LDFLAGS = $(COMMON_LDFLAGS) +mmap_mod_ASFLAGS = $(COMMON_ASFLAGS) + +# For biosdisk.mod. +biosdisk_mod_SOURCES = disk/i386/pc/biosdisk.c + +clean-module-biosdisk.mod.1: + rm -f biosdisk.mod mod-biosdisk.o mod-biosdisk.c pre-biosdisk.o biosdisk_mod-disk_i386_pc_biosdisk.o und-biosdisk.lst + +CLEAN_MODULE_TARGETS += clean-module-biosdisk.mod.1 + +clean-module-biosdisk.mod-symbol.1: + rm -f def-biosdisk.lst + +CLEAN_MODULE_TARGETS += clean-module-biosdisk.mod-symbol.1 +DEFSYMFILES += def-biosdisk.lst +mostlyclean-module-biosdisk.mod.1: + rm -f biosdisk_mod-disk_i386_pc_biosdisk.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-biosdisk.mod.1 +UNDSYMFILES += und-biosdisk.lst + +ifeq ($(TARGET_NO_MODULES), yes) +biosdisk.mod: pre-biosdisk.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(biosdisk_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-biosdisk.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +biosdisk.mod: pre-biosdisk.o mod-biosdisk.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(biosdisk_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-biosdisk.o mod-biosdisk.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +biosdisk.mod: pre-biosdisk.o mod-biosdisk.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(biosdisk_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-biosdisk.o mod-biosdisk.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-biosdisk.o: $(biosdisk_mod_DEPENDENCIES) biosdisk_mod-disk_i386_pc_biosdisk.o + -rm -f $@ + $(TARGET_CC) $(biosdisk_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ biosdisk_mod-disk_i386_pc_biosdisk.o + +mod-biosdisk.o: mod-biosdisk.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(biosdisk_mod_CFLAGS) -DGRUB_FILE=\"mod-biosdisk.c\" -c -o $@ $< + +mod-biosdisk.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'biosdisk' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-biosdisk.lst: pre-biosdisk.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 biosdisk/' > $@ +else +def-biosdisk.lst: pre-biosdisk.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 biosdisk/' > $@ +endif + +und-biosdisk.lst: pre-biosdisk.o + echo 'biosdisk' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +biosdisk_mod-disk_i386_pc_biosdisk.o: disk/i386/pc/biosdisk.c $(disk/i386/pc/biosdisk.c_DEPENDENCIES) + $(TARGET_CC) -Idisk/i386/pc -I$(srcdir)/disk/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(biosdisk_mod_CFLAGS) -DGRUB_FILE=\"disk/i386/pc/biosdisk.c\" -MD -c -o $@ $< +-include biosdisk_mod-disk_i386_pc_biosdisk.d + +clean-module-biosdisk_mod-disk_i386_pc_biosdisk-extra.1: + rm -f cmd-biosdisk_mod-disk_i386_pc_biosdisk.lst fs-biosdisk_mod-disk_i386_pc_biosdisk.lst partmap-biosdisk_mod-disk_i386_pc_biosdisk.lst handler-biosdisk_mod-disk_i386_pc_biosdisk.lst parttool-biosdisk_mod-disk_i386_pc_biosdisk.lst video-biosdisk_mod-disk_i386_pc_biosdisk.lst terminal-biosdisk_mod-disk_i386_pc_biosdisk.lst + +CLEAN_MODULE_TARGETS += clean-module-biosdisk_mod-disk_i386_pc_biosdisk-extra.1 + +COMMANDFILES += cmd-biosdisk_mod-disk_i386_pc_biosdisk.lst +FSFILES += fs-biosdisk_mod-disk_i386_pc_biosdisk.lst +PARTTOOLFILES += parttool-biosdisk_mod-disk_i386_pc_biosdisk.lst +PARTMAPFILES += partmap-biosdisk_mod-disk_i386_pc_biosdisk.lst +HANDLERFILES += handler-biosdisk_mod-disk_i386_pc_biosdisk.lst +TERMINALFILES += terminal-biosdisk_mod-disk_i386_pc_biosdisk.lst +VIDEOFILES += video-biosdisk_mod-disk_i386_pc_biosdisk.lst + +cmd-biosdisk_mod-disk_i386_pc_biosdisk.lst: disk/i386/pc/biosdisk.c $(disk/i386/pc/biosdisk.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Idisk/i386/pc -I$(srcdir)/disk/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(biosdisk_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh biosdisk > $@ || (rm -f $@; exit 1) + +fs-biosdisk_mod-disk_i386_pc_biosdisk.lst: disk/i386/pc/biosdisk.c $(disk/i386/pc/biosdisk.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Idisk/i386/pc -I$(srcdir)/disk/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(biosdisk_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh biosdisk > $@ || (rm -f $@; exit 1) + +parttool-biosdisk_mod-disk_i386_pc_biosdisk.lst: disk/i386/pc/biosdisk.c $(disk/i386/pc/biosdisk.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Idisk/i386/pc -I$(srcdir)/disk/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(biosdisk_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh biosdisk > $@ || (rm -f $@; exit 1) + +partmap-biosdisk_mod-disk_i386_pc_biosdisk.lst: disk/i386/pc/biosdisk.c $(disk/i386/pc/biosdisk.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Idisk/i386/pc -I$(srcdir)/disk/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(biosdisk_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh biosdisk > $@ || (rm -f $@; exit 1) + +handler-biosdisk_mod-disk_i386_pc_biosdisk.lst: disk/i386/pc/biosdisk.c $(disk/i386/pc/biosdisk.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Idisk/i386/pc -I$(srcdir)/disk/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(biosdisk_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh biosdisk > $@ || (rm -f $@; exit 1) + +terminal-biosdisk_mod-disk_i386_pc_biosdisk.lst: disk/i386/pc/biosdisk.c $(disk/i386/pc/biosdisk.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Idisk/i386/pc -I$(srcdir)/disk/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(biosdisk_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh biosdisk > $@ || (rm -f $@; exit 1) + +video-biosdisk_mod-disk_i386_pc_biosdisk.lst: disk/i386/pc/biosdisk.c $(disk/i386/pc/biosdisk.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Idisk/i386/pc -I$(srcdir)/disk/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(biosdisk_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh biosdisk > $@ || (rm -f $@; exit 1) + +biosdisk_mod_CFLAGS = $(COMMON_CFLAGS) +biosdisk_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For chain.mod. +chain_mod_SOURCES = loader/i386/pc/chainloader.c + +clean-module-chain.mod.1: + rm -f chain.mod mod-chain.o mod-chain.c pre-chain.o chain_mod-loader_i386_pc_chainloader.o und-chain.lst + +CLEAN_MODULE_TARGETS += clean-module-chain.mod.1 + +clean-module-chain.mod-symbol.1: + rm -f def-chain.lst + +CLEAN_MODULE_TARGETS += clean-module-chain.mod-symbol.1 +DEFSYMFILES += def-chain.lst +mostlyclean-module-chain.mod.1: + rm -f chain_mod-loader_i386_pc_chainloader.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-chain.mod.1 +UNDSYMFILES += und-chain.lst + +ifeq ($(TARGET_NO_MODULES), yes) +chain.mod: pre-chain.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(chain_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-chain.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +chain.mod: pre-chain.o mod-chain.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(chain_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-chain.o mod-chain.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +chain.mod: pre-chain.o mod-chain.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(chain_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-chain.o mod-chain.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-chain.o: $(chain_mod_DEPENDENCIES) chain_mod-loader_i386_pc_chainloader.o + -rm -f $@ + $(TARGET_CC) $(chain_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ chain_mod-loader_i386_pc_chainloader.o + +mod-chain.o: mod-chain.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(chain_mod_CFLAGS) -DGRUB_FILE=\"mod-chain.c\" -c -o $@ $< + +mod-chain.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'chain' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-chain.lst: pre-chain.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 chain/' > $@ +else +def-chain.lst: pre-chain.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 chain/' > $@ +endif + +und-chain.lst: pre-chain.o + echo 'chain' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +chain_mod-loader_i386_pc_chainloader.o: loader/i386/pc/chainloader.c $(loader/i386/pc/chainloader.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(chain_mod_CFLAGS) -DGRUB_FILE=\"loader/i386/pc/chainloader.c\" -MD -c -o $@ $< +-include chain_mod-loader_i386_pc_chainloader.d + +clean-module-chain_mod-loader_i386_pc_chainloader-extra.1: + rm -f cmd-chain_mod-loader_i386_pc_chainloader.lst fs-chain_mod-loader_i386_pc_chainloader.lst partmap-chain_mod-loader_i386_pc_chainloader.lst handler-chain_mod-loader_i386_pc_chainloader.lst parttool-chain_mod-loader_i386_pc_chainloader.lst video-chain_mod-loader_i386_pc_chainloader.lst terminal-chain_mod-loader_i386_pc_chainloader.lst + +CLEAN_MODULE_TARGETS += clean-module-chain_mod-loader_i386_pc_chainloader-extra.1 + +COMMANDFILES += cmd-chain_mod-loader_i386_pc_chainloader.lst +FSFILES += fs-chain_mod-loader_i386_pc_chainloader.lst +PARTTOOLFILES += parttool-chain_mod-loader_i386_pc_chainloader.lst +PARTMAPFILES += partmap-chain_mod-loader_i386_pc_chainloader.lst +HANDLERFILES += handler-chain_mod-loader_i386_pc_chainloader.lst +TERMINALFILES += terminal-chain_mod-loader_i386_pc_chainloader.lst +VIDEOFILES += video-chain_mod-loader_i386_pc_chainloader.lst + +cmd-chain_mod-loader_i386_pc_chainloader.lst: loader/i386/pc/chainloader.c $(loader/i386/pc/chainloader.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(chain_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh chain > $@ || (rm -f $@; exit 1) + +fs-chain_mod-loader_i386_pc_chainloader.lst: loader/i386/pc/chainloader.c $(loader/i386/pc/chainloader.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(chain_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh chain > $@ || (rm -f $@; exit 1) + +parttool-chain_mod-loader_i386_pc_chainloader.lst: loader/i386/pc/chainloader.c $(loader/i386/pc/chainloader.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(chain_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh chain > $@ || (rm -f $@; exit 1) + +partmap-chain_mod-loader_i386_pc_chainloader.lst: loader/i386/pc/chainloader.c $(loader/i386/pc/chainloader.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(chain_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh chain > $@ || (rm -f $@; exit 1) + +handler-chain_mod-loader_i386_pc_chainloader.lst: loader/i386/pc/chainloader.c $(loader/i386/pc/chainloader.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(chain_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh chain > $@ || (rm -f $@; exit 1) + +terminal-chain_mod-loader_i386_pc_chainloader.lst: loader/i386/pc/chainloader.c $(loader/i386/pc/chainloader.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(chain_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh chain > $@ || (rm -f $@; exit 1) + +video-chain_mod-loader_i386_pc_chainloader.lst: loader/i386/pc/chainloader.c $(loader/i386/pc/chainloader.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(chain_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh chain > $@ || (rm -f $@; exit 1) + +chain_mod_CFLAGS = $(COMMON_CFLAGS) +chain_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += linux16.mod +linux16_mod_SOURCES = loader/i386/pc/linux.c + +clean-module-linux16.mod.1: + rm -f linux16.mod mod-linux16.o mod-linux16.c pre-linux16.o linux16_mod-loader_i386_pc_linux.o und-linux16.lst + +CLEAN_MODULE_TARGETS += clean-module-linux16.mod.1 + +clean-module-linux16.mod-symbol.1: + rm -f def-linux16.lst + +CLEAN_MODULE_TARGETS += clean-module-linux16.mod-symbol.1 +DEFSYMFILES += def-linux16.lst +mostlyclean-module-linux16.mod.1: + rm -f linux16_mod-loader_i386_pc_linux.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-linux16.mod.1 +UNDSYMFILES += und-linux16.lst + +ifeq ($(TARGET_NO_MODULES), yes) +linux16.mod: pre-linux16.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(linux16_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-linux16.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +linux16.mod: pre-linux16.o mod-linux16.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(linux16_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-linux16.o mod-linux16.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +linux16.mod: pre-linux16.o mod-linux16.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(linux16_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-linux16.o mod-linux16.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-linux16.o: $(linux16_mod_DEPENDENCIES) linux16_mod-loader_i386_pc_linux.o + -rm -f $@ + $(TARGET_CC) $(linux16_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ linux16_mod-loader_i386_pc_linux.o + +mod-linux16.o: mod-linux16.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux16_mod_CFLAGS) -DGRUB_FILE=\"mod-linux16.c\" -c -o $@ $< + +mod-linux16.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'linux16' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-linux16.lst: pre-linux16.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 linux16/' > $@ +else +def-linux16.lst: pre-linux16.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 linux16/' > $@ +endif + +und-linux16.lst: pre-linux16.o + echo 'linux16' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +linux16_mod-loader_i386_pc_linux.o: loader/i386/pc/linux.c $(loader/i386/pc/linux.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux16_mod_CFLAGS) -DGRUB_FILE=\"loader/i386/pc/linux.c\" -MD -c -o $@ $< +-include linux16_mod-loader_i386_pc_linux.d + +clean-module-linux16_mod-loader_i386_pc_linux-extra.1: + rm -f cmd-linux16_mod-loader_i386_pc_linux.lst fs-linux16_mod-loader_i386_pc_linux.lst partmap-linux16_mod-loader_i386_pc_linux.lst handler-linux16_mod-loader_i386_pc_linux.lst parttool-linux16_mod-loader_i386_pc_linux.lst video-linux16_mod-loader_i386_pc_linux.lst terminal-linux16_mod-loader_i386_pc_linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux16_mod-loader_i386_pc_linux-extra.1 + +COMMANDFILES += cmd-linux16_mod-loader_i386_pc_linux.lst +FSFILES += fs-linux16_mod-loader_i386_pc_linux.lst +PARTTOOLFILES += parttool-linux16_mod-loader_i386_pc_linux.lst +PARTMAPFILES += partmap-linux16_mod-loader_i386_pc_linux.lst +HANDLERFILES += handler-linux16_mod-loader_i386_pc_linux.lst +TERMINALFILES += terminal-linux16_mod-loader_i386_pc_linux.lst +VIDEOFILES += video-linux16_mod-loader_i386_pc_linux.lst + +cmd-linux16_mod-loader_i386_pc_linux.lst: loader/i386/pc/linux.c $(loader/i386/pc/linux.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux16_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh linux16 > $@ || (rm -f $@; exit 1) + +fs-linux16_mod-loader_i386_pc_linux.lst: loader/i386/pc/linux.c $(loader/i386/pc/linux.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux16_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh linux16 > $@ || (rm -f $@; exit 1) + +parttool-linux16_mod-loader_i386_pc_linux.lst: loader/i386/pc/linux.c $(loader/i386/pc/linux.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux16_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh linux16 > $@ || (rm -f $@; exit 1) + +partmap-linux16_mod-loader_i386_pc_linux.lst: loader/i386/pc/linux.c $(loader/i386/pc/linux.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux16_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh linux16 > $@ || (rm -f $@; exit 1) + +handler-linux16_mod-loader_i386_pc_linux.lst: loader/i386/pc/linux.c $(loader/i386/pc/linux.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux16_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh linux16 > $@ || (rm -f $@; exit 1) + +terminal-linux16_mod-loader_i386_pc_linux.lst: loader/i386/pc/linux.c $(loader/i386/pc/linux.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux16_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh linux16 > $@ || (rm -f $@; exit 1) + +video-linux16_mod-loader_i386_pc_linux.lst: loader/i386/pc/linux.c $(loader/i386/pc/linux.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386/pc -I$(srcdir)/loader/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux16_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh linux16 > $@ || (rm -f $@; exit 1) + +linux16_mod_CFLAGS = $(COMMON_CFLAGS) +linux16_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += linux.mod +linux_mod_SOURCES = loader/i386/linux.c + +clean-module-linux.mod.1: + rm -f linux.mod mod-linux.o mod-linux.c pre-linux.o linux_mod-loader_i386_linux.o und-linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux.mod.1 + +clean-module-linux.mod-symbol.1: + rm -f def-linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux.mod-symbol.1 +DEFSYMFILES += def-linux.lst +mostlyclean-module-linux.mod.1: + rm -f linux_mod-loader_i386_linux.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-linux.mod.1 +UNDSYMFILES += und-linux.lst + +ifeq ($(TARGET_NO_MODULES), yes) +linux.mod: pre-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-linux.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-linux.o mod-linux.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-linux.o mod-linux.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-linux.o: $(linux_mod_DEPENDENCIES) linux_mod-loader_i386_linux.o + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ linux_mod-loader_i386_linux.o + +mod-linux.o: mod-linux.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -DGRUB_FILE=\"mod-linux.c\" -c -o $@ $< + +mod-linux.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'linux' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-linux.lst: pre-linux.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 linux/' > $@ +else +def-linux.lst: pre-linux.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 linux/' > $@ +endif + +und-linux.lst: pre-linux.o + echo 'linux' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +linux_mod-loader_i386_linux.o: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -DGRUB_FILE=\"loader/i386/linux.c\" -MD -c -o $@ $< +-include linux_mod-loader_i386_linux.d + +clean-module-linux_mod-loader_i386_linux-extra.1: + rm -f cmd-linux_mod-loader_i386_linux.lst fs-linux_mod-loader_i386_linux.lst partmap-linux_mod-loader_i386_linux.lst handler-linux_mod-loader_i386_linux.lst parttool-linux_mod-loader_i386_linux.lst video-linux_mod-loader_i386_linux.lst terminal-linux_mod-loader_i386_linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux_mod-loader_i386_linux-extra.1 + +COMMANDFILES += cmd-linux_mod-loader_i386_linux.lst +FSFILES += fs-linux_mod-loader_i386_linux.lst +PARTTOOLFILES += parttool-linux_mod-loader_i386_linux.lst +PARTMAPFILES += partmap-linux_mod-loader_i386_linux.lst +HANDLERFILES += handler-linux_mod-loader_i386_linux.lst +TERMINALFILES += terminal-linux_mod-loader_i386_linux.lst +VIDEOFILES += video-linux_mod-loader_i386_linux.lst + +cmd-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh linux > $@ || (rm -f $@; exit 1) + +fs-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh linux > $@ || (rm -f $@; exit 1) + +parttool-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh linux > $@ || (rm -f $@; exit 1) + +partmap-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh linux > $@ || (rm -f $@; exit 1) + +handler-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh linux > $@ || (rm -f $@; exit 1) + +terminal-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh linux > $@ || (rm -f $@; exit 1) + +video-linux_mod-loader_i386_linux.lst: loader/i386/linux.c $(loader/i386/linux.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh linux > $@ || (rm -f $@; exit 1) + +linux_mod_CFLAGS = $(COMMON_CFLAGS) +linux_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += xnu.mod +xnu_mod_SOURCES = loader/xnu_resume.c loader/i386/xnu.c \ + loader/macho32.c loader/macho64.c loader/macho.c loader/xnu.c + +clean-module-xnu.mod.1: + rm -f xnu.mod mod-xnu.o mod-xnu.c pre-xnu.o xnu_mod-loader_xnu_resume.o xnu_mod-loader_i386_xnu.o xnu_mod-loader_macho32.o xnu_mod-loader_macho64.o xnu_mod-loader_macho.o xnu_mod-loader_xnu.o und-xnu.lst + +CLEAN_MODULE_TARGETS += clean-module-xnu.mod.1 + +clean-module-xnu.mod-symbol.1: + rm -f def-xnu.lst + +CLEAN_MODULE_TARGETS += clean-module-xnu.mod-symbol.1 +DEFSYMFILES += def-xnu.lst +mostlyclean-module-xnu.mod.1: + rm -f xnu_mod-loader_xnu_resume.d xnu_mod-loader_i386_xnu.d xnu_mod-loader_macho32.d xnu_mod-loader_macho64.d xnu_mod-loader_macho.d xnu_mod-loader_xnu.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-xnu.mod.1 +UNDSYMFILES += und-xnu.lst + +ifeq ($(TARGET_NO_MODULES), yes) +xnu.mod: pre-xnu.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(xnu_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-xnu.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +xnu.mod: pre-xnu.o mod-xnu.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(xnu_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-xnu.o mod-xnu.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +xnu.mod: pre-xnu.o mod-xnu.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(xnu_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-xnu.o mod-xnu.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-xnu.o: $(xnu_mod_DEPENDENCIES) xnu_mod-loader_xnu_resume.o xnu_mod-loader_i386_xnu.o xnu_mod-loader_macho32.o xnu_mod-loader_macho64.o xnu_mod-loader_macho.o xnu_mod-loader_xnu.o + -rm -f $@ + $(TARGET_CC) $(xnu_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ xnu_mod-loader_xnu_resume.o xnu_mod-loader_i386_xnu.o xnu_mod-loader_macho32.o xnu_mod-loader_macho64.o xnu_mod-loader_macho.o xnu_mod-loader_xnu.o + +mod-xnu.o: mod-xnu.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -DGRUB_FILE=\"mod-xnu.c\" -c -o $@ $< + +mod-xnu.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'xnu' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-xnu.lst: pre-xnu.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 xnu/' > $@ +else +def-xnu.lst: pre-xnu.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 xnu/' > $@ +endif + +und-xnu.lst: pre-xnu.o + echo 'xnu' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +xnu_mod-loader_xnu_resume.o: loader/xnu_resume.c $(loader/xnu_resume.c_DEPENDENCIES) + $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -DGRUB_FILE=\"loader/xnu_resume.c\" -MD -c -o $@ $< +-include xnu_mod-loader_xnu_resume.d + +clean-module-xnu_mod-loader_xnu_resume-extra.1: + rm -f cmd-xnu_mod-loader_xnu_resume.lst fs-xnu_mod-loader_xnu_resume.lst partmap-xnu_mod-loader_xnu_resume.lst handler-xnu_mod-loader_xnu_resume.lst parttool-xnu_mod-loader_xnu_resume.lst video-xnu_mod-loader_xnu_resume.lst terminal-xnu_mod-loader_xnu_resume.lst + +CLEAN_MODULE_TARGETS += clean-module-xnu_mod-loader_xnu_resume-extra.1 + +COMMANDFILES += cmd-xnu_mod-loader_xnu_resume.lst +FSFILES += fs-xnu_mod-loader_xnu_resume.lst +PARTTOOLFILES += parttool-xnu_mod-loader_xnu_resume.lst +PARTMAPFILES += partmap-xnu_mod-loader_xnu_resume.lst +HANDLERFILES += handler-xnu_mod-loader_xnu_resume.lst +TERMINALFILES += terminal-xnu_mod-loader_xnu_resume.lst +VIDEOFILES += video-xnu_mod-loader_xnu_resume.lst + +cmd-xnu_mod-loader_xnu_resume.lst: loader/xnu_resume.c $(loader/xnu_resume.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh xnu > $@ || (rm -f $@; exit 1) + +fs-xnu_mod-loader_xnu_resume.lst: loader/xnu_resume.c $(loader/xnu_resume.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh xnu > $@ || (rm -f $@; exit 1) + +parttool-xnu_mod-loader_xnu_resume.lst: loader/xnu_resume.c $(loader/xnu_resume.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh xnu > $@ || (rm -f $@; exit 1) + +partmap-xnu_mod-loader_xnu_resume.lst: loader/xnu_resume.c $(loader/xnu_resume.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh xnu > $@ || (rm -f $@; exit 1) + +handler-xnu_mod-loader_xnu_resume.lst: loader/xnu_resume.c $(loader/xnu_resume.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh xnu > $@ || (rm -f $@; exit 1) + +terminal-xnu_mod-loader_xnu_resume.lst: loader/xnu_resume.c $(loader/xnu_resume.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh xnu > $@ || (rm -f $@; exit 1) + +video-xnu_mod-loader_xnu_resume.lst: loader/xnu_resume.c $(loader/xnu_resume.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh xnu > $@ || (rm -f $@; exit 1) + +xnu_mod-loader_i386_xnu.o: loader/i386/xnu.c $(loader/i386/xnu.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -DGRUB_FILE=\"loader/i386/xnu.c\" -MD -c -o $@ $< +-include xnu_mod-loader_i386_xnu.d + +clean-module-xnu_mod-loader_i386_xnu-extra.1: + rm -f cmd-xnu_mod-loader_i386_xnu.lst fs-xnu_mod-loader_i386_xnu.lst partmap-xnu_mod-loader_i386_xnu.lst handler-xnu_mod-loader_i386_xnu.lst parttool-xnu_mod-loader_i386_xnu.lst video-xnu_mod-loader_i386_xnu.lst terminal-xnu_mod-loader_i386_xnu.lst + +CLEAN_MODULE_TARGETS += clean-module-xnu_mod-loader_i386_xnu-extra.1 + +COMMANDFILES += cmd-xnu_mod-loader_i386_xnu.lst +FSFILES += fs-xnu_mod-loader_i386_xnu.lst +PARTTOOLFILES += parttool-xnu_mod-loader_i386_xnu.lst +PARTMAPFILES += partmap-xnu_mod-loader_i386_xnu.lst +HANDLERFILES += handler-xnu_mod-loader_i386_xnu.lst +TERMINALFILES += terminal-xnu_mod-loader_i386_xnu.lst +VIDEOFILES += video-xnu_mod-loader_i386_xnu.lst + +cmd-xnu_mod-loader_i386_xnu.lst: loader/i386/xnu.c $(loader/i386/xnu.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh xnu > $@ || (rm -f $@; exit 1) + +fs-xnu_mod-loader_i386_xnu.lst: loader/i386/xnu.c $(loader/i386/xnu.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh xnu > $@ || (rm -f $@; exit 1) + +parttool-xnu_mod-loader_i386_xnu.lst: loader/i386/xnu.c $(loader/i386/xnu.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh xnu > $@ || (rm -f $@; exit 1) + +partmap-xnu_mod-loader_i386_xnu.lst: loader/i386/xnu.c $(loader/i386/xnu.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh xnu > $@ || (rm -f $@; exit 1) + +handler-xnu_mod-loader_i386_xnu.lst: loader/i386/xnu.c $(loader/i386/xnu.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh xnu > $@ || (rm -f $@; exit 1) + +terminal-xnu_mod-loader_i386_xnu.lst: loader/i386/xnu.c $(loader/i386/xnu.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh xnu > $@ || (rm -f $@; exit 1) + +video-xnu_mod-loader_i386_xnu.lst: loader/i386/xnu.c $(loader/i386/xnu.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh xnu > $@ || (rm -f $@; exit 1) + +xnu_mod-loader_macho32.o: loader/macho32.c $(loader/macho32.c_DEPENDENCIES) + $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -DGRUB_FILE=\"loader/macho32.c\" -MD -c -o $@ $< +-include xnu_mod-loader_macho32.d + +clean-module-xnu_mod-loader_macho32-extra.1: + rm -f cmd-xnu_mod-loader_macho32.lst fs-xnu_mod-loader_macho32.lst partmap-xnu_mod-loader_macho32.lst handler-xnu_mod-loader_macho32.lst parttool-xnu_mod-loader_macho32.lst video-xnu_mod-loader_macho32.lst terminal-xnu_mod-loader_macho32.lst + +CLEAN_MODULE_TARGETS += clean-module-xnu_mod-loader_macho32-extra.1 + +COMMANDFILES += cmd-xnu_mod-loader_macho32.lst +FSFILES += fs-xnu_mod-loader_macho32.lst +PARTTOOLFILES += parttool-xnu_mod-loader_macho32.lst +PARTMAPFILES += partmap-xnu_mod-loader_macho32.lst +HANDLERFILES += handler-xnu_mod-loader_macho32.lst +TERMINALFILES += terminal-xnu_mod-loader_macho32.lst +VIDEOFILES += video-xnu_mod-loader_macho32.lst + +cmd-xnu_mod-loader_macho32.lst: loader/macho32.c $(loader/macho32.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh xnu > $@ || (rm -f $@; exit 1) + +fs-xnu_mod-loader_macho32.lst: loader/macho32.c $(loader/macho32.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh xnu > $@ || (rm -f $@; exit 1) + +parttool-xnu_mod-loader_macho32.lst: loader/macho32.c $(loader/macho32.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh xnu > $@ || (rm -f $@; exit 1) + +partmap-xnu_mod-loader_macho32.lst: loader/macho32.c $(loader/macho32.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh xnu > $@ || (rm -f $@; exit 1) + +handler-xnu_mod-loader_macho32.lst: loader/macho32.c $(loader/macho32.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh xnu > $@ || (rm -f $@; exit 1) + +terminal-xnu_mod-loader_macho32.lst: loader/macho32.c $(loader/macho32.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh xnu > $@ || (rm -f $@; exit 1) + +video-xnu_mod-loader_macho32.lst: loader/macho32.c $(loader/macho32.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh xnu > $@ || (rm -f $@; exit 1) + +xnu_mod-loader_macho64.o: loader/macho64.c $(loader/macho64.c_DEPENDENCIES) + $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -DGRUB_FILE=\"loader/macho64.c\" -MD -c -o $@ $< +-include xnu_mod-loader_macho64.d + +clean-module-xnu_mod-loader_macho64-extra.1: + rm -f cmd-xnu_mod-loader_macho64.lst fs-xnu_mod-loader_macho64.lst partmap-xnu_mod-loader_macho64.lst handler-xnu_mod-loader_macho64.lst parttool-xnu_mod-loader_macho64.lst video-xnu_mod-loader_macho64.lst terminal-xnu_mod-loader_macho64.lst + +CLEAN_MODULE_TARGETS += clean-module-xnu_mod-loader_macho64-extra.1 + +COMMANDFILES += cmd-xnu_mod-loader_macho64.lst +FSFILES += fs-xnu_mod-loader_macho64.lst +PARTTOOLFILES += parttool-xnu_mod-loader_macho64.lst +PARTMAPFILES += partmap-xnu_mod-loader_macho64.lst +HANDLERFILES += handler-xnu_mod-loader_macho64.lst +TERMINALFILES += terminal-xnu_mod-loader_macho64.lst +VIDEOFILES += video-xnu_mod-loader_macho64.lst + +cmd-xnu_mod-loader_macho64.lst: loader/macho64.c $(loader/macho64.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh xnu > $@ || (rm -f $@; exit 1) + +fs-xnu_mod-loader_macho64.lst: loader/macho64.c $(loader/macho64.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh xnu > $@ || (rm -f $@; exit 1) + +parttool-xnu_mod-loader_macho64.lst: loader/macho64.c $(loader/macho64.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh xnu > $@ || (rm -f $@; exit 1) + +partmap-xnu_mod-loader_macho64.lst: loader/macho64.c $(loader/macho64.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh xnu > $@ || (rm -f $@; exit 1) + +handler-xnu_mod-loader_macho64.lst: loader/macho64.c $(loader/macho64.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh xnu > $@ || (rm -f $@; exit 1) + +terminal-xnu_mod-loader_macho64.lst: loader/macho64.c $(loader/macho64.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh xnu > $@ || (rm -f $@; exit 1) + +video-xnu_mod-loader_macho64.lst: loader/macho64.c $(loader/macho64.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh xnu > $@ || (rm -f $@; exit 1) + +xnu_mod-loader_macho.o: loader/macho.c $(loader/macho.c_DEPENDENCIES) + $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -DGRUB_FILE=\"loader/macho.c\" -MD -c -o $@ $< +-include xnu_mod-loader_macho.d + +clean-module-xnu_mod-loader_macho-extra.1: + rm -f cmd-xnu_mod-loader_macho.lst fs-xnu_mod-loader_macho.lst partmap-xnu_mod-loader_macho.lst handler-xnu_mod-loader_macho.lst parttool-xnu_mod-loader_macho.lst video-xnu_mod-loader_macho.lst terminal-xnu_mod-loader_macho.lst + +CLEAN_MODULE_TARGETS += clean-module-xnu_mod-loader_macho-extra.1 + +COMMANDFILES += cmd-xnu_mod-loader_macho.lst +FSFILES += fs-xnu_mod-loader_macho.lst +PARTTOOLFILES += parttool-xnu_mod-loader_macho.lst +PARTMAPFILES += partmap-xnu_mod-loader_macho.lst +HANDLERFILES += handler-xnu_mod-loader_macho.lst +TERMINALFILES += terminal-xnu_mod-loader_macho.lst +VIDEOFILES += video-xnu_mod-loader_macho.lst + +cmd-xnu_mod-loader_macho.lst: loader/macho.c $(loader/macho.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh xnu > $@ || (rm -f $@; exit 1) + +fs-xnu_mod-loader_macho.lst: loader/macho.c $(loader/macho.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh xnu > $@ || (rm -f $@; exit 1) + +parttool-xnu_mod-loader_macho.lst: loader/macho.c $(loader/macho.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh xnu > $@ || (rm -f $@; exit 1) + +partmap-xnu_mod-loader_macho.lst: loader/macho.c $(loader/macho.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh xnu > $@ || (rm -f $@; exit 1) + +handler-xnu_mod-loader_macho.lst: loader/macho.c $(loader/macho.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh xnu > $@ || (rm -f $@; exit 1) + +terminal-xnu_mod-loader_macho.lst: loader/macho.c $(loader/macho.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh xnu > $@ || (rm -f $@; exit 1) + +video-xnu_mod-loader_macho.lst: loader/macho.c $(loader/macho.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh xnu > $@ || (rm -f $@; exit 1) + +xnu_mod-loader_xnu.o: loader/xnu.c $(loader/xnu.c_DEPENDENCIES) + $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -DGRUB_FILE=\"loader/xnu.c\" -MD -c -o $@ $< +-include xnu_mod-loader_xnu.d + +clean-module-xnu_mod-loader_xnu-extra.1: + rm -f cmd-xnu_mod-loader_xnu.lst fs-xnu_mod-loader_xnu.lst partmap-xnu_mod-loader_xnu.lst handler-xnu_mod-loader_xnu.lst parttool-xnu_mod-loader_xnu.lst video-xnu_mod-loader_xnu.lst terminal-xnu_mod-loader_xnu.lst + +CLEAN_MODULE_TARGETS += clean-module-xnu_mod-loader_xnu-extra.1 + +COMMANDFILES += cmd-xnu_mod-loader_xnu.lst +FSFILES += fs-xnu_mod-loader_xnu.lst +PARTTOOLFILES += parttool-xnu_mod-loader_xnu.lst +PARTMAPFILES += partmap-xnu_mod-loader_xnu.lst +HANDLERFILES += handler-xnu_mod-loader_xnu.lst +TERMINALFILES += terminal-xnu_mod-loader_xnu.lst +VIDEOFILES += video-xnu_mod-loader_xnu.lst + +cmd-xnu_mod-loader_xnu.lst: loader/xnu.c $(loader/xnu.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh xnu > $@ || (rm -f $@; exit 1) + +fs-xnu_mod-loader_xnu.lst: loader/xnu.c $(loader/xnu.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh xnu > $@ || (rm -f $@; exit 1) + +parttool-xnu_mod-loader_xnu.lst: loader/xnu.c $(loader/xnu.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh xnu > $@ || (rm -f $@; exit 1) + +partmap-xnu_mod-loader_xnu.lst: loader/xnu.c $(loader/xnu.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh xnu > $@ || (rm -f $@; exit 1) + +handler-xnu_mod-loader_xnu.lst: loader/xnu.c $(loader/xnu.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh xnu > $@ || (rm -f $@; exit 1) + +terminal-xnu_mod-loader_xnu.lst: loader/xnu.c $(loader/xnu.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh xnu > $@ || (rm -f $@; exit 1) + +video-xnu_mod-loader_xnu.lst: loader/xnu.c $(loader/xnu.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh xnu > $@ || (rm -f $@; exit 1) + +xnu_mod_CFLAGS = $(COMMON_CFLAGS) +xnu_mod_LDFLAGS = $(COMMON_LDFLAGS) +xnu_mod_ASFLAGS = $(COMMON_ASFLAGS) + +# For halt.mod. +halt_mod_SOURCES = commands/i386/pc/halt.c + +clean-module-halt.mod.1: + rm -f halt.mod mod-halt.o mod-halt.c pre-halt.o halt_mod-commands_i386_pc_halt.o und-halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt.mod.1 + +clean-module-halt.mod-symbol.1: + rm -f def-halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt.mod-symbol.1 +DEFSYMFILES += def-halt.lst +mostlyclean-module-halt.mod.1: + rm -f halt_mod-commands_i386_pc_halt.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-halt.mod.1 +UNDSYMFILES += und-halt.lst + +ifeq ($(TARGET_NO_MODULES), yes) +halt.mod: pre-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-halt.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +halt.mod: pre-halt.o mod-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-halt.o mod-halt.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +halt.mod: pre-halt.o mod-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-halt.o mod-halt.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-halt.o: $(halt_mod_DEPENDENCIES) halt_mod-commands_i386_pc_halt.o + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ halt_mod-commands_i386_pc_halt.o + +mod-halt.o: mod-halt.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -DGRUB_FILE=\"mod-halt.c\" -c -o $@ $< + +mod-halt.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'halt' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-halt.lst: pre-halt.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 halt/' > $@ +else +def-halt.lst: pre-halt.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 halt/' > $@ +endif + +und-halt.lst: pre-halt.o + echo 'halt' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +halt_mod-commands_i386_pc_halt.o: commands/i386/pc/halt.c $(commands/i386/pc/halt.c_DEPENDENCIES) + $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -DGRUB_FILE=\"commands/i386/pc/halt.c\" -MD -c -o $@ $< +-include halt_mod-commands_i386_pc_halt.d + +clean-module-halt_mod-commands_i386_pc_halt-extra.1: + rm -f cmd-halt_mod-commands_i386_pc_halt.lst fs-halt_mod-commands_i386_pc_halt.lst partmap-halt_mod-commands_i386_pc_halt.lst handler-halt_mod-commands_i386_pc_halt.lst parttool-halt_mod-commands_i386_pc_halt.lst video-halt_mod-commands_i386_pc_halt.lst terminal-halt_mod-commands_i386_pc_halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt_mod-commands_i386_pc_halt-extra.1 + +COMMANDFILES += cmd-halt_mod-commands_i386_pc_halt.lst +FSFILES += fs-halt_mod-commands_i386_pc_halt.lst +PARTTOOLFILES += parttool-halt_mod-commands_i386_pc_halt.lst +PARTMAPFILES += partmap-halt_mod-commands_i386_pc_halt.lst +HANDLERFILES += handler-halt_mod-commands_i386_pc_halt.lst +TERMINALFILES += terminal-halt_mod-commands_i386_pc_halt.lst +VIDEOFILES += video-halt_mod-commands_i386_pc_halt.lst + +cmd-halt_mod-commands_i386_pc_halt.lst: commands/i386/pc/halt.c $(commands/i386/pc/halt.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh halt > $@ || (rm -f $@; exit 1) + +fs-halt_mod-commands_i386_pc_halt.lst: commands/i386/pc/halt.c $(commands/i386/pc/halt.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh halt > $@ || (rm -f $@; exit 1) + +parttool-halt_mod-commands_i386_pc_halt.lst: commands/i386/pc/halt.c $(commands/i386/pc/halt.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh halt > $@ || (rm -f $@; exit 1) + +partmap-halt_mod-commands_i386_pc_halt.lst: commands/i386/pc/halt.c $(commands/i386/pc/halt.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh halt > $@ || (rm -f $@; exit 1) + +handler-halt_mod-commands_i386_pc_halt.lst: commands/i386/pc/halt.c $(commands/i386/pc/halt.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh halt > $@ || (rm -f $@; exit 1) + +terminal-halt_mod-commands_i386_pc_halt.lst: commands/i386/pc/halt.c $(commands/i386/pc/halt.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh halt > $@ || (rm -f $@; exit 1) + +video-halt_mod-commands_i386_pc_halt.lst: commands/i386/pc/halt.c $(commands/i386/pc/halt.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh halt > $@ || (rm -f $@; exit 1) + +halt_mod_CFLAGS = $(COMMON_CFLAGS) +halt_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For vbe.mod. +vbe_mod_SOURCES = video/i386/pc/vbe.c + +clean-module-vbe.mod.1: + rm -f vbe.mod mod-vbe.o mod-vbe.c pre-vbe.o vbe_mod-video_i386_pc_vbe.o und-vbe.lst + +CLEAN_MODULE_TARGETS += clean-module-vbe.mod.1 + +clean-module-vbe.mod-symbol.1: + rm -f def-vbe.lst + +CLEAN_MODULE_TARGETS += clean-module-vbe.mod-symbol.1 +DEFSYMFILES += def-vbe.lst +mostlyclean-module-vbe.mod.1: + rm -f vbe_mod-video_i386_pc_vbe.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-vbe.mod.1 +UNDSYMFILES += und-vbe.lst + +ifeq ($(TARGET_NO_MODULES), yes) +vbe.mod: pre-vbe.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(vbe_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-vbe.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +vbe.mod: pre-vbe.o mod-vbe.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(vbe_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-vbe.o mod-vbe.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +vbe.mod: pre-vbe.o mod-vbe.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(vbe_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-vbe.o mod-vbe.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-vbe.o: $(vbe_mod_DEPENDENCIES) vbe_mod-video_i386_pc_vbe.o + -rm -f $@ + $(TARGET_CC) $(vbe_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ vbe_mod-video_i386_pc_vbe.o + +mod-vbe.o: mod-vbe.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vbe_mod_CFLAGS) -DGRUB_FILE=\"mod-vbe.c\" -c -o $@ $< + +mod-vbe.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'vbe' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-vbe.lst: pre-vbe.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 vbe/' > $@ +else +def-vbe.lst: pre-vbe.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 vbe/' > $@ +endif + +und-vbe.lst: pre-vbe.o + echo 'vbe' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +vbe_mod-video_i386_pc_vbe.o: video/i386/pc/vbe.c $(video/i386/pc/vbe.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo/i386/pc -I$(srcdir)/video/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vbe_mod_CFLAGS) -DGRUB_FILE=\"video/i386/pc/vbe.c\" -MD -c -o $@ $< +-include vbe_mod-video_i386_pc_vbe.d + +clean-module-vbe_mod-video_i386_pc_vbe-extra.1: + rm -f cmd-vbe_mod-video_i386_pc_vbe.lst fs-vbe_mod-video_i386_pc_vbe.lst partmap-vbe_mod-video_i386_pc_vbe.lst handler-vbe_mod-video_i386_pc_vbe.lst parttool-vbe_mod-video_i386_pc_vbe.lst video-vbe_mod-video_i386_pc_vbe.lst terminal-vbe_mod-video_i386_pc_vbe.lst + +CLEAN_MODULE_TARGETS += clean-module-vbe_mod-video_i386_pc_vbe-extra.1 + +COMMANDFILES += cmd-vbe_mod-video_i386_pc_vbe.lst +FSFILES += fs-vbe_mod-video_i386_pc_vbe.lst +PARTTOOLFILES += parttool-vbe_mod-video_i386_pc_vbe.lst +PARTMAPFILES += partmap-vbe_mod-video_i386_pc_vbe.lst +HANDLERFILES += handler-vbe_mod-video_i386_pc_vbe.lst +TERMINALFILES += terminal-vbe_mod-video_i386_pc_vbe.lst +VIDEOFILES += video-vbe_mod-video_i386_pc_vbe.lst + +cmd-vbe_mod-video_i386_pc_vbe.lst: video/i386/pc/vbe.c $(video/i386/pc/vbe.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ivideo/i386/pc -I$(srcdir)/video/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vbe_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh vbe > $@ || (rm -f $@; exit 1) + +fs-vbe_mod-video_i386_pc_vbe.lst: video/i386/pc/vbe.c $(video/i386/pc/vbe.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ivideo/i386/pc -I$(srcdir)/video/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(vbe_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh vbe > $@ || (rm -f $@; exit 1) + +parttool-vbe_mod-video_i386_pc_vbe.lst: video/i386/pc/vbe.c $(video/i386/pc/vbe.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ivideo/i386/pc -I$(srcdir)/video/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vbe_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh vbe > $@ || (rm -f $@; exit 1) + +partmap-vbe_mod-video_i386_pc_vbe.lst: video/i386/pc/vbe.c $(video/i386/pc/vbe.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ivideo/i386/pc -I$(srcdir)/video/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(vbe_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh vbe > $@ || (rm -f $@; exit 1) + +handler-vbe_mod-video_i386_pc_vbe.lst: video/i386/pc/vbe.c $(video/i386/pc/vbe.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ivideo/i386/pc -I$(srcdir)/video/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vbe_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh vbe > $@ || (rm -f $@; exit 1) + +terminal-vbe_mod-video_i386_pc_vbe.lst: video/i386/pc/vbe.c $(video/i386/pc/vbe.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ivideo/i386/pc -I$(srcdir)/video/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vbe_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh vbe > $@ || (rm -f $@; exit 1) + +video-vbe_mod-video_i386_pc_vbe.lst: video/i386/pc/vbe.c $(video/i386/pc/vbe.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ivideo/i386/pc -I$(srcdir)/video/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(vbe_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh vbe > $@ || (rm -f $@; exit 1) + +vbe_mod_CFLAGS = $(COMMON_CFLAGS) +vbe_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For vbeinfo.mod. +vbeinfo_mod_SOURCES = commands/i386/pc/vbeinfo.c + +clean-module-vbeinfo.mod.1: + rm -f vbeinfo.mod mod-vbeinfo.o mod-vbeinfo.c pre-vbeinfo.o vbeinfo_mod-commands_i386_pc_vbeinfo.o und-vbeinfo.lst + +CLEAN_MODULE_TARGETS += clean-module-vbeinfo.mod.1 + +clean-module-vbeinfo.mod-symbol.1: + rm -f def-vbeinfo.lst + +CLEAN_MODULE_TARGETS += clean-module-vbeinfo.mod-symbol.1 +DEFSYMFILES += def-vbeinfo.lst +mostlyclean-module-vbeinfo.mod.1: + rm -f vbeinfo_mod-commands_i386_pc_vbeinfo.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-vbeinfo.mod.1 +UNDSYMFILES += und-vbeinfo.lst + +ifeq ($(TARGET_NO_MODULES), yes) +vbeinfo.mod: pre-vbeinfo.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(vbeinfo_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-vbeinfo.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +vbeinfo.mod: pre-vbeinfo.o mod-vbeinfo.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(vbeinfo_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-vbeinfo.o mod-vbeinfo.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +vbeinfo.mod: pre-vbeinfo.o mod-vbeinfo.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(vbeinfo_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-vbeinfo.o mod-vbeinfo.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-vbeinfo.o: $(vbeinfo_mod_DEPENDENCIES) vbeinfo_mod-commands_i386_pc_vbeinfo.o + -rm -f $@ + $(TARGET_CC) $(vbeinfo_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ vbeinfo_mod-commands_i386_pc_vbeinfo.o + +mod-vbeinfo.o: mod-vbeinfo.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vbeinfo_mod_CFLAGS) -DGRUB_FILE=\"mod-vbeinfo.c\" -c -o $@ $< + +mod-vbeinfo.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'vbeinfo' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-vbeinfo.lst: pre-vbeinfo.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 vbeinfo/' > $@ +else +def-vbeinfo.lst: pre-vbeinfo.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 vbeinfo/' > $@ +endif + +und-vbeinfo.lst: pre-vbeinfo.o + echo 'vbeinfo' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +vbeinfo_mod-commands_i386_pc_vbeinfo.o: commands/i386/pc/vbeinfo.c $(commands/i386/pc/vbeinfo.c_DEPENDENCIES) + $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vbeinfo_mod_CFLAGS) -DGRUB_FILE=\"commands/i386/pc/vbeinfo.c\" -MD -c -o $@ $< +-include vbeinfo_mod-commands_i386_pc_vbeinfo.d + +clean-module-vbeinfo_mod-commands_i386_pc_vbeinfo-extra.1: + rm -f cmd-vbeinfo_mod-commands_i386_pc_vbeinfo.lst fs-vbeinfo_mod-commands_i386_pc_vbeinfo.lst partmap-vbeinfo_mod-commands_i386_pc_vbeinfo.lst handler-vbeinfo_mod-commands_i386_pc_vbeinfo.lst parttool-vbeinfo_mod-commands_i386_pc_vbeinfo.lst video-vbeinfo_mod-commands_i386_pc_vbeinfo.lst terminal-vbeinfo_mod-commands_i386_pc_vbeinfo.lst + +CLEAN_MODULE_TARGETS += clean-module-vbeinfo_mod-commands_i386_pc_vbeinfo-extra.1 + +COMMANDFILES += cmd-vbeinfo_mod-commands_i386_pc_vbeinfo.lst +FSFILES += fs-vbeinfo_mod-commands_i386_pc_vbeinfo.lst +PARTTOOLFILES += parttool-vbeinfo_mod-commands_i386_pc_vbeinfo.lst +PARTMAPFILES += partmap-vbeinfo_mod-commands_i386_pc_vbeinfo.lst +HANDLERFILES += handler-vbeinfo_mod-commands_i386_pc_vbeinfo.lst +TERMINALFILES += terminal-vbeinfo_mod-commands_i386_pc_vbeinfo.lst +VIDEOFILES += video-vbeinfo_mod-commands_i386_pc_vbeinfo.lst + +cmd-vbeinfo_mod-commands_i386_pc_vbeinfo.lst: commands/i386/pc/vbeinfo.c $(commands/i386/pc/vbeinfo.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vbeinfo_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh vbeinfo > $@ || (rm -f $@; exit 1) + +fs-vbeinfo_mod-commands_i386_pc_vbeinfo.lst: commands/i386/pc/vbeinfo.c $(commands/i386/pc/vbeinfo.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(vbeinfo_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh vbeinfo > $@ || (rm -f $@; exit 1) + +parttool-vbeinfo_mod-commands_i386_pc_vbeinfo.lst: commands/i386/pc/vbeinfo.c $(commands/i386/pc/vbeinfo.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vbeinfo_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh vbeinfo > $@ || (rm -f $@; exit 1) + +partmap-vbeinfo_mod-commands_i386_pc_vbeinfo.lst: commands/i386/pc/vbeinfo.c $(commands/i386/pc/vbeinfo.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(vbeinfo_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh vbeinfo > $@ || (rm -f $@; exit 1) + +handler-vbeinfo_mod-commands_i386_pc_vbeinfo.lst: commands/i386/pc/vbeinfo.c $(commands/i386/pc/vbeinfo.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vbeinfo_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh vbeinfo > $@ || (rm -f $@; exit 1) + +terminal-vbeinfo_mod-commands_i386_pc_vbeinfo.lst: commands/i386/pc/vbeinfo.c $(commands/i386/pc/vbeinfo.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vbeinfo_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh vbeinfo > $@ || (rm -f $@; exit 1) + +video-vbeinfo_mod-commands_i386_pc_vbeinfo.lst: commands/i386/pc/vbeinfo.c $(commands/i386/pc/vbeinfo.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(vbeinfo_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh vbeinfo > $@ || (rm -f $@; exit 1) + +vbeinfo_mod_CFLAGS = $(COMMON_CFLAGS) +vbeinfo_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For vbetest.mod. +vbetest_mod_SOURCES = commands/i386/pc/vbetest.c + +clean-module-vbetest.mod.1: + rm -f vbetest.mod mod-vbetest.o mod-vbetest.c pre-vbetest.o vbetest_mod-commands_i386_pc_vbetest.o und-vbetest.lst + +CLEAN_MODULE_TARGETS += clean-module-vbetest.mod.1 + +clean-module-vbetest.mod-symbol.1: + rm -f def-vbetest.lst + +CLEAN_MODULE_TARGETS += clean-module-vbetest.mod-symbol.1 +DEFSYMFILES += def-vbetest.lst +mostlyclean-module-vbetest.mod.1: + rm -f vbetest_mod-commands_i386_pc_vbetest.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-vbetest.mod.1 +UNDSYMFILES += und-vbetest.lst + +ifeq ($(TARGET_NO_MODULES), yes) +vbetest.mod: pre-vbetest.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(vbetest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-vbetest.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +vbetest.mod: pre-vbetest.o mod-vbetest.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(vbetest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-vbetest.o mod-vbetest.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +vbetest.mod: pre-vbetest.o mod-vbetest.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(vbetest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-vbetest.o mod-vbetest.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-vbetest.o: $(vbetest_mod_DEPENDENCIES) vbetest_mod-commands_i386_pc_vbetest.o + -rm -f $@ + $(TARGET_CC) $(vbetest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ vbetest_mod-commands_i386_pc_vbetest.o + +mod-vbetest.o: mod-vbetest.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vbetest_mod_CFLAGS) -DGRUB_FILE=\"mod-vbetest.c\" -c -o $@ $< + +mod-vbetest.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'vbetest' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-vbetest.lst: pre-vbetest.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 vbetest/' > $@ +else +def-vbetest.lst: pre-vbetest.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 vbetest/' > $@ +endif + +und-vbetest.lst: pre-vbetest.o + echo 'vbetest' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +vbetest_mod-commands_i386_pc_vbetest.o: commands/i386/pc/vbetest.c $(commands/i386/pc/vbetest.c_DEPENDENCIES) + $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vbetest_mod_CFLAGS) -DGRUB_FILE=\"commands/i386/pc/vbetest.c\" -MD -c -o $@ $< +-include vbetest_mod-commands_i386_pc_vbetest.d + +clean-module-vbetest_mod-commands_i386_pc_vbetest-extra.1: + rm -f cmd-vbetest_mod-commands_i386_pc_vbetest.lst fs-vbetest_mod-commands_i386_pc_vbetest.lst partmap-vbetest_mod-commands_i386_pc_vbetest.lst handler-vbetest_mod-commands_i386_pc_vbetest.lst parttool-vbetest_mod-commands_i386_pc_vbetest.lst video-vbetest_mod-commands_i386_pc_vbetest.lst terminal-vbetest_mod-commands_i386_pc_vbetest.lst + +CLEAN_MODULE_TARGETS += clean-module-vbetest_mod-commands_i386_pc_vbetest-extra.1 + +COMMANDFILES += cmd-vbetest_mod-commands_i386_pc_vbetest.lst +FSFILES += fs-vbetest_mod-commands_i386_pc_vbetest.lst +PARTTOOLFILES += parttool-vbetest_mod-commands_i386_pc_vbetest.lst +PARTMAPFILES += partmap-vbetest_mod-commands_i386_pc_vbetest.lst +HANDLERFILES += handler-vbetest_mod-commands_i386_pc_vbetest.lst +TERMINALFILES += terminal-vbetest_mod-commands_i386_pc_vbetest.lst +VIDEOFILES += video-vbetest_mod-commands_i386_pc_vbetest.lst + +cmd-vbetest_mod-commands_i386_pc_vbetest.lst: commands/i386/pc/vbetest.c $(commands/i386/pc/vbetest.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vbetest_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh vbetest > $@ || (rm -f $@; exit 1) + +fs-vbetest_mod-commands_i386_pc_vbetest.lst: commands/i386/pc/vbetest.c $(commands/i386/pc/vbetest.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(vbetest_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh vbetest > $@ || (rm -f $@; exit 1) + +parttool-vbetest_mod-commands_i386_pc_vbetest.lst: commands/i386/pc/vbetest.c $(commands/i386/pc/vbetest.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vbetest_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh vbetest > $@ || (rm -f $@; exit 1) + +partmap-vbetest_mod-commands_i386_pc_vbetest.lst: commands/i386/pc/vbetest.c $(commands/i386/pc/vbetest.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(vbetest_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh vbetest > $@ || (rm -f $@; exit 1) + +handler-vbetest_mod-commands_i386_pc_vbetest.lst: commands/i386/pc/vbetest.c $(commands/i386/pc/vbetest.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vbetest_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh vbetest > $@ || (rm -f $@; exit 1) + +terminal-vbetest_mod-commands_i386_pc_vbetest.lst: commands/i386/pc/vbetest.c $(commands/i386/pc/vbetest.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vbetest_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh vbetest > $@ || (rm -f $@; exit 1) + +video-vbetest_mod-commands_i386_pc_vbetest.lst: commands/i386/pc/vbetest.c $(commands/i386/pc/vbetest.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(vbetest_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh vbetest > $@ || (rm -f $@; exit 1) + +vbetest_mod_CFLAGS = $(COMMON_CFLAGS) +vbetest_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For vga.mod. +vga_mod_SOURCES = video/i386/pc/vga.c + +clean-module-vga.mod.1: + rm -f vga.mod mod-vga.o mod-vga.c pre-vga.o vga_mod-video_i386_pc_vga.o und-vga.lst + +CLEAN_MODULE_TARGETS += clean-module-vga.mod.1 + +clean-module-vga.mod-symbol.1: + rm -f def-vga.lst + +CLEAN_MODULE_TARGETS += clean-module-vga.mod-symbol.1 +DEFSYMFILES += def-vga.lst +mostlyclean-module-vga.mod.1: + rm -f vga_mod-video_i386_pc_vga.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-vga.mod.1 +UNDSYMFILES += und-vga.lst + +ifeq ($(TARGET_NO_MODULES), yes) +vga.mod: pre-vga.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(vga_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-vga.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +vga.mod: pre-vga.o mod-vga.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(vga_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-vga.o mod-vga.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +vga.mod: pre-vga.o mod-vga.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(vga_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-vga.o mod-vga.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-vga.o: $(vga_mod_DEPENDENCIES) vga_mod-video_i386_pc_vga.o + -rm -f $@ + $(TARGET_CC) $(vga_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ vga_mod-video_i386_pc_vga.o + +mod-vga.o: mod-vga.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vga_mod_CFLAGS) -DGRUB_FILE=\"mod-vga.c\" -c -o $@ $< + +mod-vga.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'vga' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-vga.lst: pre-vga.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 vga/' > $@ +else +def-vga.lst: pre-vga.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 vga/' > $@ +endif + +und-vga.lst: pre-vga.o + echo 'vga' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +vga_mod-video_i386_pc_vga.o: video/i386/pc/vga.c $(video/i386/pc/vga.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo/i386/pc -I$(srcdir)/video/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vga_mod_CFLAGS) -DGRUB_FILE=\"video/i386/pc/vga.c\" -MD -c -o $@ $< +-include vga_mod-video_i386_pc_vga.d + +clean-module-vga_mod-video_i386_pc_vga-extra.1: + rm -f cmd-vga_mod-video_i386_pc_vga.lst fs-vga_mod-video_i386_pc_vga.lst partmap-vga_mod-video_i386_pc_vga.lst handler-vga_mod-video_i386_pc_vga.lst parttool-vga_mod-video_i386_pc_vga.lst video-vga_mod-video_i386_pc_vga.lst terminal-vga_mod-video_i386_pc_vga.lst + +CLEAN_MODULE_TARGETS += clean-module-vga_mod-video_i386_pc_vga-extra.1 + +COMMANDFILES += cmd-vga_mod-video_i386_pc_vga.lst +FSFILES += fs-vga_mod-video_i386_pc_vga.lst +PARTTOOLFILES += parttool-vga_mod-video_i386_pc_vga.lst +PARTMAPFILES += partmap-vga_mod-video_i386_pc_vga.lst +HANDLERFILES += handler-vga_mod-video_i386_pc_vga.lst +TERMINALFILES += terminal-vga_mod-video_i386_pc_vga.lst +VIDEOFILES += video-vga_mod-video_i386_pc_vga.lst + +cmd-vga_mod-video_i386_pc_vga.lst: video/i386/pc/vga.c $(video/i386/pc/vga.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ivideo/i386/pc -I$(srcdir)/video/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vga_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh vga > $@ || (rm -f $@; exit 1) + +fs-vga_mod-video_i386_pc_vga.lst: video/i386/pc/vga.c $(video/i386/pc/vga.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ivideo/i386/pc -I$(srcdir)/video/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(vga_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh vga > $@ || (rm -f $@; exit 1) + +parttool-vga_mod-video_i386_pc_vga.lst: video/i386/pc/vga.c $(video/i386/pc/vga.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ivideo/i386/pc -I$(srcdir)/video/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vga_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh vga > $@ || (rm -f $@; exit 1) + +partmap-vga_mod-video_i386_pc_vga.lst: video/i386/pc/vga.c $(video/i386/pc/vga.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ivideo/i386/pc -I$(srcdir)/video/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(vga_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh vga > $@ || (rm -f $@; exit 1) + +handler-vga_mod-video_i386_pc_vga.lst: video/i386/pc/vga.c $(video/i386/pc/vga.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ivideo/i386/pc -I$(srcdir)/video/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vga_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh vga > $@ || (rm -f $@; exit 1) + +terminal-vga_mod-video_i386_pc_vga.lst: video/i386/pc/vga.c $(video/i386/pc/vga.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ivideo/i386/pc -I$(srcdir)/video/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(vga_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh vga > $@ || (rm -f $@; exit 1) + +video-vga_mod-video_i386_pc_vga.lst: video/i386/pc/vga.c $(video/i386/pc/vga.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ivideo/i386/pc -I$(srcdir)/video/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(vga_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh vga > $@ || (rm -f $@; exit 1) + +vga_mod_CFLAGS = $(COMMON_CFLAGS) +vga_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For aout.mod +aout_mod_SOURCES = loader/aout.c + +clean-module-aout.mod.1: + rm -f aout.mod mod-aout.o mod-aout.c pre-aout.o aout_mod-loader_aout.o und-aout.lst + +CLEAN_MODULE_TARGETS += clean-module-aout.mod.1 + +clean-module-aout.mod-symbol.1: + rm -f def-aout.lst + +CLEAN_MODULE_TARGETS += clean-module-aout.mod-symbol.1 +DEFSYMFILES += def-aout.lst +mostlyclean-module-aout.mod.1: + rm -f aout_mod-loader_aout.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-aout.mod.1 +UNDSYMFILES += und-aout.lst + +ifeq ($(TARGET_NO_MODULES), yes) +aout.mod: pre-aout.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-aout.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +aout.mod: pre-aout.o mod-aout.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-aout.o mod-aout.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +aout.mod: pre-aout.o mod-aout.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-aout.o mod-aout.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-aout.o: $(aout_mod_DEPENDENCIES) aout_mod-loader_aout.o + -rm -f $@ + $(TARGET_CC) $(aout_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ aout_mod-loader_aout.o + +mod-aout.o: mod-aout.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -DGRUB_FILE=\"mod-aout.c\" -c -o $@ $< + +mod-aout.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'aout' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-aout.lst: pre-aout.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 aout/' > $@ +else +def-aout.lst: pre-aout.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 aout/' > $@ +endif + +und-aout.lst: pre-aout.o + echo 'aout' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +aout_mod-loader_aout.o: loader/aout.c $(loader/aout.c_DEPENDENCIES) + $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -DGRUB_FILE=\"loader/aout.c\" -MD -c -o $@ $< +-include aout_mod-loader_aout.d + +clean-module-aout_mod-loader_aout-extra.1: + rm -f cmd-aout_mod-loader_aout.lst fs-aout_mod-loader_aout.lst partmap-aout_mod-loader_aout.lst handler-aout_mod-loader_aout.lst parttool-aout_mod-loader_aout.lst video-aout_mod-loader_aout.lst terminal-aout_mod-loader_aout.lst + +CLEAN_MODULE_TARGETS += clean-module-aout_mod-loader_aout-extra.1 + +COMMANDFILES += cmd-aout_mod-loader_aout.lst +FSFILES += fs-aout_mod-loader_aout.lst +PARTTOOLFILES += parttool-aout_mod-loader_aout.lst +PARTMAPFILES += partmap-aout_mod-loader_aout.lst +HANDLERFILES += handler-aout_mod-loader_aout.lst +TERMINALFILES += terminal-aout_mod-loader_aout.lst +VIDEOFILES += video-aout_mod-loader_aout.lst + +cmd-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh aout > $@ || (rm -f $@; exit 1) + +fs-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh aout > $@ || (rm -f $@; exit 1) + +parttool-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh aout > $@ || (rm -f $@; exit 1) + +partmap-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh aout > $@ || (rm -f $@; exit 1) + +handler-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh aout > $@ || (rm -f $@; exit 1) + +terminal-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh aout > $@ || (rm -f $@; exit 1) + +video-aout_mod-loader_aout.lst: loader/aout.c $(loader/aout.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(aout_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh aout > $@ || (rm -f $@; exit 1) + +aout_mod_CFLAGS = $(COMMON_CFLAGS) +aout_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For bsd.mod +bsd_mod_SOURCES = loader/i386/bsd.c loader/i386/bsd32.c loader/i386/bsd64.c loader/i386/bsd_helper.S loader/i386/bsd_trampoline.S + +clean-module-bsd.mod.1: + rm -f bsd.mod mod-bsd.o mod-bsd.c pre-bsd.o bsd_mod-loader_i386_bsd.o bsd_mod-loader_i386_bsd32.o bsd_mod-loader_i386_bsd64.o bsd_mod-loader_i386_bsd_helper.o bsd_mod-loader_i386_bsd_trampoline.o und-bsd.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd.mod.1 + +clean-module-bsd.mod-symbol.1: + rm -f def-bsd.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd.mod-symbol.1 +DEFSYMFILES += def-bsd.lst +mostlyclean-module-bsd.mod.1: + rm -f bsd_mod-loader_i386_bsd.d bsd_mod-loader_i386_bsd32.d bsd_mod-loader_i386_bsd64.d bsd_mod-loader_i386_bsd_helper.d bsd_mod-loader_i386_bsd_trampoline.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-bsd.mod.1 +UNDSYMFILES += und-bsd.lst + +ifeq ($(TARGET_NO_MODULES), yes) +bsd.mod: pre-bsd.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(bsd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-bsd.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +bsd.mod: pre-bsd.o mod-bsd.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(bsd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-bsd.o mod-bsd.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +bsd.mod: pre-bsd.o mod-bsd.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(bsd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-bsd.o mod-bsd.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-bsd.o: $(bsd_mod_DEPENDENCIES) bsd_mod-loader_i386_bsd.o bsd_mod-loader_i386_bsd32.o bsd_mod-loader_i386_bsd64.o bsd_mod-loader_i386_bsd_helper.o bsd_mod-loader_i386_bsd_trampoline.o + -rm -f $@ + $(TARGET_CC) $(bsd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ bsd_mod-loader_i386_bsd.o bsd_mod-loader_i386_bsd32.o bsd_mod-loader_i386_bsd64.o bsd_mod-loader_i386_bsd_helper.o bsd_mod-loader_i386_bsd_trampoline.o + +mod-bsd.o: mod-bsd.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -DGRUB_FILE=\"mod-bsd.c\" -c -o $@ $< + +mod-bsd.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'bsd' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-bsd.lst: pre-bsd.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 bsd/' > $@ +else +def-bsd.lst: pre-bsd.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 bsd/' > $@ +endif + +und-bsd.lst: pre-bsd.o + echo 'bsd' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +bsd_mod-loader_i386_bsd.o: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -DGRUB_FILE=\"loader/i386/bsd.c\" -MD -c -o $@ $< +-include bsd_mod-loader_i386_bsd.d + +clean-module-bsd_mod-loader_i386_bsd-extra.1: + rm -f cmd-bsd_mod-loader_i386_bsd.lst fs-bsd_mod-loader_i386_bsd.lst partmap-bsd_mod-loader_i386_bsd.lst handler-bsd_mod-loader_i386_bsd.lst parttool-bsd_mod-loader_i386_bsd.lst video-bsd_mod-loader_i386_bsd.lst terminal-bsd_mod-loader_i386_bsd.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd_mod-loader_i386_bsd-extra.1 + +COMMANDFILES += cmd-bsd_mod-loader_i386_bsd.lst +FSFILES += fs-bsd_mod-loader_i386_bsd.lst +PARTTOOLFILES += parttool-bsd_mod-loader_i386_bsd.lst +PARTMAPFILES += partmap-bsd_mod-loader_i386_bsd.lst +HANDLERFILES += handler-bsd_mod-loader_i386_bsd.lst +TERMINALFILES += terminal-bsd_mod-loader_i386_bsd.lst +VIDEOFILES += video-bsd_mod-loader_i386_bsd.lst + +cmd-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh bsd > $@ || (rm -f $@; exit 1) + +fs-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh bsd > $@ || (rm -f $@; exit 1) + +parttool-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh bsd > $@ || (rm -f $@; exit 1) + +partmap-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh bsd > $@ || (rm -f $@; exit 1) + +handler-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh bsd > $@ || (rm -f $@; exit 1) + +terminal-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh bsd > $@ || (rm -f $@; exit 1) + +video-bsd_mod-loader_i386_bsd.lst: loader/i386/bsd.c $(loader/i386/bsd.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh bsd > $@ || (rm -f $@; exit 1) + +bsd_mod-loader_i386_bsd32.o: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -DGRUB_FILE=\"loader/i386/bsd32.c\" -MD -c -o $@ $< +-include bsd_mod-loader_i386_bsd32.d + +clean-module-bsd_mod-loader_i386_bsd32-extra.1: + rm -f cmd-bsd_mod-loader_i386_bsd32.lst fs-bsd_mod-loader_i386_bsd32.lst partmap-bsd_mod-loader_i386_bsd32.lst handler-bsd_mod-loader_i386_bsd32.lst parttool-bsd_mod-loader_i386_bsd32.lst video-bsd_mod-loader_i386_bsd32.lst terminal-bsd_mod-loader_i386_bsd32.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd_mod-loader_i386_bsd32-extra.1 + +COMMANDFILES += cmd-bsd_mod-loader_i386_bsd32.lst +FSFILES += fs-bsd_mod-loader_i386_bsd32.lst +PARTTOOLFILES += parttool-bsd_mod-loader_i386_bsd32.lst +PARTMAPFILES += partmap-bsd_mod-loader_i386_bsd32.lst +HANDLERFILES += handler-bsd_mod-loader_i386_bsd32.lst +TERMINALFILES += terminal-bsd_mod-loader_i386_bsd32.lst +VIDEOFILES += video-bsd_mod-loader_i386_bsd32.lst + +cmd-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh bsd > $@ || (rm -f $@; exit 1) + +fs-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh bsd > $@ || (rm -f $@; exit 1) + +parttool-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh bsd > $@ || (rm -f $@; exit 1) + +partmap-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh bsd > $@ || (rm -f $@; exit 1) + +handler-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh bsd > $@ || (rm -f $@; exit 1) + +terminal-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh bsd > $@ || (rm -f $@; exit 1) + +video-bsd_mod-loader_i386_bsd32.lst: loader/i386/bsd32.c $(loader/i386/bsd32.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh bsd > $@ || (rm -f $@; exit 1) + +bsd_mod-loader_i386_bsd64.o: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -DGRUB_FILE=\"loader/i386/bsd64.c\" -MD -c -o $@ $< +-include bsd_mod-loader_i386_bsd64.d + +clean-module-bsd_mod-loader_i386_bsd64-extra.1: + rm -f cmd-bsd_mod-loader_i386_bsd64.lst fs-bsd_mod-loader_i386_bsd64.lst partmap-bsd_mod-loader_i386_bsd64.lst handler-bsd_mod-loader_i386_bsd64.lst parttool-bsd_mod-loader_i386_bsd64.lst video-bsd_mod-loader_i386_bsd64.lst terminal-bsd_mod-loader_i386_bsd64.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd_mod-loader_i386_bsd64-extra.1 + +COMMANDFILES += cmd-bsd_mod-loader_i386_bsd64.lst +FSFILES += fs-bsd_mod-loader_i386_bsd64.lst +PARTTOOLFILES += parttool-bsd_mod-loader_i386_bsd64.lst +PARTMAPFILES += partmap-bsd_mod-loader_i386_bsd64.lst +HANDLERFILES += handler-bsd_mod-loader_i386_bsd64.lst +TERMINALFILES += terminal-bsd_mod-loader_i386_bsd64.lst +VIDEOFILES += video-bsd_mod-loader_i386_bsd64.lst + +cmd-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh bsd > $@ || (rm -f $@; exit 1) + +fs-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh bsd > $@ || (rm -f $@; exit 1) + +parttool-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh bsd > $@ || (rm -f $@; exit 1) + +partmap-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh bsd > $@ || (rm -f $@; exit 1) + +handler-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh bsd > $@ || (rm -f $@; exit 1) + +terminal-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh bsd > $@ || (rm -f $@; exit 1) + +video-bsd_mod-loader_i386_bsd64.lst: loader/i386/bsd64.c $(loader/i386/bsd64.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(bsd_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh bsd > $@ || (rm -f $@; exit 1) + +bsd_mod-loader_i386_bsd_helper.o: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -DGRUB_FILE=\"loader/i386/bsd_helper.S\" -MD -c -o $@ $< +-include bsd_mod-loader_i386_bsd_helper.d + +clean-module-bsd_mod-loader_i386_bsd_helper-extra.1: + rm -f cmd-bsd_mod-loader_i386_bsd_helper.lst fs-bsd_mod-loader_i386_bsd_helper.lst partmap-bsd_mod-loader_i386_bsd_helper.lst handler-bsd_mod-loader_i386_bsd_helper.lst parttool-bsd_mod-loader_i386_bsd_helper.lst video-bsd_mod-loader_i386_bsd_helper.lst terminal-bsd_mod-loader_i386_bsd_helper.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd_mod-loader_i386_bsd_helper-extra.1 + +COMMANDFILES += cmd-bsd_mod-loader_i386_bsd_helper.lst +FSFILES += fs-bsd_mod-loader_i386_bsd_helper.lst +PARTTOOLFILES += parttool-bsd_mod-loader_i386_bsd_helper.lst +PARTMAPFILES += partmap-bsd_mod-loader_i386_bsd_helper.lst +HANDLERFILES += handler-bsd_mod-loader_i386_bsd_helper.lst +TERMINALFILES += terminal-bsd_mod-loader_i386_bsd_helper.lst +VIDEOFILES += video-bsd_mod-loader_i386_bsd_helper.lst + +cmd-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh bsd > $@ || (rm -f $@; exit 1) + +fs-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genfslist.sh bsd > $@ || (rm -f $@; exit 1) + +parttool-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh bsd > $@ || (rm -f $@; exit 1) + +partmap-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh bsd > $@ || (rm -f $@; exit 1) + +handler-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh bsd > $@ || (rm -f $@; exit 1) + +terminal-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genterminallist.sh bsd > $@ || (rm -f $@; exit 1) + +video-bsd_mod-loader_i386_bsd_helper.lst: loader/i386/bsd_helper.S $(loader/i386/bsd_helper.S_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genvideolist.sh bsd > $@ || (rm -f $@; exit 1) + +bsd_mod-loader_i386_bsd_trampoline.o: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -DGRUB_FILE=\"loader/i386/bsd_trampoline.S\" -MD -c -o $@ $< +-include bsd_mod-loader_i386_bsd_trampoline.d + +clean-module-bsd_mod-loader_i386_bsd_trampoline-extra.1: + rm -f cmd-bsd_mod-loader_i386_bsd_trampoline.lst fs-bsd_mod-loader_i386_bsd_trampoline.lst partmap-bsd_mod-loader_i386_bsd_trampoline.lst handler-bsd_mod-loader_i386_bsd_trampoline.lst parttool-bsd_mod-loader_i386_bsd_trampoline.lst video-bsd_mod-loader_i386_bsd_trampoline.lst terminal-bsd_mod-loader_i386_bsd_trampoline.lst + +CLEAN_MODULE_TARGETS += clean-module-bsd_mod-loader_i386_bsd_trampoline-extra.1 + +COMMANDFILES += cmd-bsd_mod-loader_i386_bsd_trampoline.lst +FSFILES += fs-bsd_mod-loader_i386_bsd_trampoline.lst +PARTTOOLFILES += parttool-bsd_mod-loader_i386_bsd_trampoline.lst +PARTMAPFILES += partmap-bsd_mod-loader_i386_bsd_trampoline.lst +HANDLERFILES += handler-bsd_mod-loader_i386_bsd_trampoline.lst +TERMINALFILES += terminal-bsd_mod-loader_i386_bsd_trampoline.lst +VIDEOFILES += video-bsd_mod-loader_i386_bsd_trampoline.lst + +cmd-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh bsd > $@ || (rm -f $@; exit 1) + +fs-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genfslist.sh bsd > $@ || (rm -f $@; exit 1) + +parttool-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh bsd > $@ || (rm -f $@; exit 1) + +partmap-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh bsd > $@ || (rm -f $@; exit 1) + +handler-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh bsd > $@ || (rm -f $@; exit 1) + +terminal-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genterminallist.sh bsd > $@ || (rm -f $@; exit 1) + +video-bsd_mod-loader_i386_bsd_trampoline.lst: loader/i386/bsd_trampoline.S $(loader/i386/bsd_trampoline.S_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(bsd_mod_ASFLAGS) -E $< | sh $(srcdir)/genvideolist.sh bsd > $@ || (rm -f $@; exit 1) + +bsd_mod_CFLAGS = $(COMMON_CFLAGS) +bsd_mod_LDFLAGS = $(COMMON_LDFLAGS) +bsd_mod_ASFLAGS = $(COMMON_ASFLAGS) + +# For usb.mod +usb_mod_SOURCES = bus/usb/usb.c bus/usb/usbtrans.c bus/usb/usbhub.c + +clean-module-usb.mod.1: + rm -f usb.mod mod-usb.o mod-usb.c pre-usb.o usb_mod-bus_usb_usb.o usb_mod-bus_usb_usbtrans.o usb_mod-bus_usb_usbhub.o und-usb.lst + +CLEAN_MODULE_TARGETS += clean-module-usb.mod.1 + +clean-module-usb.mod-symbol.1: + rm -f def-usb.lst + +CLEAN_MODULE_TARGETS += clean-module-usb.mod-symbol.1 +DEFSYMFILES += def-usb.lst +mostlyclean-module-usb.mod.1: + rm -f usb_mod-bus_usb_usb.d usb_mod-bus_usb_usbtrans.d usb_mod-bus_usb_usbhub.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-usb.mod.1 +UNDSYMFILES += und-usb.lst + +ifeq ($(TARGET_NO_MODULES), yes) +usb.mod: pre-usb.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(usb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-usb.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +usb.mod: pre-usb.o mod-usb.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(usb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-usb.o mod-usb.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +usb.mod: pre-usb.o mod-usb.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(usb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-usb.o mod-usb.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-usb.o: $(usb_mod_DEPENDENCIES) usb_mod-bus_usb_usb.o usb_mod-bus_usb_usbtrans.o usb_mod-bus_usb_usbhub.o + -rm -f $@ + $(TARGET_CC) $(usb_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ usb_mod-bus_usb_usb.o usb_mod-bus_usb_usbtrans.o usb_mod-bus_usb_usbhub.o + +mod-usb.o: mod-usb.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -DGRUB_FILE=\"mod-usb.c\" -c -o $@ $< + +mod-usb.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'usb' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-usb.lst: pre-usb.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 usb/' > $@ +else +def-usb.lst: pre-usb.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 usb/' > $@ +endif + +und-usb.lst: pre-usb.o + echo 'usb' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +usb_mod-bus_usb_usb.o: bus/usb/usb.c $(bus/usb/usb.c_DEPENDENCIES) + $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -DGRUB_FILE=\"bus/usb/usb.c\" -MD -c -o $@ $< +-include usb_mod-bus_usb_usb.d + +clean-module-usb_mod-bus_usb_usb-extra.1: + rm -f cmd-usb_mod-bus_usb_usb.lst fs-usb_mod-bus_usb_usb.lst partmap-usb_mod-bus_usb_usb.lst handler-usb_mod-bus_usb_usb.lst parttool-usb_mod-bus_usb_usb.lst video-usb_mod-bus_usb_usb.lst terminal-usb_mod-bus_usb_usb.lst + +CLEAN_MODULE_TARGETS += clean-module-usb_mod-bus_usb_usb-extra.1 + +COMMANDFILES += cmd-usb_mod-bus_usb_usb.lst +FSFILES += fs-usb_mod-bus_usb_usb.lst +PARTTOOLFILES += parttool-usb_mod-bus_usb_usb.lst +PARTMAPFILES += partmap-usb_mod-bus_usb_usb.lst +HANDLERFILES += handler-usb_mod-bus_usb_usb.lst +TERMINALFILES += terminal-usb_mod-bus_usb_usb.lst +VIDEOFILES += video-usb_mod-bus_usb_usb.lst + +cmd-usb_mod-bus_usb_usb.lst: bus/usb/usb.c $(bus/usb/usb.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh usb > $@ || (rm -f $@; exit 1) + +fs-usb_mod-bus_usb_usb.lst: bus/usb/usb.c $(bus/usb/usb.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh usb > $@ || (rm -f $@; exit 1) + +parttool-usb_mod-bus_usb_usb.lst: bus/usb/usb.c $(bus/usb/usb.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh usb > $@ || (rm -f $@; exit 1) + +partmap-usb_mod-bus_usb_usb.lst: bus/usb/usb.c $(bus/usb/usb.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh usb > $@ || (rm -f $@; exit 1) + +handler-usb_mod-bus_usb_usb.lst: bus/usb/usb.c $(bus/usb/usb.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh usb > $@ || (rm -f $@; exit 1) + +terminal-usb_mod-bus_usb_usb.lst: bus/usb/usb.c $(bus/usb/usb.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh usb > $@ || (rm -f $@; exit 1) + +video-usb_mod-bus_usb_usb.lst: bus/usb/usb.c $(bus/usb/usb.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh usb > $@ || (rm -f $@; exit 1) + +usb_mod-bus_usb_usbtrans.o: bus/usb/usbtrans.c $(bus/usb/usbtrans.c_DEPENDENCIES) + $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -DGRUB_FILE=\"bus/usb/usbtrans.c\" -MD -c -o $@ $< +-include usb_mod-bus_usb_usbtrans.d + +clean-module-usb_mod-bus_usb_usbtrans-extra.1: + rm -f cmd-usb_mod-bus_usb_usbtrans.lst fs-usb_mod-bus_usb_usbtrans.lst partmap-usb_mod-bus_usb_usbtrans.lst handler-usb_mod-bus_usb_usbtrans.lst parttool-usb_mod-bus_usb_usbtrans.lst video-usb_mod-bus_usb_usbtrans.lst terminal-usb_mod-bus_usb_usbtrans.lst + +CLEAN_MODULE_TARGETS += clean-module-usb_mod-bus_usb_usbtrans-extra.1 + +COMMANDFILES += cmd-usb_mod-bus_usb_usbtrans.lst +FSFILES += fs-usb_mod-bus_usb_usbtrans.lst +PARTTOOLFILES += parttool-usb_mod-bus_usb_usbtrans.lst +PARTMAPFILES += partmap-usb_mod-bus_usb_usbtrans.lst +HANDLERFILES += handler-usb_mod-bus_usb_usbtrans.lst +TERMINALFILES += terminal-usb_mod-bus_usb_usbtrans.lst +VIDEOFILES += video-usb_mod-bus_usb_usbtrans.lst + +cmd-usb_mod-bus_usb_usbtrans.lst: bus/usb/usbtrans.c $(bus/usb/usbtrans.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh usb > $@ || (rm -f $@; exit 1) + +fs-usb_mod-bus_usb_usbtrans.lst: bus/usb/usbtrans.c $(bus/usb/usbtrans.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh usb > $@ || (rm -f $@; exit 1) + +parttool-usb_mod-bus_usb_usbtrans.lst: bus/usb/usbtrans.c $(bus/usb/usbtrans.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh usb > $@ || (rm -f $@; exit 1) + +partmap-usb_mod-bus_usb_usbtrans.lst: bus/usb/usbtrans.c $(bus/usb/usbtrans.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh usb > $@ || (rm -f $@; exit 1) + +handler-usb_mod-bus_usb_usbtrans.lst: bus/usb/usbtrans.c $(bus/usb/usbtrans.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh usb > $@ || (rm -f $@; exit 1) + +terminal-usb_mod-bus_usb_usbtrans.lst: bus/usb/usbtrans.c $(bus/usb/usbtrans.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh usb > $@ || (rm -f $@; exit 1) + +video-usb_mod-bus_usb_usbtrans.lst: bus/usb/usbtrans.c $(bus/usb/usbtrans.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh usb > $@ || (rm -f $@; exit 1) + +usb_mod-bus_usb_usbhub.o: bus/usb/usbhub.c $(bus/usb/usbhub.c_DEPENDENCIES) + $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -DGRUB_FILE=\"bus/usb/usbhub.c\" -MD -c -o $@ $< +-include usb_mod-bus_usb_usbhub.d + +clean-module-usb_mod-bus_usb_usbhub-extra.1: + rm -f cmd-usb_mod-bus_usb_usbhub.lst fs-usb_mod-bus_usb_usbhub.lst partmap-usb_mod-bus_usb_usbhub.lst handler-usb_mod-bus_usb_usbhub.lst parttool-usb_mod-bus_usb_usbhub.lst video-usb_mod-bus_usb_usbhub.lst terminal-usb_mod-bus_usb_usbhub.lst + +CLEAN_MODULE_TARGETS += clean-module-usb_mod-bus_usb_usbhub-extra.1 + +COMMANDFILES += cmd-usb_mod-bus_usb_usbhub.lst +FSFILES += fs-usb_mod-bus_usb_usbhub.lst +PARTTOOLFILES += parttool-usb_mod-bus_usb_usbhub.lst +PARTMAPFILES += partmap-usb_mod-bus_usb_usbhub.lst +HANDLERFILES += handler-usb_mod-bus_usb_usbhub.lst +TERMINALFILES += terminal-usb_mod-bus_usb_usbhub.lst +VIDEOFILES += video-usb_mod-bus_usb_usbhub.lst + +cmd-usb_mod-bus_usb_usbhub.lst: bus/usb/usbhub.c $(bus/usb/usbhub.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh usb > $@ || (rm -f $@; exit 1) + +fs-usb_mod-bus_usb_usbhub.lst: bus/usb/usbhub.c $(bus/usb/usbhub.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh usb > $@ || (rm -f $@; exit 1) + +parttool-usb_mod-bus_usb_usbhub.lst: bus/usb/usbhub.c $(bus/usb/usbhub.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh usb > $@ || (rm -f $@; exit 1) + +partmap-usb_mod-bus_usb_usbhub.lst: bus/usb/usbhub.c $(bus/usb/usbhub.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh usb > $@ || (rm -f $@; exit 1) + +handler-usb_mod-bus_usb_usbhub.lst: bus/usb/usbhub.c $(bus/usb/usbhub.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh usb > $@ || (rm -f $@; exit 1) + +terminal-usb_mod-bus_usb_usbhub.lst: bus/usb/usbhub.c $(bus/usb/usbhub.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh usb > $@ || (rm -f $@; exit 1) + +video-usb_mod-bus_usb_usbhub.lst: bus/usb/usbhub.c $(bus/usb/usbhub.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh usb > $@ || (rm -f $@; exit 1) + +usb_mod_CFLAGS = $(COMMON_CFLAGS) +usb_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For usbtest.mod +usbtest_mod_SOURCES = commands/usbtest.c + +clean-module-usbtest.mod.1: + rm -f usbtest.mod mod-usbtest.o mod-usbtest.c pre-usbtest.o usbtest_mod-commands_usbtest.o und-usbtest.lst + +CLEAN_MODULE_TARGETS += clean-module-usbtest.mod.1 + +clean-module-usbtest.mod-symbol.1: + rm -f def-usbtest.lst + +CLEAN_MODULE_TARGETS += clean-module-usbtest.mod-symbol.1 +DEFSYMFILES += def-usbtest.lst +mostlyclean-module-usbtest.mod.1: + rm -f usbtest_mod-commands_usbtest.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-usbtest.mod.1 +UNDSYMFILES += und-usbtest.lst + +ifeq ($(TARGET_NO_MODULES), yes) +usbtest.mod: pre-usbtest.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(usbtest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-usbtest.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +usbtest.mod: pre-usbtest.o mod-usbtest.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(usbtest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-usbtest.o mod-usbtest.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +usbtest.mod: pre-usbtest.o mod-usbtest.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(usbtest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-usbtest.o mod-usbtest.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-usbtest.o: $(usbtest_mod_DEPENDENCIES) usbtest_mod-commands_usbtest.o + -rm -f $@ + $(TARGET_CC) $(usbtest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ usbtest_mod-commands_usbtest.o + +mod-usbtest.o: mod-usbtest.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -DGRUB_FILE=\"mod-usbtest.c\" -c -o $@ $< + +mod-usbtest.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'usbtest' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-usbtest.lst: pre-usbtest.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 usbtest/' > $@ +else +def-usbtest.lst: pre-usbtest.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 usbtest/' > $@ +endif + +und-usbtest.lst: pre-usbtest.o + echo 'usbtest' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +usbtest_mod-commands_usbtest.o: commands/usbtest.c $(commands/usbtest.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -DGRUB_FILE=\"commands/usbtest.c\" -MD -c -o $@ $< +-include usbtest_mod-commands_usbtest.d + +clean-module-usbtest_mod-commands_usbtest-extra.1: + rm -f cmd-usbtest_mod-commands_usbtest.lst fs-usbtest_mod-commands_usbtest.lst partmap-usbtest_mod-commands_usbtest.lst handler-usbtest_mod-commands_usbtest.lst parttool-usbtest_mod-commands_usbtest.lst video-usbtest_mod-commands_usbtest.lst terminal-usbtest_mod-commands_usbtest.lst + +CLEAN_MODULE_TARGETS += clean-module-usbtest_mod-commands_usbtest-extra.1 + +COMMANDFILES += cmd-usbtest_mod-commands_usbtest.lst +FSFILES += fs-usbtest_mod-commands_usbtest.lst +PARTTOOLFILES += parttool-usbtest_mod-commands_usbtest.lst +PARTMAPFILES += partmap-usbtest_mod-commands_usbtest.lst +HANDLERFILES += handler-usbtest_mod-commands_usbtest.lst +TERMINALFILES += terminal-usbtest_mod-commands_usbtest.lst +VIDEOFILES += video-usbtest_mod-commands_usbtest.lst + +cmd-usbtest_mod-commands_usbtest.lst: commands/usbtest.c $(commands/usbtest.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh usbtest > $@ || (rm -f $@; exit 1) + +fs-usbtest_mod-commands_usbtest.lst: commands/usbtest.c $(commands/usbtest.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh usbtest > $@ || (rm -f $@; exit 1) + +parttool-usbtest_mod-commands_usbtest.lst: commands/usbtest.c $(commands/usbtest.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh usbtest > $@ || (rm -f $@; exit 1) + +partmap-usbtest_mod-commands_usbtest.lst: commands/usbtest.c $(commands/usbtest.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh usbtest > $@ || (rm -f $@; exit 1) + +handler-usbtest_mod-commands_usbtest.lst: commands/usbtest.c $(commands/usbtest.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh usbtest > $@ || (rm -f $@; exit 1) + +terminal-usbtest_mod-commands_usbtest.lst: commands/usbtest.c $(commands/usbtest.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh usbtest > $@ || (rm -f $@; exit 1) + +video-usbtest_mod-commands_usbtest.lst: commands/usbtest.c $(commands/usbtest.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usbtest_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh usbtest > $@ || (rm -f $@; exit 1) + +usbtest_mod_CFLAGS = $(COMMON_CFLAGS) +usbtest_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For uhci.mod +uhci_mod_SOURCES = bus/usb/uhci.c + +clean-module-uhci.mod.1: + rm -f uhci.mod mod-uhci.o mod-uhci.c pre-uhci.o uhci_mod-bus_usb_uhci.o und-uhci.lst + +CLEAN_MODULE_TARGETS += clean-module-uhci.mod.1 + +clean-module-uhci.mod-symbol.1: + rm -f def-uhci.lst + +CLEAN_MODULE_TARGETS += clean-module-uhci.mod-symbol.1 +DEFSYMFILES += def-uhci.lst +mostlyclean-module-uhci.mod.1: + rm -f uhci_mod-bus_usb_uhci.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-uhci.mod.1 +UNDSYMFILES += und-uhci.lst + +ifeq ($(TARGET_NO_MODULES), yes) +uhci.mod: pre-uhci.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(uhci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-uhci.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +uhci.mod: pre-uhci.o mod-uhci.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(uhci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-uhci.o mod-uhci.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +uhci.mod: pre-uhci.o mod-uhci.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(uhci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-uhci.o mod-uhci.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-uhci.o: $(uhci_mod_DEPENDENCIES) uhci_mod-bus_usb_uhci.o + -rm -f $@ + $(TARGET_CC) $(uhci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ uhci_mod-bus_usb_uhci.o + +mod-uhci.o: mod-uhci.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(uhci_mod_CFLAGS) -DGRUB_FILE=\"mod-uhci.c\" -c -o $@ $< + +mod-uhci.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'uhci' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-uhci.lst: pre-uhci.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 uhci/' > $@ +else +def-uhci.lst: pre-uhci.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 uhci/' > $@ +endif + +und-uhci.lst: pre-uhci.o + echo 'uhci' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +uhci_mod-bus_usb_uhci.o: bus/usb/uhci.c $(bus/usb/uhci.c_DEPENDENCIES) + $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(uhci_mod_CFLAGS) -DGRUB_FILE=\"bus/usb/uhci.c\" -MD -c -o $@ $< +-include uhci_mod-bus_usb_uhci.d + +clean-module-uhci_mod-bus_usb_uhci-extra.1: + rm -f cmd-uhci_mod-bus_usb_uhci.lst fs-uhci_mod-bus_usb_uhci.lst partmap-uhci_mod-bus_usb_uhci.lst handler-uhci_mod-bus_usb_uhci.lst parttool-uhci_mod-bus_usb_uhci.lst video-uhci_mod-bus_usb_uhci.lst terminal-uhci_mod-bus_usb_uhci.lst + +CLEAN_MODULE_TARGETS += clean-module-uhci_mod-bus_usb_uhci-extra.1 + +COMMANDFILES += cmd-uhci_mod-bus_usb_uhci.lst +FSFILES += fs-uhci_mod-bus_usb_uhci.lst +PARTTOOLFILES += parttool-uhci_mod-bus_usb_uhci.lst +PARTMAPFILES += partmap-uhci_mod-bus_usb_uhci.lst +HANDLERFILES += handler-uhci_mod-bus_usb_uhci.lst +TERMINALFILES += terminal-uhci_mod-bus_usb_uhci.lst +VIDEOFILES += video-uhci_mod-bus_usb_uhci.lst + +cmd-uhci_mod-bus_usb_uhci.lst: bus/usb/uhci.c $(bus/usb/uhci.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(uhci_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh uhci > $@ || (rm -f $@; exit 1) + +fs-uhci_mod-bus_usb_uhci.lst: bus/usb/uhci.c $(bus/usb/uhci.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(uhci_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh uhci > $@ || (rm -f $@; exit 1) + +parttool-uhci_mod-bus_usb_uhci.lst: bus/usb/uhci.c $(bus/usb/uhci.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(uhci_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh uhci > $@ || (rm -f $@; exit 1) + +partmap-uhci_mod-bus_usb_uhci.lst: bus/usb/uhci.c $(bus/usb/uhci.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(uhci_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh uhci > $@ || (rm -f $@; exit 1) + +handler-uhci_mod-bus_usb_uhci.lst: bus/usb/uhci.c $(bus/usb/uhci.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(uhci_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh uhci > $@ || (rm -f $@; exit 1) + +terminal-uhci_mod-bus_usb_uhci.lst: bus/usb/uhci.c $(bus/usb/uhci.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(uhci_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh uhci > $@ || (rm -f $@; exit 1) + +video-uhci_mod-bus_usb_uhci.lst: bus/usb/uhci.c $(bus/usb/uhci.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(uhci_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh uhci > $@ || (rm -f $@; exit 1) + +uhci_mod_CFLAGS = $(COMMON_CFLAGS) +uhci_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For ohci.mod +ohci_mod_SOURCES = bus/usb/ohci.c + +clean-module-ohci.mod.1: + rm -f ohci.mod mod-ohci.o mod-ohci.c pre-ohci.o ohci_mod-bus_usb_ohci.o und-ohci.lst + +CLEAN_MODULE_TARGETS += clean-module-ohci.mod.1 + +clean-module-ohci.mod-symbol.1: + rm -f def-ohci.lst + +CLEAN_MODULE_TARGETS += clean-module-ohci.mod-symbol.1 +DEFSYMFILES += def-ohci.lst +mostlyclean-module-ohci.mod.1: + rm -f ohci_mod-bus_usb_ohci.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-ohci.mod.1 +UNDSYMFILES += und-ohci.lst + +ifeq ($(TARGET_NO_MODULES), yes) +ohci.mod: pre-ohci.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ohci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ohci.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +ohci.mod: pre-ohci.o mod-ohci.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ohci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ohci.o mod-ohci.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ohci.mod: pre-ohci.o mod-ohci.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(ohci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-ohci.o mod-ohci.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-ohci.o: $(ohci_mod_DEPENDENCIES) ohci_mod-bus_usb_ohci.o + -rm -f $@ + $(TARGET_CC) $(ohci_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ ohci_mod-bus_usb_ohci.o + +mod-ohci.o: mod-ohci.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ohci_mod_CFLAGS) -DGRUB_FILE=\"mod-ohci.c\" -c -o $@ $< + +mod-ohci.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'ohci' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-ohci.lst: pre-ohci.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 ohci/' > $@ +else +def-ohci.lst: pre-ohci.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 ohci/' > $@ +endif + +und-ohci.lst: pre-ohci.o + echo 'ohci' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +ohci_mod-bus_usb_ohci.o: bus/usb/ohci.c $(bus/usb/ohci.c_DEPENDENCIES) + $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ohci_mod_CFLAGS) -DGRUB_FILE=\"bus/usb/ohci.c\" -MD -c -o $@ $< +-include ohci_mod-bus_usb_ohci.d + +clean-module-ohci_mod-bus_usb_ohci-extra.1: + rm -f cmd-ohci_mod-bus_usb_ohci.lst fs-ohci_mod-bus_usb_ohci.lst partmap-ohci_mod-bus_usb_ohci.lst handler-ohci_mod-bus_usb_ohci.lst parttool-ohci_mod-bus_usb_ohci.lst video-ohci_mod-bus_usb_ohci.lst terminal-ohci_mod-bus_usb_ohci.lst + +CLEAN_MODULE_TARGETS += clean-module-ohci_mod-bus_usb_ohci-extra.1 + +COMMANDFILES += cmd-ohci_mod-bus_usb_ohci.lst +FSFILES += fs-ohci_mod-bus_usb_ohci.lst +PARTTOOLFILES += parttool-ohci_mod-bus_usb_ohci.lst +PARTMAPFILES += partmap-ohci_mod-bus_usb_ohci.lst +HANDLERFILES += handler-ohci_mod-bus_usb_ohci.lst +TERMINALFILES += terminal-ohci_mod-bus_usb_ohci.lst +VIDEOFILES += video-ohci_mod-bus_usb_ohci.lst + +cmd-ohci_mod-bus_usb_ohci.lst: bus/usb/ohci.c $(bus/usb/ohci.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ohci_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh ohci > $@ || (rm -f $@; exit 1) + +fs-ohci_mod-bus_usb_ohci.lst: bus/usb/ohci.c $(bus/usb/ohci.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ohci_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh ohci > $@ || (rm -f $@; exit 1) + +parttool-ohci_mod-bus_usb_ohci.lst: bus/usb/ohci.c $(bus/usb/ohci.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ohci_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh ohci > $@ || (rm -f $@; exit 1) + +partmap-ohci_mod-bus_usb_ohci.lst: bus/usb/ohci.c $(bus/usb/ohci.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ohci_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh ohci > $@ || (rm -f $@; exit 1) + +handler-ohci_mod-bus_usb_ohci.lst: bus/usb/ohci.c $(bus/usb/ohci.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ohci_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh ohci > $@ || (rm -f $@; exit 1) + +terminal-ohci_mod-bus_usb_ohci.lst: bus/usb/ohci.c $(bus/usb/ohci.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ohci_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh ohci > $@ || (rm -f $@; exit 1) + +video-ohci_mod-bus_usb_ohci.lst: bus/usb/ohci.c $(bus/usb/ohci.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ibus/usb -I$(srcdir)/bus/usb $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ohci_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh ohci > $@ || (rm -f $@; exit 1) + +ohci_mod_CFLAGS = $(COMMON_CFLAGS) +ohci_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For usbms.mod +usbms_mod_SOURCES = disk/usbms.c + +clean-module-usbms.mod.1: + rm -f usbms.mod mod-usbms.o mod-usbms.c pre-usbms.o usbms_mod-disk_usbms.o und-usbms.lst + +CLEAN_MODULE_TARGETS += clean-module-usbms.mod.1 + +clean-module-usbms.mod-symbol.1: + rm -f def-usbms.lst + +CLEAN_MODULE_TARGETS += clean-module-usbms.mod-symbol.1 +DEFSYMFILES += def-usbms.lst +mostlyclean-module-usbms.mod.1: + rm -f usbms_mod-disk_usbms.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-usbms.mod.1 +UNDSYMFILES += und-usbms.lst + +ifeq ($(TARGET_NO_MODULES), yes) +usbms.mod: pre-usbms.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(usbms_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-usbms.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +usbms.mod: pre-usbms.o mod-usbms.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(usbms_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-usbms.o mod-usbms.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +usbms.mod: pre-usbms.o mod-usbms.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(usbms_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-usbms.o mod-usbms.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-usbms.o: $(usbms_mod_DEPENDENCIES) usbms_mod-disk_usbms.o + -rm -f $@ + $(TARGET_CC) $(usbms_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ usbms_mod-disk_usbms.o + +mod-usbms.o: mod-usbms.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -DGRUB_FILE=\"mod-usbms.c\" -c -o $@ $< + +mod-usbms.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'usbms' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-usbms.lst: pre-usbms.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 usbms/' > $@ +else +def-usbms.lst: pre-usbms.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 usbms/' > $@ +endif + +und-usbms.lst: pre-usbms.o + echo 'usbms' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +usbms_mod-disk_usbms.o: disk/usbms.c $(disk/usbms.c_DEPENDENCIES) + $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -DGRUB_FILE=\"disk/usbms.c\" -MD -c -o $@ $< +-include usbms_mod-disk_usbms.d + +clean-module-usbms_mod-disk_usbms-extra.1: + rm -f cmd-usbms_mod-disk_usbms.lst fs-usbms_mod-disk_usbms.lst partmap-usbms_mod-disk_usbms.lst handler-usbms_mod-disk_usbms.lst parttool-usbms_mod-disk_usbms.lst video-usbms_mod-disk_usbms.lst terminal-usbms_mod-disk_usbms.lst + +CLEAN_MODULE_TARGETS += clean-module-usbms_mod-disk_usbms-extra.1 + +COMMANDFILES += cmd-usbms_mod-disk_usbms.lst +FSFILES += fs-usbms_mod-disk_usbms.lst +PARTTOOLFILES += parttool-usbms_mod-disk_usbms.lst +PARTMAPFILES += partmap-usbms_mod-disk_usbms.lst +HANDLERFILES += handler-usbms_mod-disk_usbms.lst +TERMINALFILES += terminal-usbms_mod-disk_usbms.lst +VIDEOFILES += video-usbms_mod-disk_usbms.lst + +cmd-usbms_mod-disk_usbms.lst: disk/usbms.c $(disk/usbms.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh usbms > $@ || (rm -f $@; exit 1) + +fs-usbms_mod-disk_usbms.lst: disk/usbms.c $(disk/usbms.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh usbms > $@ || (rm -f $@; exit 1) + +parttool-usbms_mod-disk_usbms.lst: disk/usbms.c $(disk/usbms.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh usbms > $@ || (rm -f $@; exit 1) + +partmap-usbms_mod-disk_usbms.lst: disk/usbms.c $(disk/usbms.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh usbms > $@ || (rm -f $@; exit 1) + +handler-usbms_mod-disk_usbms.lst: disk/usbms.c $(disk/usbms.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh usbms > $@ || (rm -f $@; exit 1) + +terminal-usbms_mod-disk_usbms.lst: disk/usbms.c $(disk/usbms.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh usbms > $@ || (rm -f $@; exit 1) + +video-usbms_mod-disk_usbms.lst: disk/usbms.c $(disk/usbms.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usbms_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh usbms > $@ || (rm -f $@; exit 1) + +usbms_mod_CFLAGS = $(COMMON_CFLAGS) +usbms_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For usb_keyboard.mod +usb_keyboard_mod_SOURCES = term/usb_keyboard.c + +clean-module-usb_keyboard.mod.1: + rm -f usb_keyboard.mod mod-usb_keyboard.o mod-usb_keyboard.c pre-usb_keyboard.o usb_keyboard_mod-term_usb_keyboard.o und-usb_keyboard.lst + +CLEAN_MODULE_TARGETS += clean-module-usb_keyboard.mod.1 + +clean-module-usb_keyboard.mod-symbol.1: + rm -f def-usb_keyboard.lst + +CLEAN_MODULE_TARGETS += clean-module-usb_keyboard.mod-symbol.1 +DEFSYMFILES += def-usb_keyboard.lst +mostlyclean-module-usb_keyboard.mod.1: + rm -f usb_keyboard_mod-term_usb_keyboard.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-usb_keyboard.mod.1 +UNDSYMFILES += und-usb_keyboard.lst + +ifeq ($(TARGET_NO_MODULES), yes) +usb_keyboard.mod: pre-usb_keyboard.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(usb_keyboard_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-usb_keyboard.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +usb_keyboard.mod: pre-usb_keyboard.o mod-usb_keyboard.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(usb_keyboard_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-usb_keyboard.o mod-usb_keyboard.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +usb_keyboard.mod: pre-usb_keyboard.o mod-usb_keyboard.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(usb_keyboard_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-usb_keyboard.o mod-usb_keyboard.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-usb_keyboard.o: $(usb_keyboard_mod_DEPENDENCIES) usb_keyboard_mod-term_usb_keyboard.o + -rm -f $@ + $(TARGET_CC) $(usb_keyboard_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ usb_keyboard_mod-term_usb_keyboard.o + +mod-usb_keyboard.o: mod-usb_keyboard.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_keyboard_mod_CFLAGS) -DGRUB_FILE=\"mod-usb_keyboard.c\" -c -o $@ $< + +mod-usb_keyboard.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'usb_keyboard' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-usb_keyboard.lst: pre-usb_keyboard.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 usb_keyboard/' > $@ +else +def-usb_keyboard.lst: pre-usb_keyboard.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 usb_keyboard/' > $@ +endif + +und-usb_keyboard.lst: pre-usb_keyboard.o + echo 'usb_keyboard' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +usb_keyboard_mod-term_usb_keyboard.o: term/usb_keyboard.c $(term/usb_keyboard.c_DEPENDENCIES) + $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_keyboard_mod_CFLAGS) -DGRUB_FILE=\"term/usb_keyboard.c\" -MD -c -o $@ $< +-include usb_keyboard_mod-term_usb_keyboard.d + +clean-module-usb_keyboard_mod-term_usb_keyboard-extra.1: + rm -f cmd-usb_keyboard_mod-term_usb_keyboard.lst fs-usb_keyboard_mod-term_usb_keyboard.lst partmap-usb_keyboard_mod-term_usb_keyboard.lst handler-usb_keyboard_mod-term_usb_keyboard.lst parttool-usb_keyboard_mod-term_usb_keyboard.lst video-usb_keyboard_mod-term_usb_keyboard.lst terminal-usb_keyboard_mod-term_usb_keyboard.lst + +CLEAN_MODULE_TARGETS += clean-module-usb_keyboard_mod-term_usb_keyboard-extra.1 + +COMMANDFILES += cmd-usb_keyboard_mod-term_usb_keyboard.lst +FSFILES += fs-usb_keyboard_mod-term_usb_keyboard.lst +PARTTOOLFILES += parttool-usb_keyboard_mod-term_usb_keyboard.lst +PARTMAPFILES += partmap-usb_keyboard_mod-term_usb_keyboard.lst +HANDLERFILES += handler-usb_keyboard_mod-term_usb_keyboard.lst +TERMINALFILES += terminal-usb_keyboard_mod-term_usb_keyboard.lst +VIDEOFILES += video-usb_keyboard_mod-term_usb_keyboard.lst + +cmd-usb_keyboard_mod-term_usb_keyboard.lst: term/usb_keyboard.c $(term/usb_keyboard.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_keyboard_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh usb_keyboard > $@ || (rm -f $@; exit 1) + +fs-usb_keyboard_mod-term_usb_keyboard.lst: term/usb_keyboard.c $(term/usb_keyboard.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_keyboard_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh usb_keyboard > $@ || (rm -f $@; exit 1) + +parttool-usb_keyboard_mod-term_usb_keyboard.lst: term/usb_keyboard.c $(term/usb_keyboard.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_keyboard_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh usb_keyboard > $@ || (rm -f $@; exit 1) + +partmap-usb_keyboard_mod-term_usb_keyboard.lst: term/usb_keyboard.c $(term/usb_keyboard.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_keyboard_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh usb_keyboard > $@ || (rm -f $@; exit 1) + +handler-usb_keyboard_mod-term_usb_keyboard.lst: term/usb_keyboard.c $(term/usb_keyboard.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_keyboard_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh usb_keyboard > $@ || (rm -f $@; exit 1) + +terminal-usb_keyboard_mod-term_usb_keyboard.lst: term/usb_keyboard.c $(term/usb_keyboard.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(usb_keyboard_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh usb_keyboard > $@ || (rm -f $@; exit 1) + +video-usb_keyboard_mod-term_usb_keyboard.lst: term/usb_keyboard.c $(term/usb_keyboard.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iterm -I$(srcdir)/term $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(usb_keyboard_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh usb_keyboard > $@ || (rm -f $@; exit 1) + +usb_keyboard_mod_CFLAGS = $(COMMON_CFLAGS) +usb_keyboard_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For pxe.mod +pxe_mod_SOURCES = fs/i386/pc/pxe.c + +clean-module-pxe.mod.1: + rm -f pxe.mod mod-pxe.o mod-pxe.c pre-pxe.o pxe_mod-fs_i386_pc_pxe.o und-pxe.lst + +CLEAN_MODULE_TARGETS += clean-module-pxe.mod.1 + +clean-module-pxe.mod-symbol.1: + rm -f def-pxe.lst + +CLEAN_MODULE_TARGETS += clean-module-pxe.mod-symbol.1 +DEFSYMFILES += def-pxe.lst +mostlyclean-module-pxe.mod.1: + rm -f pxe_mod-fs_i386_pc_pxe.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-pxe.mod.1 +UNDSYMFILES += und-pxe.lst + +ifeq ($(TARGET_NO_MODULES), yes) +pxe.mod: pre-pxe.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(pxe_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-pxe.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +pxe.mod: pre-pxe.o mod-pxe.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(pxe_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-pxe.o mod-pxe.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +pxe.mod: pre-pxe.o mod-pxe.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(pxe_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-pxe.o mod-pxe.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-pxe.o: $(pxe_mod_DEPENDENCIES) pxe_mod-fs_i386_pc_pxe.o + -rm -f $@ + $(TARGET_CC) $(pxe_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pxe_mod-fs_i386_pc_pxe.o + +mod-pxe.o: mod-pxe.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pxe_mod_CFLAGS) -DGRUB_FILE=\"mod-pxe.c\" -c -o $@ $< + +mod-pxe.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'pxe' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-pxe.lst: pre-pxe.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 pxe/' > $@ +else +def-pxe.lst: pre-pxe.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 pxe/' > $@ +endif + +und-pxe.lst: pre-pxe.o + echo 'pxe' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +pxe_mod-fs_i386_pc_pxe.o: fs/i386/pc/pxe.c $(fs/i386/pc/pxe.c_DEPENDENCIES) + $(TARGET_CC) -Ifs/i386/pc -I$(srcdir)/fs/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pxe_mod_CFLAGS) -DGRUB_FILE=\"fs/i386/pc/pxe.c\" -MD -c -o $@ $< +-include pxe_mod-fs_i386_pc_pxe.d + +clean-module-pxe_mod-fs_i386_pc_pxe-extra.1: + rm -f cmd-pxe_mod-fs_i386_pc_pxe.lst fs-pxe_mod-fs_i386_pc_pxe.lst partmap-pxe_mod-fs_i386_pc_pxe.lst handler-pxe_mod-fs_i386_pc_pxe.lst parttool-pxe_mod-fs_i386_pc_pxe.lst video-pxe_mod-fs_i386_pc_pxe.lst terminal-pxe_mod-fs_i386_pc_pxe.lst + +CLEAN_MODULE_TARGETS += clean-module-pxe_mod-fs_i386_pc_pxe-extra.1 + +COMMANDFILES += cmd-pxe_mod-fs_i386_pc_pxe.lst +FSFILES += fs-pxe_mod-fs_i386_pc_pxe.lst +PARTTOOLFILES += parttool-pxe_mod-fs_i386_pc_pxe.lst +PARTMAPFILES += partmap-pxe_mod-fs_i386_pc_pxe.lst +HANDLERFILES += handler-pxe_mod-fs_i386_pc_pxe.lst +TERMINALFILES += terminal-pxe_mod-fs_i386_pc_pxe.lst +VIDEOFILES += video-pxe_mod-fs_i386_pc_pxe.lst + +cmd-pxe_mod-fs_i386_pc_pxe.lst: fs/i386/pc/pxe.c $(fs/i386/pc/pxe.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ifs/i386/pc -I$(srcdir)/fs/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pxe_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh pxe > $@ || (rm -f $@; exit 1) + +fs-pxe_mod-fs_i386_pc_pxe.lst: fs/i386/pc/pxe.c $(fs/i386/pc/pxe.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ifs/i386/pc -I$(srcdir)/fs/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(pxe_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh pxe > $@ || (rm -f $@; exit 1) + +parttool-pxe_mod-fs_i386_pc_pxe.lst: fs/i386/pc/pxe.c $(fs/i386/pc/pxe.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ifs/i386/pc -I$(srcdir)/fs/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pxe_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh pxe > $@ || (rm -f $@; exit 1) + +partmap-pxe_mod-fs_i386_pc_pxe.lst: fs/i386/pc/pxe.c $(fs/i386/pc/pxe.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ifs/i386/pc -I$(srcdir)/fs/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(pxe_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh pxe > $@ || (rm -f $@; exit 1) + +handler-pxe_mod-fs_i386_pc_pxe.lst: fs/i386/pc/pxe.c $(fs/i386/pc/pxe.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ifs/i386/pc -I$(srcdir)/fs/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pxe_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh pxe > $@ || (rm -f $@; exit 1) + +terminal-pxe_mod-fs_i386_pc_pxe.lst: fs/i386/pc/pxe.c $(fs/i386/pc/pxe.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ifs/i386/pc -I$(srcdir)/fs/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pxe_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh pxe > $@ || (rm -f $@; exit 1) + +video-pxe_mod-fs_i386_pc_pxe.lst: fs/i386/pc/pxe.c $(fs/i386/pc/pxe.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ifs/i386/pc -I$(srcdir)/fs/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(pxe_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh pxe > $@ || (rm -f $@; exit 1) + +pxe_mod_CFLAGS = $(COMMON_CFLAGS) +pxe_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For pxecmd.mod +pxecmd_mod_SOURCES = commands/i386/pc/pxecmd.c + +clean-module-pxecmd.mod.1: + rm -f pxecmd.mod mod-pxecmd.o mod-pxecmd.c pre-pxecmd.o pxecmd_mod-commands_i386_pc_pxecmd.o und-pxecmd.lst + +CLEAN_MODULE_TARGETS += clean-module-pxecmd.mod.1 + +clean-module-pxecmd.mod-symbol.1: + rm -f def-pxecmd.lst + +CLEAN_MODULE_TARGETS += clean-module-pxecmd.mod-symbol.1 +DEFSYMFILES += def-pxecmd.lst +mostlyclean-module-pxecmd.mod.1: + rm -f pxecmd_mod-commands_i386_pc_pxecmd.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-pxecmd.mod.1 +UNDSYMFILES += und-pxecmd.lst + +ifeq ($(TARGET_NO_MODULES), yes) +pxecmd.mod: pre-pxecmd.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(pxecmd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-pxecmd.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +pxecmd.mod: pre-pxecmd.o mod-pxecmd.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(pxecmd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-pxecmd.o mod-pxecmd.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +pxecmd.mod: pre-pxecmd.o mod-pxecmd.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(pxecmd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-pxecmd.o mod-pxecmd.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-pxecmd.o: $(pxecmd_mod_DEPENDENCIES) pxecmd_mod-commands_i386_pc_pxecmd.o + -rm -f $@ + $(TARGET_CC) $(pxecmd_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pxecmd_mod-commands_i386_pc_pxecmd.o + +mod-pxecmd.o: mod-pxecmd.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pxecmd_mod_CFLAGS) -DGRUB_FILE=\"mod-pxecmd.c\" -c -o $@ $< + +mod-pxecmd.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'pxecmd' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-pxecmd.lst: pre-pxecmd.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 pxecmd/' > $@ +else +def-pxecmd.lst: pre-pxecmd.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 pxecmd/' > $@ +endif + +und-pxecmd.lst: pre-pxecmd.o + echo 'pxecmd' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +pxecmd_mod-commands_i386_pc_pxecmd.o: commands/i386/pc/pxecmd.c $(commands/i386/pc/pxecmd.c_DEPENDENCIES) + $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pxecmd_mod_CFLAGS) -DGRUB_FILE=\"commands/i386/pc/pxecmd.c\" -MD -c -o $@ $< +-include pxecmd_mod-commands_i386_pc_pxecmd.d + +clean-module-pxecmd_mod-commands_i386_pc_pxecmd-extra.1: + rm -f cmd-pxecmd_mod-commands_i386_pc_pxecmd.lst fs-pxecmd_mod-commands_i386_pc_pxecmd.lst partmap-pxecmd_mod-commands_i386_pc_pxecmd.lst handler-pxecmd_mod-commands_i386_pc_pxecmd.lst parttool-pxecmd_mod-commands_i386_pc_pxecmd.lst video-pxecmd_mod-commands_i386_pc_pxecmd.lst terminal-pxecmd_mod-commands_i386_pc_pxecmd.lst + +CLEAN_MODULE_TARGETS += clean-module-pxecmd_mod-commands_i386_pc_pxecmd-extra.1 + +COMMANDFILES += cmd-pxecmd_mod-commands_i386_pc_pxecmd.lst +FSFILES += fs-pxecmd_mod-commands_i386_pc_pxecmd.lst +PARTTOOLFILES += parttool-pxecmd_mod-commands_i386_pc_pxecmd.lst +PARTMAPFILES += partmap-pxecmd_mod-commands_i386_pc_pxecmd.lst +HANDLERFILES += handler-pxecmd_mod-commands_i386_pc_pxecmd.lst +TERMINALFILES += terminal-pxecmd_mod-commands_i386_pc_pxecmd.lst +VIDEOFILES += video-pxecmd_mod-commands_i386_pc_pxecmd.lst + +cmd-pxecmd_mod-commands_i386_pc_pxecmd.lst: commands/i386/pc/pxecmd.c $(commands/i386/pc/pxecmd.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pxecmd_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh pxecmd > $@ || (rm -f $@; exit 1) + +fs-pxecmd_mod-commands_i386_pc_pxecmd.lst: commands/i386/pc/pxecmd.c $(commands/i386/pc/pxecmd.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(pxecmd_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh pxecmd > $@ || (rm -f $@; exit 1) + +parttool-pxecmd_mod-commands_i386_pc_pxecmd.lst: commands/i386/pc/pxecmd.c $(commands/i386/pc/pxecmd.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pxecmd_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh pxecmd > $@ || (rm -f $@; exit 1) + +partmap-pxecmd_mod-commands_i386_pc_pxecmd.lst: commands/i386/pc/pxecmd.c $(commands/i386/pc/pxecmd.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(pxecmd_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh pxecmd > $@ || (rm -f $@; exit 1) + +handler-pxecmd_mod-commands_i386_pc_pxecmd.lst: commands/i386/pc/pxecmd.c $(commands/i386/pc/pxecmd.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pxecmd_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh pxecmd > $@ || (rm -f $@; exit 1) + +terminal-pxecmd_mod-commands_i386_pc_pxecmd.lst: commands/i386/pc/pxecmd.c $(commands/i386/pc/pxecmd.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(pxecmd_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh pxecmd > $@ || (rm -f $@; exit 1) + +video-pxecmd_mod-commands_i386_pc_pxecmd.lst: commands/i386/pc/pxecmd.c $(commands/i386/pc/pxecmd.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands/i386/pc -I$(srcdir)/commands/i386/pc $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(pxecmd_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh pxecmd > $@ || (rm -f $@; exit 1) + +pxecmd_mod_CFLAGS = $(COMMON_CFLAGS) +pxecmd_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For datetime.mod +datetime_mod_SOURCES = lib/cmos_datetime.c + +clean-module-datetime.mod.1: + rm -f datetime.mod mod-datetime.o mod-datetime.c pre-datetime.o datetime_mod-lib_cmos_datetime.o und-datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime.mod.1 + +clean-module-datetime.mod-symbol.1: + rm -f def-datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime.mod-symbol.1 +DEFSYMFILES += def-datetime.lst +mostlyclean-module-datetime.mod.1: + rm -f datetime_mod-lib_cmos_datetime.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-datetime.mod.1 +UNDSYMFILES += und-datetime.lst + +ifeq ($(TARGET_NO_MODULES), yes) +datetime.mod: pre-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-datetime.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +datetime.mod: pre-datetime.o mod-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-datetime.o mod-datetime.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +datetime.mod: pre-datetime.o mod-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-datetime.o mod-datetime.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-datetime.o: $(datetime_mod_DEPENDENCIES) datetime_mod-lib_cmos_datetime.o + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ datetime_mod-lib_cmos_datetime.o + +mod-datetime.o: mod-datetime.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -DGRUB_FILE=\"mod-datetime.c\" -c -o $@ $< + +mod-datetime.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'datetime' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-datetime.lst: pre-datetime.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 datetime/' > $@ +else +def-datetime.lst: pre-datetime.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 datetime/' > $@ +endif + +und-datetime.lst: pre-datetime.o + echo 'datetime' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +datetime_mod-lib_cmos_datetime.o: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) + $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -DGRUB_FILE=\"lib/cmos_datetime.c\" -MD -c -o $@ $< +-include datetime_mod-lib_cmos_datetime.d + +clean-module-datetime_mod-lib_cmos_datetime-extra.1: + rm -f cmd-datetime_mod-lib_cmos_datetime.lst fs-datetime_mod-lib_cmos_datetime.lst partmap-datetime_mod-lib_cmos_datetime.lst handler-datetime_mod-lib_cmos_datetime.lst parttool-datetime_mod-lib_cmos_datetime.lst video-datetime_mod-lib_cmos_datetime.lst terminal-datetime_mod-lib_cmos_datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime_mod-lib_cmos_datetime-extra.1 + +COMMANDFILES += cmd-datetime_mod-lib_cmos_datetime.lst +FSFILES += fs-datetime_mod-lib_cmos_datetime.lst +PARTTOOLFILES += parttool-datetime_mod-lib_cmos_datetime.lst +PARTMAPFILES += partmap-datetime_mod-lib_cmos_datetime.lst +HANDLERFILES += handler-datetime_mod-lib_cmos_datetime.lst +TERMINALFILES += terminal-datetime_mod-lib_cmos_datetime.lst +VIDEOFILES += video-datetime_mod-lib_cmos_datetime.lst + +cmd-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh datetime > $@ || (rm -f $@; exit 1) + +fs-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh datetime > $@ || (rm -f $@; exit 1) + +parttool-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh datetime > $@ || (rm -f $@; exit 1) + +partmap-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh datetime > $@ || (rm -f $@; exit 1) + +handler-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh datetime > $@ || (rm -f $@; exit 1) + +terminal-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh datetime > $@ || (rm -f $@; exit 1) + +video-datetime_mod-lib_cmos_datetime.lst: lib/cmos_datetime.c $(lib/cmos_datetime.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh datetime > $@ || (rm -f $@; exit 1) + +datetime_mod_CFLAGS = $(COMMON_CFLAGS) +datetime_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For ata_pthru.mod. +ata_pthru_mod_SOURCES = disk/ata_pthru.c + +clean-module-ata_pthru.mod.1: + rm -f ata_pthru.mod mod-ata_pthru.o mod-ata_pthru.c pre-ata_pthru.o ata_pthru_mod-disk_ata_pthru.o und-ata_pthru.lst + +CLEAN_MODULE_TARGETS += clean-module-ata_pthru.mod.1 + +clean-module-ata_pthru.mod-symbol.1: + rm -f def-ata_pthru.lst + +CLEAN_MODULE_TARGETS += clean-module-ata_pthru.mod-symbol.1 +DEFSYMFILES += def-ata_pthru.lst +mostlyclean-module-ata_pthru.mod.1: + rm -f ata_pthru_mod-disk_ata_pthru.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-ata_pthru.mod.1 +UNDSYMFILES += und-ata_pthru.lst + +ifeq ($(TARGET_NO_MODULES), yes) +ata_pthru.mod: pre-ata_pthru.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ata_pthru_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ata_pthru.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +ata_pthru.mod: pre-ata_pthru.o mod-ata_pthru.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(ata_pthru_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-ata_pthru.o mod-ata_pthru.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ata_pthru.mod: pre-ata_pthru.o mod-ata_pthru.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(ata_pthru_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-ata_pthru.o mod-ata_pthru.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-ata_pthru.o: $(ata_pthru_mod_DEPENDENCIES) ata_pthru_mod-disk_ata_pthru.o + -rm -f $@ + $(TARGET_CC) $(ata_pthru_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ ata_pthru_mod-disk_ata_pthru.o + +mod-ata_pthru.o: mod-ata_pthru.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_pthru_mod_CFLAGS) -DGRUB_FILE=\"mod-ata_pthru.c\" -c -o $@ $< + +mod-ata_pthru.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'ata_pthru' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-ata_pthru.lst: pre-ata_pthru.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 ata_pthru/' > $@ +else +def-ata_pthru.lst: pre-ata_pthru.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 ata_pthru/' > $@ +endif + +und-ata_pthru.lst: pre-ata_pthru.o + echo 'ata_pthru' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +ata_pthru_mod-disk_ata_pthru.o: disk/ata_pthru.c $(disk/ata_pthru.c_DEPENDENCIES) + $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_pthru_mod_CFLAGS) -DGRUB_FILE=\"disk/ata_pthru.c\" -MD -c -o $@ $< +-include ata_pthru_mod-disk_ata_pthru.d + +clean-module-ata_pthru_mod-disk_ata_pthru-extra.1: + rm -f cmd-ata_pthru_mod-disk_ata_pthru.lst fs-ata_pthru_mod-disk_ata_pthru.lst partmap-ata_pthru_mod-disk_ata_pthru.lst handler-ata_pthru_mod-disk_ata_pthru.lst parttool-ata_pthru_mod-disk_ata_pthru.lst video-ata_pthru_mod-disk_ata_pthru.lst terminal-ata_pthru_mod-disk_ata_pthru.lst + +CLEAN_MODULE_TARGETS += clean-module-ata_pthru_mod-disk_ata_pthru-extra.1 + +COMMANDFILES += cmd-ata_pthru_mod-disk_ata_pthru.lst +FSFILES += fs-ata_pthru_mod-disk_ata_pthru.lst +PARTTOOLFILES += parttool-ata_pthru_mod-disk_ata_pthru.lst +PARTMAPFILES += partmap-ata_pthru_mod-disk_ata_pthru.lst +HANDLERFILES += handler-ata_pthru_mod-disk_ata_pthru.lst +TERMINALFILES += terminal-ata_pthru_mod-disk_ata_pthru.lst +VIDEOFILES += video-ata_pthru_mod-disk_ata_pthru.lst + +cmd-ata_pthru_mod-disk_ata_pthru.lst: disk/ata_pthru.c $(disk/ata_pthru.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_pthru_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh ata_pthru > $@ || (rm -f $@; exit 1) + +fs-ata_pthru_mod-disk_ata_pthru.lst: disk/ata_pthru.c $(disk/ata_pthru.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ata_pthru_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh ata_pthru > $@ || (rm -f $@; exit 1) + +parttool-ata_pthru_mod-disk_ata_pthru.lst: disk/ata_pthru.c $(disk/ata_pthru.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_pthru_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh ata_pthru > $@ || (rm -f $@; exit 1) + +partmap-ata_pthru_mod-disk_ata_pthru.lst: disk/ata_pthru.c $(disk/ata_pthru.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ata_pthru_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh ata_pthru > $@ || (rm -f $@; exit 1) + +handler-ata_pthru_mod-disk_ata_pthru.lst: disk/ata_pthru.c $(disk/ata_pthru.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_pthru_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh ata_pthru > $@ || (rm -f $@; exit 1) + +terminal-ata_pthru_mod-disk_ata_pthru.lst: disk/ata_pthru.c $(disk/ata_pthru.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_pthru_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh ata_pthru > $@ || (rm -f $@; exit 1) + +video-ata_pthru_mod-disk_ata_pthru.lst: disk/ata_pthru.c $(disk/ata_pthru.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(ata_pthru_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh ata_pthru > $@ || (rm -f $@; exit 1) + +ata_pthru_mod_CFLAGS = $(COMMON_CFLAGS) +ata_pthru_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For hdparm.mod. +hdparm_mod_SOURCES = commands/hdparm.c lib/hexdump.c + +clean-module-hdparm.mod.1: + rm -f hdparm.mod mod-hdparm.o mod-hdparm.c pre-hdparm.o hdparm_mod-commands_hdparm.o hdparm_mod-lib_hexdump.o und-hdparm.lst + +CLEAN_MODULE_TARGETS += clean-module-hdparm.mod.1 + +clean-module-hdparm.mod-symbol.1: + rm -f def-hdparm.lst + +CLEAN_MODULE_TARGETS += clean-module-hdparm.mod-symbol.1 +DEFSYMFILES += def-hdparm.lst +mostlyclean-module-hdparm.mod.1: + rm -f hdparm_mod-commands_hdparm.d hdparm_mod-lib_hexdump.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-hdparm.mod.1 +UNDSYMFILES += und-hdparm.lst + +ifeq ($(TARGET_NO_MODULES), yes) +hdparm.mod: pre-hdparm.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(hdparm_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-hdparm.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +hdparm.mod: pre-hdparm.o mod-hdparm.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(hdparm_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-hdparm.o mod-hdparm.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +hdparm.mod: pre-hdparm.o mod-hdparm.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(hdparm_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-hdparm.o mod-hdparm.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-hdparm.o: $(hdparm_mod_DEPENDENCIES) hdparm_mod-commands_hdparm.o hdparm_mod-lib_hexdump.o + -rm -f $@ + $(TARGET_CC) $(hdparm_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ hdparm_mod-commands_hdparm.o hdparm_mod-lib_hexdump.o + +mod-hdparm.o: mod-hdparm.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hdparm_mod_CFLAGS) -DGRUB_FILE=\"mod-hdparm.c\" -c -o $@ $< + +mod-hdparm.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'hdparm' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-hdparm.lst: pre-hdparm.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 hdparm/' > $@ +else +def-hdparm.lst: pre-hdparm.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 hdparm/' > $@ +endif + +und-hdparm.lst: pre-hdparm.o + echo 'hdparm' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +hdparm_mod-commands_hdparm.o: commands/hdparm.c $(commands/hdparm.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hdparm_mod_CFLAGS) -DGRUB_FILE=\"commands/hdparm.c\" -MD -c -o $@ $< +-include hdparm_mod-commands_hdparm.d + +clean-module-hdparm_mod-commands_hdparm-extra.1: + rm -f cmd-hdparm_mod-commands_hdparm.lst fs-hdparm_mod-commands_hdparm.lst partmap-hdparm_mod-commands_hdparm.lst handler-hdparm_mod-commands_hdparm.lst parttool-hdparm_mod-commands_hdparm.lst video-hdparm_mod-commands_hdparm.lst terminal-hdparm_mod-commands_hdparm.lst + +CLEAN_MODULE_TARGETS += clean-module-hdparm_mod-commands_hdparm-extra.1 + +COMMANDFILES += cmd-hdparm_mod-commands_hdparm.lst +FSFILES += fs-hdparm_mod-commands_hdparm.lst +PARTTOOLFILES += parttool-hdparm_mod-commands_hdparm.lst +PARTMAPFILES += partmap-hdparm_mod-commands_hdparm.lst +HANDLERFILES += handler-hdparm_mod-commands_hdparm.lst +TERMINALFILES += terminal-hdparm_mod-commands_hdparm.lst +VIDEOFILES += video-hdparm_mod-commands_hdparm.lst + +cmd-hdparm_mod-commands_hdparm.lst: commands/hdparm.c $(commands/hdparm.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hdparm_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh hdparm > $@ || (rm -f $@; exit 1) + +fs-hdparm_mod-commands_hdparm.lst: commands/hdparm.c $(commands/hdparm.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(hdparm_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh hdparm > $@ || (rm -f $@; exit 1) + +parttool-hdparm_mod-commands_hdparm.lst: commands/hdparm.c $(commands/hdparm.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hdparm_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh hdparm > $@ || (rm -f $@; exit 1) + +partmap-hdparm_mod-commands_hdparm.lst: commands/hdparm.c $(commands/hdparm.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(hdparm_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh hdparm > $@ || (rm -f $@; exit 1) + +handler-hdparm_mod-commands_hdparm.lst: commands/hdparm.c $(commands/hdparm.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hdparm_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh hdparm > $@ || (rm -f $@; exit 1) + +terminal-hdparm_mod-commands_hdparm.lst: commands/hdparm.c $(commands/hdparm.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hdparm_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh hdparm > $@ || (rm -f $@; exit 1) + +video-hdparm_mod-commands_hdparm.lst: commands/hdparm.c $(commands/hdparm.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(hdparm_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh hdparm > $@ || (rm -f $@; exit 1) + +hdparm_mod-lib_hexdump.o: lib/hexdump.c $(lib/hexdump.c_DEPENDENCIES) + $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hdparm_mod_CFLAGS) -DGRUB_FILE=\"lib/hexdump.c\" -MD -c -o $@ $< +-include hdparm_mod-lib_hexdump.d + +clean-module-hdparm_mod-lib_hexdump-extra.1: + rm -f cmd-hdparm_mod-lib_hexdump.lst fs-hdparm_mod-lib_hexdump.lst partmap-hdparm_mod-lib_hexdump.lst handler-hdparm_mod-lib_hexdump.lst parttool-hdparm_mod-lib_hexdump.lst video-hdparm_mod-lib_hexdump.lst terminal-hdparm_mod-lib_hexdump.lst + +CLEAN_MODULE_TARGETS += clean-module-hdparm_mod-lib_hexdump-extra.1 + +COMMANDFILES += cmd-hdparm_mod-lib_hexdump.lst +FSFILES += fs-hdparm_mod-lib_hexdump.lst +PARTTOOLFILES += parttool-hdparm_mod-lib_hexdump.lst +PARTMAPFILES += partmap-hdparm_mod-lib_hexdump.lst +HANDLERFILES += handler-hdparm_mod-lib_hexdump.lst +TERMINALFILES += terminal-hdparm_mod-lib_hexdump.lst +VIDEOFILES += video-hdparm_mod-lib_hexdump.lst + +cmd-hdparm_mod-lib_hexdump.lst: lib/hexdump.c $(lib/hexdump.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hdparm_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh hdparm > $@ || (rm -f $@; exit 1) + +fs-hdparm_mod-lib_hexdump.lst: lib/hexdump.c $(lib/hexdump.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(hdparm_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh hdparm > $@ || (rm -f $@; exit 1) + +parttool-hdparm_mod-lib_hexdump.lst: lib/hexdump.c $(lib/hexdump.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hdparm_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh hdparm > $@ || (rm -f $@; exit 1) + +partmap-hdparm_mod-lib_hexdump.lst: lib/hexdump.c $(lib/hexdump.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(hdparm_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh hdparm > $@ || (rm -f $@; exit 1) + +handler-hdparm_mod-lib_hexdump.lst: lib/hexdump.c $(lib/hexdump.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hdparm_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh hdparm > $@ || (rm -f $@; exit 1) + +terminal-hdparm_mod-lib_hexdump.lst: lib/hexdump.c $(lib/hexdump.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(hdparm_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh hdparm > $@ || (rm -f $@; exit 1) + +video-hdparm_mod-lib_hexdump.lst: lib/hexdump.c $(lib/hexdump.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib -I$(srcdir)/lib $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(hdparm_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh hdparm > $@ || (rm -f $@; exit 1) + +hdparm_mod_CFLAGS = $(COMMON_CFLAGS) +hdparm_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For cmostest.mod +pkglib_MODULES += cmostest.mod +cmostest_mod_SOURCES = commands/i386/cmostest.c + +clean-module-cmostest.mod.1: + rm -f cmostest.mod mod-cmostest.o mod-cmostest.c pre-cmostest.o cmostest_mod-commands_i386_cmostest.o und-cmostest.lst + +CLEAN_MODULE_TARGETS += clean-module-cmostest.mod.1 + +clean-module-cmostest.mod-symbol.1: + rm -f def-cmostest.lst + +CLEAN_MODULE_TARGETS += clean-module-cmostest.mod-symbol.1 +DEFSYMFILES += def-cmostest.lst +mostlyclean-module-cmostest.mod.1: + rm -f cmostest_mod-commands_i386_cmostest.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-cmostest.mod.1 +UNDSYMFILES += und-cmostest.lst + +ifeq ($(TARGET_NO_MODULES), yes) +cmostest.mod: pre-cmostest.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(cmostest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-cmostest.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +cmostest.mod: pre-cmostest.o mod-cmostest.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(cmostest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-cmostest.o mod-cmostest.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +cmostest.mod: pre-cmostest.o mod-cmostest.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(cmostest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-cmostest.o mod-cmostest.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-cmostest.o: $(cmostest_mod_DEPENDENCIES) cmostest_mod-commands_i386_cmostest.o + -rm -f $@ + $(TARGET_CC) $(cmostest_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ cmostest_mod-commands_i386_cmostest.o + +mod-cmostest.o: mod-cmostest.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cmostest_mod_CFLAGS) -DGRUB_FILE=\"mod-cmostest.c\" -c -o $@ $< + +mod-cmostest.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'cmostest' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-cmostest.lst: pre-cmostest.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 cmostest/' > $@ +else +def-cmostest.lst: pre-cmostest.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 cmostest/' > $@ +endif + +und-cmostest.lst: pre-cmostest.o + echo 'cmostest' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +cmostest_mod-commands_i386_cmostest.o: commands/i386/cmostest.c $(commands/i386/cmostest.c_DEPENDENCIES) + $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cmostest_mod_CFLAGS) -DGRUB_FILE=\"commands/i386/cmostest.c\" -MD -c -o $@ $< +-include cmostest_mod-commands_i386_cmostest.d + +clean-module-cmostest_mod-commands_i386_cmostest-extra.1: + rm -f cmd-cmostest_mod-commands_i386_cmostest.lst fs-cmostest_mod-commands_i386_cmostest.lst partmap-cmostest_mod-commands_i386_cmostest.lst handler-cmostest_mod-commands_i386_cmostest.lst parttool-cmostest_mod-commands_i386_cmostest.lst video-cmostest_mod-commands_i386_cmostest.lst terminal-cmostest_mod-commands_i386_cmostest.lst + +CLEAN_MODULE_TARGETS += clean-module-cmostest_mod-commands_i386_cmostest-extra.1 + +COMMANDFILES += cmd-cmostest_mod-commands_i386_cmostest.lst +FSFILES += fs-cmostest_mod-commands_i386_cmostest.lst +PARTTOOLFILES += parttool-cmostest_mod-commands_i386_cmostest.lst +PARTMAPFILES += partmap-cmostest_mod-commands_i386_cmostest.lst +HANDLERFILES += handler-cmostest_mod-commands_i386_cmostest.lst +TERMINALFILES += terminal-cmostest_mod-commands_i386_cmostest.lst +VIDEOFILES += video-cmostest_mod-commands_i386_cmostest.lst + +cmd-cmostest_mod-commands_i386_cmostest.lst: commands/i386/cmostest.c $(commands/i386/cmostest.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cmostest_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh cmostest > $@ || (rm -f $@; exit 1) + +fs-cmostest_mod-commands_i386_cmostest.lst: commands/i386/cmostest.c $(commands/i386/cmostest.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(cmostest_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh cmostest > $@ || (rm -f $@; exit 1) + +parttool-cmostest_mod-commands_i386_cmostest.lst: commands/i386/cmostest.c $(commands/i386/cmostest.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cmostest_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh cmostest > $@ || (rm -f $@; exit 1) + +partmap-cmostest_mod-commands_i386_cmostest.lst: commands/i386/cmostest.c $(commands/i386/cmostest.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(cmostest_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh cmostest > $@ || (rm -f $@; exit 1) + +handler-cmostest_mod-commands_i386_cmostest.lst: commands/i386/cmostest.c $(commands/i386/cmostest.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cmostest_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh cmostest > $@ || (rm -f $@; exit 1) + +terminal-cmostest_mod-commands_i386_cmostest.lst: commands/i386/cmostest.c $(commands/i386/cmostest.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(cmostest_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh cmostest > $@ || (rm -f $@; exit 1) + +video-cmostest_mod-commands_i386_cmostest.lst: commands/i386/cmostest.c $(commands/i386/cmostest.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands/i386 -I$(srcdir)/commands/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(cmostest_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh cmostest > $@ || (rm -f $@; exit 1) + +cmostest_mod_CFLAGS = $(COMMON_CFLAGS) +cmostest_mod_LDFLAGS = $(COMMON_LDFLAGS) + +ifeq ($(enable_efiemu), yes) + +efiemu32.o: efiemu/runtime/efiemu.c $(TARGET_OBJ2ELF) + -rm -f $@ +ifeq ($(TARGET_APPLE_CC), 1) + -rm -f $@.bin + $(TARGET_CC) -c -m32 -DELF32 -DAPPLE_CC -o $@.bin -Wall -Werror $< -nostdlib -O2 -I$(srcdir)/efiemu/runtime -I$(srcdir)/include -Iinclude + $(OBJCONV) -felf32 -nu -nd $@.bin $@ + -rm -f $@.bin +else + $(TARGET_CC) -c -m32 -DELF32 -o $@ -Wall -Werror $< -nostdlib -O2 -I$(srcdir)/efiemu/runtime -I$(srcdir)/include -Iinclude + if test ! -z $(TARGET_OBJ2ELF); then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi +endif + +efiemu64_c.o: efiemu/runtime/efiemu.c +ifeq ($(TARGET_APPLE_CC), 1) + $(TARGET_CC) -c -m64 -DAPPLE_CC=1 -DELF64 -o $@ -Wall -Werror $< -nostdlib -mno-red-zone -O2 -I$(srcdir)/efiemu/runtime -I$(srcdir)/include -Iinclude +else + $(TARGET_CC) -c -m64 -DELF64 -o $@ -Wall -Werror $< -nostdlib -mcmodel=large -mno-red-zone -O2 -I$(srcdir)/efiemu/runtime -I$(srcdir)/include -Iinclude +endif + +efiemu64_s.o: efiemu/runtime/efiemu.S + -rm -f $@ +ifeq ($(TARGET_APPLE_CC), 1) + $(TARGET_CC) -c -m64 -DAPPLE_CC=1 -DELF64 -o $@ -Wall -Werror $< -nostdlib -mno-red-zone -O2 -I$(srcdir)/efiemu/runtime -I$(srcdir)/include -Iinclude +else + $(TARGET_CC) -c -m64 -DELF64 -o $@ -Wall -Werror $< -nostdlib -mcmodel=large -mno-red-zone -O2 -I$(srcdir)/efiemu/runtime -I$(srcdir)/include -Iinclude +endif + +efiemu64.o: efiemu64_c.o efiemu64_s.o $(TARGET_OBJ2ELF) + -rm -f $@ +ifeq ($(TARGET_APPLE_CC), 1) + -rm -f $@.bin + $(TARGET_CC) -m64 -o $@.bin -Wl,-r $^ -nostdlib + $(OBJCONV) -felf64 -nu -nd $@.bin $@ + -rm -f $@.bin +else + $(TARGET_CC) -m64 -o $@ -Wl,-r $^ -nostdlib + if test ! -z $(TARGET_OBJ2ELF); then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi +endif + +CLEANFILES += efiemu32.o efiemu64.o efiemu64_c.o efiemu64_s.o +pkglib_DATA += efiemu32.o efiemu64.o + +endif + +include $(srcdir)/conf/i386.mk +include $(srcdir)/conf/common.mk +grub-setup: $(grub_setup_DEPENDENCIES) $(grub_setup_OBJECTS) + $(CC) -o $@ $(grub_setup_OBJECTS) $(LDFLAGS) $(grub_setup_LDFLAGS) + +CLEANFILES += kernel.img $(kernel_img_OBJECTS) +ifeq ($(kernel_img_RELOCATABLE),yes) +kernel.img: $(kernel_img_DEPENDENCIES) $(kernel_img_OBJECTS) + $(TARGET_CC) -Wl,-r,-d -o $@ $(kernel_img_OBJECTS) $(TARGET_LDFLAGS) $(kernel_img_LDFLAGS) + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K start -R .note -R .comment $@; fi +else +kernel.img: $(kernel_img_DEPENDENCIES) $(kernel_img_OBJECTS) + $(TARGET_CC) -o $@ $(kernel_img_OBJECTS) $(TARGET_LDFLAGS) $(kernel_img_LDFLAGS) + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) -R .rel.dyn -R .reginfo -R .note -R .comment $@; fi +endif + --- grub2-1.98+20100804.orig/conf/gcry.mk +++ grub2-1.98+20100804/conf/gcry.mk @@ -0,0 +1,2067 @@ +# -*- makefile -*- +# Generated by genmk.rb, please don't edit! + +MAINTAINER_CLEANFILES += $(srcdir)/conf/gcry.rmk $(srcdir)/lib/libgcrypt-grub/cipher/ChangeLog $(srcdir)/lib/libgcrypt-grub/cipher/cipher.h $(srcdir)/lib/libgcrypt-grub/cipher/crypto.lst $(srcdir)/lib/libgcrypt-grub/cipher/g10lib.h $(srcdir)/lib/libgcrypt-grub/cipher/memory.h $(srcdir)/lib/libgcrypt-grub/cipher/types.h +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/rijndael.c +pkglib_MODULES += gcry_rijndael.mod +gcry_rijndael_mod_SOURCES = lib/libgcrypt-grub/cipher/rijndael.c + +clean-module-gcry_rijndael.mod.1: + rm -f gcry_rijndael.mod mod-gcry_rijndael.o mod-gcry_rijndael.c pre-gcry_rijndael.o gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.o und-gcry_rijndael.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_rijndael.mod.1 + +clean-module-gcry_rijndael.mod-symbol.1: + rm -f def-gcry_rijndael.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_rijndael.mod-symbol.1 +DEFSYMFILES += def-gcry_rijndael.lst +mostlyclean-module-gcry_rijndael.mod.1: + rm -f gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-gcry_rijndael.mod.1 +UNDSYMFILES += und-gcry_rijndael.lst + +ifeq ($(TARGET_NO_MODULES), yes) +gcry_rijndael.mod: pre-gcry_rijndael.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_rijndael_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_rijndael.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +gcry_rijndael.mod: pre-gcry_rijndael.o mod-gcry_rijndael.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_rijndael_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_rijndael.o mod-gcry_rijndael.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +gcry_rijndael.mod: pre-gcry_rijndael.o mod-gcry_rijndael.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(gcry_rijndael_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-gcry_rijndael.o mod-gcry_rijndael.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-gcry_rijndael.o: $(gcry_rijndael_mod_DEPENDENCIES) gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.o + -rm -f $@ + $(TARGET_CC) $(gcry_rijndael_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.o + +mod-gcry_rijndael.o: mod-gcry_rijndael.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_rijndael_mod_CFLAGS) -DGRUB_FILE=\"mod-gcry_rijndael.c\" -c -o $@ $< + +mod-gcry_rijndael.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gcry_rijndael' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-gcry_rijndael.lst: pre-gcry_rijndael.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gcry_rijndael/' > $@ +else +def-gcry_rijndael.lst: pre-gcry_rijndael.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 gcry_rijndael/' > $@ +endif + +und-gcry_rijndael.lst: pre-gcry_rijndael.o + echo 'gcry_rijndael' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.o: lib/libgcrypt-grub/cipher/rijndael.c $(lib/libgcrypt-grub/cipher/rijndael.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_rijndael_mod_CFLAGS) -DGRUB_FILE=\"lib/libgcrypt-grub/cipher/rijndael.c\" -MD -c -o $@ $< +-include gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.d + +clean-module-gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael-extra.1: + rm -f cmd-gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.lst fs-gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.lst partmap-gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.lst handler-gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.lst parttool-gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.lst video-gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.lst terminal-gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael-extra.1 + +COMMANDFILES += cmd-gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.lst +FSFILES += fs-gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.lst +PARTTOOLFILES += parttool-gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.lst +PARTMAPFILES += partmap-gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.lst +HANDLERFILES += handler-gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.lst +TERMINALFILES += terminal-gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.lst +VIDEOFILES += video-gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.lst + +cmd-gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.lst: lib/libgcrypt-grub/cipher/rijndael.c $(lib/libgcrypt-grub/cipher/rijndael.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_rijndael_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gcry_rijndael > $@ || (rm -f $@; exit 1) + +fs-gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.lst: lib/libgcrypt-grub/cipher/rijndael.c $(lib/libgcrypt-grub/cipher/rijndael.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_rijndael_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gcry_rijndael > $@ || (rm -f $@; exit 1) + +parttool-gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.lst: lib/libgcrypt-grub/cipher/rijndael.c $(lib/libgcrypt-grub/cipher/rijndael.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_rijndael_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gcry_rijndael > $@ || (rm -f $@; exit 1) + +partmap-gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.lst: lib/libgcrypt-grub/cipher/rijndael.c $(lib/libgcrypt-grub/cipher/rijndael.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_rijndael_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gcry_rijndael > $@ || (rm -f $@; exit 1) + +handler-gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.lst: lib/libgcrypt-grub/cipher/rijndael.c $(lib/libgcrypt-grub/cipher/rijndael.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_rijndael_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gcry_rijndael > $@ || (rm -f $@; exit 1) + +terminal-gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.lst: lib/libgcrypt-grub/cipher/rijndael.c $(lib/libgcrypt-grub/cipher/rijndael.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_rijndael_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gcry_rijndael > $@ || (rm -f $@; exit 1) + +video-gcry_rijndael_mod-lib_libgcrypt_grub_cipher_rijndael.lst: lib/libgcrypt-grub/cipher/rijndael.c $(lib/libgcrypt-grub/cipher/rijndael.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_rijndael_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gcry_rijndael > $@ || (rm -f $@; exit 1) + +gcry_rijndael_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_rijndael_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/sha512.c +pkglib_MODULES += gcry_sha512.mod +gcry_sha512_mod_SOURCES = lib/libgcrypt-grub/cipher/sha512.c + +clean-module-gcry_sha512.mod.1: + rm -f gcry_sha512.mod mod-gcry_sha512.o mod-gcry_sha512.c pre-gcry_sha512.o gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.o und-gcry_sha512.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_sha512.mod.1 + +clean-module-gcry_sha512.mod-symbol.1: + rm -f def-gcry_sha512.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_sha512.mod-symbol.1 +DEFSYMFILES += def-gcry_sha512.lst +mostlyclean-module-gcry_sha512.mod.1: + rm -f gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-gcry_sha512.mod.1 +UNDSYMFILES += und-gcry_sha512.lst + +ifeq ($(TARGET_NO_MODULES), yes) +gcry_sha512.mod: pre-gcry_sha512.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_sha512_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_sha512.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +gcry_sha512.mod: pre-gcry_sha512.o mod-gcry_sha512.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_sha512_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_sha512.o mod-gcry_sha512.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +gcry_sha512.mod: pre-gcry_sha512.o mod-gcry_sha512.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(gcry_sha512_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-gcry_sha512.o mod-gcry_sha512.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-gcry_sha512.o: $(gcry_sha512_mod_DEPENDENCIES) gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.o + -rm -f $@ + $(TARGET_CC) $(gcry_sha512_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.o + +mod-gcry_sha512.o: mod-gcry_sha512.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_sha512_mod_CFLAGS) -DGRUB_FILE=\"mod-gcry_sha512.c\" -c -o $@ $< + +mod-gcry_sha512.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gcry_sha512' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-gcry_sha512.lst: pre-gcry_sha512.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gcry_sha512/' > $@ +else +def-gcry_sha512.lst: pre-gcry_sha512.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 gcry_sha512/' > $@ +endif + +und-gcry_sha512.lst: pre-gcry_sha512.o + echo 'gcry_sha512' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.o: lib/libgcrypt-grub/cipher/sha512.c $(lib/libgcrypt-grub/cipher/sha512.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_sha512_mod_CFLAGS) -DGRUB_FILE=\"lib/libgcrypt-grub/cipher/sha512.c\" -MD -c -o $@ $< +-include gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.d + +clean-module-gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512-extra.1: + rm -f cmd-gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.lst fs-gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.lst partmap-gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.lst handler-gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.lst parttool-gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.lst video-gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.lst terminal-gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512-extra.1 + +COMMANDFILES += cmd-gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.lst +FSFILES += fs-gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.lst +PARTTOOLFILES += parttool-gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.lst +PARTMAPFILES += partmap-gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.lst +HANDLERFILES += handler-gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.lst +TERMINALFILES += terminal-gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.lst +VIDEOFILES += video-gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.lst + +cmd-gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.lst: lib/libgcrypt-grub/cipher/sha512.c $(lib/libgcrypt-grub/cipher/sha512.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_sha512_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gcry_sha512 > $@ || (rm -f $@; exit 1) + +fs-gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.lst: lib/libgcrypt-grub/cipher/sha512.c $(lib/libgcrypt-grub/cipher/sha512.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_sha512_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gcry_sha512 > $@ || (rm -f $@; exit 1) + +parttool-gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.lst: lib/libgcrypt-grub/cipher/sha512.c $(lib/libgcrypt-grub/cipher/sha512.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_sha512_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gcry_sha512 > $@ || (rm -f $@; exit 1) + +partmap-gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.lst: lib/libgcrypt-grub/cipher/sha512.c $(lib/libgcrypt-grub/cipher/sha512.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_sha512_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gcry_sha512 > $@ || (rm -f $@; exit 1) + +handler-gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.lst: lib/libgcrypt-grub/cipher/sha512.c $(lib/libgcrypt-grub/cipher/sha512.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_sha512_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gcry_sha512 > $@ || (rm -f $@; exit 1) + +terminal-gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.lst: lib/libgcrypt-grub/cipher/sha512.c $(lib/libgcrypt-grub/cipher/sha512.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_sha512_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gcry_sha512 > $@ || (rm -f $@; exit 1) + +video-gcry_sha512_mod-lib_libgcrypt_grub_cipher_sha512.lst: lib/libgcrypt-grub/cipher/sha512.c $(lib/libgcrypt-grub/cipher/sha512.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_sha512_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gcry_sha512 > $@ || (rm -f $@; exit 1) + +gcry_sha512_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_sha512_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/camellia.h +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/seed.c +pkglib_MODULES += gcry_seed.mod +gcry_seed_mod_SOURCES = lib/libgcrypt-grub/cipher/seed.c + +clean-module-gcry_seed.mod.1: + rm -f gcry_seed.mod mod-gcry_seed.o mod-gcry_seed.c pre-gcry_seed.o gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.o und-gcry_seed.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_seed.mod.1 + +clean-module-gcry_seed.mod-symbol.1: + rm -f def-gcry_seed.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_seed.mod-symbol.1 +DEFSYMFILES += def-gcry_seed.lst +mostlyclean-module-gcry_seed.mod.1: + rm -f gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-gcry_seed.mod.1 +UNDSYMFILES += und-gcry_seed.lst + +ifeq ($(TARGET_NO_MODULES), yes) +gcry_seed.mod: pre-gcry_seed.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_seed_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_seed.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +gcry_seed.mod: pre-gcry_seed.o mod-gcry_seed.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_seed_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_seed.o mod-gcry_seed.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +gcry_seed.mod: pre-gcry_seed.o mod-gcry_seed.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(gcry_seed_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-gcry_seed.o mod-gcry_seed.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-gcry_seed.o: $(gcry_seed_mod_DEPENDENCIES) gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.o + -rm -f $@ + $(TARGET_CC) $(gcry_seed_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.o + +mod-gcry_seed.o: mod-gcry_seed.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_seed_mod_CFLAGS) -DGRUB_FILE=\"mod-gcry_seed.c\" -c -o $@ $< + +mod-gcry_seed.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gcry_seed' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-gcry_seed.lst: pre-gcry_seed.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gcry_seed/' > $@ +else +def-gcry_seed.lst: pre-gcry_seed.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 gcry_seed/' > $@ +endif + +und-gcry_seed.lst: pre-gcry_seed.o + echo 'gcry_seed' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.o: lib/libgcrypt-grub/cipher/seed.c $(lib/libgcrypt-grub/cipher/seed.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_seed_mod_CFLAGS) -DGRUB_FILE=\"lib/libgcrypt-grub/cipher/seed.c\" -MD -c -o $@ $< +-include gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.d + +clean-module-gcry_seed_mod-lib_libgcrypt_grub_cipher_seed-extra.1: + rm -f cmd-gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.lst fs-gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.lst partmap-gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.lst handler-gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.lst parttool-gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.lst video-gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.lst terminal-gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_seed_mod-lib_libgcrypt_grub_cipher_seed-extra.1 + +COMMANDFILES += cmd-gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.lst +FSFILES += fs-gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.lst +PARTTOOLFILES += parttool-gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.lst +PARTMAPFILES += partmap-gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.lst +HANDLERFILES += handler-gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.lst +TERMINALFILES += terminal-gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.lst +VIDEOFILES += video-gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.lst + +cmd-gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.lst: lib/libgcrypt-grub/cipher/seed.c $(lib/libgcrypt-grub/cipher/seed.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_seed_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gcry_seed > $@ || (rm -f $@; exit 1) + +fs-gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.lst: lib/libgcrypt-grub/cipher/seed.c $(lib/libgcrypt-grub/cipher/seed.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_seed_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gcry_seed > $@ || (rm -f $@; exit 1) + +parttool-gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.lst: lib/libgcrypt-grub/cipher/seed.c $(lib/libgcrypt-grub/cipher/seed.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_seed_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gcry_seed > $@ || (rm -f $@; exit 1) + +partmap-gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.lst: lib/libgcrypt-grub/cipher/seed.c $(lib/libgcrypt-grub/cipher/seed.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_seed_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gcry_seed > $@ || (rm -f $@; exit 1) + +handler-gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.lst: lib/libgcrypt-grub/cipher/seed.c $(lib/libgcrypt-grub/cipher/seed.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_seed_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gcry_seed > $@ || (rm -f $@; exit 1) + +terminal-gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.lst: lib/libgcrypt-grub/cipher/seed.c $(lib/libgcrypt-grub/cipher/seed.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_seed_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gcry_seed > $@ || (rm -f $@; exit 1) + +video-gcry_seed_mod-lib_libgcrypt_grub_cipher_seed.lst: lib/libgcrypt-grub/cipher/seed.c $(lib/libgcrypt-grub/cipher/seed.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_seed_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gcry_seed > $@ || (rm -f $@; exit 1) + +gcry_seed_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_seed_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/dsa.c +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/md4.c +pkglib_MODULES += gcry_md4.mod +gcry_md4_mod_SOURCES = lib/libgcrypt-grub/cipher/md4.c + +clean-module-gcry_md4.mod.1: + rm -f gcry_md4.mod mod-gcry_md4.o mod-gcry_md4.c pre-gcry_md4.o gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.o und-gcry_md4.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_md4.mod.1 + +clean-module-gcry_md4.mod-symbol.1: + rm -f def-gcry_md4.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_md4.mod-symbol.1 +DEFSYMFILES += def-gcry_md4.lst +mostlyclean-module-gcry_md4.mod.1: + rm -f gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-gcry_md4.mod.1 +UNDSYMFILES += und-gcry_md4.lst + +ifeq ($(TARGET_NO_MODULES), yes) +gcry_md4.mod: pre-gcry_md4.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_md4_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_md4.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +gcry_md4.mod: pre-gcry_md4.o mod-gcry_md4.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_md4_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_md4.o mod-gcry_md4.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +gcry_md4.mod: pre-gcry_md4.o mod-gcry_md4.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(gcry_md4_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-gcry_md4.o mod-gcry_md4.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-gcry_md4.o: $(gcry_md4_mod_DEPENDENCIES) gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.o + -rm -f $@ + $(TARGET_CC) $(gcry_md4_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.o + +mod-gcry_md4.o: mod-gcry_md4.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_md4_mod_CFLAGS) -DGRUB_FILE=\"mod-gcry_md4.c\" -c -o $@ $< + +mod-gcry_md4.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gcry_md4' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-gcry_md4.lst: pre-gcry_md4.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gcry_md4/' > $@ +else +def-gcry_md4.lst: pre-gcry_md4.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 gcry_md4/' > $@ +endif + +und-gcry_md4.lst: pre-gcry_md4.o + echo 'gcry_md4' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.o: lib/libgcrypt-grub/cipher/md4.c $(lib/libgcrypt-grub/cipher/md4.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_md4_mod_CFLAGS) -DGRUB_FILE=\"lib/libgcrypt-grub/cipher/md4.c\" -MD -c -o $@ $< +-include gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.d + +clean-module-gcry_md4_mod-lib_libgcrypt_grub_cipher_md4-extra.1: + rm -f cmd-gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.lst fs-gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.lst partmap-gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.lst handler-gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.lst parttool-gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.lst video-gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.lst terminal-gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_md4_mod-lib_libgcrypt_grub_cipher_md4-extra.1 + +COMMANDFILES += cmd-gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.lst +FSFILES += fs-gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.lst +PARTTOOLFILES += parttool-gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.lst +PARTMAPFILES += partmap-gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.lst +HANDLERFILES += handler-gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.lst +TERMINALFILES += terminal-gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.lst +VIDEOFILES += video-gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.lst + +cmd-gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.lst: lib/libgcrypt-grub/cipher/md4.c $(lib/libgcrypt-grub/cipher/md4.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_md4_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gcry_md4 > $@ || (rm -f $@; exit 1) + +fs-gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.lst: lib/libgcrypt-grub/cipher/md4.c $(lib/libgcrypt-grub/cipher/md4.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_md4_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gcry_md4 > $@ || (rm -f $@; exit 1) + +parttool-gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.lst: lib/libgcrypt-grub/cipher/md4.c $(lib/libgcrypt-grub/cipher/md4.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_md4_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gcry_md4 > $@ || (rm -f $@; exit 1) + +partmap-gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.lst: lib/libgcrypt-grub/cipher/md4.c $(lib/libgcrypt-grub/cipher/md4.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_md4_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gcry_md4 > $@ || (rm -f $@; exit 1) + +handler-gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.lst: lib/libgcrypt-grub/cipher/md4.c $(lib/libgcrypt-grub/cipher/md4.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_md4_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gcry_md4 > $@ || (rm -f $@; exit 1) + +terminal-gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.lst: lib/libgcrypt-grub/cipher/md4.c $(lib/libgcrypt-grub/cipher/md4.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_md4_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gcry_md4 > $@ || (rm -f $@; exit 1) + +video-gcry_md4_mod-lib_libgcrypt_grub_cipher_md4.lst: lib/libgcrypt-grub/cipher/md4.c $(lib/libgcrypt-grub/cipher/md4.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_md4_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gcry_md4 > $@ || (rm -f $@; exit 1) + +gcry_md4_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_md4_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/tiger.c +pkglib_MODULES += gcry_tiger.mod +gcry_tiger_mod_SOURCES = lib/libgcrypt-grub/cipher/tiger.c + +clean-module-gcry_tiger.mod.1: + rm -f gcry_tiger.mod mod-gcry_tiger.o mod-gcry_tiger.c pre-gcry_tiger.o gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.o und-gcry_tiger.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_tiger.mod.1 + +clean-module-gcry_tiger.mod-symbol.1: + rm -f def-gcry_tiger.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_tiger.mod-symbol.1 +DEFSYMFILES += def-gcry_tiger.lst +mostlyclean-module-gcry_tiger.mod.1: + rm -f gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-gcry_tiger.mod.1 +UNDSYMFILES += und-gcry_tiger.lst + +ifeq ($(TARGET_NO_MODULES), yes) +gcry_tiger.mod: pre-gcry_tiger.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_tiger_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_tiger.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +gcry_tiger.mod: pre-gcry_tiger.o mod-gcry_tiger.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_tiger_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_tiger.o mod-gcry_tiger.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +gcry_tiger.mod: pre-gcry_tiger.o mod-gcry_tiger.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(gcry_tiger_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-gcry_tiger.o mod-gcry_tiger.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-gcry_tiger.o: $(gcry_tiger_mod_DEPENDENCIES) gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.o + -rm -f $@ + $(TARGET_CC) $(gcry_tiger_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.o + +mod-gcry_tiger.o: mod-gcry_tiger.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_tiger_mod_CFLAGS) -DGRUB_FILE=\"mod-gcry_tiger.c\" -c -o $@ $< + +mod-gcry_tiger.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gcry_tiger' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-gcry_tiger.lst: pre-gcry_tiger.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gcry_tiger/' > $@ +else +def-gcry_tiger.lst: pre-gcry_tiger.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 gcry_tiger/' > $@ +endif + +und-gcry_tiger.lst: pre-gcry_tiger.o + echo 'gcry_tiger' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.o: lib/libgcrypt-grub/cipher/tiger.c $(lib/libgcrypt-grub/cipher/tiger.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_tiger_mod_CFLAGS) -DGRUB_FILE=\"lib/libgcrypt-grub/cipher/tiger.c\" -MD -c -o $@ $< +-include gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.d + +clean-module-gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger-extra.1: + rm -f cmd-gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.lst fs-gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.lst partmap-gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.lst handler-gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.lst parttool-gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.lst video-gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.lst terminal-gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger-extra.1 + +COMMANDFILES += cmd-gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.lst +FSFILES += fs-gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.lst +PARTTOOLFILES += parttool-gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.lst +PARTMAPFILES += partmap-gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.lst +HANDLERFILES += handler-gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.lst +TERMINALFILES += terminal-gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.lst +VIDEOFILES += video-gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.lst + +cmd-gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.lst: lib/libgcrypt-grub/cipher/tiger.c $(lib/libgcrypt-grub/cipher/tiger.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_tiger_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gcry_tiger > $@ || (rm -f $@; exit 1) + +fs-gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.lst: lib/libgcrypt-grub/cipher/tiger.c $(lib/libgcrypt-grub/cipher/tiger.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_tiger_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gcry_tiger > $@ || (rm -f $@; exit 1) + +parttool-gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.lst: lib/libgcrypt-grub/cipher/tiger.c $(lib/libgcrypt-grub/cipher/tiger.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_tiger_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gcry_tiger > $@ || (rm -f $@; exit 1) + +partmap-gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.lst: lib/libgcrypt-grub/cipher/tiger.c $(lib/libgcrypt-grub/cipher/tiger.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_tiger_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gcry_tiger > $@ || (rm -f $@; exit 1) + +handler-gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.lst: lib/libgcrypt-grub/cipher/tiger.c $(lib/libgcrypt-grub/cipher/tiger.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_tiger_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gcry_tiger > $@ || (rm -f $@; exit 1) + +terminal-gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.lst: lib/libgcrypt-grub/cipher/tiger.c $(lib/libgcrypt-grub/cipher/tiger.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_tiger_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gcry_tiger > $@ || (rm -f $@; exit 1) + +video-gcry_tiger_mod-lib_libgcrypt_grub_cipher_tiger.lst: lib/libgcrypt-grub/cipher/tiger.c $(lib/libgcrypt-grub/cipher/tiger.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_tiger_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gcry_tiger > $@ || (rm -f $@; exit 1) + +gcry_tiger_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_tiger_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/elgamal.c +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/ecc.c +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/rmd.h +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/crc.c +pkglib_MODULES += gcry_crc.mod +gcry_crc_mod_SOURCES = lib/libgcrypt-grub/cipher/crc.c + +clean-module-gcry_crc.mod.1: + rm -f gcry_crc.mod mod-gcry_crc.o mod-gcry_crc.c pre-gcry_crc.o gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.o und-gcry_crc.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_crc.mod.1 + +clean-module-gcry_crc.mod-symbol.1: + rm -f def-gcry_crc.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_crc.mod-symbol.1 +DEFSYMFILES += def-gcry_crc.lst +mostlyclean-module-gcry_crc.mod.1: + rm -f gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-gcry_crc.mod.1 +UNDSYMFILES += und-gcry_crc.lst + +ifeq ($(TARGET_NO_MODULES), yes) +gcry_crc.mod: pre-gcry_crc.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_crc_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_crc.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +gcry_crc.mod: pre-gcry_crc.o mod-gcry_crc.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_crc_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_crc.o mod-gcry_crc.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +gcry_crc.mod: pre-gcry_crc.o mod-gcry_crc.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(gcry_crc_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-gcry_crc.o mod-gcry_crc.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-gcry_crc.o: $(gcry_crc_mod_DEPENDENCIES) gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.o + -rm -f $@ + $(TARGET_CC) $(gcry_crc_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.o + +mod-gcry_crc.o: mod-gcry_crc.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_crc_mod_CFLAGS) -DGRUB_FILE=\"mod-gcry_crc.c\" -c -o $@ $< + +mod-gcry_crc.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gcry_crc' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-gcry_crc.lst: pre-gcry_crc.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gcry_crc/' > $@ +else +def-gcry_crc.lst: pre-gcry_crc.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 gcry_crc/' > $@ +endif + +und-gcry_crc.lst: pre-gcry_crc.o + echo 'gcry_crc' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.o: lib/libgcrypt-grub/cipher/crc.c $(lib/libgcrypt-grub/cipher/crc.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_crc_mod_CFLAGS) -DGRUB_FILE=\"lib/libgcrypt-grub/cipher/crc.c\" -MD -c -o $@ $< +-include gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.d + +clean-module-gcry_crc_mod-lib_libgcrypt_grub_cipher_crc-extra.1: + rm -f cmd-gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.lst fs-gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.lst partmap-gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.lst handler-gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.lst parttool-gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.lst video-gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.lst terminal-gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_crc_mod-lib_libgcrypt_grub_cipher_crc-extra.1 + +COMMANDFILES += cmd-gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.lst +FSFILES += fs-gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.lst +PARTTOOLFILES += parttool-gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.lst +PARTMAPFILES += partmap-gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.lst +HANDLERFILES += handler-gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.lst +TERMINALFILES += terminal-gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.lst +VIDEOFILES += video-gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.lst + +cmd-gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.lst: lib/libgcrypt-grub/cipher/crc.c $(lib/libgcrypt-grub/cipher/crc.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_crc_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gcry_crc > $@ || (rm -f $@; exit 1) + +fs-gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.lst: lib/libgcrypt-grub/cipher/crc.c $(lib/libgcrypt-grub/cipher/crc.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_crc_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gcry_crc > $@ || (rm -f $@; exit 1) + +parttool-gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.lst: lib/libgcrypt-grub/cipher/crc.c $(lib/libgcrypt-grub/cipher/crc.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_crc_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gcry_crc > $@ || (rm -f $@; exit 1) + +partmap-gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.lst: lib/libgcrypt-grub/cipher/crc.c $(lib/libgcrypt-grub/cipher/crc.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_crc_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gcry_crc > $@ || (rm -f $@; exit 1) + +handler-gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.lst: lib/libgcrypt-grub/cipher/crc.c $(lib/libgcrypt-grub/cipher/crc.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_crc_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gcry_crc > $@ || (rm -f $@; exit 1) + +terminal-gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.lst: lib/libgcrypt-grub/cipher/crc.c $(lib/libgcrypt-grub/cipher/crc.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_crc_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gcry_crc > $@ || (rm -f $@; exit 1) + +video-gcry_crc_mod-lib_libgcrypt_grub_cipher_crc.lst: lib/libgcrypt-grub/cipher/crc.c $(lib/libgcrypt-grub/cipher/crc.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_crc_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gcry_crc > $@ || (rm -f $@; exit 1) + +gcry_crc_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_crc_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/hash-common.h +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/md5.c +pkglib_MODULES += gcry_md5.mod +gcry_md5_mod_SOURCES = lib/libgcrypt-grub/cipher/md5.c + +clean-module-gcry_md5.mod.1: + rm -f gcry_md5.mod mod-gcry_md5.o mod-gcry_md5.c pre-gcry_md5.o gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.o und-gcry_md5.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_md5.mod.1 + +clean-module-gcry_md5.mod-symbol.1: + rm -f def-gcry_md5.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_md5.mod-symbol.1 +DEFSYMFILES += def-gcry_md5.lst +mostlyclean-module-gcry_md5.mod.1: + rm -f gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-gcry_md5.mod.1 +UNDSYMFILES += und-gcry_md5.lst + +ifeq ($(TARGET_NO_MODULES), yes) +gcry_md5.mod: pre-gcry_md5.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_md5_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_md5.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +gcry_md5.mod: pre-gcry_md5.o mod-gcry_md5.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_md5_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_md5.o mod-gcry_md5.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +gcry_md5.mod: pre-gcry_md5.o mod-gcry_md5.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(gcry_md5_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-gcry_md5.o mod-gcry_md5.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-gcry_md5.o: $(gcry_md5_mod_DEPENDENCIES) gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.o + -rm -f $@ + $(TARGET_CC) $(gcry_md5_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.o + +mod-gcry_md5.o: mod-gcry_md5.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_md5_mod_CFLAGS) -DGRUB_FILE=\"mod-gcry_md5.c\" -c -o $@ $< + +mod-gcry_md5.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gcry_md5' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-gcry_md5.lst: pre-gcry_md5.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gcry_md5/' > $@ +else +def-gcry_md5.lst: pre-gcry_md5.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 gcry_md5/' > $@ +endif + +und-gcry_md5.lst: pre-gcry_md5.o + echo 'gcry_md5' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.o: lib/libgcrypt-grub/cipher/md5.c $(lib/libgcrypt-grub/cipher/md5.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_md5_mod_CFLAGS) -DGRUB_FILE=\"lib/libgcrypt-grub/cipher/md5.c\" -MD -c -o $@ $< +-include gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.d + +clean-module-gcry_md5_mod-lib_libgcrypt_grub_cipher_md5-extra.1: + rm -f cmd-gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.lst fs-gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.lst partmap-gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.lst handler-gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.lst parttool-gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.lst video-gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.lst terminal-gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_md5_mod-lib_libgcrypt_grub_cipher_md5-extra.1 + +COMMANDFILES += cmd-gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.lst +FSFILES += fs-gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.lst +PARTTOOLFILES += parttool-gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.lst +PARTMAPFILES += partmap-gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.lst +HANDLERFILES += handler-gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.lst +TERMINALFILES += terminal-gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.lst +VIDEOFILES += video-gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.lst + +cmd-gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.lst: lib/libgcrypt-grub/cipher/md5.c $(lib/libgcrypt-grub/cipher/md5.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_md5_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gcry_md5 > $@ || (rm -f $@; exit 1) + +fs-gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.lst: lib/libgcrypt-grub/cipher/md5.c $(lib/libgcrypt-grub/cipher/md5.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_md5_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gcry_md5 > $@ || (rm -f $@; exit 1) + +parttool-gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.lst: lib/libgcrypt-grub/cipher/md5.c $(lib/libgcrypt-grub/cipher/md5.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_md5_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gcry_md5 > $@ || (rm -f $@; exit 1) + +partmap-gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.lst: lib/libgcrypt-grub/cipher/md5.c $(lib/libgcrypt-grub/cipher/md5.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_md5_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gcry_md5 > $@ || (rm -f $@; exit 1) + +handler-gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.lst: lib/libgcrypt-grub/cipher/md5.c $(lib/libgcrypt-grub/cipher/md5.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_md5_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gcry_md5 > $@ || (rm -f $@; exit 1) + +terminal-gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.lst: lib/libgcrypt-grub/cipher/md5.c $(lib/libgcrypt-grub/cipher/md5.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_md5_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gcry_md5 > $@ || (rm -f $@; exit 1) + +video-gcry_md5_mod-lib_libgcrypt_grub_cipher_md5.lst: lib/libgcrypt-grub/cipher/md5.c $(lib/libgcrypt-grub/cipher/md5.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_md5_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gcry_md5 > $@ || (rm -f $@; exit 1) + +gcry_md5_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_md5_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/camellia.c +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/serpent.c +pkglib_MODULES += gcry_serpent.mod +gcry_serpent_mod_SOURCES = lib/libgcrypt-grub/cipher/serpent.c + +clean-module-gcry_serpent.mod.1: + rm -f gcry_serpent.mod mod-gcry_serpent.o mod-gcry_serpent.c pre-gcry_serpent.o gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.o und-gcry_serpent.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_serpent.mod.1 + +clean-module-gcry_serpent.mod-symbol.1: + rm -f def-gcry_serpent.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_serpent.mod-symbol.1 +DEFSYMFILES += def-gcry_serpent.lst +mostlyclean-module-gcry_serpent.mod.1: + rm -f gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-gcry_serpent.mod.1 +UNDSYMFILES += und-gcry_serpent.lst + +ifeq ($(TARGET_NO_MODULES), yes) +gcry_serpent.mod: pre-gcry_serpent.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_serpent_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_serpent.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +gcry_serpent.mod: pre-gcry_serpent.o mod-gcry_serpent.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_serpent_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_serpent.o mod-gcry_serpent.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +gcry_serpent.mod: pre-gcry_serpent.o mod-gcry_serpent.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(gcry_serpent_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-gcry_serpent.o mod-gcry_serpent.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-gcry_serpent.o: $(gcry_serpent_mod_DEPENDENCIES) gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.o + -rm -f $@ + $(TARGET_CC) $(gcry_serpent_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.o + +mod-gcry_serpent.o: mod-gcry_serpent.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_serpent_mod_CFLAGS) -DGRUB_FILE=\"mod-gcry_serpent.c\" -c -o $@ $< + +mod-gcry_serpent.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gcry_serpent' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-gcry_serpent.lst: pre-gcry_serpent.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gcry_serpent/' > $@ +else +def-gcry_serpent.lst: pre-gcry_serpent.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 gcry_serpent/' > $@ +endif + +und-gcry_serpent.lst: pre-gcry_serpent.o + echo 'gcry_serpent' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.o: lib/libgcrypt-grub/cipher/serpent.c $(lib/libgcrypt-grub/cipher/serpent.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_serpent_mod_CFLAGS) -DGRUB_FILE=\"lib/libgcrypt-grub/cipher/serpent.c\" -MD -c -o $@ $< +-include gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.d + +clean-module-gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent-extra.1: + rm -f cmd-gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.lst fs-gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.lst partmap-gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.lst handler-gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.lst parttool-gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.lst video-gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.lst terminal-gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent-extra.1 + +COMMANDFILES += cmd-gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.lst +FSFILES += fs-gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.lst +PARTTOOLFILES += parttool-gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.lst +PARTMAPFILES += partmap-gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.lst +HANDLERFILES += handler-gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.lst +TERMINALFILES += terminal-gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.lst +VIDEOFILES += video-gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.lst + +cmd-gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.lst: lib/libgcrypt-grub/cipher/serpent.c $(lib/libgcrypt-grub/cipher/serpent.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_serpent_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gcry_serpent > $@ || (rm -f $@; exit 1) + +fs-gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.lst: lib/libgcrypt-grub/cipher/serpent.c $(lib/libgcrypt-grub/cipher/serpent.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_serpent_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gcry_serpent > $@ || (rm -f $@; exit 1) + +parttool-gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.lst: lib/libgcrypt-grub/cipher/serpent.c $(lib/libgcrypt-grub/cipher/serpent.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_serpent_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gcry_serpent > $@ || (rm -f $@; exit 1) + +partmap-gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.lst: lib/libgcrypt-grub/cipher/serpent.c $(lib/libgcrypt-grub/cipher/serpent.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_serpent_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gcry_serpent > $@ || (rm -f $@; exit 1) + +handler-gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.lst: lib/libgcrypt-grub/cipher/serpent.c $(lib/libgcrypt-grub/cipher/serpent.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_serpent_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gcry_serpent > $@ || (rm -f $@; exit 1) + +terminal-gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.lst: lib/libgcrypt-grub/cipher/serpent.c $(lib/libgcrypt-grub/cipher/serpent.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_serpent_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gcry_serpent > $@ || (rm -f $@; exit 1) + +video-gcry_serpent_mod-lib_libgcrypt_grub_cipher_serpent.lst: lib/libgcrypt-grub/cipher/serpent.c $(lib/libgcrypt-grub/cipher/serpent.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_serpent_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gcry_serpent > $@ || (rm -f $@; exit 1) + +gcry_serpent_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_serpent_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/arcfour.c +pkglib_MODULES += gcry_arcfour.mod +gcry_arcfour_mod_SOURCES = lib/libgcrypt-grub/cipher/arcfour.c + +clean-module-gcry_arcfour.mod.1: + rm -f gcry_arcfour.mod mod-gcry_arcfour.o mod-gcry_arcfour.c pre-gcry_arcfour.o gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.o und-gcry_arcfour.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_arcfour.mod.1 + +clean-module-gcry_arcfour.mod-symbol.1: + rm -f def-gcry_arcfour.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_arcfour.mod-symbol.1 +DEFSYMFILES += def-gcry_arcfour.lst +mostlyclean-module-gcry_arcfour.mod.1: + rm -f gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-gcry_arcfour.mod.1 +UNDSYMFILES += und-gcry_arcfour.lst + +ifeq ($(TARGET_NO_MODULES), yes) +gcry_arcfour.mod: pre-gcry_arcfour.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_arcfour_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_arcfour.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +gcry_arcfour.mod: pre-gcry_arcfour.o mod-gcry_arcfour.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_arcfour_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_arcfour.o mod-gcry_arcfour.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +gcry_arcfour.mod: pre-gcry_arcfour.o mod-gcry_arcfour.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(gcry_arcfour_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-gcry_arcfour.o mod-gcry_arcfour.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-gcry_arcfour.o: $(gcry_arcfour_mod_DEPENDENCIES) gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.o + -rm -f $@ + $(TARGET_CC) $(gcry_arcfour_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.o + +mod-gcry_arcfour.o: mod-gcry_arcfour.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_arcfour_mod_CFLAGS) -DGRUB_FILE=\"mod-gcry_arcfour.c\" -c -o $@ $< + +mod-gcry_arcfour.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gcry_arcfour' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-gcry_arcfour.lst: pre-gcry_arcfour.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gcry_arcfour/' > $@ +else +def-gcry_arcfour.lst: pre-gcry_arcfour.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 gcry_arcfour/' > $@ +endif + +und-gcry_arcfour.lst: pre-gcry_arcfour.o + echo 'gcry_arcfour' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.o: lib/libgcrypt-grub/cipher/arcfour.c $(lib/libgcrypt-grub/cipher/arcfour.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_arcfour_mod_CFLAGS) -DGRUB_FILE=\"lib/libgcrypt-grub/cipher/arcfour.c\" -MD -c -o $@ $< +-include gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.d + +clean-module-gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour-extra.1: + rm -f cmd-gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.lst fs-gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.lst partmap-gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.lst handler-gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.lst parttool-gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.lst video-gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.lst terminal-gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour-extra.1 + +COMMANDFILES += cmd-gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.lst +FSFILES += fs-gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.lst +PARTTOOLFILES += parttool-gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.lst +PARTMAPFILES += partmap-gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.lst +HANDLERFILES += handler-gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.lst +TERMINALFILES += terminal-gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.lst +VIDEOFILES += video-gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.lst + +cmd-gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.lst: lib/libgcrypt-grub/cipher/arcfour.c $(lib/libgcrypt-grub/cipher/arcfour.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_arcfour_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gcry_arcfour > $@ || (rm -f $@; exit 1) + +fs-gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.lst: lib/libgcrypt-grub/cipher/arcfour.c $(lib/libgcrypt-grub/cipher/arcfour.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_arcfour_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gcry_arcfour > $@ || (rm -f $@; exit 1) + +parttool-gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.lst: lib/libgcrypt-grub/cipher/arcfour.c $(lib/libgcrypt-grub/cipher/arcfour.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_arcfour_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gcry_arcfour > $@ || (rm -f $@; exit 1) + +partmap-gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.lst: lib/libgcrypt-grub/cipher/arcfour.c $(lib/libgcrypt-grub/cipher/arcfour.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_arcfour_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gcry_arcfour > $@ || (rm -f $@; exit 1) + +handler-gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.lst: lib/libgcrypt-grub/cipher/arcfour.c $(lib/libgcrypt-grub/cipher/arcfour.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_arcfour_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gcry_arcfour > $@ || (rm -f $@; exit 1) + +terminal-gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.lst: lib/libgcrypt-grub/cipher/arcfour.c $(lib/libgcrypt-grub/cipher/arcfour.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_arcfour_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gcry_arcfour > $@ || (rm -f $@; exit 1) + +video-gcry_arcfour_mod-lib_libgcrypt_grub_cipher_arcfour.lst: lib/libgcrypt-grub/cipher/arcfour.c $(lib/libgcrypt-grub/cipher/arcfour.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_arcfour_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gcry_arcfour > $@ || (rm -f $@; exit 1) + +gcry_arcfour_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_arcfour_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/whirlpool.c +pkglib_MODULES += gcry_whirlpool.mod +gcry_whirlpool_mod_SOURCES = lib/libgcrypt-grub/cipher/whirlpool.c + +clean-module-gcry_whirlpool.mod.1: + rm -f gcry_whirlpool.mod mod-gcry_whirlpool.o mod-gcry_whirlpool.c pre-gcry_whirlpool.o gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.o und-gcry_whirlpool.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_whirlpool.mod.1 + +clean-module-gcry_whirlpool.mod-symbol.1: + rm -f def-gcry_whirlpool.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_whirlpool.mod-symbol.1 +DEFSYMFILES += def-gcry_whirlpool.lst +mostlyclean-module-gcry_whirlpool.mod.1: + rm -f gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-gcry_whirlpool.mod.1 +UNDSYMFILES += und-gcry_whirlpool.lst + +ifeq ($(TARGET_NO_MODULES), yes) +gcry_whirlpool.mod: pre-gcry_whirlpool.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_whirlpool_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_whirlpool.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +gcry_whirlpool.mod: pre-gcry_whirlpool.o mod-gcry_whirlpool.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_whirlpool_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_whirlpool.o mod-gcry_whirlpool.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +gcry_whirlpool.mod: pre-gcry_whirlpool.o mod-gcry_whirlpool.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(gcry_whirlpool_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-gcry_whirlpool.o mod-gcry_whirlpool.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-gcry_whirlpool.o: $(gcry_whirlpool_mod_DEPENDENCIES) gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.o + -rm -f $@ + $(TARGET_CC) $(gcry_whirlpool_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.o + +mod-gcry_whirlpool.o: mod-gcry_whirlpool.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_whirlpool_mod_CFLAGS) -DGRUB_FILE=\"mod-gcry_whirlpool.c\" -c -o $@ $< + +mod-gcry_whirlpool.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gcry_whirlpool' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-gcry_whirlpool.lst: pre-gcry_whirlpool.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gcry_whirlpool/' > $@ +else +def-gcry_whirlpool.lst: pre-gcry_whirlpool.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 gcry_whirlpool/' > $@ +endif + +und-gcry_whirlpool.lst: pre-gcry_whirlpool.o + echo 'gcry_whirlpool' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.o: lib/libgcrypt-grub/cipher/whirlpool.c $(lib/libgcrypt-grub/cipher/whirlpool.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_whirlpool_mod_CFLAGS) -DGRUB_FILE=\"lib/libgcrypt-grub/cipher/whirlpool.c\" -MD -c -o $@ $< +-include gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.d + +clean-module-gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool-extra.1: + rm -f cmd-gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.lst fs-gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.lst partmap-gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.lst handler-gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.lst parttool-gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.lst video-gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.lst terminal-gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool-extra.1 + +COMMANDFILES += cmd-gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.lst +FSFILES += fs-gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.lst +PARTTOOLFILES += parttool-gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.lst +PARTMAPFILES += partmap-gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.lst +HANDLERFILES += handler-gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.lst +TERMINALFILES += terminal-gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.lst +VIDEOFILES += video-gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.lst + +cmd-gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.lst: lib/libgcrypt-grub/cipher/whirlpool.c $(lib/libgcrypt-grub/cipher/whirlpool.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_whirlpool_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gcry_whirlpool > $@ || (rm -f $@; exit 1) + +fs-gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.lst: lib/libgcrypt-grub/cipher/whirlpool.c $(lib/libgcrypt-grub/cipher/whirlpool.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_whirlpool_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gcry_whirlpool > $@ || (rm -f $@; exit 1) + +parttool-gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.lst: lib/libgcrypt-grub/cipher/whirlpool.c $(lib/libgcrypt-grub/cipher/whirlpool.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_whirlpool_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gcry_whirlpool > $@ || (rm -f $@; exit 1) + +partmap-gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.lst: lib/libgcrypt-grub/cipher/whirlpool.c $(lib/libgcrypt-grub/cipher/whirlpool.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_whirlpool_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gcry_whirlpool > $@ || (rm -f $@; exit 1) + +handler-gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.lst: lib/libgcrypt-grub/cipher/whirlpool.c $(lib/libgcrypt-grub/cipher/whirlpool.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_whirlpool_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gcry_whirlpool > $@ || (rm -f $@; exit 1) + +terminal-gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.lst: lib/libgcrypt-grub/cipher/whirlpool.c $(lib/libgcrypt-grub/cipher/whirlpool.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_whirlpool_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gcry_whirlpool > $@ || (rm -f $@; exit 1) + +video-gcry_whirlpool_mod-lib_libgcrypt_grub_cipher_whirlpool.lst: lib/libgcrypt-grub/cipher/whirlpool.c $(lib/libgcrypt-grub/cipher/whirlpool.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_whirlpool_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gcry_whirlpool > $@ || (rm -f $@; exit 1) + +gcry_whirlpool_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_whirlpool_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/des.c +pkglib_MODULES += gcry_des.mod +gcry_des_mod_SOURCES = lib/libgcrypt-grub/cipher/des.c + +clean-module-gcry_des.mod.1: + rm -f gcry_des.mod mod-gcry_des.o mod-gcry_des.c pre-gcry_des.o gcry_des_mod-lib_libgcrypt_grub_cipher_des.o und-gcry_des.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_des.mod.1 + +clean-module-gcry_des.mod-symbol.1: + rm -f def-gcry_des.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_des.mod-symbol.1 +DEFSYMFILES += def-gcry_des.lst +mostlyclean-module-gcry_des.mod.1: + rm -f gcry_des_mod-lib_libgcrypt_grub_cipher_des.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-gcry_des.mod.1 +UNDSYMFILES += und-gcry_des.lst + +ifeq ($(TARGET_NO_MODULES), yes) +gcry_des.mod: pre-gcry_des.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_des_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_des.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +gcry_des.mod: pre-gcry_des.o mod-gcry_des.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_des_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_des.o mod-gcry_des.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +gcry_des.mod: pre-gcry_des.o mod-gcry_des.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(gcry_des_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-gcry_des.o mod-gcry_des.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-gcry_des.o: $(gcry_des_mod_DEPENDENCIES) gcry_des_mod-lib_libgcrypt_grub_cipher_des.o + -rm -f $@ + $(TARGET_CC) $(gcry_des_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ gcry_des_mod-lib_libgcrypt_grub_cipher_des.o + +mod-gcry_des.o: mod-gcry_des.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_des_mod_CFLAGS) -DGRUB_FILE=\"mod-gcry_des.c\" -c -o $@ $< + +mod-gcry_des.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gcry_des' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-gcry_des.lst: pre-gcry_des.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gcry_des/' > $@ +else +def-gcry_des.lst: pre-gcry_des.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 gcry_des/' > $@ +endif + +und-gcry_des.lst: pre-gcry_des.o + echo 'gcry_des' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gcry_des_mod-lib_libgcrypt_grub_cipher_des.o: lib/libgcrypt-grub/cipher/des.c $(lib/libgcrypt-grub/cipher/des.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_des_mod_CFLAGS) -DGRUB_FILE=\"lib/libgcrypt-grub/cipher/des.c\" -MD -c -o $@ $< +-include gcry_des_mod-lib_libgcrypt_grub_cipher_des.d + +clean-module-gcry_des_mod-lib_libgcrypt_grub_cipher_des-extra.1: + rm -f cmd-gcry_des_mod-lib_libgcrypt_grub_cipher_des.lst fs-gcry_des_mod-lib_libgcrypt_grub_cipher_des.lst partmap-gcry_des_mod-lib_libgcrypt_grub_cipher_des.lst handler-gcry_des_mod-lib_libgcrypt_grub_cipher_des.lst parttool-gcry_des_mod-lib_libgcrypt_grub_cipher_des.lst video-gcry_des_mod-lib_libgcrypt_grub_cipher_des.lst terminal-gcry_des_mod-lib_libgcrypt_grub_cipher_des.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_des_mod-lib_libgcrypt_grub_cipher_des-extra.1 + +COMMANDFILES += cmd-gcry_des_mod-lib_libgcrypt_grub_cipher_des.lst +FSFILES += fs-gcry_des_mod-lib_libgcrypt_grub_cipher_des.lst +PARTTOOLFILES += parttool-gcry_des_mod-lib_libgcrypt_grub_cipher_des.lst +PARTMAPFILES += partmap-gcry_des_mod-lib_libgcrypt_grub_cipher_des.lst +HANDLERFILES += handler-gcry_des_mod-lib_libgcrypt_grub_cipher_des.lst +TERMINALFILES += terminal-gcry_des_mod-lib_libgcrypt_grub_cipher_des.lst +VIDEOFILES += video-gcry_des_mod-lib_libgcrypt_grub_cipher_des.lst + +cmd-gcry_des_mod-lib_libgcrypt_grub_cipher_des.lst: lib/libgcrypt-grub/cipher/des.c $(lib/libgcrypt-grub/cipher/des.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_des_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gcry_des > $@ || (rm -f $@; exit 1) + +fs-gcry_des_mod-lib_libgcrypt_grub_cipher_des.lst: lib/libgcrypt-grub/cipher/des.c $(lib/libgcrypt-grub/cipher/des.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_des_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gcry_des > $@ || (rm -f $@; exit 1) + +parttool-gcry_des_mod-lib_libgcrypt_grub_cipher_des.lst: lib/libgcrypt-grub/cipher/des.c $(lib/libgcrypt-grub/cipher/des.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_des_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gcry_des > $@ || (rm -f $@; exit 1) + +partmap-gcry_des_mod-lib_libgcrypt_grub_cipher_des.lst: lib/libgcrypt-grub/cipher/des.c $(lib/libgcrypt-grub/cipher/des.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_des_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gcry_des > $@ || (rm -f $@; exit 1) + +handler-gcry_des_mod-lib_libgcrypt_grub_cipher_des.lst: lib/libgcrypt-grub/cipher/des.c $(lib/libgcrypt-grub/cipher/des.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_des_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gcry_des > $@ || (rm -f $@; exit 1) + +terminal-gcry_des_mod-lib_libgcrypt_grub_cipher_des.lst: lib/libgcrypt-grub/cipher/des.c $(lib/libgcrypt-grub/cipher/des.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_des_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gcry_des > $@ || (rm -f $@; exit 1) + +video-gcry_des_mod-lib_libgcrypt_grub_cipher_des.lst: lib/libgcrypt-grub/cipher/des.c $(lib/libgcrypt-grub/cipher/des.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_des_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gcry_des > $@ || (rm -f $@; exit 1) + +gcry_des_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_des_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/sha256.c +pkglib_MODULES += gcry_sha256.mod +gcry_sha256_mod_SOURCES = lib/libgcrypt-grub/cipher/sha256.c + +clean-module-gcry_sha256.mod.1: + rm -f gcry_sha256.mod mod-gcry_sha256.o mod-gcry_sha256.c pre-gcry_sha256.o gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.o und-gcry_sha256.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_sha256.mod.1 + +clean-module-gcry_sha256.mod-symbol.1: + rm -f def-gcry_sha256.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_sha256.mod-symbol.1 +DEFSYMFILES += def-gcry_sha256.lst +mostlyclean-module-gcry_sha256.mod.1: + rm -f gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-gcry_sha256.mod.1 +UNDSYMFILES += und-gcry_sha256.lst + +ifeq ($(TARGET_NO_MODULES), yes) +gcry_sha256.mod: pre-gcry_sha256.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_sha256_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_sha256.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +gcry_sha256.mod: pre-gcry_sha256.o mod-gcry_sha256.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_sha256_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_sha256.o mod-gcry_sha256.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +gcry_sha256.mod: pre-gcry_sha256.o mod-gcry_sha256.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(gcry_sha256_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-gcry_sha256.o mod-gcry_sha256.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-gcry_sha256.o: $(gcry_sha256_mod_DEPENDENCIES) gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.o + -rm -f $@ + $(TARGET_CC) $(gcry_sha256_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.o + +mod-gcry_sha256.o: mod-gcry_sha256.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_sha256_mod_CFLAGS) -DGRUB_FILE=\"mod-gcry_sha256.c\" -c -o $@ $< + +mod-gcry_sha256.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gcry_sha256' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-gcry_sha256.lst: pre-gcry_sha256.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gcry_sha256/' > $@ +else +def-gcry_sha256.lst: pre-gcry_sha256.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 gcry_sha256/' > $@ +endif + +und-gcry_sha256.lst: pre-gcry_sha256.o + echo 'gcry_sha256' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.o: lib/libgcrypt-grub/cipher/sha256.c $(lib/libgcrypt-grub/cipher/sha256.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_sha256_mod_CFLAGS) -DGRUB_FILE=\"lib/libgcrypt-grub/cipher/sha256.c\" -MD -c -o $@ $< +-include gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.d + +clean-module-gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256-extra.1: + rm -f cmd-gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.lst fs-gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.lst partmap-gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.lst handler-gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.lst parttool-gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.lst video-gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.lst terminal-gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256-extra.1 + +COMMANDFILES += cmd-gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.lst +FSFILES += fs-gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.lst +PARTTOOLFILES += parttool-gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.lst +PARTMAPFILES += partmap-gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.lst +HANDLERFILES += handler-gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.lst +TERMINALFILES += terminal-gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.lst +VIDEOFILES += video-gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.lst + +cmd-gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.lst: lib/libgcrypt-grub/cipher/sha256.c $(lib/libgcrypt-grub/cipher/sha256.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_sha256_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gcry_sha256 > $@ || (rm -f $@; exit 1) + +fs-gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.lst: lib/libgcrypt-grub/cipher/sha256.c $(lib/libgcrypt-grub/cipher/sha256.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_sha256_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gcry_sha256 > $@ || (rm -f $@; exit 1) + +parttool-gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.lst: lib/libgcrypt-grub/cipher/sha256.c $(lib/libgcrypt-grub/cipher/sha256.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_sha256_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gcry_sha256 > $@ || (rm -f $@; exit 1) + +partmap-gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.lst: lib/libgcrypt-grub/cipher/sha256.c $(lib/libgcrypt-grub/cipher/sha256.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_sha256_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gcry_sha256 > $@ || (rm -f $@; exit 1) + +handler-gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.lst: lib/libgcrypt-grub/cipher/sha256.c $(lib/libgcrypt-grub/cipher/sha256.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_sha256_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gcry_sha256 > $@ || (rm -f $@; exit 1) + +terminal-gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.lst: lib/libgcrypt-grub/cipher/sha256.c $(lib/libgcrypt-grub/cipher/sha256.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_sha256_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gcry_sha256 > $@ || (rm -f $@; exit 1) + +video-gcry_sha256_mod-lib_libgcrypt_grub_cipher_sha256.lst: lib/libgcrypt-grub/cipher/sha256.c $(lib/libgcrypt-grub/cipher/sha256.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_sha256_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gcry_sha256 > $@ || (rm -f $@; exit 1) + +gcry_sha256_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_sha256_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/twofish.c +pkglib_MODULES += gcry_twofish.mod +gcry_twofish_mod_SOURCES = lib/libgcrypt-grub/cipher/twofish.c + +clean-module-gcry_twofish.mod.1: + rm -f gcry_twofish.mod mod-gcry_twofish.o mod-gcry_twofish.c pre-gcry_twofish.o gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.o und-gcry_twofish.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_twofish.mod.1 + +clean-module-gcry_twofish.mod-symbol.1: + rm -f def-gcry_twofish.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_twofish.mod-symbol.1 +DEFSYMFILES += def-gcry_twofish.lst +mostlyclean-module-gcry_twofish.mod.1: + rm -f gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-gcry_twofish.mod.1 +UNDSYMFILES += und-gcry_twofish.lst + +ifeq ($(TARGET_NO_MODULES), yes) +gcry_twofish.mod: pre-gcry_twofish.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_twofish_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_twofish.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +gcry_twofish.mod: pre-gcry_twofish.o mod-gcry_twofish.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_twofish_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_twofish.o mod-gcry_twofish.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +gcry_twofish.mod: pre-gcry_twofish.o mod-gcry_twofish.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(gcry_twofish_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-gcry_twofish.o mod-gcry_twofish.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-gcry_twofish.o: $(gcry_twofish_mod_DEPENDENCIES) gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.o + -rm -f $@ + $(TARGET_CC) $(gcry_twofish_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.o + +mod-gcry_twofish.o: mod-gcry_twofish.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_twofish_mod_CFLAGS) -DGRUB_FILE=\"mod-gcry_twofish.c\" -c -o $@ $< + +mod-gcry_twofish.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gcry_twofish' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-gcry_twofish.lst: pre-gcry_twofish.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gcry_twofish/' > $@ +else +def-gcry_twofish.lst: pre-gcry_twofish.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 gcry_twofish/' > $@ +endif + +und-gcry_twofish.lst: pre-gcry_twofish.o + echo 'gcry_twofish' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.o: lib/libgcrypt-grub/cipher/twofish.c $(lib/libgcrypt-grub/cipher/twofish.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_twofish_mod_CFLAGS) -DGRUB_FILE=\"lib/libgcrypt-grub/cipher/twofish.c\" -MD -c -o $@ $< +-include gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.d + +clean-module-gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish-extra.1: + rm -f cmd-gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.lst fs-gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.lst partmap-gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.lst handler-gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.lst parttool-gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.lst video-gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.lst terminal-gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish-extra.1 + +COMMANDFILES += cmd-gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.lst +FSFILES += fs-gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.lst +PARTTOOLFILES += parttool-gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.lst +PARTMAPFILES += partmap-gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.lst +HANDLERFILES += handler-gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.lst +TERMINALFILES += terminal-gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.lst +VIDEOFILES += video-gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.lst + +cmd-gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.lst: lib/libgcrypt-grub/cipher/twofish.c $(lib/libgcrypt-grub/cipher/twofish.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_twofish_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gcry_twofish > $@ || (rm -f $@; exit 1) + +fs-gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.lst: lib/libgcrypt-grub/cipher/twofish.c $(lib/libgcrypt-grub/cipher/twofish.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_twofish_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gcry_twofish > $@ || (rm -f $@; exit 1) + +parttool-gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.lst: lib/libgcrypt-grub/cipher/twofish.c $(lib/libgcrypt-grub/cipher/twofish.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_twofish_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gcry_twofish > $@ || (rm -f $@; exit 1) + +partmap-gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.lst: lib/libgcrypt-grub/cipher/twofish.c $(lib/libgcrypt-grub/cipher/twofish.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_twofish_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gcry_twofish > $@ || (rm -f $@; exit 1) + +handler-gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.lst: lib/libgcrypt-grub/cipher/twofish.c $(lib/libgcrypt-grub/cipher/twofish.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_twofish_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gcry_twofish > $@ || (rm -f $@; exit 1) + +terminal-gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.lst: lib/libgcrypt-grub/cipher/twofish.c $(lib/libgcrypt-grub/cipher/twofish.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_twofish_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gcry_twofish > $@ || (rm -f $@; exit 1) + +video-gcry_twofish_mod-lib_libgcrypt_grub_cipher_twofish.lst: lib/libgcrypt-grub/cipher/twofish.c $(lib/libgcrypt-grub/cipher/twofish.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_twofish_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gcry_twofish > $@ || (rm -f $@; exit 1) + +gcry_twofish_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_twofish_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/cast5.c +pkglib_MODULES += gcry_cast5.mod +gcry_cast5_mod_SOURCES = lib/libgcrypt-grub/cipher/cast5.c + +clean-module-gcry_cast5.mod.1: + rm -f gcry_cast5.mod mod-gcry_cast5.o mod-gcry_cast5.c pre-gcry_cast5.o gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.o und-gcry_cast5.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_cast5.mod.1 + +clean-module-gcry_cast5.mod-symbol.1: + rm -f def-gcry_cast5.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_cast5.mod-symbol.1 +DEFSYMFILES += def-gcry_cast5.lst +mostlyclean-module-gcry_cast5.mod.1: + rm -f gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-gcry_cast5.mod.1 +UNDSYMFILES += und-gcry_cast5.lst + +ifeq ($(TARGET_NO_MODULES), yes) +gcry_cast5.mod: pre-gcry_cast5.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_cast5_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_cast5.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +gcry_cast5.mod: pre-gcry_cast5.o mod-gcry_cast5.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_cast5_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_cast5.o mod-gcry_cast5.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +gcry_cast5.mod: pre-gcry_cast5.o mod-gcry_cast5.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(gcry_cast5_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-gcry_cast5.o mod-gcry_cast5.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-gcry_cast5.o: $(gcry_cast5_mod_DEPENDENCIES) gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.o + -rm -f $@ + $(TARGET_CC) $(gcry_cast5_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.o + +mod-gcry_cast5.o: mod-gcry_cast5.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_cast5_mod_CFLAGS) -DGRUB_FILE=\"mod-gcry_cast5.c\" -c -o $@ $< + +mod-gcry_cast5.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gcry_cast5' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-gcry_cast5.lst: pre-gcry_cast5.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gcry_cast5/' > $@ +else +def-gcry_cast5.lst: pre-gcry_cast5.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 gcry_cast5/' > $@ +endif + +und-gcry_cast5.lst: pre-gcry_cast5.o + echo 'gcry_cast5' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.o: lib/libgcrypt-grub/cipher/cast5.c $(lib/libgcrypt-grub/cipher/cast5.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_cast5_mod_CFLAGS) -DGRUB_FILE=\"lib/libgcrypt-grub/cipher/cast5.c\" -MD -c -o $@ $< +-include gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.d + +clean-module-gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5-extra.1: + rm -f cmd-gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.lst fs-gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.lst partmap-gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.lst handler-gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.lst parttool-gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.lst video-gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.lst terminal-gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5-extra.1 + +COMMANDFILES += cmd-gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.lst +FSFILES += fs-gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.lst +PARTTOOLFILES += parttool-gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.lst +PARTMAPFILES += partmap-gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.lst +HANDLERFILES += handler-gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.lst +TERMINALFILES += terminal-gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.lst +VIDEOFILES += video-gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.lst + +cmd-gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.lst: lib/libgcrypt-grub/cipher/cast5.c $(lib/libgcrypt-grub/cipher/cast5.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_cast5_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gcry_cast5 > $@ || (rm -f $@; exit 1) + +fs-gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.lst: lib/libgcrypt-grub/cipher/cast5.c $(lib/libgcrypt-grub/cipher/cast5.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_cast5_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gcry_cast5 > $@ || (rm -f $@; exit 1) + +parttool-gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.lst: lib/libgcrypt-grub/cipher/cast5.c $(lib/libgcrypt-grub/cipher/cast5.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_cast5_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gcry_cast5 > $@ || (rm -f $@; exit 1) + +partmap-gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.lst: lib/libgcrypt-grub/cipher/cast5.c $(lib/libgcrypt-grub/cipher/cast5.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_cast5_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gcry_cast5 > $@ || (rm -f $@; exit 1) + +handler-gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.lst: lib/libgcrypt-grub/cipher/cast5.c $(lib/libgcrypt-grub/cipher/cast5.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_cast5_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gcry_cast5 > $@ || (rm -f $@; exit 1) + +terminal-gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.lst: lib/libgcrypt-grub/cipher/cast5.c $(lib/libgcrypt-grub/cipher/cast5.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_cast5_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gcry_cast5 > $@ || (rm -f $@; exit 1) + +video-gcry_cast5_mod-lib_libgcrypt_grub_cipher_cast5.lst: lib/libgcrypt-grub/cipher/cast5.c $(lib/libgcrypt-grub/cipher/cast5.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_cast5_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gcry_cast5 > $@ || (rm -f $@; exit 1) + +gcry_cast5_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_cast5_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/rsa.c +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/sha1.c +pkglib_MODULES += gcry_sha1.mod +gcry_sha1_mod_SOURCES = lib/libgcrypt-grub/cipher/sha1.c + +clean-module-gcry_sha1.mod.1: + rm -f gcry_sha1.mod mod-gcry_sha1.o mod-gcry_sha1.c pre-gcry_sha1.o gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.o und-gcry_sha1.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_sha1.mod.1 + +clean-module-gcry_sha1.mod-symbol.1: + rm -f def-gcry_sha1.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_sha1.mod-symbol.1 +DEFSYMFILES += def-gcry_sha1.lst +mostlyclean-module-gcry_sha1.mod.1: + rm -f gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-gcry_sha1.mod.1 +UNDSYMFILES += und-gcry_sha1.lst + +ifeq ($(TARGET_NO_MODULES), yes) +gcry_sha1.mod: pre-gcry_sha1.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_sha1_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_sha1.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +gcry_sha1.mod: pre-gcry_sha1.o mod-gcry_sha1.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_sha1_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_sha1.o mod-gcry_sha1.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +gcry_sha1.mod: pre-gcry_sha1.o mod-gcry_sha1.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(gcry_sha1_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-gcry_sha1.o mod-gcry_sha1.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-gcry_sha1.o: $(gcry_sha1_mod_DEPENDENCIES) gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.o + -rm -f $@ + $(TARGET_CC) $(gcry_sha1_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.o + +mod-gcry_sha1.o: mod-gcry_sha1.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_sha1_mod_CFLAGS) -DGRUB_FILE=\"mod-gcry_sha1.c\" -c -o $@ $< + +mod-gcry_sha1.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gcry_sha1' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-gcry_sha1.lst: pre-gcry_sha1.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gcry_sha1/' > $@ +else +def-gcry_sha1.lst: pre-gcry_sha1.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 gcry_sha1/' > $@ +endif + +und-gcry_sha1.lst: pre-gcry_sha1.o + echo 'gcry_sha1' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.o: lib/libgcrypt-grub/cipher/sha1.c $(lib/libgcrypt-grub/cipher/sha1.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_sha1_mod_CFLAGS) -DGRUB_FILE=\"lib/libgcrypt-grub/cipher/sha1.c\" -MD -c -o $@ $< +-include gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.d + +clean-module-gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1-extra.1: + rm -f cmd-gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.lst fs-gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.lst partmap-gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.lst handler-gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.lst parttool-gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.lst video-gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.lst terminal-gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1-extra.1 + +COMMANDFILES += cmd-gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.lst +FSFILES += fs-gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.lst +PARTTOOLFILES += parttool-gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.lst +PARTMAPFILES += partmap-gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.lst +HANDLERFILES += handler-gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.lst +TERMINALFILES += terminal-gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.lst +VIDEOFILES += video-gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.lst + +cmd-gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.lst: lib/libgcrypt-grub/cipher/sha1.c $(lib/libgcrypt-grub/cipher/sha1.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_sha1_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gcry_sha1 > $@ || (rm -f $@; exit 1) + +fs-gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.lst: lib/libgcrypt-grub/cipher/sha1.c $(lib/libgcrypt-grub/cipher/sha1.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_sha1_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gcry_sha1 > $@ || (rm -f $@; exit 1) + +parttool-gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.lst: lib/libgcrypt-grub/cipher/sha1.c $(lib/libgcrypt-grub/cipher/sha1.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_sha1_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gcry_sha1 > $@ || (rm -f $@; exit 1) + +partmap-gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.lst: lib/libgcrypt-grub/cipher/sha1.c $(lib/libgcrypt-grub/cipher/sha1.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_sha1_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gcry_sha1 > $@ || (rm -f $@; exit 1) + +handler-gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.lst: lib/libgcrypt-grub/cipher/sha1.c $(lib/libgcrypt-grub/cipher/sha1.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_sha1_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gcry_sha1 > $@ || (rm -f $@; exit 1) + +terminal-gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.lst: lib/libgcrypt-grub/cipher/sha1.c $(lib/libgcrypt-grub/cipher/sha1.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_sha1_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gcry_sha1 > $@ || (rm -f $@; exit 1) + +video-gcry_sha1_mod-lib_libgcrypt_grub_cipher_sha1.lst: lib/libgcrypt-grub/cipher/sha1.c $(lib/libgcrypt-grub/cipher/sha1.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_sha1_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gcry_sha1 > $@ || (rm -f $@; exit 1) + +gcry_sha1_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_sha1_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/blowfish.c +pkglib_MODULES += gcry_blowfish.mod +gcry_blowfish_mod_SOURCES = lib/libgcrypt-grub/cipher/blowfish.c + +clean-module-gcry_blowfish.mod.1: + rm -f gcry_blowfish.mod mod-gcry_blowfish.o mod-gcry_blowfish.c pre-gcry_blowfish.o gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.o und-gcry_blowfish.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_blowfish.mod.1 + +clean-module-gcry_blowfish.mod-symbol.1: + rm -f def-gcry_blowfish.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_blowfish.mod-symbol.1 +DEFSYMFILES += def-gcry_blowfish.lst +mostlyclean-module-gcry_blowfish.mod.1: + rm -f gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-gcry_blowfish.mod.1 +UNDSYMFILES += und-gcry_blowfish.lst + +ifeq ($(TARGET_NO_MODULES), yes) +gcry_blowfish.mod: pre-gcry_blowfish.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_blowfish_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_blowfish.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +gcry_blowfish.mod: pre-gcry_blowfish.o mod-gcry_blowfish.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_blowfish_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_blowfish.o mod-gcry_blowfish.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +gcry_blowfish.mod: pre-gcry_blowfish.o mod-gcry_blowfish.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(gcry_blowfish_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-gcry_blowfish.o mod-gcry_blowfish.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-gcry_blowfish.o: $(gcry_blowfish_mod_DEPENDENCIES) gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.o + -rm -f $@ + $(TARGET_CC) $(gcry_blowfish_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.o + +mod-gcry_blowfish.o: mod-gcry_blowfish.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_blowfish_mod_CFLAGS) -DGRUB_FILE=\"mod-gcry_blowfish.c\" -c -o $@ $< + +mod-gcry_blowfish.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gcry_blowfish' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-gcry_blowfish.lst: pre-gcry_blowfish.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gcry_blowfish/' > $@ +else +def-gcry_blowfish.lst: pre-gcry_blowfish.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 gcry_blowfish/' > $@ +endif + +und-gcry_blowfish.lst: pre-gcry_blowfish.o + echo 'gcry_blowfish' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.o: lib/libgcrypt-grub/cipher/blowfish.c $(lib/libgcrypt-grub/cipher/blowfish.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_blowfish_mod_CFLAGS) -DGRUB_FILE=\"lib/libgcrypt-grub/cipher/blowfish.c\" -MD -c -o $@ $< +-include gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.d + +clean-module-gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish-extra.1: + rm -f cmd-gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.lst fs-gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.lst partmap-gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.lst handler-gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.lst parttool-gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.lst video-gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.lst terminal-gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish-extra.1 + +COMMANDFILES += cmd-gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.lst +FSFILES += fs-gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.lst +PARTTOOLFILES += parttool-gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.lst +PARTMAPFILES += partmap-gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.lst +HANDLERFILES += handler-gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.lst +TERMINALFILES += terminal-gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.lst +VIDEOFILES += video-gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.lst + +cmd-gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.lst: lib/libgcrypt-grub/cipher/blowfish.c $(lib/libgcrypt-grub/cipher/blowfish.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_blowfish_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gcry_blowfish > $@ || (rm -f $@; exit 1) + +fs-gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.lst: lib/libgcrypt-grub/cipher/blowfish.c $(lib/libgcrypt-grub/cipher/blowfish.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_blowfish_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gcry_blowfish > $@ || (rm -f $@; exit 1) + +parttool-gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.lst: lib/libgcrypt-grub/cipher/blowfish.c $(lib/libgcrypt-grub/cipher/blowfish.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_blowfish_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gcry_blowfish > $@ || (rm -f $@; exit 1) + +partmap-gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.lst: lib/libgcrypt-grub/cipher/blowfish.c $(lib/libgcrypt-grub/cipher/blowfish.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_blowfish_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gcry_blowfish > $@ || (rm -f $@; exit 1) + +handler-gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.lst: lib/libgcrypt-grub/cipher/blowfish.c $(lib/libgcrypt-grub/cipher/blowfish.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_blowfish_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gcry_blowfish > $@ || (rm -f $@; exit 1) + +terminal-gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.lst: lib/libgcrypt-grub/cipher/blowfish.c $(lib/libgcrypt-grub/cipher/blowfish.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_blowfish_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gcry_blowfish > $@ || (rm -f $@; exit 1) + +video-gcry_blowfish_mod-lib_libgcrypt_grub_cipher_blowfish.lst: lib/libgcrypt-grub/cipher/blowfish.c $(lib/libgcrypt-grub/cipher/blowfish.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_blowfish_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gcry_blowfish > $@ || (rm -f $@; exit 1) + +gcry_blowfish_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_blowfish_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/camellia-glue.c +pkglib_MODULES += gcry_camellia.mod +gcry_camellia_mod_SOURCES = lib/libgcrypt-grub/cipher/camellia-glue.c lib/libgcrypt-grub/cipher/camellia.c + +clean-module-gcry_camellia.mod.1: + rm -f gcry_camellia.mod mod-gcry_camellia.o mod-gcry_camellia.c pre-gcry_camellia.o gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.o gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.o und-gcry_camellia.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_camellia.mod.1 + +clean-module-gcry_camellia.mod-symbol.1: + rm -f def-gcry_camellia.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_camellia.mod-symbol.1 +DEFSYMFILES += def-gcry_camellia.lst +mostlyclean-module-gcry_camellia.mod.1: + rm -f gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.d gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-gcry_camellia.mod.1 +UNDSYMFILES += und-gcry_camellia.lst + +ifeq ($(TARGET_NO_MODULES), yes) +gcry_camellia.mod: pre-gcry_camellia.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_camellia_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_camellia.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +gcry_camellia.mod: pre-gcry_camellia.o mod-gcry_camellia.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_camellia_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_camellia.o mod-gcry_camellia.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +gcry_camellia.mod: pre-gcry_camellia.o mod-gcry_camellia.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(gcry_camellia_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-gcry_camellia.o mod-gcry_camellia.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-gcry_camellia.o: $(gcry_camellia_mod_DEPENDENCIES) gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.o gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.o + -rm -f $@ + $(TARGET_CC) $(gcry_camellia_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.o gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.o + +mod-gcry_camellia.o: mod-gcry_camellia.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_camellia_mod_CFLAGS) -DGRUB_FILE=\"mod-gcry_camellia.c\" -c -o $@ $< + +mod-gcry_camellia.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gcry_camellia' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-gcry_camellia.lst: pre-gcry_camellia.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gcry_camellia/' > $@ +else +def-gcry_camellia.lst: pre-gcry_camellia.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 gcry_camellia/' > $@ +endif + +und-gcry_camellia.lst: pre-gcry_camellia.o + echo 'gcry_camellia' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.o: lib/libgcrypt-grub/cipher/camellia-glue.c $(lib/libgcrypt-grub/cipher/camellia-glue.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_camellia_mod_CFLAGS) -DGRUB_FILE=\"lib/libgcrypt-grub/cipher/camellia-glue.c\" -MD -c -o $@ $< +-include gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.d + +clean-module-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue-extra.1: + rm -f cmd-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.lst fs-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.lst partmap-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.lst handler-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.lst parttool-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.lst video-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.lst terminal-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue-extra.1 + +COMMANDFILES += cmd-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.lst +FSFILES += fs-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.lst +PARTTOOLFILES += parttool-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.lst +PARTMAPFILES += partmap-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.lst +HANDLERFILES += handler-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.lst +TERMINALFILES += terminal-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.lst +VIDEOFILES += video-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.lst + +cmd-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.lst: lib/libgcrypt-grub/cipher/camellia-glue.c $(lib/libgcrypt-grub/cipher/camellia-glue.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_camellia_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gcry_camellia > $@ || (rm -f $@; exit 1) + +fs-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.lst: lib/libgcrypt-grub/cipher/camellia-glue.c $(lib/libgcrypt-grub/cipher/camellia-glue.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_camellia_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gcry_camellia > $@ || (rm -f $@; exit 1) + +parttool-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.lst: lib/libgcrypt-grub/cipher/camellia-glue.c $(lib/libgcrypt-grub/cipher/camellia-glue.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_camellia_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gcry_camellia > $@ || (rm -f $@; exit 1) + +partmap-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.lst: lib/libgcrypt-grub/cipher/camellia-glue.c $(lib/libgcrypt-grub/cipher/camellia-glue.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_camellia_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gcry_camellia > $@ || (rm -f $@; exit 1) + +handler-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.lst: lib/libgcrypt-grub/cipher/camellia-glue.c $(lib/libgcrypt-grub/cipher/camellia-glue.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_camellia_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gcry_camellia > $@ || (rm -f $@; exit 1) + +terminal-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.lst: lib/libgcrypt-grub/cipher/camellia-glue.c $(lib/libgcrypt-grub/cipher/camellia-glue.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_camellia_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gcry_camellia > $@ || (rm -f $@; exit 1) + +video-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia_glue.lst: lib/libgcrypt-grub/cipher/camellia-glue.c $(lib/libgcrypt-grub/cipher/camellia-glue.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_camellia_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gcry_camellia > $@ || (rm -f $@; exit 1) + +gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.o: lib/libgcrypt-grub/cipher/camellia.c $(lib/libgcrypt-grub/cipher/camellia.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_camellia_mod_CFLAGS) -DGRUB_FILE=\"lib/libgcrypt-grub/cipher/camellia.c\" -MD -c -o $@ $< +-include gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.d + +clean-module-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia-extra.1: + rm -f cmd-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.lst fs-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.lst partmap-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.lst handler-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.lst parttool-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.lst video-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.lst terminal-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia-extra.1 + +COMMANDFILES += cmd-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.lst +FSFILES += fs-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.lst +PARTTOOLFILES += parttool-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.lst +PARTMAPFILES += partmap-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.lst +HANDLERFILES += handler-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.lst +TERMINALFILES += terminal-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.lst +VIDEOFILES += video-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.lst + +cmd-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.lst: lib/libgcrypt-grub/cipher/camellia.c $(lib/libgcrypt-grub/cipher/camellia.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_camellia_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gcry_camellia > $@ || (rm -f $@; exit 1) + +fs-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.lst: lib/libgcrypt-grub/cipher/camellia.c $(lib/libgcrypt-grub/cipher/camellia.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_camellia_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gcry_camellia > $@ || (rm -f $@; exit 1) + +parttool-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.lst: lib/libgcrypt-grub/cipher/camellia.c $(lib/libgcrypt-grub/cipher/camellia.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_camellia_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gcry_camellia > $@ || (rm -f $@; exit 1) + +partmap-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.lst: lib/libgcrypt-grub/cipher/camellia.c $(lib/libgcrypt-grub/cipher/camellia.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_camellia_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gcry_camellia > $@ || (rm -f $@; exit 1) + +handler-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.lst: lib/libgcrypt-grub/cipher/camellia.c $(lib/libgcrypt-grub/cipher/camellia.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_camellia_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gcry_camellia > $@ || (rm -f $@; exit 1) + +terminal-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.lst: lib/libgcrypt-grub/cipher/camellia.c $(lib/libgcrypt-grub/cipher/camellia.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_camellia_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gcry_camellia > $@ || (rm -f $@; exit 1) + +video-gcry_camellia_mod-lib_libgcrypt_grub_cipher_camellia.lst: lib/libgcrypt-grub/cipher/camellia.c $(lib/libgcrypt-grub/cipher/camellia.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_camellia_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gcry_camellia > $@ || (rm -f $@; exit 1) + +gcry_camellia_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_camellia_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/rmd160.c +pkglib_MODULES += gcry_rmd160.mod +gcry_rmd160_mod_SOURCES = lib/libgcrypt-grub/cipher/rmd160.c + +clean-module-gcry_rmd160.mod.1: + rm -f gcry_rmd160.mod mod-gcry_rmd160.o mod-gcry_rmd160.c pre-gcry_rmd160.o gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.o und-gcry_rmd160.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_rmd160.mod.1 + +clean-module-gcry_rmd160.mod-symbol.1: + rm -f def-gcry_rmd160.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_rmd160.mod-symbol.1 +DEFSYMFILES += def-gcry_rmd160.lst +mostlyclean-module-gcry_rmd160.mod.1: + rm -f gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-gcry_rmd160.mod.1 +UNDSYMFILES += und-gcry_rmd160.lst + +ifeq ($(TARGET_NO_MODULES), yes) +gcry_rmd160.mod: pre-gcry_rmd160.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_rmd160_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_rmd160.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +gcry_rmd160.mod: pre-gcry_rmd160.o mod-gcry_rmd160.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_rmd160_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_rmd160.o mod-gcry_rmd160.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +gcry_rmd160.mod: pre-gcry_rmd160.o mod-gcry_rmd160.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(gcry_rmd160_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-gcry_rmd160.o mod-gcry_rmd160.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-gcry_rmd160.o: $(gcry_rmd160_mod_DEPENDENCIES) gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.o + -rm -f $@ + $(TARGET_CC) $(gcry_rmd160_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.o + +mod-gcry_rmd160.o: mod-gcry_rmd160.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_rmd160_mod_CFLAGS) -DGRUB_FILE=\"mod-gcry_rmd160.c\" -c -o $@ $< + +mod-gcry_rmd160.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gcry_rmd160' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-gcry_rmd160.lst: pre-gcry_rmd160.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gcry_rmd160/' > $@ +else +def-gcry_rmd160.lst: pre-gcry_rmd160.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 gcry_rmd160/' > $@ +endif + +und-gcry_rmd160.lst: pre-gcry_rmd160.o + echo 'gcry_rmd160' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.o: lib/libgcrypt-grub/cipher/rmd160.c $(lib/libgcrypt-grub/cipher/rmd160.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_rmd160_mod_CFLAGS) -DGRUB_FILE=\"lib/libgcrypt-grub/cipher/rmd160.c\" -MD -c -o $@ $< +-include gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.d + +clean-module-gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160-extra.1: + rm -f cmd-gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.lst fs-gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.lst partmap-gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.lst handler-gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.lst parttool-gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.lst video-gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.lst terminal-gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160-extra.1 + +COMMANDFILES += cmd-gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.lst +FSFILES += fs-gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.lst +PARTTOOLFILES += parttool-gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.lst +PARTMAPFILES += partmap-gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.lst +HANDLERFILES += handler-gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.lst +TERMINALFILES += terminal-gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.lst +VIDEOFILES += video-gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.lst + +cmd-gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.lst: lib/libgcrypt-grub/cipher/rmd160.c $(lib/libgcrypt-grub/cipher/rmd160.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_rmd160_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gcry_rmd160 > $@ || (rm -f $@; exit 1) + +fs-gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.lst: lib/libgcrypt-grub/cipher/rmd160.c $(lib/libgcrypt-grub/cipher/rmd160.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_rmd160_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gcry_rmd160 > $@ || (rm -f $@; exit 1) + +parttool-gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.lst: lib/libgcrypt-grub/cipher/rmd160.c $(lib/libgcrypt-grub/cipher/rmd160.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_rmd160_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gcry_rmd160 > $@ || (rm -f $@; exit 1) + +partmap-gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.lst: lib/libgcrypt-grub/cipher/rmd160.c $(lib/libgcrypt-grub/cipher/rmd160.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_rmd160_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gcry_rmd160 > $@ || (rm -f $@; exit 1) + +handler-gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.lst: lib/libgcrypt-grub/cipher/rmd160.c $(lib/libgcrypt-grub/cipher/rmd160.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_rmd160_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gcry_rmd160 > $@ || (rm -f $@; exit 1) + +terminal-gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.lst: lib/libgcrypt-grub/cipher/rmd160.c $(lib/libgcrypt-grub/cipher/rmd160.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_rmd160_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gcry_rmd160 > $@ || (rm -f $@; exit 1) + +video-gcry_rmd160_mod-lib_libgcrypt_grub_cipher_rmd160.lst: lib/libgcrypt-grub/cipher/rmd160.c $(lib/libgcrypt-grub/cipher/rmd160.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_rmd160_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gcry_rmd160 > $@ || (rm -f $@; exit 1) + +gcry_rmd160_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_rmd160_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/rfc2268.c +pkglib_MODULES += gcry_rfc2268.mod +gcry_rfc2268_mod_SOURCES = lib/libgcrypt-grub/cipher/rfc2268.c + +clean-module-gcry_rfc2268.mod.1: + rm -f gcry_rfc2268.mod mod-gcry_rfc2268.o mod-gcry_rfc2268.c pre-gcry_rfc2268.o gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.o und-gcry_rfc2268.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_rfc2268.mod.1 + +clean-module-gcry_rfc2268.mod-symbol.1: + rm -f def-gcry_rfc2268.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_rfc2268.mod-symbol.1 +DEFSYMFILES += def-gcry_rfc2268.lst +mostlyclean-module-gcry_rfc2268.mod.1: + rm -f gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-gcry_rfc2268.mod.1 +UNDSYMFILES += und-gcry_rfc2268.lst + +ifeq ($(TARGET_NO_MODULES), yes) +gcry_rfc2268.mod: pre-gcry_rfc2268.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_rfc2268_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_rfc2268.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +gcry_rfc2268.mod: pre-gcry_rfc2268.o mod-gcry_rfc2268.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(gcry_rfc2268_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-gcry_rfc2268.o mod-gcry_rfc2268.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +gcry_rfc2268.mod: pre-gcry_rfc2268.o mod-gcry_rfc2268.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(gcry_rfc2268_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-gcry_rfc2268.o mod-gcry_rfc2268.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-gcry_rfc2268.o: $(gcry_rfc2268_mod_DEPENDENCIES) gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.o + -rm -f $@ + $(TARGET_CC) $(gcry_rfc2268_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.o + +mod-gcry_rfc2268.o: mod-gcry_rfc2268.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_rfc2268_mod_CFLAGS) -DGRUB_FILE=\"mod-gcry_rfc2268.c\" -c -o $@ $< + +mod-gcry_rfc2268.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'gcry_rfc2268' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-gcry_rfc2268.lst: pre-gcry_rfc2268.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 gcry_rfc2268/' > $@ +else +def-gcry_rfc2268.lst: pre-gcry_rfc2268.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 gcry_rfc2268/' > $@ +endif + +und-gcry_rfc2268.lst: pre-gcry_rfc2268.o + echo 'gcry_rfc2268' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.o: lib/libgcrypt-grub/cipher/rfc2268.c $(lib/libgcrypt-grub/cipher/rfc2268.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_rfc2268_mod_CFLAGS) -DGRUB_FILE=\"lib/libgcrypt-grub/cipher/rfc2268.c\" -MD -c -o $@ $< +-include gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.d + +clean-module-gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268-extra.1: + rm -f cmd-gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.lst fs-gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.lst partmap-gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.lst handler-gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.lst parttool-gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.lst video-gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.lst terminal-gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.lst + +CLEAN_MODULE_TARGETS += clean-module-gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268-extra.1 + +COMMANDFILES += cmd-gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.lst +FSFILES += fs-gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.lst +PARTTOOLFILES += parttool-gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.lst +PARTMAPFILES += partmap-gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.lst +HANDLERFILES += handler-gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.lst +TERMINALFILES += terminal-gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.lst +VIDEOFILES += video-gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.lst + +cmd-gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.lst: lib/libgcrypt-grub/cipher/rfc2268.c $(lib/libgcrypt-grub/cipher/rfc2268.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_rfc2268_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh gcry_rfc2268 > $@ || (rm -f $@; exit 1) + +fs-gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.lst: lib/libgcrypt-grub/cipher/rfc2268.c $(lib/libgcrypt-grub/cipher/rfc2268.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_rfc2268_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh gcry_rfc2268 > $@ || (rm -f $@; exit 1) + +parttool-gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.lst: lib/libgcrypt-grub/cipher/rfc2268.c $(lib/libgcrypt-grub/cipher/rfc2268.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_rfc2268_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh gcry_rfc2268 > $@ || (rm -f $@; exit 1) + +partmap-gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.lst: lib/libgcrypt-grub/cipher/rfc2268.c $(lib/libgcrypt-grub/cipher/rfc2268.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_rfc2268_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh gcry_rfc2268 > $@ || (rm -f $@; exit 1) + +handler-gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.lst: lib/libgcrypt-grub/cipher/rfc2268.c $(lib/libgcrypt-grub/cipher/rfc2268.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_rfc2268_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh gcry_rfc2268 > $@ || (rm -f $@; exit 1) + +terminal-gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.lst: lib/libgcrypt-grub/cipher/rfc2268.c $(lib/libgcrypt-grub/cipher/rfc2268.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(gcry_rfc2268_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh gcry_rfc2268 > $@ || (rm -f $@; exit 1) + +video-gcry_rfc2268_mod-lib_libgcrypt_grub_cipher_rfc2268.lst: lib/libgcrypt-grub/cipher/rfc2268.c $(lib/libgcrypt-grub/cipher/rfc2268.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/libgcrypt-grub/cipher -I$(srcdir)/lib/libgcrypt-grub/cipher $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(gcry_rfc2268_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh gcry_rfc2268 > $@ || (rm -f $@; exit 1) + +gcry_rfc2268_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-missing-field-initializers -Wno-error -I$(srcdir)/lib/libgcrypt_wrap +gcry_rfc2268_mod_LDFLAGS = $(COMMON_LDFLAGS) + +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/rijndael-tables.h +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/bithelp.h +MAINTAINER_CLEANFILES += $(srcdir)/lib/libgcrypt-grub/cipher/primegen.c --- grub2-1.98+20100804.orig/conf/x86-efi.mk +++ grub2-1.98+20100804/conf/x86-efi.mk @@ -0,0 +1,2018 @@ +# -*- makefile -*- +# Generated by genmk.rb, please don't edit! + +# Scripts. +sbin_SCRIPTS = grub-install + +# For grub-install. +grub_install_SOURCES = util/i386/efi/grub-install.in +CLEANFILES += grub-install + +grub-install: util/i386/efi/grub-install.in $(util/i386/efi/grub-install.in_DEPENDENCIES) config.status + ./config.status --file=-:util/i386/efi/grub-install.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +bin_SCRIPTS += grub-mkrescue +grub_mkrescue_SOURCES = util/grub-mkrescue.in +CLEANFILES += grub-mkrescue + +grub-mkrescue: util/grub-mkrescue.in $(util/grub-mkrescue.in_DEPENDENCIES) config.status + ./config.status --file=-:util/grub-mkrescue.in | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ + chmod +x $@ + + +# Modules. +pkglib_PROGRAMS = kernel.img +pkglib_MODULES = chain.mod appleldr.mod \ + linux.mod halt.mod \ + datetime.mod loadbios.mod \ + fixvideo.mod mmap.mod acpi.mod + +# For kernel.img. +kernel_img_RELOCATABLE = yes +kernel_img_SOURCES = kern/$(target_cpu)/efi/startup.S kern/main.c kern/device.c \ + kern/disk.c kern/dl.c kern/file.c kern/fs.c kern/err.c \ + kern/misc.c kern/mm.c kern/term.c \ + kern/rescue_parser.c kern/rescue_reader.c \ + kern/$(target_cpu)/dl.c kern/i386/efi/init.c kern/parser.c kern/partition.c \ + kern/env.c symlist.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c \ + term/efi/console.c disk/efi/efidisk.c \ + kern/time.c kern/list.c kern/command.c kern/corecmd.c \ + kern/i386/tsc.c kern/i386/pit.c \ + kern/generic/rtc_get_time_ms.c \ + kern/generic/millisleep.c +MOSTLYCLEANFILES += kernel_img-kern___target_cpu__efi_startup.d kernel_img-kern_main.d kernel_img-kern_device.d kernel_img-kern_disk.d kernel_img-kern_dl.d kernel_img-kern_file.d kernel_img-kern_fs.d kernel_img-kern_err.d kernel_img-kern_misc.d kernel_img-kern_mm.d kernel_img-kern_term.d kernel_img-kern_rescue_parser.d kernel_img-kern_rescue_reader.d kernel_img-kern___target_cpu__dl.d kernel_img-kern_i386_efi_init.d kernel_img-kern_parser.d kernel_img-kern_partition.d kernel_img-kern_env.d kernel_img-symlist.d kernel_img-kern_efi_efi.d kernel_img-kern_efi_init.d kernel_img-kern_efi_mm.d kernel_img-term_efi_console.d kernel_img-disk_efi_efidisk.d kernel_img-kern_time.d kernel_img-kern_list.d kernel_img-kern_command.d kernel_img-kern_corecmd.d kernel_img-kern_i386_tsc.d kernel_img-kern_i386_pit.d kernel_img-kern_generic_rtc_get_time_ms.d kernel_img-kern_generic_millisleep.d + +kernel_img-kern___target_cpu__efi_startup.o: kern/$(target_cpu)/efi/startup.S $(kern/$(target_cpu)/efi/startup.S_DEPENDENCIES) + $(TARGET_CC) -Ikern/$(target_cpu)/efi -I$(srcdir)/kern/$(target_cpu)/efi $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(kernel_img_ASFLAGS) -DGRUB_FILE=\"kern/$(target_cpu)/efi/startup.S\" -MD -c -o $@ $< + +-include kernel_img-kern___target_cpu__efi_startup.d + +kernel_img_OBJECTS += kernel_img-kern___target_cpu__efi_startup.o +kernel_img-kern_main.o: kern/main.c $(kern/main.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/main.c\" -MD -c -o $@ $< + +-include kernel_img-kern_main.d + +kernel_img_OBJECTS += kernel_img-kern_main.o +kernel_img-kern_device.o: kern/device.c $(kern/device.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/device.c\" -MD -c -o $@ $< + +-include kernel_img-kern_device.d + +kernel_img_OBJECTS += kernel_img-kern_device.o +kernel_img-kern_disk.o: kern/disk.c $(kern/disk.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/disk.c\" -MD -c -o $@ $< + +-include kernel_img-kern_disk.d + +kernel_img_OBJECTS += kernel_img-kern_disk.o +kernel_img-kern_dl.o: kern/dl.c $(kern/dl.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/dl.c\" -MD -c -o $@ $< + +-include kernel_img-kern_dl.d + +kernel_img_OBJECTS += kernel_img-kern_dl.o +kernel_img-kern_file.o: kern/file.c $(kern/file.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/file.c\" -MD -c -o $@ $< + +-include kernel_img-kern_file.d + +kernel_img_OBJECTS += kernel_img-kern_file.o +kernel_img-kern_fs.o: kern/fs.c $(kern/fs.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/fs.c\" -MD -c -o $@ $< + +-include kernel_img-kern_fs.d + +kernel_img_OBJECTS += kernel_img-kern_fs.o +kernel_img-kern_err.o: kern/err.c $(kern/err.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/err.c\" -MD -c -o $@ $< + +-include kernel_img-kern_err.d + +kernel_img_OBJECTS += kernel_img-kern_err.o +kernel_img-kern_misc.o: kern/misc.c $(kern/misc.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/misc.c\" -MD -c -o $@ $< + +-include kernel_img-kern_misc.d + +kernel_img_OBJECTS += kernel_img-kern_misc.o +kernel_img-kern_mm.o: kern/mm.c $(kern/mm.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/mm.c\" -MD -c -o $@ $< + +-include kernel_img-kern_mm.d + +kernel_img_OBJECTS += kernel_img-kern_mm.o +kernel_img-kern_term.o: kern/term.c $(kern/term.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/term.c\" -MD -c -o $@ $< + +-include kernel_img-kern_term.d + +kernel_img_OBJECTS += kernel_img-kern_term.o +kernel_img-kern_rescue_parser.o: kern/rescue_parser.c $(kern/rescue_parser.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/rescue_parser.c\" -MD -c -o $@ $< + +-include kernel_img-kern_rescue_parser.d + +kernel_img_OBJECTS += kernel_img-kern_rescue_parser.o +kernel_img-kern_rescue_reader.o: kern/rescue_reader.c $(kern/rescue_reader.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/rescue_reader.c\" -MD -c -o $@ $< + +-include kernel_img-kern_rescue_reader.d + +kernel_img_OBJECTS += kernel_img-kern_rescue_reader.o +kernel_img-kern___target_cpu__dl.o: kern/$(target_cpu)/dl.c $(kern/$(target_cpu)/dl.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/$(target_cpu) -I$(srcdir)/kern/$(target_cpu) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/$(target_cpu)/dl.c\" -MD -c -o $@ $< + +-include kernel_img-kern___target_cpu__dl.d + +kernel_img_OBJECTS += kernel_img-kern___target_cpu__dl.o +kernel_img-kern_i386_efi_init.o: kern/i386/efi/init.c $(kern/i386/efi/init.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386/efi -I$(srcdir)/kern/i386/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/i386/efi/init.c\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_efi_init.d + +kernel_img_OBJECTS += kernel_img-kern_i386_efi_init.o +kernel_img-kern_parser.o: kern/parser.c $(kern/parser.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/parser.c\" -MD -c -o $@ $< + +-include kernel_img-kern_parser.d + +kernel_img_OBJECTS += kernel_img-kern_parser.o +kernel_img-kern_partition.o: kern/partition.c $(kern/partition.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/partition.c\" -MD -c -o $@ $< + +-include kernel_img-kern_partition.d + +kernel_img_OBJECTS += kernel_img-kern_partition.o +kernel_img-kern_env.o: kern/env.c $(kern/env.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/env.c\" -MD -c -o $@ $< + +-include kernel_img-kern_env.d + +kernel_img_OBJECTS += kernel_img-kern_env.o +kernel_img-symlist.o: symlist.c $(symlist.c_DEPENDENCIES) + $(TARGET_CC) -I. -I$(srcdir)/. $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"symlist.c\" -MD -c -o $@ $< + +-include kernel_img-symlist.d + +kernel_img_OBJECTS += kernel_img-symlist.o +kernel_img-kern_efi_efi.o: kern/efi/efi.c $(kern/efi/efi.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/efi -I$(srcdir)/kern/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/efi/efi.c\" -MD -c -o $@ $< + +-include kernel_img-kern_efi_efi.d + +kernel_img_OBJECTS += kernel_img-kern_efi_efi.o +kernel_img-kern_efi_init.o: kern/efi/init.c $(kern/efi/init.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/efi -I$(srcdir)/kern/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/efi/init.c\" -MD -c -o $@ $< + +-include kernel_img-kern_efi_init.d + +kernel_img_OBJECTS += kernel_img-kern_efi_init.o +kernel_img-kern_efi_mm.o: kern/efi/mm.c $(kern/efi/mm.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/efi -I$(srcdir)/kern/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/efi/mm.c\" -MD -c -o $@ $< + +-include kernel_img-kern_efi_mm.d + +kernel_img_OBJECTS += kernel_img-kern_efi_mm.o +kernel_img-term_efi_console.o: term/efi/console.c $(term/efi/console.c_DEPENDENCIES) + $(TARGET_CC) -Iterm/efi -I$(srcdir)/term/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"term/efi/console.c\" -MD -c -o $@ $< + +-include kernel_img-term_efi_console.d + +kernel_img_OBJECTS += kernel_img-term_efi_console.o +kernel_img-disk_efi_efidisk.o: disk/efi/efidisk.c $(disk/efi/efidisk.c_DEPENDENCIES) + $(TARGET_CC) -Idisk/efi -I$(srcdir)/disk/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"disk/efi/efidisk.c\" -MD -c -o $@ $< + +-include kernel_img-disk_efi_efidisk.d + +kernel_img_OBJECTS += kernel_img-disk_efi_efidisk.o +kernel_img-kern_time.o: kern/time.c $(kern/time.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/time.c\" -MD -c -o $@ $< + +-include kernel_img-kern_time.d + +kernel_img_OBJECTS += kernel_img-kern_time.o +kernel_img-kern_list.o: kern/list.c $(kern/list.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/list.c\" -MD -c -o $@ $< + +-include kernel_img-kern_list.d + +kernel_img_OBJECTS += kernel_img-kern_list.o +kernel_img-kern_command.o: kern/command.c $(kern/command.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/command.c\" -MD -c -o $@ $< + +-include kernel_img-kern_command.d + +kernel_img_OBJECTS += kernel_img-kern_command.o +kernel_img-kern_corecmd.o: kern/corecmd.c $(kern/corecmd.c_DEPENDENCIES) + $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/corecmd.c\" -MD -c -o $@ $< + +-include kernel_img-kern_corecmd.d + +kernel_img_OBJECTS += kernel_img-kern_corecmd.o +kernel_img-kern_i386_tsc.o: kern/i386/tsc.c $(kern/i386/tsc.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/i386/tsc.c\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_tsc.d + +kernel_img_OBJECTS += kernel_img-kern_i386_tsc.o +kernel_img-kern_i386_pit.o: kern/i386/pit.c $(kern/i386/pit.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/i386/pit.c\" -MD -c -o $@ $< + +-include kernel_img-kern_i386_pit.d + +kernel_img_OBJECTS += kernel_img-kern_i386_pit.o +kernel_img-kern_generic_rtc_get_time_ms.o: kern/generic/rtc_get_time_ms.c $(kern/generic/rtc_get_time_ms.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/generic -I$(srcdir)/kern/generic $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/generic/rtc_get_time_ms.c\" -MD -c -o $@ $< + +-include kernel_img-kern_generic_rtc_get_time_ms.d + +kernel_img_OBJECTS += kernel_img-kern_generic_rtc_get_time_ms.o +kernel_img-kern_generic_millisleep.o: kern/generic/millisleep.c $(kern/generic/millisleep.c_DEPENDENCIES) + $(TARGET_CC) -Ikern/generic -I$(srcdir)/kern/generic $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -DGRUB_FILE=\"kern/generic/millisleep.c\" -MD -c -o $@ $< + +-include kernel_img-kern_generic_millisleep.d + +kernel_img_OBJECTS += kernel_img-kern_generic_millisleep.o +ifeq ($(target_cpu),x86_64) +kernel_img_SOURCES += kern/x86_64/efi/callwrap.S +MOSTLYCLEANFILES += kernel_img-kern_x86_64_efi_callwrap.d + +kernel_img-kern_x86_64_efi_callwrap.o: kern/x86_64/efi/callwrap.S $(kern/x86_64/efi/callwrap.S_DEPENDENCIES) + $(TARGET_CC) -Ikern/x86_64/efi -I$(srcdir)/kern/x86_64/efi $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(kernel_img_ASFLAGS) -DGRUB_FILE=\"kern/x86_64/efi/callwrap.S\" -MD -c -o $@ $< + +-include kernel_img-kern_x86_64_efi_callwrap.d + +kernel_img_OBJECTS += kernel_img-kern_x86_64_efi_callwrap.o +endif +kernel_img_HEADERS += efi/efi.h efi/time.h efi/disk.h i386/pit.h +kernel_img_CFLAGS = $(COMMON_CFLAGS) +kernel_img_ASFLAGS = $(COMMON_ASFLAGS) +kernel_img_LDFLAGS += $(COMMON_LDFLAGS) + +# For acpi.mod. +acpi_mod_SOURCES = commands/acpi.c commands/efi/acpi.c + +clean-module-acpi.mod.1: + rm -f acpi.mod mod-acpi.o mod-acpi.c pre-acpi.o acpi_mod-commands_acpi.o acpi_mod-commands_efi_acpi.o und-acpi.lst + +CLEAN_MODULE_TARGETS += clean-module-acpi.mod.1 + +clean-module-acpi.mod-symbol.1: + rm -f def-acpi.lst + +CLEAN_MODULE_TARGETS += clean-module-acpi.mod-symbol.1 +DEFSYMFILES += def-acpi.lst +mostlyclean-module-acpi.mod.1: + rm -f acpi_mod-commands_acpi.d acpi_mod-commands_efi_acpi.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-acpi.mod.1 +UNDSYMFILES += und-acpi.lst + +ifeq ($(TARGET_NO_MODULES), yes) +acpi.mod: pre-acpi.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(acpi_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-acpi.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +acpi.mod: pre-acpi.o mod-acpi.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(acpi_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-acpi.o mod-acpi.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +acpi.mod: pre-acpi.o mod-acpi.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(acpi_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-acpi.o mod-acpi.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-acpi.o: $(acpi_mod_DEPENDENCIES) acpi_mod-commands_acpi.o acpi_mod-commands_efi_acpi.o + -rm -f $@ + $(TARGET_CC) $(acpi_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ acpi_mod-commands_acpi.o acpi_mod-commands_efi_acpi.o + +mod-acpi.o: mod-acpi.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -DGRUB_FILE=\"mod-acpi.c\" -c -o $@ $< + +mod-acpi.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'acpi' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-acpi.lst: pre-acpi.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 acpi/' > $@ +else +def-acpi.lst: pre-acpi.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 acpi/' > $@ +endif + +und-acpi.lst: pre-acpi.o + echo 'acpi' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +acpi_mod-commands_acpi.o: commands/acpi.c $(commands/acpi.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -DGRUB_FILE=\"commands/acpi.c\" -MD -c -o $@ $< +-include acpi_mod-commands_acpi.d + +clean-module-acpi_mod-commands_acpi-extra.1: + rm -f cmd-acpi_mod-commands_acpi.lst fs-acpi_mod-commands_acpi.lst partmap-acpi_mod-commands_acpi.lst handler-acpi_mod-commands_acpi.lst parttool-acpi_mod-commands_acpi.lst video-acpi_mod-commands_acpi.lst terminal-acpi_mod-commands_acpi.lst + +CLEAN_MODULE_TARGETS += clean-module-acpi_mod-commands_acpi-extra.1 + +COMMANDFILES += cmd-acpi_mod-commands_acpi.lst +FSFILES += fs-acpi_mod-commands_acpi.lst +PARTTOOLFILES += parttool-acpi_mod-commands_acpi.lst +PARTMAPFILES += partmap-acpi_mod-commands_acpi.lst +HANDLERFILES += handler-acpi_mod-commands_acpi.lst +TERMINALFILES += terminal-acpi_mod-commands_acpi.lst +VIDEOFILES += video-acpi_mod-commands_acpi.lst + +cmd-acpi_mod-commands_acpi.lst: commands/acpi.c $(commands/acpi.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh acpi > $@ || (rm -f $@; exit 1) + +fs-acpi_mod-commands_acpi.lst: commands/acpi.c $(commands/acpi.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh acpi > $@ || (rm -f $@; exit 1) + +parttool-acpi_mod-commands_acpi.lst: commands/acpi.c $(commands/acpi.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh acpi > $@ || (rm -f $@; exit 1) + +partmap-acpi_mod-commands_acpi.lst: commands/acpi.c $(commands/acpi.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh acpi > $@ || (rm -f $@; exit 1) + +handler-acpi_mod-commands_acpi.lst: commands/acpi.c $(commands/acpi.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh acpi > $@ || (rm -f $@; exit 1) + +terminal-acpi_mod-commands_acpi.lst: commands/acpi.c $(commands/acpi.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh acpi > $@ || (rm -f $@; exit 1) + +video-acpi_mod-commands_acpi.lst: commands/acpi.c $(commands/acpi.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh acpi > $@ || (rm -f $@; exit 1) + +acpi_mod-commands_efi_acpi.o: commands/efi/acpi.c $(commands/efi/acpi.c_DEPENDENCIES) + $(TARGET_CC) -Icommands/efi -I$(srcdir)/commands/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -DGRUB_FILE=\"commands/efi/acpi.c\" -MD -c -o $@ $< +-include acpi_mod-commands_efi_acpi.d + +clean-module-acpi_mod-commands_efi_acpi-extra.1: + rm -f cmd-acpi_mod-commands_efi_acpi.lst fs-acpi_mod-commands_efi_acpi.lst partmap-acpi_mod-commands_efi_acpi.lst handler-acpi_mod-commands_efi_acpi.lst parttool-acpi_mod-commands_efi_acpi.lst video-acpi_mod-commands_efi_acpi.lst terminal-acpi_mod-commands_efi_acpi.lst + +CLEAN_MODULE_TARGETS += clean-module-acpi_mod-commands_efi_acpi-extra.1 + +COMMANDFILES += cmd-acpi_mod-commands_efi_acpi.lst +FSFILES += fs-acpi_mod-commands_efi_acpi.lst +PARTTOOLFILES += parttool-acpi_mod-commands_efi_acpi.lst +PARTMAPFILES += partmap-acpi_mod-commands_efi_acpi.lst +HANDLERFILES += handler-acpi_mod-commands_efi_acpi.lst +TERMINALFILES += terminal-acpi_mod-commands_efi_acpi.lst +VIDEOFILES += video-acpi_mod-commands_efi_acpi.lst + +cmd-acpi_mod-commands_efi_acpi.lst: commands/efi/acpi.c $(commands/efi/acpi.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands/efi -I$(srcdir)/commands/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh acpi > $@ || (rm -f $@; exit 1) + +fs-acpi_mod-commands_efi_acpi.lst: commands/efi/acpi.c $(commands/efi/acpi.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands/efi -I$(srcdir)/commands/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh acpi > $@ || (rm -f $@; exit 1) + +parttool-acpi_mod-commands_efi_acpi.lst: commands/efi/acpi.c $(commands/efi/acpi.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands/efi -I$(srcdir)/commands/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh acpi > $@ || (rm -f $@; exit 1) + +partmap-acpi_mod-commands_efi_acpi.lst: commands/efi/acpi.c $(commands/efi/acpi.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands/efi -I$(srcdir)/commands/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh acpi > $@ || (rm -f $@; exit 1) + +handler-acpi_mod-commands_efi_acpi.lst: commands/efi/acpi.c $(commands/efi/acpi.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands/efi -I$(srcdir)/commands/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh acpi > $@ || (rm -f $@; exit 1) + +terminal-acpi_mod-commands_efi_acpi.lst: commands/efi/acpi.c $(commands/efi/acpi.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands/efi -I$(srcdir)/commands/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh acpi > $@ || (rm -f $@; exit 1) + +video-acpi_mod-commands_efi_acpi.lst: commands/efi/acpi.c $(commands/efi/acpi.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands/efi -I$(srcdir)/commands/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(acpi_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh acpi > $@ || (rm -f $@; exit 1) + +acpi_mod_CFLAGS = $(COMMON_CFLAGS) +acpi_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For mmap.mod. +mmap_mod_SOURCES = mmap/mmap.c mmap/i386/uppermem.c mmap/i386/mmap.c \ + mmap/efi/mmap.c + +clean-module-mmap.mod.1: + rm -f mmap.mod mod-mmap.o mod-mmap.c pre-mmap.o mmap_mod-mmap_mmap.o mmap_mod-mmap_i386_uppermem.o mmap_mod-mmap_i386_mmap.o mmap_mod-mmap_efi_mmap.o und-mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap.mod.1 + +clean-module-mmap.mod-symbol.1: + rm -f def-mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap.mod-symbol.1 +DEFSYMFILES += def-mmap.lst +mostlyclean-module-mmap.mod.1: + rm -f mmap_mod-mmap_mmap.d mmap_mod-mmap_i386_uppermem.d mmap_mod-mmap_i386_mmap.d mmap_mod-mmap_efi_mmap.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-mmap.mod.1 +UNDSYMFILES += und-mmap.lst + +ifeq ($(TARGET_NO_MODULES), yes) +mmap.mod: pre-mmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-mmap.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +mmap.mod: pre-mmap.o mod-mmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-mmap.o mod-mmap.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +mmap.mod: pre-mmap.o mod-mmap.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-mmap.o mod-mmap.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-mmap.o: $(mmap_mod_DEPENDENCIES) mmap_mod-mmap_mmap.o mmap_mod-mmap_i386_uppermem.o mmap_mod-mmap_i386_mmap.o mmap_mod-mmap_efi_mmap.o + -rm -f $@ + $(TARGET_CC) $(mmap_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ mmap_mod-mmap_mmap.o mmap_mod-mmap_i386_uppermem.o mmap_mod-mmap_i386_mmap.o mmap_mod-mmap_efi_mmap.o + +mod-mmap.o: mod-mmap.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mod-mmap.c\" -c -o $@ $< + +mod-mmap.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'mmap' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-mmap.lst: pre-mmap.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 mmap/' > $@ +else +def-mmap.lst: pre-mmap.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 mmap/' > $@ +endif + +und-mmap.lst: pre-mmap.o + echo 'mmap' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +mmap_mod-mmap_mmap.o: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) + $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mmap/mmap.c\" -MD -c -o $@ $< +-include mmap_mod-mmap_mmap.d + +clean-module-mmap_mod-mmap_mmap-extra.1: + rm -f cmd-mmap_mod-mmap_mmap.lst fs-mmap_mod-mmap_mmap.lst partmap-mmap_mod-mmap_mmap.lst handler-mmap_mod-mmap_mmap.lst parttool-mmap_mod-mmap_mmap.lst video-mmap_mod-mmap_mmap.lst terminal-mmap_mod-mmap_mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap_mod-mmap_mmap-extra.1 + +COMMANDFILES += cmd-mmap_mod-mmap_mmap.lst +FSFILES += fs-mmap_mod-mmap_mmap.lst +PARTTOOLFILES += parttool-mmap_mod-mmap_mmap.lst +PARTMAPFILES += partmap-mmap_mod-mmap_mmap.lst +HANDLERFILES += handler-mmap_mod-mmap_mmap.lst +TERMINALFILES += terminal-mmap_mod-mmap_mmap.lst +VIDEOFILES += video-mmap_mod-mmap_mmap.lst + +cmd-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh mmap > $@ || (rm -f $@; exit 1) + +fs-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh mmap > $@ || (rm -f $@; exit 1) + +parttool-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh mmap > $@ || (rm -f $@; exit 1) + +partmap-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh mmap > $@ || (rm -f $@; exit 1) + +handler-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh mmap > $@ || (rm -f $@; exit 1) + +terminal-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh mmap > $@ || (rm -f $@; exit 1) + +video-mmap_mod-mmap_mmap.lst: mmap/mmap.c $(mmap/mmap.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Immap -I$(srcdir)/mmap $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh mmap > $@ || (rm -f $@; exit 1) + +mmap_mod-mmap_i386_uppermem.o: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) + $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mmap/i386/uppermem.c\" -MD -c -o $@ $< +-include mmap_mod-mmap_i386_uppermem.d + +clean-module-mmap_mod-mmap_i386_uppermem-extra.1: + rm -f cmd-mmap_mod-mmap_i386_uppermem.lst fs-mmap_mod-mmap_i386_uppermem.lst partmap-mmap_mod-mmap_i386_uppermem.lst handler-mmap_mod-mmap_i386_uppermem.lst parttool-mmap_mod-mmap_i386_uppermem.lst video-mmap_mod-mmap_i386_uppermem.lst terminal-mmap_mod-mmap_i386_uppermem.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap_mod-mmap_i386_uppermem-extra.1 + +COMMANDFILES += cmd-mmap_mod-mmap_i386_uppermem.lst +FSFILES += fs-mmap_mod-mmap_i386_uppermem.lst +PARTTOOLFILES += parttool-mmap_mod-mmap_i386_uppermem.lst +PARTMAPFILES += partmap-mmap_mod-mmap_i386_uppermem.lst +HANDLERFILES += handler-mmap_mod-mmap_i386_uppermem.lst +TERMINALFILES += terminal-mmap_mod-mmap_i386_uppermem.lst +VIDEOFILES += video-mmap_mod-mmap_i386_uppermem.lst + +cmd-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh mmap > $@ || (rm -f $@; exit 1) + +fs-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh mmap > $@ || (rm -f $@; exit 1) + +parttool-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh mmap > $@ || (rm -f $@; exit 1) + +partmap-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh mmap > $@ || (rm -f $@; exit 1) + +handler-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh mmap > $@ || (rm -f $@; exit 1) + +terminal-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh mmap > $@ || (rm -f $@; exit 1) + +video-mmap_mod-mmap_i386_uppermem.lst: mmap/i386/uppermem.c $(mmap/i386/uppermem.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh mmap > $@ || (rm -f $@; exit 1) + +mmap_mod-mmap_i386_mmap.o: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) + $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mmap/i386/mmap.c\" -MD -c -o $@ $< +-include mmap_mod-mmap_i386_mmap.d + +clean-module-mmap_mod-mmap_i386_mmap-extra.1: + rm -f cmd-mmap_mod-mmap_i386_mmap.lst fs-mmap_mod-mmap_i386_mmap.lst partmap-mmap_mod-mmap_i386_mmap.lst handler-mmap_mod-mmap_i386_mmap.lst parttool-mmap_mod-mmap_i386_mmap.lst video-mmap_mod-mmap_i386_mmap.lst terminal-mmap_mod-mmap_i386_mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap_mod-mmap_i386_mmap-extra.1 + +COMMANDFILES += cmd-mmap_mod-mmap_i386_mmap.lst +FSFILES += fs-mmap_mod-mmap_i386_mmap.lst +PARTTOOLFILES += parttool-mmap_mod-mmap_i386_mmap.lst +PARTMAPFILES += partmap-mmap_mod-mmap_i386_mmap.lst +HANDLERFILES += handler-mmap_mod-mmap_i386_mmap.lst +TERMINALFILES += terminal-mmap_mod-mmap_i386_mmap.lst +VIDEOFILES += video-mmap_mod-mmap_i386_mmap.lst + +cmd-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh mmap > $@ || (rm -f $@; exit 1) + +fs-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh mmap > $@ || (rm -f $@; exit 1) + +parttool-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh mmap > $@ || (rm -f $@; exit 1) + +partmap-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh mmap > $@ || (rm -f $@; exit 1) + +handler-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh mmap > $@ || (rm -f $@; exit 1) + +terminal-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh mmap > $@ || (rm -f $@; exit 1) + +video-mmap_mod-mmap_i386_mmap.lst: mmap/i386/mmap.c $(mmap/i386/mmap.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Immap/i386 -I$(srcdir)/mmap/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh mmap > $@ || (rm -f $@; exit 1) + +mmap_mod-mmap_efi_mmap.o: mmap/efi/mmap.c $(mmap/efi/mmap.c_DEPENDENCIES) + $(TARGET_CC) -Immap/efi -I$(srcdir)/mmap/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -DGRUB_FILE=\"mmap/efi/mmap.c\" -MD -c -o $@ $< +-include mmap_mod-mmap_efi_mmap.d + +clean-module-mmap_mod-mmap_efi_mmap-extra.1: + rm -f cmd-mmap_mod-mmap_efi_mmap.lst fs-mmap_mod-mmap_efi_mmap.lst partmap-mmap_mod-mmap_efi_mmap.lst handler-mmap_mod-mmap_efi_mmap.lst parttool-mmap_mod-mmap_efi_mmap.lst video-mmap_mod-mmap_efi_mmap.lst terminal-mmap_mod-mmap_efi_mmap.lst + +CLEAN_MODULE_TARGETS += clean-module-mmap_mod-mmap_efi_mmap-extra.1 + +COMMANDFILES += cmd-mmap_mod-mmap_efi_mmap.lst +FSFILES += fs-mmap_mod-mmap_efi_mmap.lst +PARTTOOLFILES += parttool-mmap_mod-mmap_efi_mmap.lst +PARTMAPFILES += partmap-mmap_mod-mmap_efi_mmap.lst +HANDLERFILES += handler-mmap_mod-mmap_efi_mmap.lst +TERMINALFILES += terminal-mmap_mod-mmap_efi_mmap.lst +VIDEOFILES += video-mmap_mod-mmap_efi_mmap.lst + +cmd-mmap_mod-mmap_efi_mmap.lst: mmap/efi/mmap.c $(mmap/efi/mmap.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Immap/efi -I$(srcdir)/mmap/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh mmap > $@ || (rm -f $@; exit 1) + +fs-mmap_mod-mmap_efi_mmap.lst: mmap/efi/mmap.c $(mmap/efi/mmap.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Immap/efi -I$(srcdir)/mmap/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh mmap > $@ || (rm -f $@; exit 1) + +parttool-mmap_mod-mmap_efi_mmap.lst: mmap/efi/mmap.c $(mmap/efi/mmap.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Immap/efi -I$(srcdir)/mmap/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh mmap > $@ || (rm -f $@; exit 1) + +partmap-mmap_mod-mmap_efi_mmap.lst: mmap/efi/mmap.c $(mmap/efi/mmap.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Immap/efi -I$(srcdir)/mmap/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh mmap > $@ || (rm -f $@; exit 1) + +handler-mmap_mod-mmap_efi_mmap.lst: mmap/efi/mmap.c $(mmap/efi/mmap.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Immap/efi -I$(srcdir)/mmap/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh mmap > $@ || (rm -f $@; exit 1) + +terminal-mmap_mod-mmap_efi_mmap.lst: mmap/efi/mmap.c $(mmap/efi/mmap.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Immap/efi -I$(srcdir)/mmap/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh mmap > $@ || (rm -f $@; exit 1) + +video-mmap_mod-mmap_efi_mmap.lst: mmap/efi/mmap.c $(mmap/efi/mmap.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Immap/efi -I$(srcdir)/mmap/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(mmap_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh mmap > $@ || (rm -f $@; exit 1) + +mmap_mod_CFLAGS = $(COMMON_CFLAGS) +mmap_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For chain.mod. +chain_mod_SOURCES = loader/efi/chainloader.c + +clean-module-chain.mod.1: + rm -f chain.mod mod-chain.o mod-chain.c pre-chain.o chain_mod-loader_efi_chainloader.o und-chain.lst + +CLEAN_MODULE_TARGETS += clean-module-chain.mod.1 + +clean-module-chain.mod-symbol.1: + rm -f def-chain.lst + +CLEAN_MODULE_TARGETS += clean-module-chain.mod-symbol.1 +DEFSYMFILES += def-chain.lst +mostlyclean-module-chain.mod.1: + rm -f chain_mod-loader_efi_chainloader.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-chain.mod.1 +UNDSYMFILES += und-chain.lst + +ifeq ($(TARGET_NO_MODULES), yes) +chain.mod: pre-chain.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(chain_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-chain.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +chain.mod: pre-chain.o mod-chain.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(chain_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-chain.o mod-chain.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +chain.mod: pre-chain.o mod-chain.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(chain_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-chain.o mod-chain.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-chain.o: $(chain_mod_DEPENDENCIES) chain_mod-loader_efi_chainloader.o + -rm -f $@ + $(TARGET_CC) $(chain_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ chain_mod-loader_efi_chainloader.o + +mod-chain.o: mod-chain.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(chain_mod_CFLAGS) -DGRUB_FILE=\"mod-chain.c\" -c -o $@ $< + +mod-chain.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'chain' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-chain.lst: pre-chain.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 chain/' > $@ +else +def-chain.lst: pre-chain.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 chain/' > $@ +endif + +und-chain.lst: pre-chain.o + echo 'chain' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +chain_mod-loader_efi_chainloader.o: loader/efi/chainloader.c $(loader/efi/chainloader.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/efi -I$(srcdir)/loader/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(chain_mod_CFLAGS) -DGRUB_FILE=\"loader/efi/chainloader.c\" -MD -c -o $@ $< +-include chain_mod-loader_efi_chainloader.d + +clean-module-chain_mod-loader_efi_chainloader-extra.1: + rm -f cmd-chain_mod-loader_efi_chainloader.lst fs-chain_mod-loader_efi_chainloader.lst partmap-chain_mod-loader_efi_chainloader.lst handler-chain_mod-loader_efi_chainloader.lst parttool-chain_mod-loader_efi_chainloader.lst video-chain_mod-loader_efi_chainloader.lst terminal-chain_mod-loader_efi_chainloader.lst + +CLEAN_MODULE_TARGETS += clean-module-chain_mod-loader_efi_chainloader-extra.1 + +COMMANDFILES += cmd-chain_mod-loader_efi_chainloader.lst +FSFILES += fs-chain_mod-loader_efi_chainloader.lst +PARTTOOLFILES += parttool-chain_mod-loader_efi_chainloader.lst +PARTMAPFILES += partmap-chain_mod-loader_efi_chainloader.lst +HANDLERFILES += handler-chain_mod-loader_efi_chainloader.lst +TERMINALFILES += terminal-chain_mod-loader_efi_chainloader.lst +VIDEOFILES += video-chain_mod-loader_efi_chainloader.lst + +cmd-chain_mod-loader_efi_chainloader.lst: loader/efi/chainloader.c $(loader/efi/chainloader.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/efi -I$(srcdir)/loader/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(chain_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh chain > $@ || (rm -f $@; exit 1) + +fs-chain_mod-loader_efi_chainloader.lst: loader/efi/chainloader.c $(loader/efi/chainloader.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/efi -I$(srcdir)/loader/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(chain_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh chain > $@ || (rm -f $@; exit 1) + +parttool-chain_mod-loader_efi_chainloader.lst: loader/efi/chainloader.c $(loader/efi/chainloader.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/efi -I$(srcdir)/loader/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(chain_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh chain > $@ || (rm -f $@; exit 1) + +partmap-chain_mod-loader_efi_chainloader.lst: loader/efi/chainloader.c $(loader/efi/chainloader.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/efi -I$(srcdir)/loader/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(chain_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh chain > $@ || (rm -f $@; exit 1) + +handler-chain_mod-loader_efi_chainloader.lst: loader/efi/chainloader.c $(loader/efi/chainloader.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/efi -I$(srcdir)/loader/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(chain_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh chain > $@ || (rm -f $@; exit 1) + +terminal-chain_mod-loader_efi_chainloader.lst: loader/efi/chainloader.c $(loader/efi/chainloader.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/efi -I$(srcdir)/loader/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(chain_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh chain > $@ || (rm -f $@; exit 1) + +video-chain_mod-loader_efi_chainloader.lst: loader/efi/chainloader.c $(loader/efi/chainloader.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/efi -I$(srcdir)/loader/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(chain_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh chain > $@ || (rm -f $@; exit 1) + +chain_mod_CFLAGS = $(COMMON_CFLAGS) +chain_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For appleldr.mod. +appleldr_mod_SOURCES = loader/efi/appleloader.c + +clean-module-appleldr.mod.1: + rm -f appleldr.mod mod-appleldr.o mod-appleldr.c pre-appleldr.o appleldr_mod-loader_efi_appleloader.o und-appleldr.lst + +CLEAN_MODULE_TARGETS += clean-module-appleldr.mod.1 + +clean-module-appleldr.mod-symbol.1: + rm -f def-appleldr.lst + +CLEAN_MODULE_TARGETS += clean-module-appleldr.mod-symbol.1 +DEFSYMFILES += def-appleldr.lst +mostlyclean-module-appleldr.mod.1: + rm -f appleldr_mod-loader_efi_appleloader.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-appleldr.mod.1 +UNDSYMFILES += und-appleldr.lst + +ifeq ($(TARGET_NO_MODULES), yes) +appleldr.mod: pre-appleldr.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(appleldr_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-appleldr.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +appleldr.mod: pre-appleldr.o mod-appleldr.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(appleldr_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-appleldr.o mod-appleldr.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +appleldr.mod: pre-appleldr.o mod-appleldr.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(appleldr_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-appleldr.o mod-appleldr.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-appleldr.o: $(appleldr_mod_DEPENDENCIES) appleldr_mod-loader_efi_appleloader.o + -rm -f $@ + $(TARGET_CC) $(appleldr_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ appleldr_mod-loader_efi_appleloader.o + +mod-appleldr.o: mod-appleldr.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(appleldr_mod_CFLAGS) -DGRUB_FILE=\"mod-appleldr.c\" -c -o $@ $< + +mod-appleldr.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'appleldr' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-appleldr.lst: pre-appleldr.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 appleldr/' > $@ +else +def-appleldr.lst: pre-appleldr.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 appleldr/' > $@ +endif + +und-appleldr.lst: pre-appleldr.o + echo 'appleldr' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +appleldr_mod-loader_efi_appleloader.o: loader/efi/appleloader.c $(loader/efi/appleloader.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/efi -I$(srcdir)/loader/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(appleldr_mod_CFLAGS) -DGRUB_FILE=\"loader/efi/appleloader.c\" -MD -c -o $@ $< +-include appleldr_mod-loader_efi_appleloader.d + +clean-module-appleldr_mod-loader_efi_appleloader-extra.1: + rm -f cmd-appleldr_mod-loader_efi_appleloader.lst fs-appleldr_mod-loader_efi_appleloader.lst partmap-appleldr_mod-loader_efi_appleloader.lst handler-appleldr_mod-loader_efi_appleloader.lst parttool-appleldr_mod-loader_efi_appleloader.lst video-appleldr_mod-loader_efi_appleloader.lst terminal-appleldr_mod-loader_efi_appleloader.lst + +CLEAN_MODULE_TARGETS += clean-module-appleldr_mod-loader_efi_appleloader-extra.1 + +COMMANDFILES += cmd-appleldr_mod-loader_efi_appleloader.lst +FSFILES += fs-appleldr_mod-loader_efi_appleloader.lst +PARTTOOLFILES += parttool-appleldr_mod-loader_efi_appleloader.lst +PARTMAPFILES += partmap-appleldr_mod-loader_efi_appleloader.lst +HANDLERFILES += handler-appleldr_mod-loader_efi_appleloader.lst +TERMINALFILES += terminal-appleldr_mod-loader_efi_appleloader.lst +VIDEOFILES += video-appleldr_mod-loader_efi_appleloader.lst + +cmd-appleldr_mod-loader_efi_appleloader.lst: loader/efi/appleloader.c $(loader/efi/appleloader.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/efi -I$(srcdir)/loader/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(appleldr_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh appleldr > $@ || (rm -f $@; exit 1) + +fs-appleldr_mod-loader_efi_appleloader.lst: loader/efi/appleloader.c $(loader/efi/appleloader.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/efi -I$(srcdir)/loader/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(appleldr_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh appleldr > $@ || (rm -f $@; exit 1) + +parttool-appleldr_mod-loader_efi_appleloader.lst: loader/efi/appleloader.c $(loader/efi/appleloader.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/efi -I$(srcdir)/loader/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(appleldr_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh appleldr > $@ || (rm -f $@; exit 1) + +partmap-appleldr_mod-loader_efi_appleloader.lst: loader/efi/appleloader.c $(loader/efi/appleloader.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/efi -I$(srcdir)/loader/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(appleldr_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh appleldr > $@ || (rm -f $@; exit 1) + +handler-appleldr_mod-loader_efi_appleloader.lst: loader/efi/appleloader.c $(loader/efi/appleloader.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/efi -I$(srcdir)/loader/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(appleldr_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh appleldr > $@ || (rm -f $@; exit 1) + +terminal-appleldr_mod-loader_efi_appleloader.lst: loader/efi/appleloader.c $(loader/efi/appleloader.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/efi -I$(srcdir)/loader/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(appleldr_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh appleldr > $@ || (rm -f $@; exit 1) + +video-appleldr_mod-loader_efi_appleloader.lst: loader/efi/appleloader.c $(loader/efi/appleloader.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/efi -I$(srcdir)/loader/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(appleldr_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh appleldr > $@ || (rm -f $@; exit 1) + +appleldr_mod_CFLAGS = $(COMMON_CFLAGS) +appleldr_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For linux.mod. +ifeq ($(target_cpu), x86_64) +linux_mod_SOURCES = loader/i386/efi/linux.c loader/i386/linux_trampoline.S + +clean-module-linux.mod.1: + rm -f linux.mod mod-linux.o mod-linux.c pre-linux.o linux_mod-loader_i386_efi_linux.o linux_mod-loader_i386_linux_trampoline.o und-linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux.mod.1 + +clean-module-linux.mod-symbol.1: + rm -f def-linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux.mod-symbol.1 +DEFSYMFILES += def-linux.lst +mostlyclean-module-linux.mod.1: + rm -f linux_mod-loader_i386_efi_linux.d linux_mod-loader_i386_linux_trampoline.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-linux.mod.1 +UNDSYMFILES += und-linux.lst + +ifeq ($(TARGET_NO_MODULES), yes) +linux.mod: pre-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-linux.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-linux.o mod-linux.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-linux.o mod-linux.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-linux.o: $(linux_mod_DEPENDENCIES) linux_mod-loader_i386_efi_linux.o linux_mod-loader_i386_linux_trampoline.o + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ linux_mod-loader_i386_efi_linux.o linux_mod-loader_i386_linux_trampoline.o + +mod-linux.o: mod-linux.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -DGRUB_FILE=\"mod-linux.c\" -c -o $@ $< + +mod-linux.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'linux' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-linux.lst: pre-linux.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 linux/' > $@ +else +def-linux.lst: pre-linux.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 linux/' > $@ +endif + +und-linux.lst: pre-linux.o + echo 'linux' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +linux_mod-loader_i386_efi_linux.o: loader/i386/efi/linux.c $(loader/i386/efi/linux.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386/efi -I$(srcdir)/loader/i386/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -DGRUB_FILE=\"loader/i386/efi/linux.c\" -MD -c -o $@ $< +-include linux_mod-loader_i386_efi_linux.d + +clean-module-linux_mod-loader_i386_efi_linux-extra.1: + rm -f cmd-linux_mod-loader_i386_efi_linux.lst fs-linux_mod-loader_i386_efi_linux.lst partmap-linux_mod-loader_i386_efi_linux.lst handler-linux_mod-loader_i386_efi_linux.lst parttool-linux_mod-loader_i386_efi_linux.lst video-linux_mod-loader_i386_efi_linux.lst terminal-linux_mod-loader_i386_efi_linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux_mod-loader_i386_efi_linux-extra.1 + +COMMANDFILES += cmd-linux_mod-loader_i386_efi_linux.lst +FSFILES += fs-linux_mod-loader_i386_efi_linux.lst +PARTTOOLFILES += parttool-linux_mod-loader_i386_efi_linux.lst +PARTMAPFILES += partmap-linux_mod-loader_i386_efi_linux.lst +HANDLERFILES += handler-linux_mod-loader_i386_efi_linux.lst +TERMINALFILES += terminal-linux_mod-loader_i386_efi_linux.lst +VIDEOFILES += video-linux_mod-loader_i386_efi_linux.lst + +cmd-linux_mod-loader_i386_efi_linux.lst: loader/i386/efi/linux.c $(loader/i386/efi/linux.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386/efi -I$(srcdir)/loader/i386/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh linux > $@ || (rm -f $@; exit 1) + +fs-linux_mod-loader_i386_efi_linux.lst: loader/i386/efi/linux.c $(loader/i386/efi/linux.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386/efi -I$(srcdir)/loader/i386/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh linux > $@ || (rm -f $@; exit 1) + +parttool-linux_mod-loader_i386_efi_linux.lst: loader/i386/efi/linux.c $(loader/i386/efi/linux.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386/efi -I$(srcdir)/loader/i386/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh linux > $@ || (rm -f $@; exit 1) + +partmap-linux_mod-loader_i386_efi_linux.lst: loader/i386/efi/linux.c $(loader/i386/efi/linux.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386/efi -I$(srcdir)/loader/i386/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh linux > $@ || (rm -f $@; exit 1) + +handler-linux_mod-loader_i386_efi_linux.lst: loader/i386/efi/linux.c $(loader/i386/efi/linux.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386/efi -I$(srcdir)/loader/i386/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh linux > $@ || (rm -f $@; exit 1) + +terminal-linux_mod-loader_i386_efi_linux.lst: loader/i386/efi/linux.c $(loader/i386/efi/linux.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386/efi -I$(srcdir)/loader/i386/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh linux > $@ || (rm -f $@; exit 1) + +video-linux_mod-loader_i386_efi_linux.lst: loader/i386/efi/linux.c $(loader/i386/efi/linux.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386/efi -I$(srcdir)/loader/i386/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh linux > $@ || (rm -f $@; exit 1) + +linux_mod-loader_i386_linux_trampoline.o: loader/i386/linux_trampoline.S $(loader/i386/linux_trampoline.S_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(linux_mod_ASFLAGS) -DGRUB_FILE=\"loader/i386/linux_trampoline.S\" -MD -c -o $@ $< +-include linux_mod-loader_i386_linux_trampoline.d + +clean-module-linux_mod-loader_i386_linux_trampoline-extra.1: + rm -f cmd-linux_mod-loader_i386_linux_trampoline.lst fs-linux_mod-loader_i386_linux_trampoline.lst partmap-linux_mod-loader_i386_linux_trampoline.lst handler-linux_mod-loader_i386_linux_trampoline.lst parttool-linux_mod-loader_i386_linux_trampoline.lst video-linux_mod-loader_i386_linux_trampoline.lst terminal-linux_mod-loader_i386_linux_trampoline.lst + +CLEAN_MODULE_TARGETS += clean-module-linux_mod-loader_i386_linux_trampoline-extra.1 + +COMMANDFILES += cmd-linux_mod-loader_i386_linux_trampoline.lst +FSFILES += fs-linux_mod-loader_i386_linux_trampoline.lst +PARTTOOLFILES += parttool-linux_mod-loader_i386_linux_trampoline.lst +PARTMAPFILES += partmap-linux_mod-loader_i386_linux_trampoline.lst +HANDLERFILES += handler-linux_mod-loader_i386_linux_trampoline.lst +TERMINALFILES += terminal-linux_mod-loader_i386_linux_trampoline.lst +VIDEOFILES += video-linux_mod-loader_i386_linux_trampoline.lst + +cmd-linux_mod-loader_i386_linux_trampoline.lst: loader/i386/linux_trampoline.S $(loader/i386/linux_trampoline.S_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(linux_mod_ASFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh linux > $@ || (rm -f $@; exit 1) + +fs-linux_mod-loader_i386_linux_trampoline.lst: loader/i386/linux_trampoline.S $(loader/i386/linux_trampoline.S_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(linux_mod_ASFLAGS) -E $< | sh $(srcdir)/genfslist.sh linux > $@ || (rm -f $@; exit 1) + +parttool-linux_mod-loader_i386_linux_trampoline.lst: loader/i386/linux_trampoline.S $(loader/i386/linux_trampoline.S_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(linux_mod_ASFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh linux > $@ || (rm -f $@; exit 1) + +partmap-linux_mod-loader_i386_linux_trampoline.lst: loader/i386/linux_trampoline.S $(loader/i386/linux_trampoline.S_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(linux_mod_ASFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh linux > $@ || (rm -f $@; exit 1) + +handler-linux_mod-loader_i386_linux_trampoline.lst: loader/i386/linux_trampoline.S $(loader/i386/linux_trampoline.S_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(linux_mod_ASFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh linux > $@ || (rm -f $@; exit 1) + +terminal-linux_mod-loader_i386_linux_trampoline.lst: loader/i386/linux_trampoline.S $(loader/i386/linux_trampoline.S_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(linux_mod_ASFLAGS) -E $< | sh $(srcdir)/genterminallist.sh linux > $@ || (rm -f $@; exit 1) + +video-linux_mod-loader_i386_linux_trampoline.lst: loader/i386/linux_trampoline.S $(loader/i386/linux_trampoline.S_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DASM_FILE=1 -DGRUB_LST_GENERATOR $(TARGET_ASFLAGS) $(linux_mod_ASFLAGS) -E $< | sh $(srcdir)/genvideolist.sh linux > $@ || (rm -f $@; exit 1) + +linux_mod_CFLAGS = $(COMMON_CFLAGS) +linux_mod_ASFLAGS = $(COMMON_ASFLAGS) +linux_mod_LDFLAGS = $(COMMON_LDFLAGS) +else +linux_mod_SOURCES = loader/i386/efi/linux.c + +clean-module-linux.mod.2: + rm -f linux.mod mod-linux.o mod-linux.c pre-linux.o linux_mod-loader_i386_efi_linux.o und-linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux.mod.2 + +clean-module-linux.mod-symbol.2: + rm -f def-linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux.mod-symbol.2 +DEFSYMFILES += def-linux.lst +mostlyclean-module-linux.mod.2: + rm -f linux_mod-loader_i386_efi_linux.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-linux.mod.2 +UNDSYMFILES += und-linux.lst + +ifeq ($(TARGET_NO_MODULES), yes) +linux.mod: pre-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-linux.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-linux.o mod-linux.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +linux.mod: pre-linux.o mod-linux.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-linux.o mod-linux.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-linux.o: $(linux_mod_DEPENDENCIES) linux_mod-loader_i386_efi_linux.o + -rm -f $@ + $(TARGET_CC) $(linux_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ linux_mod-loader_i386_efi_linux.o + +mod-linux.o: mod-linux.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -DGRUB_FILE=\"mod-linux.c\" -c -o $@ $< + +mod-linux.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'linux' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-linux.lst: pre-linux.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 linux/' > $@ +else +def-linux.lst: pre-linux.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 linux/' > $@ +endif + +und-linux.lst: pre-linux.o + echo 'linux' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +linux_mod-loader_i386_efi_linux.o: loader/i386/efi/linux.c $(loader/i386/efi/linux.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386/efi -I$(srcdir)/loader/i386/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -DGRUB_FILE=\"loader/i386/efi/linux.c\" -MD -c -o $@ $< +-include linux_mod-loader_i386_efi_linux.d + +clean-module-linux_mod-loader_i386_efi_linux-extra.2: + rm -f cmd-linux_mod-loader_i386_efi_linux.lst fs-linux_mod-loader_i386_efi_linux.lst partmap-linux_mod-loader_i386_efi_linux.lst handler-linux_mod-loader_i386_efi_linux.lst parttool-linux_mod-loader_i386_efi_linux.lst video-linux_mod-loader_i386_efi_linux.lst terminal-linux_mod-loader_i386_efi_linux.lst + +CLEAN_MODULE_TARGETS += clean-module-linux_mod-loader_i386_efi_linux-extra.2 + +COMMANDFILES += cmd-linux_mod-loader_i386_efi_linux.lst +FSFILES += fs-linux_mod-loader_i386_efi_linux.lst +PARTTOOLFILES += parttool-linux_mod-loader_i386_efi_linux.lst +PARTMAPFILES += partmap-linux_mod-loader_i386_efi_linux.lst +HANDLERFILES += handler-linux_mod-loader_i386_efi_linux.lst +TERMINALFILES += terminal-linux_mod-loader_i386_efi_linux.lst +VIDEOFILES += video-linux_mod-loader_i386_efi_linux.lst + +cmd-linux_mod-loader_i386_efi_linux.lst: loader/i386/efi/linux.c $(loader/i386/efi/linux.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386/efi -I$(srcdir)/loader/i386/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh linux > $@ || (rm -f $@; exit 1) + +fs-linux_mod-loader_i386_efi_linux.lst: loader/i386/efi/linux.c $(loader/i386/efi/linux.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386/efi -I$(srcdir)/loader/i386/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh linux > $@ || (rm -f $@; exit 1) + +parttool-linux_mod-loader_i386_efi_linux.lst: loader/i386/efi/linux.c $(loader/i386/efi/linux.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386/efi -I$(srcdir)/loader/i386/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh linux > $@ || (rm -f $@; exit 1) + +partmap-linux_mod-loader_i386_efi_linux.lst: loader/i386/efi/linux.c $(loader/i386/efi/linux.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386/efi -I$(srcdir)/loader/i386/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh linux > $@ || (rm -f $@; exit 1) + +handler-linux_mod-loader_i386_efi_linux.lst: loader/i386/efi/linux.c $(loader/i386/efi/linux.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386/efi -I$(srcdir)/loader/i386/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh linux > $@ || (rm -f $@; exit 1) + +terminal-linux_mod-loader_i386_efi_linux.lst: loader/i386/efi/linux.c $(loader/i386/efi/linux.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386/efi -I$(srcdir)/loader/i386/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh linux > $@ || (rm -f $@; exit 1) + +video-linux_mod-loader_i386_efi_linux.lst: loader/i386/efi/linux.c $(loader/i386/efi/linux.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386/efi -I$(srcdir)/loader/i386/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(linux_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh linux > $@ || (rm -f $@; exit 1) + +linux_mod_CFLAGS = $(COMMON_CFLAGS) +linux_mod_ASFLAGS = $(COMMON_ASFLAGS) +linux_mod_LDFLAGS = $(COMMON_LDFLAGS) +endif + +# For halt.mod. +halt_mod_SOURCES = commands/halt.c + +clean-module-halt.mod.1: + rm -f halt.mod mod-halt.o mod-halt.c pre-halt.o halt_mod-commands_halt.o und-halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt.mod.1 + +clean-module-halt.mod-symbol.1: + rm -f def-halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt.mod-symbol.1 +DEFSYMFILES += def-halt.lst +mostlyclean-module-halt.mod.1: + rm -f halt_mod-commands_halt.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-halt.mod.1 +UNDSYMFILES += und-halt.lst + +ifeq ($(TARGET_NO_MODULES), yes) +halt.mod: pre-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-halt.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +halt.mod: pre-halt.o mod-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-halt.o mod-halt.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +halt.mod: pre-halt.o mod-halt.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-halt.o mod-halt.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-halt.o: $(halt_mod_DEPENDENCIES) halt_mod-commands_halt.o + -rm -f $@ + $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ halt_mod-commands_halt.o + +mod-halt.o: mod-halt.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -DGRUB_FILE=\"mod-halt.c\" -c -o $@ $< + +mod-halt.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'halt' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-halt.lst: pre-halt.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 halt/' > $@ +else +def-halt.lst: pre-halt.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 halt/' > $@ +endif + +und-halt.lst: pre-halt.o + echo 'halt' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +halt_mod-commands_halt.o: commands/halt.c $(commands/halt.c_DEPENDENCIES) + $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -DGRUB_FILE=\"commands/halt.c\" -MD -c -o $@ $< +-include halt_mod-commands_halt.d + +clean-module-halt_mod-commands_halt-extra.1: + rm -f cmd-halt_mod-commands_halt.lst fs-halt_mod-commands_halt.lst partmap-halt_mod-commands_halt.lst handler-halt_mod-commands_halt.lst parttool-halt_mod-commands_halt.lst video-halt_mod-commands_halt.lst terminal-halt_mod-commands_halt.lst + +CLEAN_MODULE_TARGETS += clean-module-halt_mod-commands_halt-extra.1 + +COMMANDFILES += cmd-halt_mod-commands_halt.lst +FSFILES += fs-halt_mod-commands_halt.lst +PARTTOOLFILES += parttool-halt_mod-commands_halt.lst +PARTMAPFILES += partmap-halt_mod-commands_halt.lst +HANDLERFILES += handler-halt_mod-commands_halt.lst +TERMINALFILES += terminal-halt_mod-commands_halt.lst +VIDEOFILES += video-halt_mod-commands_halt.lst + +cmd-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh halt > $@ || (rm -f $@; exit 1) + +fs-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh halt > $@ || (rm -f $@; exit 1) + +parttool-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh halt > $@ || (rm -f $@; exit 1) + +partmap-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh halt > $@ || (rm -f $@; exit 1) + +handler-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh halt > $@ || (rm -f $@; exit 1) + +terminal-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh halt > $@ || (rm -f $@; exit 1) + +video-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh halt > $@ || (rm -f $@; exit 1) + +halt_mod_CFLAGS = $(COMMON_CFLAGS) +halt_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For datetime.mod +datetime_mod_SOURCES = lib/efi/datetime.c + +clean-module-datetime.mod.1: + rm -f datetime.mod mod-datetime.o mod-datetime.c pre-datetime.o datetime_mod-lib_efi_datetime.o und-datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime.mod.1 + +clean-module-datetime.mod-symbol.1: + rm -f def-datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime.mod-symbol.1 +DEFSYMFILES += def-datetime.lst +mostlyclean-module-datetime.mod.1: + rm -f datetime_mod-lib_efi_datetime.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-datetime.mod.1 +UNDSYMFILES += und-datetime.lst + +ifeq ($(TARGET_NO_MODULES), yes) +datetime.mod: pre-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-datetime.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +datetime.mod: pre-datetime.o mod-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-datetime.o mod-datetime.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +datetime.mod: pre-datetime.o mod-datetime.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-datetime.o mod-datetime.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-datetime.o: $(datetime_mod_DEPENDENCIES) datetime_mod-lib_efi_datetime.o + -rm -f $@ + $(TARGET_CC) $(datetime_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ datetime_mod-lib_efi_datetime.o + +mod-datetime.o: mod-datetime.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -DGRUB_FILE=\"mod-datetime.c\" -c -o $@ $< + +mod-datetime.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'datetime' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-datetime.lst: pre-datetime.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 datetime/' > $@ +else +def-datetime.lst: pre-datetime.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 datetime/' > $@ +endif + +und-datetime.lst: pre-datetime.o + echo 'datetime' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +datetime_mod-lib_efi_datetime.o: lib/efi/datetime.c $(lib/efi/datetime.c_DEPENDENCIES) + $(TARGET_CC) -Ilib/efi -I$(srcdir)/lib/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -DGRUB_FILE=\"lib/efi/datetime.c\" -MD -c -o $@ $< +-include datetime_mod-lib_efi_datetime.d + +clean-module-datetime_mod-lib_efi_datetime-extra.1: + rm -f cmd-datetime_mod-lib_efi_datetime.lst fs-datetime_mod-lib_efi_datetime.lst partmap-datetime_mod-lib_efi_datetime.lst handler-datetime_mod-lib_efi_datetime.lst parttool-datetime_mod-lib_efi_datetime.lst video-datetime_mod-lib_efi_datetime.lst terminal-datetime_mod-lib_efi_datetime.lst + +CLEAN_MODULE_TARGETS += clean-module-datetime_mod-lib_efi_datetime-extra.1 + +COMMANDFILES += cmd-datetime_mod-lib_efi_datetime.lst +FSFILES += fs-datetime_mod-lib_efi_datetime.lst +PARTTOOLFILES += parttool-datetime_mod-lib_efi_datetime.lst +PARTMAPFILES += partmap-datetime_mod-lib_efi_datetime.lst +HANDLERFILES += handler-datetime_mod-lib_efi_datetime.lst +TERMINALFILES += terminal-datetime_mod-lib_efi_datetime.lst +VIDEOFILES += video-datetime_mod-lib_efi_datetime.lst + +cmd-datetime_mod-lib_efi_datetime.lst: lib/efi/datetime.c $(lib/efi/datetime.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ilib/efi -I$(srcdir)/lib/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh datetime > $@ || (rm -f $@; exit 1) + +fs-datetime_mod-lib_efi_datetime.lst: lib/efi/datetime.c $(lib/efi/datetime.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ilib/efi -I$(srcdir)/lib/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh datetime > $@ || (rm -f $@; exit 1) + +parttool-datetime_mod-lib_efi_datetime.lst: lib/efi/datetime.c $(lib/efi/datetime.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ilib/efi -I$(srcdir)/lib/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh datetime > $@ || (rm -f $@; exit 1) + +partmap-datetime_mod-lib_efi_datetime.lst: lib/efi/datetime.c $(lib/efi/datetime.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ilib/efi -I$(srcdir)/lib/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh datetime > $@ || (rm -f $@; exit 1) + +handler-datetime_mod-lib_efi_datetime.lst: lib/efi/datetime.c $(lib/efi/datetime.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ilib/efi -I$(srcdir)/lib/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh datetime > $@ || (rm -f $@; exit 1) + +terminal-datetime_mod-lib_efi_datetime.lst: lib/efi/datetime.c $(lib/efi/datetime.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ilib/efi -I$(srcdir)/lib/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh datetime > $@ || (rm -f $@; exit 1) + +video-datetime_mod-lib_efi_datetime.lst: lib/efi/datetime.c $(lib/efi/datetime.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ilib/efi -I$(srcdir)/lib/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(datetime_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh datetime > $@ || (rm -f $@; exit 1) + +datetime_mod_CFLAGS = $(COMMON_CFLAGS) +datetime_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For loadbios.mod +loadbios_mod_SOURCES = commands/efi/loadbios.c + +clean-module-loadbios.mod.1: + rm -f loadbios.mod mod-loadbios.o mod-loadbios.c pre-loadbios.o loadbios_mod-commands_efi_loadbios.o und-loadbios.lst + +CLEAN_MODULE_TARGETS += clean-module-loadbios.mod.1 + +clean-module-loadbios.mod-symbol.1: + rm -f def-loadbios.lst + +CLEAN_MODULE_TARGETS += clean-module-loadbios.mod-symbol.1 +DEFSYMFILES += def-loadbios.lst +mostlyclean-module-loadbios.mod.1: + rm -f loadbios_mod-commands_efi_loadbios.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-loadbios.mod.1 +UNDSYMFILES += und-loadbios.lst + +ifeq ($(TARGET_NO_MODULES), yes) +loadbios.mod: pre-loadbios.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(loadbios_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-loadbios.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +loadbios.mod: pre-loadbios.o mod-loadbios.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(loadbios_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-loadbios.o mod-loadbios.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +loadbios.mod: pre-loadbios.o mod-loadbios.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(loadbios_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-loadbios.o mod-loadbios.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-loadbios.o: $(loadbios_mod_DEPENDENCIES) loadbios_mod-commands_efi_loadbios.o + -rm -f $@ + $(TARGET_CC) $(loadbios_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ loadbios_mod-commands_efi_loadbios.o + +mod-loadbios.o: mod-loadbios.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(loadbios_mod_CFLAGS) -DGRUB_FILE=\"mod-loadbios.c\" -c -o $@ $< + +mod-loadbios.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'loadbios' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-loadbios.lst: pre-loadbios.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 loadbios/' > $@ +else +def-loadbios.lst: pre-loadbios.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 loadbios/' > $@ +endif + +und-loadbios.lst: pre-loadbios.o + echo 'loadbios' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +loadbios_mod-commands_efi_loadbios.o: commands/efi/loadbios.c $(commands/efi/loadbios.c_DEPENDENCIES) + $(TARGET_CC) -Icommands/efi -I$(srcdir)/commands/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(loadbios_mod_CFLAGS) -DGRUB_FILE=\"commands/efi/loadbios.c\" -MD -c -o $@ $< +-include loadbios_mod-commands_efi_loadbios.d + +clean-module-loadbios_mod-commands_efi_loadbios-extra.1: + rm -f cmd-loadbios_mod-commands_efi_loadbios.lst fs-loadbios_mod-commands_efi_loadbios.lst partmap-loadbios_mod-commands_efi_loadbios.lst handler-loadbios_mod-commands_efi_loadbios.lst parttool-loadbios_mod-commands_efi_loadbios.lst video-loadbios_mod-commands_efi_loadbios.lst terminal-loadbios_mod-commands_efi_loadbios.lst + +CLEAN_MODULE_TARGETS += clean-module-loadbios_mod-commands_efi_loadbios-extra.1 + +COMMANDFILES += cmd-loadbios_mod-commands_efi_loadbios.lst +FSFILES += fs-loadbios_mod-commands_efi_loadbios.lst +PARTTOOLFILES += parttool-loadbios_mod-commands_efi_loadbios.lst +PARTMAPFILES += partmap-loadbios_mod-commands_efi_loadbios.lst +HANDLERFILES += handler-loadbios_mod-commands_efi_loadbios.lst +TERMINALFILES += terminal-loadbios_mod-commands_efi_loadbios.lst +VIDEOFILES += video-loadbios_mod-commands_efi_loadbios.lst + +cmd-loadbios_mod-commands_efi_loadbios.lst: commands/efi/loadbios.c $(commands/efi/loadbios.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands/efi -I$(srcdir)/commands/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(loadbios_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh loadbios > $@ || (rm -f $@; exit 1) + +fs-loadbios_mod-commands_efi_loadbios.lst: commands/efi/loadbios.c $(commands/efi/loadbios.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands/efi -I$(srcdir)/commands/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(loadbios_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh loadbios > $@ || (rm -f $@; exit 1) + +parttool-loadbios_mod-commands_efi_loadbios.lst: commands/efi/loadbios.c $(commands/efi/loadbios.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands/efi -I$(srcdir)/commands/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(loadbios_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh loadbios > $@ || (rm -f $@; exit 1) + +partmap-loadbios_mod-commands_efi_loadbios.lst: commands/efi/loadbios.c $(commands/efi/loadbios.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands/efi -I$(srcdir)/commands/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(loadbios_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh loadbios > $@ || (rm -f $@; exit 1) + +handler-loadbios_mod-commands_efi_loadbios.lst: commands/efi/loadbios.c $(commands/efi/loadbios.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands/efi -I$(srcdir)/commands/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(loadbios_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh loadbios > $@ || (rm -f $@; exit 1) + +terminal-loadbios_mod-commands_efi_loadbios.lst: commands/efi/loadbios.c $(commands/efi/loadbios.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands/efi -I$(srcdir)/commands/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(loadbios_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh loadbios > $@ || (rm -f $@; exit 1) + +video-loadbios_mod-commands_efi_loadbios.lst: commands/efi/loadbios.c $(commands/efi/loadbios.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands/efi -I$(srcdir)/commands/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(loadbios_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh loadbios > $@ || (rm -f $@; exit 1) + +loadbios_mod_CFLAGS = $(COMMON_CFLAGS) +loadbios_mod_LDFLAGS = $(COMMON_LDFLAGS) + +# For fixvideo.mod +fixvideo_mod_SOURCES = commands/efi/fixvideo.c + +clean-module-fixvideo.mod.1: + rm -f fixvideo.mod mod-fixvideo.o mod-fixvideo.c pre-fixvideo.o fixvideo_mod-commands_efi_fixvideo.o und-fixvideo.lst + +CLEAN_MODULE_TARGETS += clean-module-fixvideo.mod.1 + +clean-module-fixvideo.mod-symbol.1: + rm -f def-fixvideo.lst + +CLEAN_MODULE_TARGETS += clean-module-fixvideo.mod-symbol.1 +DEFSYMFILES += def-fixvideo.lst +mostlyclean-module-fixvideo.mod.1: + rm -f fixvideo_mod-commands_efi_fixvideo.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-fixvideo.mod.1 +UNDSYMFILES += und-fixvideo.lst + +ifeq ($(TARGET_NO_MODULES), yes) +fixvideo.mod: pre-fixvideo.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(fixvideo_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-fixvideo.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +fixvideo.mod: pre-fixvideo.o mod-fixvideo.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(fixvideo_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-fixvideo.o mod-fixvideo.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +fixvideo.mod: pre-fixvideo.o mod-fixvideo.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(fixvideo_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-fixvideo.o mod-fixvideo.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-fixvideo.o: $(fixvideo_mod_DEPENDENCIES) fixvideo_mod-commands_efi_fixvideo.o + -rm -f $@ + $(TARGET_CC) $(fixvideo_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ fixvideo_mod-commands_efi_fixvideo.o + +mod-fixvideo.o: mod-fixvideo.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(fixvideo_mod_CFLAGS) -DGRUB_FILE=\"mod-fixvideo.c\" -c -o $@ $< + +mod-fixvideo.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'fixvideo' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-fixvideo.lst: pre-fixvideo.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 fixvideo/' > $@ +else +def-fixvideo.lst: pre-fixvideo.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 fixvideo/' > $@ +endif + +und-fixvideo.lst: pre-fixvideo.o + echo 'fixvideo' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +fixvideo_mod-commands_efi_fixvideo.o: commands/efi/fixvideo.c $(commands/efi/fixvideo.c_DEPENDENCIES) + $(TARGET_CC) -Icommands/efi -I$(srcdir)/commands/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(fixvideo_mod_CFLAGS) -DGRUB_FILE=\"commands/efi/fixvideo.c\" -MD -c -o $@ $< +-include fixvideo_mod-commands_efi_fixvideo.d + +clean-module-fixvideo_mod-commands_efi_fixvideo-extra.1: + rm -f cmd-fixvideo_mod-commands_efi_fixvideo.lst fs-fixvideo_mod-commands_efi_fixvideo.lst partmap-fixvideo_mod-commands_efi_fixvideo.lst handler-fixvideo_mod-commands_efi_fixvideo.lst parttool-fixvideo_mod-commands_efi_fixvideo.lst video-fixvideo_mod-commands_efi_fixvideo.lst terminal-fixvideo_mod-commands_efi_fixvideo.lst + +CLEAN_MODULE_TARGETS += clean-module-fixvideo_mod-commands_efi_fixvideo-extra.1 + +COMMANDFILES += cmd-fixvideo_mod-commands_efi_fixvideo.lst +FSFILES += fs-fixvideo_mod-commands_efi_fixvideo.lst +PARTTOOLFILES += parttool-fixvideo_mod-commands_efi_fixvideo.lst +PARTMAPFILES += partmap-fixvideo_mod-commands_efi_fixvideo.lst +HANDLERFILES += handler-fixvideo_mod-commands_efi_fixvideo.lst +TERMINALFILES += terminal-fixvideo_mod-commands_efi_fixvideo.lst +VIDEOFILES += video-fixvideo_mod-commands_efi_fixvideo.lst + +cmd-fixvideo_mod-commands_efi_fixvideo.lst: commands/efi/fixvideo.c $(commands/efi/fixvideo.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Icommands/efi -I$(srcdir)/commands/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(fixvideo_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh fixvideo > $@ || (rm -f $@; exit 1) + +fs-fixvideo_mod-commands_efi_fixvideo.lst: commands/efi/fixvideo.c $(commands/efi/fixvideo.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Icommands/efi -I$(srcdir)/commands/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(fixvideo_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh fixvideo > $@ || (rm -f $@; exit 1) + +parttool-fixvideo_mod-commands_efi_fixvideo.lst: commands/efi/fixvideo.c $(commands/efi/fixvideo.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Icommands/efi -I$(srcdir)/commands/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(fixvideo_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh fixvideo > $@ || (rm -f $@; exit 1) + +partmap-fixvideo_mod-commands_efi_fixvideo.lst: commands/efi/fixvideo.c $(commands/efi/fixvideo.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Icommands/efi -I$(srcdir)/commands/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(fixvideo_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh fixvideo > $@ || (rm -f $@; exit 1) + +handler-fixvideo_mod-commands_efi_fixvideo.lst: commands/efi/fixvideo.c $(commands/efi/fixvideo.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Icommands/efi -I$(srcdir)/commands/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(fixvideo_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh fixvideo > $@ || (rm -f $@; exit 1) + +terminal-fixvideo_mod-commands_efi_fixvideo.lst: commands/efi/fixvideo.c $(commands/efi/fixvideo.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Icommands/efi -I$(srcdir)/commands/efi $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(fixvideo_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh fixvideo > $@ || (rm -f $@; exit 1) + +video-fixvideo_mod-commands_efi_fixvideo.lst: commands/efi/fixvideo.c $(commands/efi/fixvideo.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Icommands/efi -I$(srcdir)/commands/efi $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(fixvideo_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh fixvideo > $@ || (rm -f $@; exit 1) + +fixvideo_mod_CFLAGS = $(COMMON_CFLAGS) +fixvideo_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += efi_uga.mod +efi_uga_mod_SOURCES = video/efi_uga.c + +clean-module-efi_uga.mod.1: + rm -f efi_uga.mod mod-efi_uga.o mod-efi_uga.c pre-efi_uga.o efi_uga_mod-video_efi_uga.o und-efi_uga.lst + +CLEAN_MODULE_TARGETS += clean-module-efi_uga.mod.1 + +clean-module-efi_uga.mod-symbol.1: + rm -f def-efi_uga.lst + +CLEAN_MODULE_TARGETS += clean-module-efi_uga.mod-symbol.1 +DEFSYMFILES += def-efi_uga.lst +mostlyclean-module-efi_uga.mod.1: + rm -f efi_uga_mod-video_efi_uga.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-efi_uga.mod.1 +UNDSYMFILES += und-efi_uga.lst + +ifeq ($(TARGET_NO_MODULES), yes) +efi_uga.mod: pre-efi_uga.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(efi_uga_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-efi_uga.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +efi_uga.mod: pre-efi_uga.o mod-efi_uga.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(efi_uga_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-efi_uga.o mod-efi_uga.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +efi_uga.mod: pre-efi_uga.o mod-efi_uga.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(efi_uga_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-efi_uga.o mod-efi_uga.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-efi_uga.o: $(efi_uga_mod_DEPENDENCIES) efi_uga_mod-video_efi_uga.o + -rm -f $@ + $(TARGET_CC) $(efi_uga_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ efi_uga_mod-video_efi_uga.o + +mod-efi_uga.o: mod-efi_uga.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efi_uga_mod_CFLAGS) -DGRUB_FILE=\"mod-efi_uga.c\" -c -o $@ $< + +mod-efi_uga.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'efi_uga' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-efi_uga.lst: pre-efi_uga.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 efi_uga/' > $@ +else +def-efi_uga.lst: pre-efi_uga.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 efi_uga/' > $@ +endif + +und-efi_uga.lst: pre-efi_uga.o + echo 'efi_uga' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +efi_uga_mod-video_efi_uga.o: video/efi_uga.c $(video/efi_uga.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efi_uga_mod_CFLAGS) -DGRUB_FILE=\"video/efi_uga.c\" -MD -c -o $@ $< +-include efi_uga_mod-video_efi_uga.d + +clean-module-efi_uga_mod-video_efi_uga-extra.1: + rm -f cmd-efi_uga_mod-video_efi_uga.lst fs-efi_uga_mod-video_efi_uga.lst partmap-efi_uga_mod-video_efi_uga.lst handler-efi_uga_mod-video_efi_uga.lst parttool-efi_uga_mod-video_efi_uga.lst video-efi_uga_mod-video_efi_uga.lst terminal-efi_uga_mod-video_efi_uga.lst + +CLEAN_MODULE_TARGETS += clean-module-efi_uga_mod-video_efi_uga-extra.1 + +COMMANDFILES += cmd-efi_uga_mod-video_efi_uga.lst +FSFILES += fs-efi_uga_mod-video_efi_uga.lst +PARTTOOLFILES += parttool-efi_uga_mod-video_efi_uga.lst +PARTMAPFILES += partmap-efi_uga_mod-video_efi_uga.lst +HANDLERFILES += handler-efi_uga_mod-video_efi_uga.lst +TERMINALFILES += terminal-efi_uga_mod-video_efi_uga.lst +VIDEOFILES += video-efi_uga_mod-video_efi_uga.lst + +cmd-efi_uga_mod-video_efi_uga.lst: video/efi_uga.c $(video/efi_uga.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efi_uga_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh efi_uga > $@ || (rm -f $@; exit 1) + +fs-efi_uga_mod-video_efi_uga.lst: video/efi_uga.c $(video/efi_uga.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efi_uga_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh efi_uga > $@ || (rm -f $@; exit 1) + +parttool-efi_uga_mod-video_efi_uga.lst: video/efi_uga.c $(video/efi_uga.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efi_uga_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh efi_uga > $@ || (rm -f $@; exit 1) + +partmap-efi_uga_mod-video_efi_uga.lst: video/efi_uga.c $(video/efi_uga.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efi_uga_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh efi_uga > $@ || (rm -f $@; exit 1) + +handler-efi_uga_mod-video_efi_uga.lst: video/efi_uga.c $(video/efi_uga.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efi_uga_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh efi_uga > $@ || (rm -f $@; exit 1) + +terminal-efi_uga_mod-video_efi_uga.lst: video/efi_uga.c $(video/efi_uga.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efi_uga_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh efi_uga > $@ || (rm -f $@; exit 1) + +video-efi_uga_mod-video_efi_uga.lst: video/efi_uga.c $(video/efi_uga.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efi_uga_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh efi_uga > $@ || (rm -f $@; exit 1) + +efi_uga_mod_CFLAGS = $(COMMON_CFLAGS) +efi_uga_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += efi_gop.mod +efi_gop_mod_SOURCES = video/efi_gop.c + +clean-module-efi_gop.mod.1: + rm -f efi_gop.mod mod-efi_gop.o mod-efi_gop.c pre-efi_gop.o efi_gop_mod-video_efi_gop.o und-efi_gop.lst + +CLEAN_MODULE_TARGETS += clean-module-efi_gop.mod.1 + +clean-module-efi_gop.mod-symbol.1: + rm -f def-efi_gop.lst + +CLEAN_MODULE_TARGETS += clean-module-efi_gop.mod-symbol.1 +DEFSYMFILES += def-efi_gop.lst +mostlyclean-module-efi_gop.mod.1: + rm -f efi_gop_mod-video_efi_gop.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-efi_gop.mod.1 +UNDSYMFILES += und-efi_gop.lst + +ifeq ($(TARGET_NO_MODULES), yes) +efi_gop.mod: pre-efi_gop.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(efi_gop_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-efi_gop.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +efi_gop.mod: pre-efi_gop.o mod-efi_gop.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(efi_gop_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-efi_gop.o mod-efi_gop.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +efi_gop.mod: pre-efi_gop.o mod-efi_gop.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(efi_gop_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-efi_gop.o mod-efi_gop.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-efi_gop.o: $(efi_gop_mod_DEPENDENCIES) efi_gop_mod-video_efi_gop.o + -rm -f $@ + $(TARGET_CC) $(efi_gop_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ efi_gop_mod-video_efi_gop.o + +mod-efi_gop.o: mod-efi_gop.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efi_gop_mod_CFLAGS) -DGRUB_FILE=\"mod-efi_gop.c\" -c -o $@ $< + +mod-efi_gop.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'efi_gop' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-efi_gop.lst: pre-efi_gop.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 efi_gop/' > $@ +else +def-efi_gop.lst: pre-efi_gop.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 efi_gop/' > $@ +endif + +und-efi_gop.lst: pre-efi_gop.o + echo 'efi_gop' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +efi_gop_mod-video_efi_gop.o: video/efi_gop.c $(video/efi_gop.c_DEPENDENCIES) + $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efi_gop_mod_CFLAGS) -DGRUB_FILE=\"video/efi_gop.c\" -MD -c -o $@ $< +-include efi_gop_mod-video_efi_gop.d + +clean-module-efi_gop_mod-video_efi_gop-extra.1: + rm -f cmd-efi_gop_mod-video_efi_gop.lst fs-efi_gop_mod-video_efi_gop.lst partmap-efi_gop_mod-video_efi_gop.lst handler-efi_gop_mod-video_efi_gop.lst parttool-efi_gop_mod-video_efi_gop.lst video-efi_gop_mod-video_efi_gop.lst terminal-efi_gop_mod-video_efi_gop.lst + +CLEAN_MODULE_TARGETS += clean-module-efi_gop_mod-video_efi_gop-extra.1 + +COMMANDFILES += cmd-efi_gop_mod-video_efi_gop.lst +FSFILES += fs-efi_gop_mod-video_efi_gop.lst +PARTTOOLFILES += parttool-efi_gop_mod-video_efi_gop.lst +PARTMAPFILES += partmap-efi_gop_mod-video_efi_gop.lst +HANDLERFILES += handler-efi_gop_mod-video_efi_gop.lst +TERMINALFILES += terminal-efi_gop_mod-video_efi_gop.lst +VIDEOFILES += video-efi_gop_mod-video_efi_gop.lst + +cmd-efi_gop_mod-video_efi_gop.lst: video/efi_gop.c $(video/efi_gop.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efi_gop_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh efi_gop > $@ || (rm -f $@; exit 1) + +fs-efi_gop_mod-video_efi_gop.lst: video/efi_gop.c $(video/efi_gop.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efi_gop_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh efi_gop > $@ || (rm -f $@; exit 1) + +parttool-efi_gop_mod-video_efi_gop.lst: video/efi_gop.c $(video/efi_gop.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efi_gop_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh efi_gop > $@ || (rm -f $@; exit 1) + +partmap-efi_gop_mod-video_efi_gop.lst: video/efi_gop.c $(video/efi_gop.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efi_gop_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh efi_gop > $@ || (rm -f $@; exit 1) + +handler-efi_gop_mod-video_efi_gop.lst: video/efi_gop.c $(video/efi_gop.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efi_gop_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh efi_gop > $@ || (rm -f $@; exit 1) + +terminal-efi_gop_mod-video_efi_gop.lst: video/efi_gop.c $(video/efi_gop.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(efi_gop_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh efi_gop > $@ || (rm -f $@; exit 1) + +video-efi_gop_mod-video_efi_gop.lst: video/efi_gop.c $(video/efi_gop.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Ivideo -I$(srcdir)/video $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(efi_gop_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh efi_gop > $@ || (rm -f $@; exit 1) + +efi_gop_mod_CFLAGS = $(COMMON_CFLAGS) +efi_gop_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += xnu.mod +xnu_mod_SOURCES = loader/xnu_resume.c loader/i386/xnu.c \ + loader/macho32.c loader/macho64.c loader/macho.c loader/xnu.c + +clean-module-xnu.mod.1: + rm -f xnu.mod mod-xnu.o mod-xnu.c pre-xnu.o xnu_mod-loader_xnu_resume.o xnu_mod-loader_i386_xnu.o xnu_mod-loader_macho32.o xnu_mod-loader_macho64.o xnu_mod-loader_macho.o xnu_mod-loader_xnu.o und-xnu.lst + +CLEAN_MODULE_TARGETS += clean-module-xnu.mod.1 + +clean-module-xnu.mod-symbol.1: + rm -f def-xnu.lst + +CLEAN_MODULE_TARGETS += clean-module-xnu.mod-symbol.1 +DEFSYMFILES += def-xnu.lst +mostlyclean-module-xnu.mod.1: + rm -f xnu_mod-loader_xnu_resume.d xnu_mod-loader_i386_xnu.d xnu_mod-loader_macho32.d xnu_mod-loader_macho64.d xnu_mod-loader_macho.d xnu_mod-loader_xnu.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-xnu.mod.1 +UNDSYMFILES += und-xnu.lst + +ifeq ($(TARGET_NO_MODULES), yes) +xnu.mod: pre-xnu.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(xnu_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-xnu.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +xnu.mod: pre-xnu.o mod-xnu.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(xnu_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-xnu.o mod-xnu.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +xnu.mod: pre-xnu.o mod-xnu.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(xnu_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-xnu.o mod-xnu.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-xnu.o: $(xnu_mod_DEPENDENCIES) xnu_mod-loader_xnu_resume.o xnu_mod-loader_i386_xnu.o xnu_mod-loader_macho32.o xnu_mod-loader_macho64.o xnu_mod-loader_macho.o xnu_mod-loader_xnu.o + -rm -f $@ + $(TARGET_CC) $(xnu_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ xnu_mod-loader_xnu_resume.o xnu_mod-loader_i386_xnu.o xnu_mod-loader_macho32.o xnu_mod-loader_macho64.o xnu_mod-loader_macho.o xnu_mod-loader_xnu.o + +mod-xnu.o: mod-xnu.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -DGRUB_FILE=\"mod-xnu.c\" -c -o $@ $< + +mod-xnu.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'xnu' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-xnu.lst: pre-xnu.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 xnu/' > $@ +else +def-xnu.lst: pre-xnu.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 xnu/' > $@ +endif + +und-xnu.lst: pre-xnu.o + echo 'xnu' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +xnu_mod-loader_xnu_resume.o: loader/xnu_resume.c $(loader/xnu_resume.c_DEPENDENCIES) + $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -DGRUB_FILE=\"loader/xnu_resume.c\" -MD -c -o $@ $< +-include xnu_mod-loader_xnu_resume.d + +clean-module-xnu_mod-loader_xnu_resume-extra.1: + rm -f cmd-xnu_mod-loader_xnu_resume.lst fs-xnu_mod-loader_xnu_resume.lst partmap-xnu_mod-loader_xnu_resume.lst handler-xnu_mod-loader_xnu_resume.lst parttool-xnu_mod-loader_xnu_resume.lst video-xnu_mod-loader_xnu_resume.lst terminal-xnu_mod-loader_xnu_resume.lst + +CLEAN_MODULE_TARGETS += clean-module-xnu_mod-loader_xnu_resume-extra.1 + +COMMANDFILES += cmd-xnu_mod-loader_xnu_resume.lst +FSFILES += fs-xnu_mod-loader_xnu_resume.lst +PARTTOOLFILES += parttool-xnu_mod-loader_xnu_resume.lst +PARTMAPFILES += partmap-xnu_mod-loader_xnu_resume.lst +HANDLERFILES += handler-xnu_mod-loader_xnu_resume.lst +TERMINALFILES += terminal-xnu_mod-loader_xnu_resume.lst +VIDEOFILES += video-xnu_mod-loader_xnu_resume.lst + +cmd-xnu_mod-loader_xnu_resume.lst: loader/xnu_resume.c $(loader/xnu_resume.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh xnu > $@ || (rm -f $@; exit 1) + +fs-xnu_mod-loader_xnu_resume.lst: loader/xnu_resume.c $(loader/xnu_resume.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh xnu > $@ || (rm -f $@; exit 1) + +parttool-xnu_mod-loader_xnu_resume.lst: loader/xnu_resume.c $(loader/xnu_resume.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh xnu > $@ || (rm -f $@; exit 1) + +partmap-xnu_mod-loader_xnu_resume.lst: loader/xnu_resume.c $(loader/xnu_resume.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh xnu > $@ || (rm -f $@; exit 1) + +handler-xnu_mod-loader_xnu_resume.lst: loader/xnu_resume.c $(loader/xnu_resume.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh xnu > $@ || (rm -f $@; exit 1) + +terminal-xnu_mod-loader_xnu_resume.lst: loader/xnu_resume.c $(loader/xnu_resume.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh xnu > $@ || (rm -f $@; exit 1) + +video-xnu_mod-loader_xnu_resume.lst: loader/xnu_resume.c $(loader/xnu_resume.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh xnu > $@ || (rm -f $@; exit 1) + +xnu_mod-loader_i386_xnu.o: loader/i386/xnu.c $(loader/i386/xnu.c_DEPENDENCIES) + $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -DGRUB_FILE=\"loader/i386/xnu.c\" -MD -c -o $@ $< +-include xnu_mod-loader_i386_xnu.d + +clean-module-xnu_mod-loader_i386_xnu-extra.1: + rm -f cmd-xnu_mod-loader_i386_xnu.lst fs-xnu_mod-loader_i386_xnu.lst partmap-xnu_mod-loader_i386_xnu.lst handler-xnu_mod-loader_i386_xnu.lst parttool-xnu_mod-loader_i386_xnu.lst video-xnu_mod-loader_i386_xnu.lst terminal-xnu_mod-loader_i386_xnu.lst + +CLEAN_MODULE_TARGETS += clean-module-xnu_mod-loader_i386_xnu-extra.1 + +COMMANDFILES += cmd-xnu_mod-loader_i386_xnu.lst +FSFILES += fs-xnu_mod-loader_i386_xnu.lst +PARTTOOLFILES += parttool-xnu_mod-loader_i386_xnu.lst +PARTMAPFILES += partmap-xnu_mod-loader_i386_xnu.lst +HANDLERFILES += handler-xnu_mod-loader_i386_xnu.lst +TERMINALFILES += terminal-xnu_mod-loader_i386_xnu.lst +VIDEOFILES += video-xnu_mod-loader_i386_xnu.lst + +cmd-xnu_mod-loader_i386_xnu.lst: loader/i386/xnu.c $(loader/i386/xnu.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh xnu > $@ || (rm -f $@; exit 1) + +fs-xnu_mod-loader_i386_xnu.lst: loader/i386/xnu.c $(loader/i386/xnu.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh xnu > $@ || (rm -f $@; exit 1) + +parttool-xnu_mod-loader_i386_xnu.lst: loader/i386/xnu.c $(loader/i386/xnu.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh xnu > $@ || (rm -f $@; exit 1) + +partmap-xnu_mod-loader_i386_xnu.lst: loader/i386/xnu.c $(loader/i386/xnu.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh xnu > $@ || (rm -f $@; exit 1) + +handler-xnu_mod-loader_i386_xnu.lst: loader/i386/xnu.c $(loader/i386/xnu.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh xnu > $@ || (rm -f $@; exit 1) + +terminal-xnu_mod-loader_i386_xnu.lst: loader/i386/xnu.c $(loader/i386/xnu.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh xnu > $@ || (rm -f $@; exit 1) + +video-xnu_mod-loader_i386_xnu.lst: loader/i386/xnu.c $(loader/i386/xnu.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader/i386 -I$(srcdir)/loader/i386 $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh xnu > $@ || (rm -f $@; exit 1) + +xnu_mod-loader_macho32.o: loader/macho32.c $(loader/macho32.c_DEPENDENCIES) + $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -DGRUB_FILE=\"loader/macho32.c\" -MD -c -o $@ $< +-include xnu_mod-loader_macho32.d + +clean-module-xnu_mod-loader_macho32-extra.1: + rm -f cmd-xnu_mod-loader_macho32.lst fs-xnu_mod-loader_macho32.lst partmap-xnu_mod-loader_macho32.lst handler-xnu_mod-loader_macho32.lst parttool-xnu_mod-loader_macho32.lst video-xnu_mod-loader_macho32.lst terminal-xnu_mod-loader_macho32.lst + +CLEAN_MODULE_TARGETS += clean-module-xnu_mod-loader_macho32-extra.1 + +COMMANDFILES += cmd-xnu_mod-loader_macho32.lst +FSFILES += fs-xnu_mod-loader_macho32.lst +PARTTOOLFILES += parttool-xnu_mod-loader_macho32.lst +PARTMAPFILES += partmap-xnu_mod-loader_macho32.lst +HANDLERFILES += handler-xnu_mod-loader_macho32.lst +TERMINALFILES += terminal-xnu_mod-loader_macho32.lst +VIDEOFILES += video-xnu_mod-loader_macho32.lst + +cmd-xnu_mod-loader_macho32.lst: loader/macho32.c $(loader/macho32.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh xnu > $@ || (rm -f $@; exit 1) + +fs-xnu_mod-loader_macho32.lst: loader/macho32.c $(loader/macho32.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh xnu > $@ || (rm -f $@; exit 1) + +parttool-xnu_mod-loader_macho32.lst: loader/macho32.c $(loader/macho32.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh xnu > $@ || (rm -f $@; exit 1) + +partmap-xnu_mod-loader_macho32.lst: loader/macho32.c $(loader/macho32.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh xnu > $@ || (rm -f $@; exit 1) + +handler-xnu_mod-loader_macho32.lst: loader/macho32.c $(loader/macho32.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh xnu > $@ || (rm -f $@; exit 1) + +terminal-xnu_mod-loader_macho32.lst: loader/macho32.c $(loader/macho32.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh xnu > $@ || (rm -f $@; exit 1) + +video-xnu_mod-loader_macho32.lst: loader/macho32.c $(loader/macho32.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh xnu > $@ || (rm -f $@; exit 1) + +xnu_mod-loader_macho64.o: loader/macho64.c $(loader/macho64.c_DEPENDENCIES) + $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -DGRUB_FILE=\"loader/macho64.c\" -MD -c -o $@ $< +-include xnu_mod-loader_macho64.d + +clean-module-xnu_mod-loader_macho64-extra.1: + rm -f cmd-xnu_mod-loader_macho64.lst fs-xnu_mod-loader_macho64.lst partmap-xnu_mod-loader_macho64.lst handler-xnu_mod-loader_macho64.lst parttool-xnu_mod-loader_macho64.lst video-xnu_mod-loader_macho64.lst terminal-xnu_mod-loader_macho64.lst + +CLEAN_MODULE_TARGETS += clean-module-xnu_mod-loader_macho64-extra.1 + +COMMANDFILES += cmd-xnu_mod-loader_macho64.lst +FSFILES += fs-xnu_mod-loader_macho64.lst +PARTTOOLFILES += parttool-xnu_mod-loader_macho64.lst +PARTMAPFILES += partmap-xnu_mod-loader_macho64.lst +HANDLERFILES += handler-xnu_mod-loader_macho64.lst +TERMINALFILES += terminal-xnu_mod-loader_macho64.lst +VIDEOFILES += video-xnu_mod-loader_macho64.lst + +cmd-xnu_mod-loader_macho64.lst: loader/macho64.c $(loader/macho64.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh xnu > $@ || (rm -f $@; exit 1) + +fs-xnu_mod-loader_macho64.lst: loader/macho64.c $(loader/macho64.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh xnu > $@ || (rm -f $@; exit 1) + +parttool-xnu_mod-loader_macho64.lst: loader/macho64.c $(loader/macho64.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh xnu > $@ || (rm -f $@; exit 1) + +partmap-xnu_mod-loader_macho64.lst: loader/macho64.c $(loader/macho64.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh xnu > $@ || (rm -f $@; exit 1) + +handler-xnu_mod-loader_macho64.lst: loader/macho64.c $(loader/macho64.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh xnu > $@ || (rm -f $@; exit 1) + +terminal-xnu_mod-loader_macho64.lst: loader/macho64.c $(loader/macho64.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh xnu > $@ || (rm -f $@; exit 1) + +video-xnu_mod-loader_macho64.lst: loader/macho64.c $(loader/macho64.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh xnu > $@ || (rm -f $@; exit 1) + +xnu_mod-loader_macho.o: loader/macho.c $(loader/macho.c_DEPENDENCIES) + $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -DGRUB_FILE=\"loader/macho.c\" -MD -c -o $@ $< +-include xnu_mod-loader_macho.d + +clean-module-xnu_mod-loader_macho-extra.1: + rm -f cmd-xnu_mod-loader_macho.lst fs-xnu_mod-loader_macho.lst partmap-xnu_mod-loader_macho.lst handler-xnu_mod-loader_macho.lst parttool-xnu_mod-loader_macho.lst video-xnu_mod-loader_macho.lst terminal-xnu_mod-loader_macho.lst + +CLEAN_MODULE_TARGETS += clean-module-xnu_mod-loader_macho-extra.1 + +COMMANDFILES += cmd-xnu_mod-loader_macho.lst +FSFILES += fs-xnu_mod-loader_macho.lst +PARTTOOLFILES += parttool-xnu_mod-loader_macho.lst +PARTMAPFILES += partmap-xnu_mod-loader_macho.lst +HANDLERFILES += handler-xnu_mod-loader_macho.lst +TERMINALFILES += terminal-xnu_mod-loader_macho.lst +VIDEOFILES += video-xnu_mod-loader_macho.lst + +cmd-xnu_mod-loader_macho.lst: loader/macho.c $(loader/macho.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh xnu > $@ || (rm -f $@; exit 1) + +fs-xnu_mod-loader_macho.lst: loader/macho.c $(loader/macho.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh xnu > $@ || (rm -f $@; exit 1) + +parttool-xnu_mod-loader_macho.lst: loader/macho.c $(loader/macho.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh xnu > $@ || (rm -f $@; exit 1) + +partmap-xnu_mod-loader_macho.lst: loader/macho.c $(loader/macho.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh xnu > $@ || (rm -f $@; exit 1) + +handler-xnu_mod-loader_macho.lst: loader/macho.c $(loader/macho.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh xnu > $@ || (rm -f $@; exit 1) + +terminal-xnu_mod-loader_macho.lst: loader/macho.c $(loader/macho.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh xnu > $@ || (rm -f $@; exit 1) + +video-xnu_mod-loader_macho.lst: loader/macho.c $(loader/macho.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh xnu > $@ || (rm -f $@; exit 1) + +xnu_mod-loader_xnu.o: loader/xnu.c $(loader/xnu.c_DEPENDENCIES) + $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -DGRUB_FILE=\"loader/xnu.c\" -MD -c -o $@ $< +-include xnu_mod-loader_xnu.d + +clean-module-xnu_mod-loader_xnu-extra.1: + rm -f cmd-xnu_mod-loader_xnu.lst fs-xnu_mod-loader_xnu.lst partmap-xnu_mod-loader_xnu.lst handler-xnu_mod-loader_xnu.lst parttool-xnu_mod-loader_xnu.lst video-xnu_mod-loader_xnu.lst terminal-xnu_mod-loader_xnu.lst + +CLEAN_MODULE_TARGETS += clean-module-xnu_mod-loader_xnu-extra.1 + +COMMANDFILES += cmd-xnu_mod-loader_xnu.lst +FSFILES += fs-xnu_mod-loader_xnu.lst +PARTTOOLFILES += parttool-xnu_mod-loader_xnu.lst +PARTMAPFILES += partmap-xnu_mod-loader_xnu.lst +HANDLERFILES += handler-xnu_mod-loader_xnu.lst +TERMINALFILES += terminal-xnu_mod-loader_xnu.lst +VIDEOFILES += video-xnu_mod-loader_xnu.lst + +cmd-xnu_mod-loader_xnu.lst: loader/xnu.c $(loader/xnu.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh xnu > $@ || (rm -f $@; exit 1) + +fs-xnu_mod-loader_xnu.lst: loader/xnu.c $(loader/xnu.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh xnu > $@ || (rm -f $@; exit 1) + +parttool-xnu_mod-loader_xnu.lst: loader/xnu.c $(loader/xnu.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh xnu > $@ || (rm -f $@; exit 1) + +partmap-xnu_mod-loader_xnu.lst: loader/xnu.c $(loader/xnu.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh xnu > $@ || (rm -f $@; exit 1) + +handler-xnu_mod-loader_xnu.lst: loader/xnu.c $(loader/xnu.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh xnu > $@ || (rm -f $@; exit 1) + +terminal-xnu_mod-loader_xnu.lst: loader/xnu.c $(loader/xnu.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh xnu > $@ || (rm -f $@; exit 1) + +video-xnu_mod-loader_xnu.lst: loader/xnu.c $(loader/xnu.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -Iloader -I$(srcdir)/loader $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(xnu_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh xnu > $@ || (rm -f $@; exit 1) + +xnu_mod_CFLAGS = $(COMMON_CFLAGS) +xnu_mod_LDFLAGS = $(COMMON_LDFLAGS) +xnu_mod_ASFLAGS = $(COMMON_ASFLAGS) + +include $(srcdir)/conf/i386.mk +include $(srcdir)/conf/common.mk +CLEANFILES += kernel.img $(kernel_img_OBJECTS) +ifeq ($(kernel_img_RELOCATABLE),yes) +kernel.img: $(kernel_img_DEPENDENCIES) $(kernel_img_OBJECTS) + $(TARGET_CC) -Wl,-r,-d -o $@ $(kernel_img_OBJECTS) $(TARGET_LDFLAGS) $(kernel_img_LDFLAGS) + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K start -R .note -R .comment $@; fi +else +kernel.img: $(kernel_img_DEPENDENCIES) $(kernel_img_OBJECTS) + $(TARGET_CC) -o $@ $(kernel_img_OBJECTS) $(TARGET_LDFLAGS) $(kernel_img_LDFLAGS) + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) -R .rel.dyn -R .reginfo -R .note -R .comment $@; fi +endif + --- grub2-1.98+20100804.orig/po/it.po +++ grub2-1.98+20100804/po/it.po @@ -0,0 +1,1363 @@ +# Italian translations for grub package +# Copyright (C) 2009, 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the grub package. +# +# transparent compression -> compressione immediata +# non avendo trovato molto in giro, ho cercato un sinonimo di +# "trasparente". Praticamente la "transparent compression" è una +# compressione on-the-fly, "trasparente" all'utente, da qui +# "immediata", visto che non si nota +# boot catalog -> lasciato invariato, dovrebbe essere il file boot.catalog, non so +# se tradurlo con "catalogo di boot" sia comprensibile... +# Joliet -> usato sempre con la maiuscola +# +# http://en.wikipedia.org/wiki/Transparency_(computing) +# http://en.wikipedia.org/wiki/Rock_Ridge +# http://en.wikipedia.org/wiki/Joliet_(file_system) +# http://www.linux.com/archive/feature/151485 +# Milo Casagrande , 2009, 2010. +msgid "" +msgstr "" +"Project-Id-Version: grub-1.97+20100124\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-06-19 01:35+0100\n" +"PO-Revision-Date: 2010-04-06 19:08+0200\n" +"Last-Translator: Milo Casagrande \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: commands/acpi.c:40 +msgid "Don't load host tables specified by comma-separated list." +msgstr "Non carica le tabelle host specificate come elenco separato da virgole" + +#: commands/acpi.c:43 +msgid "Load only tables specified by comma-separated list." +msgstr "Carica solo le tabelle specificate come elenco separato da virgole" + +#: commands/acpi.c:44 +msgid "Expose v1 tables." +msgstr "Espone le tabelle v1" + +#: commands/acpi.c:45 +msgid "Expose v2 and v3 tables." +msgstr "Espone le tabelle v2 e v3" + +#: commands/acpi.c:46 +msgid "Set OEMID of RSDP, XSDT and RSDT." +msgstr "Imposta OEMID di RSDP, XSDT e RSDT" + +#: commands/acpi.c:48 +msgid "Set OEMTABLE ID of RSDP, XSDT and RSDT." +msgstr "Imposta l'ID OEMTABLE di RSDP, XSDT e RSDT" + +#: commands/acpi.c:50 +msgid "Set OEMTABLE revision of RSDP, XSDT and RSDT." +msgstr "Imposta la revisione OEMTABLE di RSDP, XSDT e RSDT." + +#: commands/acpi.c:52 +msgid "Set creator field of RSDP, XSDT and RSDT." +msgstr "Imposta il campo creatore di RSDP, XSDT e RSDT" + +#: commands/acpi.c:54 +msgid "Set creator revision of RSDP, XSDT and RSDT." +msgstr "Imposta la revisione del creatore di RSDP, XSDT e RSDT" + +# (ndt) credo che quel punto non ci debba essere, altrimenti non riesco a capire il senso della frase... +#: commands/acpi.c:55 +msgid "" +"Don't update EBDA. May fix failures or hangs on some. BIOSes but makes it " +"ineffective with OS not receiving RSDP from GRUB." +msgstr "" +"Non aggiorna EBDA: potrebbe risolvere dei problemi o bloccarsi con alcuni " +"BIOS, ma non è efficace con sistemi che non ricevono RSDP da GRUB" + +#: commands/acpi.c:763 +msgid "" +"[-1|-2] [--exclude=TABLE1,TABLE2|--load-only=table1,table2] FILE1 [FILE2] " +"[...]" +msgstr "" +"[-1|-2] [--exclude=TABELLA1,TABELLA2|--load-only=tabella1,tabella2] FILE1 " +"[FILE2] [...]" + +#: commands/acpi.c:766 +msgid "Load host ACPI tables and tables specified by arguments." +msgstr "Carica le tabelle ACPI dell'host e quelle specificate dagli argomenti" + +#: commands/blocklist.c:113 commands/cat.c:82 commands/configfile.c:57 +#: commands/configfile.c:60 commands/configfile.c:65 commands/crc.c:64 +#: commands/minicmd.c:353 loader/i386/bsd.c:1287 loader/i386/bsd.c:1291 +#: loader/i386/bsd.c:1295 +msgid "FILE" +msgstr "FILE" + +#: commands/blocklist.c:113 +msgid "Print a block list." +msgstr "Stampa una block list" + +#: commands/boot.c:190 +msgid "Boot an operating system." +msgstr "Avvia un sistema operativo" + +#: commands/cat.c:82 commands/minicmd.c:353 +msgid "Show the contents of a file." +msgstr "Mostra il contenuto di un file" + +#: commands/cmp.c:113 +msgid "FILE1 FILE2" +msgstr "FILE1 FILE2" + +#: commands/cmp.c:113 +msgid "Compare two files." +msgstr "Compara due file" + +#: commands/configfile.c:57 +msgid "Load another config file." +msgstr "Carica un altro file di configurazione" + +#: commands/configfile.c:61 commands/configfile.c:66 +msgid "Load another config file without changing context." +msgstr "Carica un altro file di configurazione senza cambiare contesto" + +#: commands/crc.c:65 +msgid "Calculate the crc32 checksum of a file." +msgstr "Calcola il checksum crc32 di un file" + +#: commands/date.c:139 +msgid "[[year-]month-day] [hour:minute[:second]]" +msgstr "[[anno-]mese-giorno] [ora:minuti[:secondi]]" + +#: commands/date.c:140 +msgid "Command to display/set current datetime." +msgstr "Comando per visualizzare/impostare la data e l'ora correnti" + +#: commands/echo.c:27 +msgid "Do not output the trailing newline." +msgstr "Non visualizzare il newline finale" + +#: commands/echo.c:28 +msgid "Enable interpretation of backslash escapes." +msgstr "Abilita l'interpretazione della sequenza di escape di backslash" + +#: commands/echo.c:117 +msgid "[-e|-n] STRING" +msgstr "[-e|-n] STRINGA" + +#: commands/echo.c:117 +msgid "Display a line of text." +msgstr "Visualizza una riga di testo" + +#: commands/efi/fixvideo.c:103 +msgid "Fix video problem." +msgstr "Corregge problemi video" + +#: commands/efi/loadbios.c:207 +msgid "Fake BIOS." +msgstr "BIOS fasullo" + +#: commands/efi/loadbios.c:211 +msgid "Load BIOS dump." +msgstr "Carica un dump BIOS" + +#: commands/gptsync.c:244 +msgid "DEVICE [PARTITION[+/-[TYPE]]] ..." +msgstr "DEVICE [PARTIZIONE[+/-[TIPO]]] ..." + +#: commands/gptsync.c:245 +#, fuzzy +msgid "" +"Fill hybrid MBR of GPT drive DEVICE. Specified partitions will be a part of " +"hybrid MBR. Up to 3 partitions are allowed. TYPE is an MBR type. + means " +"that partition is active. Only one partition can be active." +msgstr "" +"Riempie l'MBR ibrido dell'unità GPT DEVICE: le partizioni specificate " +"saranno parte di un MBR ibrido; sono consentite fino a 3 partizioni; TIPO è " +"un tipo di MBR; + indica che la partizione è attiva, solo una partizione può " +"essere attiva" + +#: commands/halt.c:39 +msgid "" +"Halts the computer. This command does not work on all firmware " +"implementations." +msgstr "" +"Arresta il computer: questo comando non funziona con tutte le " +"implementazioni firmware" + +#: commands/hdparm.c:30 +msgid "" +"Set Advanced Power Management\n" +"(1=low, ..., 254=high, 255=off)." +msgstr "" +"Imposta \"Advanced Power Management\"\n" +"(1=basso, ..., 254=elevato, 255=spento)" + +#: commands/hdparm.c:33 +msgid "Check power mode." +msgstr "Verifica la modalità di alimentazione" + +#: commands/hdparm.c:34 +msgid "Freeze ATA security settings until reset." +msgstr "Blocca le impostazioni di sicurezza ATA fino a un reset" + +#: commands/hdparm.c:36 +msgid "Check SMART health status." +msgstr "Verifica lo stato SMART" + +#: commands/hdparm.c:37 +msgid "" +"Set Automatic Acoustic Management\n" +"(0=off, 128=quiet, ..., 254=fast)." +msgstr "" +"Imposta \"Automatic Acoustic Management\"\n" +"(0=spento, 128=silenzioso, ..., 254=veloce)" + +#: commands/hdparm.c:40 +msgid "" +"Set standby timeout\n" +"(0=off, 1=5s, 2=10s, ..., 240=20m, 241=30m, ...)." +msgstr "" +"Imposta il timeout di standby\n" +"(0=spento, 1=5s, 2=10s, ..., 240=20m, 241=30m, ...)" + +#: commands/hdparm.c:43 +msgid "Set drive to standby mode." +msgstr "Imposta l'unità in modalità standby" + +#: commands/hdparm.c:44 +msgid "Set drive to sleep mode." +msgstr "Imposta l'unità in modalità pausa" + +#: commands/hdparm.c:45 +msgid "Print drive identity and settings." +msgstr "Stampa informazioni e impostazioni dell'unità" + +#: commands/hdparm.c:47 +msgid "Dump contents of ATA IDENTIFY sector." +msgstr "Esegue il dump del contenuto del settore ATA IDENTIFY" + +#: commands/hdparm.c:49 +msgid "Disable/enable SMART (0/1)." +msgstr "Disabilita/Abilita SMART (0/1)" + +#: commands/hdparm.c:50 +msgid "Do not print messages." +msgstr "Non stampa alcun messaggio" + +#: commands/hdparm.c:414 +msgid "[OPTIONS] DISK" +msgstr "[OPZIONI] DISCO" + +#: commands/hdparm.c:415 +msgid "Get/set ATA disk parameters." +msgstr "Recupera/Imposta parametri ATA" + +#: commands/help.c:112 lib/arg.c:110 +msgid "Usage:" +msgstr "Uso:" + +#: commands/help.c:129 +msgid "[PATTERN ...]" +msgstr "[MODELLO ...]" + +#: commands/help.c:130 +msgid "Show a help message." +msgstr "Mostra un messaggio di aiuto" + +#: commands/hexdump.c:30 +msgid "Skip offset bytes from the beginning of file." +msgstr "Salta un offset di byte dall'inizio del file" + +#: commands/hexdump.c:32 +msgid "Read only LENGTH bytes." +msgstr "Legge solo LUNGHEZZA byte" + +#: commands/hexdump.c:125 +msgid "[OPTIONS] FILE_OR_DEVICE" +msgstr "[OPZIONI] FILE_O_DEVICE" + +#: commands/hexdump.c:126 +msgid "Dump the contents of a file or memory." +msgstr "Esegue il dump del contenuto di un file o della memoria" + +#: commands/i386/cpuid.c:37 +msgid "Check for long mode flag (default)." +msgstr "Verifica la presenza del flag per la modalità lunga (predefinito)" + +#: commands/i386/cpuid.c:92 +msgid "Check for CPU features." +msgstr "Verifica le caratteristiche della CPU" + +#: commands/i386/pc/drivemap.c:37 +msgid "Show the current mappings." +msgstr "Mostra le mappature attuali" + +#: commands/i386/pc/drivemap.c:38 +msgid "Reset all mappings to the default values." +msgstr "Ripristina le mappature ai valori predefiniti" + +#: commands/i386/pc/drivemap.c:39 +msgid "Perform both direct and reverse mappings." +msgstr "Esegue mappature sia dirette sia inverse" + +#: commands/i386/pc/drivemap.c:406 +msgid "-l | -r | [-s] grubdev osdisk." +msgstr "-l | -r | [-s] devgrub discoos" + +#: commands/i386/pc/drivemap.c:407 +msgid "Manage the BIOS drive mappings." +msgstr "Gestisce le mappature delle unità del BIOS" + +#: commands/i386/pc/halt.c:27 +msgid "Do not use APM to halt the computer." +msgstr "Non usa APM per arrestare il computer" + +#: commands/i386/pc/halt.c:51 +msgid "Halt the system, if possible using APM." +msgstr "Arresta il sistema, utilizzando APM se possibile" + +#: commands/i386/pc/play.c:266 +msgid "FILE | TEMPO [PITCH1 DURATION1] [PITCH2 DURATION2] ... " +msgstr "" + +#: commands/i386/pc/play.c:267 +msgid "Play a tune." +msgstr "Riproduce un suono" + +#: commands/i386/pc/pxecmd.c:46 +msgid "Unload PXE environment." +msgstr "Rimuove l'ambiente PXE" + +#: commands/i386/pc/vbeinfo.c:179 +msgid "List compatible VESA BIOS extension video modes." +msgstr "Elenca le modalità video compatibili con l'estensione VESA BIOS" + +#: commands/i386/pc/vbetest.c:173 +msgid "Test VESA BIOS Extension 2.0+ support." +msgstr "Verifica il supporto a VESA BIOS Extension 2.0+" + +#: commands/ieee1275/suspend.c:43 +msgid "Return to Open Firmware prompt." +msgstr "Ritorna al prompt di Open Firmware" + +#: commands/keystatus.c:28 +msgid "Check Shift key." +msgstr "Verifica il tasto Maiusc" + +#: commands/keystatus.c:29 +msgid "Check Control key." +msgstr "Verifica il tasto Control" + +#: commands/keystatus.c:30 +msgid "Check Alt key." +msgstr "Verifica il tasto Alt" + +#: commands/keystatus.c:85 +msgid "[--shift] [--ctrl] [--alt]" +msgstr "[--shift] [--ctrl] [--alt]" + +#: commands/keystatus.c:86 +msgid "Check key modifier status." +msgstr "Verifica lo stato dei modificatori di stato" + +#: commands/loadenv.c:33 +msgid "Specify filename." +msgstr "Specifica il nome del file" + +#: commands/loadenv.c:378 commands/loadenv.c:384 +msgid "[-f FILE]" +msgstr "[-f FILE]" + +#: commands/loadenv.c:379 +msgid "Load variables from environment block file." +msgstr "Carica le variabile dal file a blocchi dell'ambiente" + +#: commands/loadenv.c:385 +msgid "List variables from environment block file." +msgstr "Elenca le variabili dal file a blocchi d'ambiente" + +#: commands/loadenv.c:390 +msgid "[-f FILE] variable_name [...]" +msgstr "[-f FILE] nome_variabile [...]" + +#: commands/loadenv.c:391 +msgid "Save variables to environment block file." +msgstr "Salva le variabili sul file a blocchi d'ambiente" + +#: commands/ls.c:37 +msgid "Show a long list with more detailed information." +msgstr "Mostra un elenco con informazioni più dettagliate" + +#: commands/ls.c:38 +msgid "Print sizes in a human readable format." +msgstr "Stampa le dimensioni in un formato comprensibile" + +#: commands/ls.c:39 +msgid "List all files." +msgstr "Elenca tutti i file" + +#: commands/ls.c:269 +msgid "[-l|-h|-a] [FILE]" +msgstr "[-l|-h|-a] [FILE]" + +#: commands/ls.c:270 +msgid "List devices and files." +msgstr "Elenca device e file." + +#: commands/lsmmap.c:51 +msgid "List memory map provided by firmware." +msgstr "Elenca la mappa delle memoria fornita dal firmware" + +#: commands/lspci.c:228 +msgid "List PCI devices." +msgstr "Elenca device PCI" + +#: commands/memrw.c:31 +msgid "Save read value into variable VARNAME." +msgstr "Salva il valore di lettura nella variabile NOMEVAR" + +#: commands/memrw.c:123 commands/memrw.c:126 commands/memrw.c:129 +#: commands/minicmd.c:362 +msgid "ADDR" +msgstr "IND" + +#: commands/memrw.c:123 +msgid "Read byte from ADDR." +msgstr "Legge byte da IND" + +#: commands/memrw.c:126 +msgid "Read word from ADDR." +msgstr "Legge word da IND" + +#: commands/memrw.c:129 +msgid "Read dword from ADDR." +msgstr "Legge dword da IND" + +#: commands/memrw.c:132 commands/memrw.c:135 commands/memrw.c:138 +msgid "ADDR VALUE [MASK]" +msgstr "IND VALORE [MASC]" + +#: commands/memrw.c:132 +msgid "Write byte VALUE to ADDR." +msgstr "Scrive il VALORE byte in IND" + +#: commands/memrw.c:135 +msgid "Write word VALUE to ADDR." +msgstr "Scrive il VALORE word in IND" + +#: commands/memrw.c:138 +msgid "Write dword VALUE to ADDR." +msgstr "Scrive il VALORE dword in IND" + +#: commands/minicmd.c:356 +msgid "Show this message." +msgstr "Mostra questo messaggio" + +#: commands/minicmd.c:359 commands/probe.c:154 +msgid "[DEVICE]" +msgstr "[DEVICE]" + +#: commands/minicmd.c:359 +msgid "Set the root device." +msgstr "Imposta il device root" + +#: commands/minicmd.c:362 +msgid "Dump memory." +msgstr "Esegue il dump della memoria" + +#: commands/minicmd.c:365 +msgid "MODULE" +msgstr "MODULO" + +#: commands/minicmd.c:365 +msgid "Remove a module." +msgstr "Rimuove un modulo" + +#: commands/minicmd.c:368 +msgid "Show loaded modules." +msgstr "Mostra i moduli caricati" + +#: commands/minicmd.c:371 +msgid "Exit from GRUB." +msgstr "Esce da GRUB" + +#: commands/minicmd.c:374 +msgid "Clear the screen." +msgstr "Pulisce lo schermo" + +#: commands/parttool.c:325 +msgid "PARTITION COMMANDS" +msgstr "PARTIZIONE COMANDI" + +#: commands/password.c:78 +msgid "USER PASSWORD" +msgstr "UTENTE PASSWORD" + +#: commands/password.c:79 +msgid "Set user password (plaintext). Unrecommended and insecure." +msgstr "" +"Imposta la password per l'utente (testo in chiaro): non consigliato e non " +"sicuro" + +#: commands/probe.c:38 +msgid "Set a variable to return value." +msgstr "Imposta una variabile al valore di ritorno" + +#: commands/probe.c:39 +msgid "Determine driver." +msgstr "Determina il driver" + +#: commands/probe.c:40 +msgid "Determine partition map type." +msgstr "Determina il tipo della mappa delle partizioni" + +#: commands/probe.c:41 +msgid "Determine filesystem type." +msgstr "Determina il tipo di file system" + +#: commands/probe.c:42 +msgid "Determine filesystem UUID." +msgstr "Determina lo UUID del file system" + +#: commands/probe.c:43 +msgid "Determine filesystem label." +msgstr "Determina l'etichetta del file system" + +#: commands/probe.c:155 +msgid "Retrieve device info." +msgstr "Recupera informazioni sul device" + +#: commands/read.c:83 +msgid "[ENVVAR]" +msgstr "[VARAMB]" + +#: commands/read.c:84 +msgid "Set variable with user input." +msgstr "Imposta la variabile con l'input dell'utente" + +#: commands/reboot.c:39 +msgid "Reboot the computer." +msgstr "Riavvia il computer" + +#: commands/search.c:161 +msgid "NAME [VARIABLE]" +msgstr "NOME [VARIABILE]" + +#: commands/search_file.c:5 +msgid "" +"Search devices by file. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Cerca i device per file: se VARIABILE è specificata, il primo device trovato " +"è impostato a una variabile" + +#: commands/search_label.c:5 +msgid "" +"Search devices by label. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Cerca i device per etichetta: se VARIABILE è specificata, il primo device " +"trovato è impostato a una variabile" + +#: commands/search_uuid.c:5 +msgid "" +"Search devices by UUID. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Cerca i device per UUID: se VARIABILE è specificata, il primo device trovato " +"è impostato a una variabile" + +#: commands/sleep.c:30 +msgid "Verbose countdown." +msgstr "Conto alla rovescia esplicito" + +#: commands/sleep.c:31 +msgid "Interruptible with ESC." +msgstr "Interrompibile con ESC" + +#: commands/sleep.c:105 +msgid "NUMBER_OF_SECONDS" +msgstr "NUMERO_DI_SECONDI" + +#: commands/sleep.c:106 +msgid "Wait for a specified number of seconds." +msgstr "Attende per un determinato numero di secondi" + +#: commands/test.c:424 +msgid "EXPRESSION ]" +msgstr "ESPRESSIONE ]" + +#: commands/test.c:424 commands/test.c:426 +msgid "Evaluate an expression." +msgstr "Valuta un'espressione" + +#: commands/test.c:426 +msgid "EXPRESSION" +msgstr "ESPRESSIONE" + +#: commands/true.c:47 +msgid "Do nothing, successfully." +msgstr "Non fa nulla, successo" + +#: commands/true.c:50 +msgid "Do nothing, unsuccessfully." +msgstr "Non fa nulla, insuccesso" + +#: commands/usbtest.c:208 +msgid "Test USB support." +msgstr "Verifica il supporto USB" + +#: commands/videotest.c:180 +msgid "Test video subsystem." +msgstr "Verifica il sottosistema video" + +#: commands/xnu_uuid.c:92 +msgid "GRUBUUID [VARNAME]" +msgstr "UUIDGRUB [NOMEVAR]" + +#: commands/xnu_uuid.c:93 +msgid "Transform 64-bit UUID to format suitable for XNU." +msgstr "Trasforma UUID 64-bit in un formato adatto per XNU" + +#: disk/loopback.c:40 +msgid "Delete the loopback device entry." +msgstr "Elimina la voce del device di loopback" + +#: disk/loopback.c:41 +msgid "Simulate a hard drive with partitions." +msgstr "Simula un disco fisso con partizioni" + +#: disk/loopback.c:249 +msgid "[-d|-p] DEVICENAME FILE." +msgstr "[-d|-p] NOMEDEVICE FILE" + +#: disk/loopback.c:250 +msgid "Make a device of a file." +msgstr "Crea un device da un file" + +#: hello/hello.c:43 +msgid "Say \"Hello World\"." +msgstr "Dice \"Hello World\"" + +#: lib/arg.c:34 +msgid "Display this help and exit." +msgstr "Visualizza questo aiuto ed esce" + +#: lib/arg.c:36 +msgid "Display the usage of this command and exit." +msgstr "Visualizza l'uso di questo comando ed esce" + +#: loader/efi/appleloader.c:325 +msgid "Boot legacy system." +msgstr "Avvia sistemi legacy" + +#: loader/efi/chainloader.c:340 loader/i386/pc/chainloader.c:166 +msgid "Load another boot loader." +msgstr "Carica un altro boot loader" + +#: loader/i386/bsd.c:65 +msgid "Display output on all consoles." +msgstr "Visualizza l'output su tutte le console" + +#: loader/i386/bsd.c:66 +msgid "Use serial console." +msgstr "Usa console seriale" + +#: loader/i386/bsd.c:67 loader/i386/bsd.c:93 loader/i386/bsd.c:114 +msgid "Ask for file name to reboot from." +msgstr "Chiede il nome del file da cui riavviare" + +#: loader/i386/bsd.c:68 +msgid "Use CDROM as root." +msgstr "Usa CDROM come root" + +#: loader/i386/bsd.c:69 +msgid "Invoke user configuration routing." +msgstr "Invoca il routing della configurazione utente" + +#: loader/i386/bsd.c:70 loader/i386/bsd.c:97 loader/i386/bsd.c:117 +msgid "Enter in KDB on boot." +msgstr "Entra in KDB all'avvio" + +#: loader/i386/bsd.c:71 +msgid "Use GDB remote debugger instead of DDB." +msgstr "Usa il debugger remoto GDB al posto di DDB" + +#: loader/i386/bsd.c:72 +msgid "Disable all boot output." +msgstr "Disabilita tutto l'output di avvio" + +#: loader/i386/bsd.c:74 +msgid "Wait for keypress after every line of output." +msgstr "Attende la pressione di un tasto dopo ogni riga di output" + +#: loader/i386/bsd.c:76 +msgid "Use compiled-in rootdev." +msgstr "Usa un rootdev compilato internamente" + +#: loader/i386/bsd.c:77 loader/i386/bsd.c:96 loader/i386/bsd.c:120 +msgid "Boot into single mode." +msgstr "Avvia in modalità single" + +#: loader/i386/bsd.c:78 loader/i386/bsd.c:121 +msgid "Boot with verbose messages." +msgstr "Avvia con messaggi prolissi" + +#: loader/i386/bsd.c:94 loader/i386/bsd.c:115 +msgid "Don't reboot, just halt." +msgstr "Non riavvia, arresta solamente" + +#: loader/i386/bsd.c:95 loader/i386/bsd.c:116 +msgid "Change configured devices." +msgstr "Modifica i device configurati" + +#: loader/i386/bsd.c:98 loader/i386/bsd.c:124 +msgid "Set root device." +msgstr "Imposta il device root" + +#: loader/i386/bsd.c:112 +msgid "Disable SMP." +msgstr "Disabilita SMP" + +#: loader/i386/bsd.c:113 +msgid "Disable ACPI." +msgstr "Disabilita ACPI" + +#: loader/i386/bsd.c:119 +msgid "Don't display boot diagnostic messages." +msgstr "Non visualizza messaggi diagnostici di avvio" + +#: loader/i386/bsd.c:122 +msgid "Boot with debug messages." +msgstr "Avvia con messaggi di debug" + +#: loader/i386/bsd.c:123 +msgid "Supress normal output (warnings remain)." +msgstr "Elimina l'output normale (gli avvisi restano)" + +#: loader/i386/bsd.c:124 +msgid "DEVICE" +msgstr "DEVICE" + +#: loader/i386/bsd.c:1287 +msgid "Load kernel of FreeBSD." +msgstr "Carica il kernel FreeBSD" + +#: loader/i386/bsd.c:1291 +msgid "Load kernel of OpenBSD." +msgstr "Carica il kernel OpenBSD" + +#: loader/i386/bsd.c:1295 +msgid "Load kernel of NetBSD." +msgstr "Carica il kernel NetBSD" + +#: loader/i386/bsd.c:1299 +msgid "Load FreeBSD env." +msgstr "Carica ambiente FreeBSD" + +#: loader/i386/bsd.c:1302 +msgid "Load FreeBSD kernel module." +msgstr "Carica un modulo del kernel FreeBSD" + +#: loader/i386/bsd.c:1305 +msgid "Load FreeBSD kernel module (ELF)." +msgstr "Carica un modulo del kernel FreeBSD (ELF)" + +#: loader/i386/efi/linux.c:1011 loader/i386/ieee1275/linux.c:301 +#: loader/i386/linux.c:1012 loader/i386/pc/linux.c:399 +#: loader/powerpc/ieee1275/linux.c:353 loader/sparc64/ieee1275/linux.c:519 +msgid "Load Linux." +msgstr "Carica Linux" + +#: loader/i386/efi/linux.c:1013 loader/i386/ieee1275/linux.c:303 +#: loader/i386/linux.c:1014 loader/i386/pc/linux.c:402 +#: loader/powerpc/ieee1275/linux.c:355 loader/sparc64/ieee1275/linux.c:521 +msgid "Load initrd." +msgstr "Carica initrd" + +# (ndt) dalla revisione: +# Questa sarebbe una "lista di proprietà dei dispositivi", ma potrebbe essere più fuorviante. Lasciata così come è ora. +#: loader/i386/xnu.c:1032 +msgid "Load device-properties dump." +msgstr "Carica il dump device-proprietà" + +#: loader/multiboot.c:337 +msgid "Load a multiboot 2 kernel." +msgstr "Carica un kernel multiboot 2" + +#: loader/multiboot.c:340 +#, fuzzy +msgid "Load a multiboot 2 module." +msgstr "Carica un modulo multiboot" + +#: loader/multiboot.c:343 +msgid "Load a multiboot kernel." +msgstr "Carica un kernel multiboot" + +#: loader/multiboot.c:346 +msgid "Load a multiboot module." +msgstr "Carica un modulo multiboot" + +#: loader/xnu.c:1428 +msgid "Load XNU image." +msgstr "Carica un'immagine XNU" + +#: loader/xnu.c:1430 +msgid "Load 64-bit XNU image." +msgstr "Carica un'immagine XNU 64-bit" + +#: loader/xnu.c:1432 +msgid "Load XNU extension package." +msgstr "Carica un pacchetto estensione XNU" + +#: loader/xnu.c:1434 +msgid "Load XNU extension." +msgstr "Carica un'estensione XNU" + +# (ndt) quella cosa tra quadre sembra essere un qualche cosa di specifico da Mac/OS X +#: loader/xnu.c:1436 +msgid "DIRECTORY [OSBundleRequired]" +msgstr "DIRECTORY [OSBundleRequired]" + +#: loader/xnu.c:1437 +msgid "Load XNU extension directory." +msgstr "Carica una directory d'estensione XNU" + +#: loader/xnu.c:1444 +msgid "Load a splash image for XNU." +msgstr "Carica un'immagine splash per XNU" + +#: loader/xnu.c:1449 +msgid "Load XNU hibernate image." +msgstr "Carica immagine ibernata di XNU" + +#: normal/auth.c:217 +msgid "Enter username: " +msgstr "Inserire il nome utente:" + +#: normal/auth.c:222 +msgid "Enter password: " +msgstr "Inserire la password:" + +#: normal/color.c:80 +#, c-format +msgid "Warning: syntax error (missing slash) in `%s'\n" +msgstr "Attenzione: errore di sintassi (slash mancante) in \"%s\"\n" + +#: normal/color.c:89 +#, c-format +msgid "Warning: invalid foreground color `%s'\n" +msgstr "Attenzione: colore di primo piano \"%s\" non valido\n" + +#: normal/color.c:95 +#, c-format +msgid "Warning: invalid background color `%s'\n" +msgstr "Attenzione: colore di sfondo \"%s\" non valido\n" + +#: normal/dyncmd.c:144 +msgid "not loaded" +msgstr "non caricato" + +#: normal/main.c:415 +#, c-format +msgid "GNU GRUB version %s" +msgstr "GNU GRUB versione %s" + +#: normal/main.c:552 +#, c-format +msgid "" +"Minimal BASH-like line editing is supported. For the first word, TAB lists " +"possible command completions. Anywhere else TAB lists possible device or " +"file completions. %s" +msgstr "" +"Supporto minimale per modifica in stile BASH. Per la prima parola, TAB " +"elenca i completamenti del comando. In altre parti elenca i device possibili " +"o il completamento dei file. %s" + +#: normal/main.c:555 +msgid "ESC at any time exits." +msgstr "ESC esce in qualsiasi momento." + +#: normal/main.c:670 +msgid "Enter normal mode." +msgstr "" + +#: normal/main.c:672 +msgid "Exit from normal mode." +msgstr "" + +#: normal/menu_entry.c:1061 +msgid "Possible commands are:" +msgstr "Possibili comandi sono:" + +#: normal/menu_entry.c:1065 +msgid "Possible devices are:" +msgstr "Possibili device sono:" + +#: normal/menu_entry.c:1069 +msgid "Possible files are:" +msgstr "Possibili file sono:" + +#: normal/menu_entry.c:1073 +msgid "Possible partitions are:" +msgstr "Possibili partizioni sono:" + +#: normal/menu_entry.c:1077 +msgid "Possible arguments are:" +msgstr "Possibili argomenti sono:" + +# (ndt) interessante... +#: normal/menu_entry.c:1081 +msgid "Possible things are:" +msgstr "Possibili cose sono:" + +#: normal/menu_entry.c:1185 +msgid "Booting a command list" +msgstr "Avvio di un elenco di comandi" + +#: normal/menu_entry.c:1398 +msgid "Press any key to continue..." +msgstr "Premere un tasto per continuare..." + +#: normal/menu_text.c:180 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"F1 to boot, F2=Ctrl-a, F3=Ctrl-e, F4 for a command-line or ESC to discard " +"edits and return to the GRUB menu." +msgstr "" +"Supporto minimale per modifica in stile Emacs. TAB elenca i completamenti. " +"Premere Ctrl-X per avviare, Ctrl-C per la riga di comando o Esc per tornare " +"al menù." + +#: normal/menu_text.c:185 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"Ctrl-x to boot, Ctrl-c for a command-line or ESC to discard edits and return " +"to the GRUB menu." +msgstr "" +"Supporto minimale per modifica in stile Emacs. TAB elenca i completamenti. " +"Premere Ctrl-X per avviare, Ctrl-C per la riga di comando o Esc per tornare " +"al menù." + +#: normal/menu_text.c:193 +#, c-format +msgid "Use the %C and %C keys to select which entry is highlighted.\n" +msgstr "Usare i tasti %C e %C per selezionare la voce da evidenziare.\n" + +#: normal/menu_text.c:210 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line. ESC to return previous menu.\n" +msgstr "" +"Premere Invio per avviare il sistema selezionato, \"e\" per modificare i " +"comandi prima dell'avvio oppure \"c\" per la riga di comando. \"Esc\" per " +"tornare al menù precedente.\n" + +#: normal/menu_text.c:218 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line.\n" +msgstr "" +"Premere Invio per avviare il sistema selezionato, \"e\" per modificare i " +"comandi prima dell'avvio oppure \"c\" per la riga di comando.\n" + +#: normal/menu_text.c:370 +#, c-format +msgid "The highlighted entry will be executed automatically in %ds." +msgstr "La voce selezionata verrà avviata automaticamente in %ds." + +#: normal/misc.c:41 +#, c-format +msgid "Partition %s:" +msgstr "Partizione %s:" + +#: normal/misc.c:46 +#, c-format +msgid "Device %s:" +msgstr "Device %s:" + +#: normal/misc.c:52 +msgid "Filesystem cannot be accessed" +msgstr "Impossibile accedere al file system" + +#: normal/misc.c:63 +#, c-format +msgid "Filesystem type %s" +msgstr "File system di tipo %s" + +#: normal/misc.c:73 +#, c-format +msgid "- Label \"%s\"" +msgstr "- Etichetta \"%s\"" + +# (ndt) lasiato il trattino: la data è nel formato YYYY-MM-DD, l'ultimo è il giorno della settimana +#: normal/misc.c:88 +#, c-format +msgid "- Last modification time %d-%02d-%02d %02d:%02d:%02d %s" +msgstr "- Ultima modifica %d-%02d-%02d %02d.%02d.%02d %s" + +#: normal/misc.c:111 +msgid "Unknown filesystem" +msgstr "File system sconosciuto" + +#: normal/misc.c:113 +msgid "Partition table" +msgstr "Tabella delle partizioni" + +#: term/serial.c:46 +msgid "Set the serial unit." +msgstr "Imposta l'unità seriale" + +#: term/serial.c:47 +msgid "Set the serial port address." +msgstr "Imposta l'indirizzo della porta seriale" + +#: term/serial.c:48 +msgid "Set the serial port speed." +msgstr "Imposta la velocità della porta seriale" + +#: term/serial.c:49 +msgid "Set the serial port word length." +msgstr "Imposta la lunghezza della parola della porta seriale" + +#: term/serial.c:50 +msgid "Set the serial port parity." +msgstr "Imposta la parità della porta seriale" + +#: term/serial.c:51 +msgid "Set the serial port stop bits." +msgstr "Imposta i bit di stop della porta seriale" + +#: term/serial.c:619 +#, fuzzy +msgid "[OPTIONS...]" +msgstr "[OPZIONI] DISCO" + +#: term/serial.c:620 +msgid "Configure serial port." +msgstr "" + +#: util/grub-mkimage.c:440 +msgid "the core image is too small" +msgstr "l'immagine core è troppo piccola" + +#: util/grub-mkimage.c:451 +msgid "cannot compress the kernel image" +msgstr "impossibile comprimere l'immagine del kernel" + +#: util/grub-mkimage.c:548 +msgid "prefix is too long" +msgstr "il prefisso è troppo lungo" + +#: util/grub-mkimage.c:672 +#, c-format +msgid "core image is too big (%p > %p)" +msgstr "l'immagine core è troppo grande (%p > %p)" + +#: util/grub-mkimage.c:678 +msgid "the core image is too big" +msgstr "l'immagine core è troppo grande" + +#: util/grub-mkimage.c:683 +#, c-format +msgid "diskboot.img size must be %u bytes" +msgstr "la dimensione di diskboot.img deve essere di %u byte" + +#: util/grub-mkimage.c:1168 util/i386/pc/grub-setup.c:619 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "Usare \"%s --help\" per ulteriori informazioni.\n" + +#: util/grub-mkimage.c:1187 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... [MODULES]\n" +"\n" +"Make a bootable image of GRUB.\n" +"\n" +" -d, --directory=DIR use images and modules under DIR [default=%s/" +"@platform@]\n" +" -p, --prefix=DIR set grub_prefix directory [default=%s]\n" +" -m, --memdisk=FILE embed FILE as a memdisk image\n" +" -f, --font=FILE embed FILE as a boot font\n" +" -c, --config=FILE embed FILE as boot config\n" +" -n, --note add NOTE segment for CHRP Open Firmware\n" +" -o, --output=FILE output a generated image to FILE [default=stdout]\n" +" -O, --format=FORMAT generate an image in format\n" +" available formats: %s\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 "" +"Uso: %s [OPZIONI]... [MODULI]\n" +"\n" +"Crea un'immagine avviabile di GRUB.\n" +"\n" +" -d, --directory=DIR Usa le immagini e i moduli in DIR [predefinito=" +"%s]\n" +" -p, --prefix=DIR Imposta la directory di grub_prefix [predefinito=" +"%s]\n" +" -m, --memdisk=FILE Incorpora FILE come immagine memdisk\n" +" -f, --font=FILE Incorpora FILE come carattere per l'avvio\n" +" -c, --config=FILE Incorpora FILE come configurazione di boot\n" +" -o, --output=FILE Invia in output un'immagine generata su FILE " +"[predefinito=stdout]\n" +" -O, --format=FORMATO Genera un'immagine nel formato [predefinito=" + +#: util/grub-mkimage.c:1333 +#, c-format +msgid "cannot open %s" +msgstr "impossibile aprire %s" + +#: util/i386/pc/grub-setup.c:164 +msgid "the first sector of the core file is not sector-aligned" +msgstr "Il primo settore del file core non è allineato rispetto al settore" + +#: util/i386/pc/grub-setup.c:178 +msgid "non-sector-aligned data is found in the core file" +msgstr "Trovati dati non allineati rispetto al settore nel file core" + +#: util/i386/pc/grub-setup.c:192 +msgid "the sectors of the core file are too fragmented" +msgstr "I settori del file core sono troppo frammentati" + +#: util/i386/pc/grub-setup.c:203 +#, c-format +msgid "the size of `%s' is not %u" +msgstr "La dimensione di \"%s\" non è %u" + +#: util/i386/pc/grub-setup.c:220 +#, c-format +msgid "the size of `%s' is too small" +msgstr "La dimensione di \"%s\" è troppo piccola" + +#: util/i386/pc/grub-setup.c:222 +#, c-format +msgid "the size of `%s' is too large" +msgstr "La dimensione di \"%s\" è troppo grande" + +#: util/i386/pc/grub-setup.c:261 +#, c-format +msgid "unable to identify a filesystem in %s; safety check can't be performed" +msgstr "" +"Impossibile identificare un file system in %s; non è possibile eseguire un " +"controllo di sicurezza" + +#: 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 "" +"Sembra che %s contenga un file system %s, noto per non riservare dello " +"spazio per l'avvio in stile DOS. Installare GRUB qui potrebbe portare alla " +"DISTRUZIONE del file system se dati importanti vengono sovrascritti da grub-" +"setup (--skip-fs-probe disabilita questo controllo, usare a proprio rischio)." + +#: util/i386/pc/grub-setup.c:339 util/i386/pc/grub-setup.c:366 +msgid "" +"Attempting to install GRUB to a partitionless disk. This is a BAD idea." +msgstr "" +"Tentativo di installare GRUB su un disco privo di partizioni. Tale pratica " +"non è raccomandabile." + +#: util/i386/pc/grub-setup.c:345 +msgid "" +"Attempting to install GRUB to a partition instead of the MBR. This is a BAD " +"idea." +msgstr "" +"Tentativo di installare GRUB in una partizione invece che nel MBR. Tale " +"pratica non è raccomandabile." + +#: util/i386/pc/grub-setup.c:375 +msgid "No DOS-style partitions found" +msgstr "Non sono state trovate partizioni in stile DOS" + +#: util/i386/pc/grub-setup.c:380 +msgid "" +"This msdos-style partition label has no post-MBR gap; embedding won't be " +"possible!" +msgstr "" +"L'etichetta della partizione in stile MS-DOS non presenta uno spazio dopo " +"l'MBR; l'embed non sarà possibile." + +#: util/i386/pc/grub-setup.c:382 +msgid "" +"This GPT partition label has no BIOS Boot Partition; embedding won't be " +"possible!" +msgstr "" +"L'etichetta della partizione GPT non presenta una BIOS Boot Partition; " +"l'embed non sarà possibile." + +#: util/i386/pc/grub-setup.c:389 +msgid "Your core.img is unusually large. It won't fit in the embedding area." +msgstr "" +"L'immagine core.img è troppo grande. Non può essere contenuta nell'area di " +"embed." + +#: util/i386/pc/grub-setup.c:391 +msgid "Your embedding area is unusually small. core.img won't fit in it." +msgstr "" +"L'area di embed è troppo piccola. L'immagine core.img non può esservi " +"contenuta." + +#: util/i386/pc/grub-setup.c:436 +msgid "" +"embedding is not possible, but this is required when the root device is on a " +"RAID array or LVM volume" +msgstr "" +"L'embed non è possibile, ma è richiesto quando il dispositivo di root si " +"trova su un array RAID o un volume LVM" + +#: util/i386/pc/grub-setup.c:439 +#, fuzzy +msgid "" +"Embedding is not possible. GRUB can only be installed in this setup by " +"using blocklists. However, blocklists are UNRELIABLE and their use is " +"discouraged." +msgstr "" +"L'embed non è possibile. GRUB può essere installato con questa " +"configurazione solo usando blocklist. Le blocklist non sono comunque " +"affidabili e ne viene sconsigliato l'uso." + +#: util/i386/pc/grub-setup.c:443 +msgid "if you really want blocklists, use --force" +msgstr "Per utilizzare le blocklist, usare --force." + +#: util/i386/pc/grub-setup.c:462 +#, c-format +msgid "attempting to read the core image `%s' from GRUB" +msgstr "tentativo di leggere l'immagine core \"%s\" da GRUB" + +#: util/i386/pc/grub-setup.c:463 +#, c-format +msgid "attempting to read the core image `%s' from GRUB again" +msgstr "tentativo di leggere nuovamente l'immagine core \"%s\" da GRUB" + +#: util/i386/pc/grub-setup.c:530 +#, c-format +msgid "cannot read `%s' correctly" +msgstr "Impossibile leggere \"%s\" correttamente" + +#: util/i386/pc/grub-setup.c:543 +msgid "no terminator in the core image" +msgstr "Nessun terminatore nell'immagine core" + +#: util/i386/pc/grub-setup.c:554 +msgid "failed to read the first sector of the core image" +msgstr "Lettura del primo settore dell'immagine core non riuscita" + +#: util/i386/pc/grub-setup.c:560 +msgid "failed to read the rest sectors of the core image" +msgstr "Lettura dei restanti settori dell'immagine core non riuscita" + +#: util/i386/pc/grub-setup.c:579 +#, c-format +msgid "cannot open `%s'" +msgstr "Impossibile aprire \"%s\"" + +#: util/i386/pc/grub-setup.c:621 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... DEVICE\n" +"\n" +"Set up images to boot from DEVICE.\n" +"DEVICE must be a GRUB device (e.g. `(hd0,1)').\n" +"\n" +"You should not normally run %s directly. Use grub-install instead.\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 "" +"Uso: %s [OPZIONI]... DEVICE\n" +"\n" +"Configura le immagini per essere avviate da DEVICE.\n" +"DEVICE deve essere un device di GRUB (come \"(hd0,1)\").\n" +"\n" +" -b, --boot-image=FILE Usa FILE come immagine di avvio [predefinito=%s]\n" +" -c, --core-image=FILE Usa FILE come immagine core [predefinito=%s]\n" +" -d, --directory=DIR Usa i file di GRUB nella directory DIR " +"[predefinito=%s]\n" +" -m, --device-map=FILE Usa FILE come device map [predefinito=%s]\n" +" -r, --root-device=DEV Usa DEV come device root [predefinito=ipotizzato]\n" +" -f, --force Installa anche in presenza di problemi\n" +" -s, --skip-fs-probe Non cerca file system nel DEVICE\n" +" -h, --help Visualizza questo messaggio ed esce\n" +" -V, --version Stampa la versione ed esce\n" +" -v, --verbose Stampa messaggi prolissi\n" +"\n" +"Segnalare i bug a <%s>.\n" + +#: util/i386/pc/grub-setup.c:753 +#, c-format +msgid "No device is specified.\n" +msgstr "Nessun device specificato.\n" + +#: util/i386/pc/grub-setup.c:759 +#, c-format +msgid "Unknown extra argument `%s'.\n" +msgstr "Argomento aggiuntivo \"%s\" sconosciuto.\n" + +#: util/i386/pc/grub-setup.c:776 +#, c-format +msgid "Invalid device `%s'.\n" +msgstr "Device \"%s\" non valido.\n" + +#: util/i386/pc/grub-setup.c:789 +#, c-format +msgid "invalid root device `%s'" +msgstr "Device root \"%s\" non valido" + +#: util/i386/pc/grub-setup.c:802 +msgid "cannot guess the root device. Specify the option `--root-device'" +msgstr "" +"Impossibile individuare il device di root: specificare l'opzione \"--root-" +"device\"" + +#~ msgid "[class [handler]]" +#~ msgstr "[classe [gestore]]" + +#~ msgid "List or select a handler." +#~ msgstr "Elenca o seleziona un gestore" + +#~ msgid "Load XNU ramdisk. It will be seen as md0." +#~ msgstr "Carica un ramdisk XNU: verrà visto come md0" + +#~ msgid "no DOS-style partitions found" +#~ msgstr "Non sono state trovate partizioni in stile DOS" + +#~ msgid "%s, with kFreeBSD %s" +#~ msgstr "%s, con kFreeBSD %s" + +#~ msgid "Loading kernel of FreeBSD %s ..." +#~ msgstr "Caricamento kernel per FreeBSD %s..." + +#~ msgid "%s, with Linux %s (recovery mode)" +#~ msgstr "%s, con Linux %s (modalità ripristino)" + +#~ msgid "%s, with Linux %s" +#~ msgstr "%s, con Linux %s" + +#~ msgid "Loading Linux %s ..." +#~ msgstr "Caricamento Linux %s..." + +#~ msgid "Loading initial ramdisk ..." +#~ msgstr "Caricamento ramdisk iniziale..." --- grub2-1.98+20100804.orig/po/nl.po +++ grub2-1.98+20100804/po/nl.po @@ -0,0 +1,1687 @@ +# Dutch translation for grub +# Copyright (C) 2009, 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the grub package. +# +# Erwin Poeze , 2009, 2010 +msgid "" +msgstr "" +"Project-Id-Version: grub-1.97+20100124\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-06-19 01:35+0100\n" +"PO-Revision-Date: 2010-04-30 14:13+0200\n" +"Last-Translator: Erwin Poeze \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: commands/acpi.c:40 +msgid "Don't load host tables specified by comma-separated list." +msgstr "host-tabellen die bestaan uit een kommagescheidenlijst niet laden." + +#: commands/acpi.c:43 +msgid "Load only tables specified by comma-separated list." +msgstr "alleen tabellen die bestaan uit een kommagescheidenlijst laden." + +#: commands/acpi.c:44 +msgid "Expose v1 tables." +msgstr "v1-tabellen tonen." + +#: commands/acpi.c:45 +msgid "Expose v2 and v3 tables." +msgstr "v2- en v3 tabellen tonen." + +#: commands/acpi.c:46 +msgid "Set OEMID of RSDP, XSDT and RSDT." +msgstr "OEMID van RSDP, XSDT en RSDT instellen." + +#: commands/acpi.c:48 +msgid "Set OEMTABLE ID of RSDP, XSDT and RSDT." +msgstr "OEMTABLE-ID van RSDP, XSDT en RSDT instellen." + +#: commands/acpi.c:50 +msgid "Set OEMTABLE revision of RSDP, XSDT and RSDT." +msgstr "OEMTABLE-revisie van RSDP, XSDT en RSDT instellen." + +#: commands/acpi.c:52 +msgid "Set creator field of RSDP, XSDT and RSDT." +msgstr "'creator'-veld van RSDP, XSDT en RSDT instellen." + +#: commands/acpi.c:54 +msgid "Set creator revision of RSDP, XSDT and RSDT." +msgstr "'creator'-revisie van RSDP, XSDT en RSDT instellen." + +#: commands/acpi.c:55 +msgid "" +"Don't update EBDA. May fix failures or hangs on some. BIOSes but makes it " +"ineffective with OS not receiving RSDP from GRUB." +msgstr "" +"EBDA niet bijwerken. Kan storingen verhelpen maar ook erdoor falen. BIOS-en, " +"maar het wordt ineffectief met besturingssystemen die geen RSDP van GRUB " +"ontvangen." + +#: commands/acpi.c:763 +msgid "" +"[-1|-2] [--exclude=TABLE1,TABLE2|--load-only=table1,table2] FILE1 [FILE2] " +"[...]" +msgstr "" +"[-1|-2] [--exclude=TABEL1,TABEL2|--load-only=tabel1,tabel2] BESTAND1 " +"[BESTAND2] [...]" + +#: commands/acpi.c:766 +msgid "Load host ACPI tables and tables specified by arguments." +msgstr "Host-ACPI-tabellen en tabellen opgegeven via argumenten laden." + +#: commands/blocklist.c:113 commands/cat.c:82 commands/configfile.c:57 +#: commands/configfile.c:60 commands/configfile.c:65 commands/crc.c:64 +#: commands/minicmd.c:353 loader/i386/bsd.c:1287 loader/i386/bsd.c:1291 +#: loader/i386/bsd.c:1295 +msgid "FILE" +msgstr "BESTAND" + +#: commands/blocklist.c:113 +msgid "Print a block list." +msgstr "Een bloklijst tonen." + +#: commands/boot.c:190 +msgid "Boot an operating system." +msgstr "Een besturingssysteem opstarten." + +#: commands/cat.c:82 commands/minicmd.c:353 +msgid "Show the contents of a file." +msgstr "De inhoud van een bestand tonen." + +#: commands/cmp.c:113 +msgid "FILE1 FILE2" +msgstr "BESTAND1 BESTAND2" + +#: commands/cmp.c:113 +msgid "Compare two files." +msgstr "Twee bestanden vergelijken." + +#: commands/configfile.c:57 +msgid "Load another config file." +msgstr "Nog een configuratiebestand laden." + +#: commands/configfile.c:61 commands/configfile.c:66 +msgid "Load another config file without changing context." +msgstr "Nog een configuratiebestand laden zonder de context te wijzigen." + +#: commands/crc.c:65 +msgid "Calculate the crc32 checksum of a file." +msgstr "Het crc32-controlegetal van een bestand berekenen." + +#: commands/date.c:139 +msgid "[[year-]month-day] [hour:minute[:second]]" +msgstr "[[jaar-]maand-dag] [uur:minuut[:seconde]]" + +#: commands/date.c:140 +msgid "Command to display/set current datetime." +msgstr "Opdracht waarmee huidige tijd en datum wordt getoond/ingesteld." + +#: commands/echo.c:27 +msgid "Do not output the trailing newline." +msgstr "De laatste regeleinde niet weergeven." + +#: commands/echo.c:28 +msgid "Enable interpretation of backslash escapes." +msgstr "Verwerking van `backslash escapes' ingeschakelen." + +#: commands/echo.c:117 +msgid "[-e|-n] STRING" +msgstr "[-e|-n] STRING" + +#: commands/echo.c:117 +msgid "Display a line of text." +msgstr "Een regel tekst tonen." + +#: commands/efi/fixvideo.c:103 +msgid "Fix video problem." +msgstr "Videoprobleem oplossen." + +#: commands/efi/loadbios.c:207 +msgid "Fake BIOS." +msgstr "Nep-BIOS." + +#: commands/efi/loadbios.c:211 +msgid "Load BIOS dump." +msgstr "BIOS-dump laden." + +#: commands/gptsync.c:244 +msgid "DEVICE [PARTITION[+/-[TYPE]]] ..." +msgstr "APPARAAT [PARTITIE[+/-[TYPE]]] ..." + +#: commands/gptsync.c:245 +#, fuzzy +msgid "" +"Fill hybrid MBR of GPT drive DEVICE. Specified partitions will be a part of " +"hybrid MBR. Up to 3 partitions are allowed. TYPE is an MBR type. + means " +"that partition is active. Only one partition can be active." +msgstr "" +"Vul hybride MBR van GPT-drive APPARAAT. opgegeven partities zullen onderdeel " +"zijn van hybride MBR. Maximaal drie partities zijn toegestaan. TYPE is een " +"MBR-soort. + betekent dat de partitie actief is. Slechts één partitie kan " +"actief zijn." + +#: commands/halt.c:39 +msgid "" +"Halts the computer. This command does not work on all firmware " +"implementations." +msgstr "" +"Stopt de computer. Deze opdracht werkt niet met alle firmware-" +"implementaties." + +#: commands/hdparm.c:30 +msgid "" +"Set Advanced Power Management\n" +"(1=low, ..., 254=high, 255=off)." +msgstr "" +"Advanced Power Management instellen\n" +"(1=laag, ..., 254=hoog, 255=uit)." + +#: commands/hdparm.c:33 +msgid "Check power mode." +msgstr "Energiestand controleren." + +#: commands/hdparm.c:34 +msgid "Freeze ATA security settings until reset." +msgstr "ATA-beveiligingsinstellingen bevriezen tot herstart." + +#: commands/hdparm.c:36 +msgid "Check SMART health status." +msgstr "SMART-gezondheidstoestand controleren." + +#: commands/hdparm.c:37 +msgid "" +"Set Automatic Acoustic Management\n" +"(0=off, 128=quiet, ..., 254=fast)." +msgstr "" +"Automatic Acoustic Management instellen\n" +"(0=uit, 128=stil, ..., 254=snel)." + +#: commands/hdparm.c:40 +msgid "" +"Set standby timeout\n" +"(0=off, 1=5s, 2=10s, ..., 240=20m, 241=30m, ...)." +msgstr "" +"Standby-wachttijden instellen\n" +"(0=uit, 1=5s, 2=10s, ..., 240=20m, 241=30m, ...)." + +#: commands/hdparm.c:43 +msgid "Set drive to standby mode." +msgstr "Schijf in standby-toestand zetten." + +#: commands/hdparm.c:44 +msgid "Set drive to sleep mode." +msgstr "Schijf in slaaptoestand zetten." + +#: commands/hdparm.c:45 +msgid "Print drive identity and settings." +msgstr "Schijfidentiteit en -instellingen tonen." + +#: commands/hdparm.c:47 +msgid "Dump contents of ATA IDENTIFY sector." +msgstr "Inhoud van ATA IDENTIFY-sector wegschrijven." + +#: commands/hdparm.c:49 +msgid "Disable/enable SMART (0/1)." +msgstr "SMART in-/uitschakelen (1/0)." + +#: commands/hdparm.c:50 +msgid "Do not print messages." +msgstr "Geen meldingen tonen." + +#: commands/hdparm.c:414 +msgid "[OPTIONS] DISK" +msgstr "[OPTIES] SCHIJF" + +#: commands/hdparm.c:415 +msgid "Get/set ATA disk parameters." +msgstr "ATA-schijfparameters ophalen/instellen" + +#: commands/help.c:112 lib/arg.c:110 +msgid "Usage:" +msgstr "Gebruik:" + +#: commands/help.c:129 +msgid "[PATTERN ...]" +msgstr "[PATROON ...]" + +#: commands/help.c:130 +msgid "Show a help message." +msgstr "Een hulptekst tonen." + +#: commands/hexdump.c:30 +msgid "Skip offset bytes from the beginning of file." +msgstr "Offset-bytes vanaf begin van bestand overslaan." + +#: commands/hexdump.c:32 +msgid "Read only LENGTH bytes." +msgstr "Alleen LENGTH bytes lezen." + +#: commands/hexdump.c:125 +msgid "[OPTIONS] FILE_OR_DEVICE" +msgstr "[OPTIES] BESTAND_OF_APPARAAT" + +#: commands/hexdump.c:126 +msgid "Dump the contents of a file or memory." +msgstr "De inhoud van een bestand of geheugen wegschrijven." + +#: commands/i386/cpuid.c:37 +msgid "Check for long mode flag (default)." +msgstr "Op voorkomen 'long mode'-vlag controleren (standaard)" + +#: commands/i386/cpuid.c:92 +msgid "Check for CPU features." +msgstr "Op voorkomen CPU-functies controleren." + +#: commands/i386/pc/drivemap.c:37 +msgid "Show the current mappings." +msgstr "De huidige afbeelding tonen." + +#: commands/i386/pc/drivemap.c:38 +msgid "Reset all mappings to the default values." +msgstr "Alle afbeeldingen op de standaardwaarden instellen." + +#: commands/i386/pc/drivemap.c:39 +msgid "Perform both direct and reverse mappings." +msgstr "Zowel directe als inverse afbeeldingen uitvoeren." + +#: commands/i386/pc/drivemap.c:406 +msgid "-l | -r | [-s] grubdev osdisk." +msgstr "-l | -r | [-s] grubdev osdisk." + +#: commands/i386/pc/drivemap.c:407 +msgid "Manage the BIOS drive mappings." +msgstr "De BIOS-schijfafbeelding beheren." + +#: commands/i386/pc/halt.c:27 +msgid "Do not use APM to halt the computer." +msgstr "Gebruik niet APM om de computer te stoppen." + +#: commands/i386/pc/halt.c:51 +msgid "Halt the system, if possible using APM." +msgstr "Stop het systeem, zo mogelijk met APM." + +#: commands/i386/pc/play.c:266 +msgid "FILE | TEMPO [PITCH1 DURATION1] [PITCH2 DURATION2] ... " +msgstr "" + +#: commands/i386/pc/play.c:267 +msgid "Play a tune." +msgstr "Een deuntje afspelen." + +#: commands/i386/pc/pxecmd.c:46 +msgid "Unload PXE environment." +msgstr "PXE-omgeving uitladen." + +#: commands/i386/pc/vbeinfo.c:179 +msgid "List compatible VESA BIOS extension video modes." +msgstr "Met VESA BIOS compatibele video-modes tonen." + +#: commands/i386/pc/vbetest.c:173 +msgid "Test VESA BIOS Extension 2.0+ support." +msgstr "VESA BIOS Extension 2.0+-ondersteuning testen." + +#: commands/ieee1275/suspend.c:43 +msgid "Return to Open Firmware prompt." +msgstr "Naar Open Firmware-cursor terugkeren." + +#: commands/keystatus.c:28 +msgid "Check Shift key." +msgstr "Shift-toets controleren." + +#: commands/keystatus.c:29 +msgid "Check Control key." +msgstr "Control-toets controleren." + +#: commands/keystatus.c:30 +msgid "Check Alt key." +msgstr "Alt-toets controleren." + +#: commands/keystatus.c:85 +msgid "[--shift] [--ctrl] [--alt]" +msgstr "[--shift] [--ctrl] [--alt]" + +#: commands/keystatus.c:86 +msgid "Check key modifier status." +msgstr "Toestand toetsaanpasser controleren" + +#: commands/loadenv.c:33 +msgid "Specify filename." +msgstr "Bestandsnaam opgeven." + +#: commands/loadenv.c:378 commands/loadenv.c:384 +msgid "[-f FILE]" +msgstr "[-f BESTAND]" + +#: commands/loadenv.c:379 +msgid "Load variables from environment block file." +msgstr "Variabelen uit omgevingsblokbestand laden." + +#: commands/loadenv.c:385 +msgid "List variables from environment block file." +msgstr "Variabelen uit omgevingsblokbestand tonen." + +#: commands/loadenv.c:390 +msgid "[-f FILE] variable_name [...]" +msgstr "[-f BESTAND] variabele_naam [...]" + +#: commands/loadenv.c:391 +msgid "Save variables to environment block file." +msgstr "Variabelen in omgevingsblokbestand opslaan." + +#: commands/ls.c:37 +msgid "Show a long list with more detailed information." +msgstr "Een lijst met met uitgebreidere informatie tonen." + +#: commands/ls.c:38 +msgid "Print sizes in a human readable format." +msgstr "Grootten in een leesbare vorm weergeven." + +#: commands/ls.c:39 +msgid "List all files." +msgstr "Alle bestanden tonen." + +#: commands/ls.c:269 +msgid "[-l|-h|-a] [FILE]" +msgstr "[-l|-h|-a] [BESTAND]" + +#: commands/ls.c:270 +msgid "List devices and files." +msgstr "Apparaten en bestanden tonen." + +#: commands/lsmmap.c:51 +msgid "List memory map provided by firmware." +msgstr "Geheugenafbeelding geleverd door firmware tonen." + +#: commands/lspci.c:228 +msgid "List PCI devices." +msgstr "PCI-apparaten tonen." + +#: commands/memrw.c:31 +msgid "Save read value into variable VARNAME." +msgstr "Ingelezen waarde in variabele VARNAAM opslaan." + +#: commands/memrw.c:123 commands/memrw.c:126 commands/memrw.c:129 +#: commands/minicmd.c:362 +msgid "ADDR" +msgstr "ADDR" + +#: commands/memrw.c:123 +msgid "Read byte from ADDR." +msgstr "byte lezen uit ADDR" + +#: commands/memrw.c:126 +msgid "Read word from ADDR." +msgstr "word lezen uit ADDR" + +#: commands/memrw.c:129 +msgid "Read dword from ADDR." +msgstr "dword lezen uit ADDR" + +#: commands/memrw.c:132 commands/memrw.c:135 commands/memrw.c:138 +msgid "ADDR VALUE [MASK]" +msgstr "ADDR-WAARDE [MASKER]" + +#: commands/memrw.c:132 +msgid "Write byte VALUE to ADDR." +msgstr "byte WAARDE schrijven naar ADDR " + +#: commands/memrw.c:135 +msgid "Write word VALUE to ADDR." +msgstr "word WAARDE schrijven naar ADDR " + +#: commands/memrw.c:138 +msgid "Write dword VALUE to ADDR." +msgstr "dword WAARDE schrijven naar ADDR " + +#: commands/minicmd.c:356 +msgid "Show this message." +msgstr "Deze tekst tonen." + +#: commands/minicmd.c:359 commands/probe.c:154 +msgid "[DEVICE]" +msgstr "[APPARAAT]" + +#: commands/minicmd.c:359 +msgid "Set the root device." +msgstr "Het root-apparaat instellen." + +#: commands/minicmd.c:362 +msgid "Dump memory." +msgstr "Geheugen wegschrijven." + +#: commands/minicmd.c:365 +msgid "MODULE" +msgstr "MODULE" + +#: commands/minicmd.c:365 +msgid "Remove a module." +msgstr "Een module verwijderen." + +#: commands/minicmd.c:368 +msgid "Show loaded modules." +msgstr "Geladen modules tonen." + +#: commands/minicmd.c:371 +msgid "Exit from GRUB." +msgstr "GRUB verlaten." + +#: commands/minicmd.c:374 +msgid "Clear the screen." +msgstr "Scherm wissen." + +#: commands/parttool.c:325 +msgid "PARTITION COMMANDS" +msgstr "PARITIEOPDRACHTEN" + +#: commands/password.c:78 +msgid "USER PASSWORD" +msgstr "GEBRUIKERSWACHTWOORD" + +#: commands/password.c:79 +msgid "Set user password (plaintext). Unrecommended and insecure." +msgstr "Gebruikerswachtwoord instellen (platte tekst). Afgeraden en onveilig." + +#: commands/probe.c:38 +msgid "Set a variable to return value." +msgstr "Variabele als stopwaarde instellen." + +#: commands/probe.c:39 +msgid "Determine driver." +msgstr "Stuurprogramma vaststellen." + +#: commands/probe.c:40 +msgid "Determine partition map type." +msgstr "Soort partitieafbeelding vaststellen." + +#: commands/probe.c:41 +msgid "Determine filesystem type." +msgstr "Soort bestandssysteem vaststellen." + +#: commands/probe.c:42 +msgid "Determine filesystem UUID." +msgstr "UUID bestandssysteem vaststellen." + +#: commands/probe.c:43 +msgid "Determine filesystem label." +msgstr "Label bestandssysteem vaststellen." + +#: commands/probe.c:155 +msgid "Retrieve device info." +msgstr "Apparaatinformatie ophalen." + +#: commands/read.c:83 +msgid "[ENVVAR]" +msgstr "[ENVVAR]" + +#: commands/read.c:84 +msgid "Set variable with user input." +msgstr "Variabele met gebruikersinvoer instellen." + +#: commands/reboot.c:39 +msgid "Reboot the computer." +msgstr "Computer herstarten." + +#: commands/search.c:161 +msgid "NAME [VARIABLE]" +msgstr "NAAM [VARIABELE]" + +#: commands/search_file.c:5 +msgid "" +"Search devices by file. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Apparaten per bestand doorzoeken. Als VARIABELE opgegeven is, wordt het " +"eerst gevonden apparaat insteld op een variabele." + +#: commands/search_label.c:5 +msgid "" +"Search devices by label. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Apparaten op label zoeken. Als VARIABELE opgegeven is, wordt het eerst " +"gevonden apparaat ingesteld op een variabele." + +#: commands/search_uuid.c:5 +msgid "" +"Search devices by UUID. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Apparaten op UUID zoeken. Als VARIABELE opgegeven is, wordt het eerst " +"gevonden apparaat ingesteld op een variabele." + +#: commands/sleep.c:30 +msgid "Verbose countdown." +msgstr "Aftellen tonen." + +#: commands/sleep.c:31 +msgid "Interruptible with ESC." +msgstr "Onderbroken met ESC." + +#: commands/sleep.c:105 +msgid "NUMBER_OF_SECONDS" +msgstr "AANTAL_SECONDEN" + +#: commands/sleep.c:106 +msgid "Wait for a specified number of seconds." +msgstr "Wacht een opgegeven aantal seconden." + +#: commands/test.c:424 +msgid "EXPRESSION ]" +msgstr "EXPRESSIE ]" + +#: commands/test.c:424 commands/test.c:426 +msgid "Evaluate an expression." +msgstr "Een expressie evalueren." + +#: commands/test.c:426 +msgid "EXPRESSION" +msgstr "EXPRESSIE" + +#: commands/true.c:47 +msgid "Do nothing, successfully." +msgstr "Niet uitvoeren, gelukt." + +#: commands/true.c:50 +msgid "Do nothing, unsuccessfully." +msgstr "Niet uitvoeren, mislukt." + +#: commands/usbtest.c:208 +msgid "Test USB support." +msgstr "USB-ondersteuning testen." + +#: commands/videotest.c:180 +msgid "Test video subsystem." +msgstr "Video-subsysteem testen." + +#: commands/xnu_uuid.c:92 +msgid "GRUBUUID [VARNAME]" +msgstr "GRUBUUID [VARNAAM]" + +#: commands/xnu_uuid.c:93 +msgid "Transform 64-bit UUID to format suitable for XNU." +msgstr "64-bit-UUID geschikt maken voor XNU." + +#: disk/loopback.c:40 +msgid "Delete the loopback device entry." +msgstr "De regel `loopback-apparaat' verwijderen." + +#: disk/loopback.c:41 +msgid "Simulate a hard drive with partitions." +msgstr "Een hardeschijf met partities nabootsen." + +#: disk/loopback.c:249 +msgid "[-d|-p] DEVICENAME FILE." +msgstr "[-d|-p] APPARAATNAAM BESTAND." + +#: disk/loopback.c:250 +msgid "Make a device of a file." +msgstr "Een apparaat van een bestand maken." + +#: hello/hello.c:43 +msgid "Say \"Hello World\"." +msgstr "\"Hallo wereld\" melden." + +#: lib/arg.c:34 +msgid "Display this help and exit." +msgstr "Deze hulptekst tonen en stoppen." + +#: lib/arg.c:36 +msgid "Display the usage of this command and exit." +msgstr "Gebruik van deze opdracht tonen en stoppen." + +#: loader/efi/appleloader.c:325 +msgid "Boot legacy system." +msgstr "Verouderd systeem opstarten." + +#: loader/efi/chainloader.c:340 loader/i386/pc/chainloader.c:166 +msgid "Load another boot loader." +msgstr "Een andere boot-loader laden." + +#: loader/i386/bsd.c:65 +msgid "Display output on all consoles." +msgstr "Uitvoer op alle consoles tonen." + +#: loader/i386/bsd.c:66 +msgid "Use serial console." +msgstr "" + +#: loader/i386/bsd.c:67 loader/i386/bsd.c:93 loader/i386/bsd.c:114 +msgid "Ask for file name to reboot from." +msgstr "" + +#: loader/i386/bsd.c:68 +msgid "Use CDROM as root." +msgstr "" + +#: loader/i386/bsd.c:69 +msgid "Invoke user configuration routing." +msgstr "" + +#: loader/i386/bsd.c:70 loader/i386/bsd.c:97 loader/i386/bsd.c:117 +msgid "Enter in KDB on boot." +msgstr "" + +#: loader/i386/bsd.c:71 +msgid "Use GDB remote debugger instead of DDB." +msgstr "" + +#: loader/i386/bsd.c:72 +msgid "Disable all boot output." +msgstr "" + +#: loader/i386/bsd.c:74 +msgid "Wait for keypress after every line of output." +msgstr "" + +#: loader/i386/bsd.c:76 +msgid "Use compiled-in rootdev." +msgstr "" + +#: loader/i386/bsd.c:77 loader/i386/bsd.c:96 loader/i386/bsd.c:120 +msgid "Boot into single mode." +msgstr "" + +#: loader/i386/bsd.c:78 loader/i386/bsd.c:121 +msgid "Boot with verbose messages." +msgstr "" + +#: loader/i386/bsd.c:94 loader/i386/bsd.c:115 +msgid "Don't reboot, just halt." +msgstr "" + +#: loader/i386/bsd.c:95 loader/i386/bsd.c:116 +msgid "Change configured devices." +msgstr "" + +#: loader/i386/bsd.c:98 loader/i386/bsd.c:124 +msgid "Set root device." +msgstr "Root-apparaat instellen." + +#: loader/i386/bsd.c:112 +msgid "Disable SMP." +msgstr "" + +#: loader/i386/bsd.c:113 +msgid "Disable ACPI." +msgstr "" + +#: loader/i386/bsd.c:119 +msgid "Don't display boot diagnostic messages." +msgstr "" + +#: loader/i386/bsd.c:122 +msgid "Boot with debug messages." +msgstr "" + +#: loader/i386/bsd.c:123 +msgid "Supress normal output (warnings remain)." +msgstr "" + +#: loader/i386/bsd.c:124 +msgid "DEVICE" +msgstr "" + +#: loader/i386/bsd.c:1287 +msgid "Load kernel of FreeBSD." +msgstr "" + +#: loader/i386/bsd.c:1291 +msgid "Load kernel of OpenBSD." +msgstr "" + +#: loader/i386/bsd.c:1295 +msgid "Load kernel of NetBSD." +msgstr "" + +#: loader/i386/bsd.c:1299 +msgid "Load FreeBSD env." +msgstr "" + +#: loader/i386/bsd.c:1302 +msgid "Load FreeBSD kernel module." +msgstr "" + +#: loader/i386/bsd.c:1305 +msgid "Load FreeBSD kernel module (ELF)." +msgstr "" + +#: loader/i386/efi/linux.c:1011 loader/i386/ieee1275/linux.c:301 +#: loader/i386/linux.c:1012 loader/i386/pc/linux.c:399 +#: loader/powerpc/ieee1275/linux.c:353 loader/sparc64/ieee1275/linux.c:519 +msgid "Load Linux." +msgstr "" + +#: loader/i386/efi/linux.c:1013 loader/i386/ieee1275/linux.c:303 +#: loader/i386/linux.c:1014 loader/i386/pc/linux.c:402 +#: loader/powerpc/ieee1275/linux.c:355 loader/sparc64/ieee1275/linux.c:521 +msgid "Load initrd." +msgstr "" + +#: loader/i386/xnu.c:1032 +msgid "Load device-properties dump." +msgstr "" + +#: loader/multiboot.c:337 +msgid "Load a multiboot 2 kernel." +msgstr "" + +#: loader/multiboot.c:340 +#, fuzzy +msgid "Load a multiboot 2 module." +msgstr "Een andere boot-loader laden." + +#: loader/multiboot.c:343 +msgid "Load a multiboot kernel." +msgstr "" + +#: loader/multiboot.c:346 +msgid "Load a multiboot module." +msgstr "" + +#: loader/xnu.c:1428 +msgid "Load XNU image." +msgstr "" + +#: loader/xnu.c:1430 +msgid "Load 64-bit XNU image." +msgstr "" + +#: loader/xnu.c:1432 +msgid "Load XNU extension package." +msgstr "" + +#: loader/xnu.c:1434 +msgid "Load XNU extension." +msgstr "" + +#: loader/xnu.c:1436 +msgid "DIRECTORY [OSBundleRequired]" +msgstr "" + +#: loader/xnu.c:1437 +msgid "Load XNU extension directory." +msgstr "" + +#: loader/xnu.c:1444 +msgid "Load a splash image for XNU." +msgstr "" + +#: loader/xnu.c:1449 +msgid "Load XNU hibernate image." +msgstr "" + +#: normal/auth.c:217 +msgid "Enter username: " +msgstr "" + +#: normal/auth.c:222 +msgid "Enter password: " +msgstr "" + +#: normal/color.c:80 +#, c-format +msgid "Warning: syntax error (missing slash) in `%s'\n" +msgstr "" + +#: normal/color.c:89 +#, c-format +msgid "Warning: invalid foreground color `%s'\n" +msgstr "" + +#: normal/color.c:95 +#, c-format +msgid "Warning: invalid background color `%s'\n" +msgstr "" + +#: normal/dyncmd.c:144 +msgid "not loaded" +msgstr "" + +#: normal/main.c:415 +#, c-format +msgid "GNU GRUB version %s" +msgstr "" + +#: normal/main.c:552 +#, c-format +msgid "" +"Minimal BASH-like line editing is supported. For the first word, TAB lists " +"possible command completions. Anywhere else TAB lists possible device or " +"file completions. %s" +msgstr "" + +#: normal/main.c:555 +msgid "ESC at any time exits." +msgstr "" + +#: normal/main.c:670 +msgid "Enter normal mode." +msgstr "" + +#: normal/main.c:672 +msgid "Exit from normal mode." +msgstr "" + +#: normal/menu_entry.c:1061 +msgid "Possible commands are:" +msgstr "" + +#: normal/menu_entry.c:1065 +msgid "Possible devices are:" +msgstr "" + +#: normal/menu_entry.c:1069 +msgid "Possible files are:" +msgstr "" + +#: normal/menu_entry.c:1073 +msgid "Possible partitions are:" +msgstr "Mogelijk partities zijn:" + +#: normal/menu_entry.c:1077 +msgid "Possible arguments are:" +msgstr "" + +#: normal/menu_entry.c:1081 +msgid "Possible things are:" +msgstr "" + +#: normal/menu_entry.c:1185 +msgid "Booting a command list" +msgstr "" + +#: normal/menu_entry.c:1398 +msgid "Press any key to continue..." +msgstr "" + +#: normal/menu_text.c:180 +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"F1 to boot, F2=Ctrl-a, F3=Ctrl-e, F4 for a command-line or ESC to discard " +"edits and return to the GRUB menu." +msgstr "" + +#: normal/menu_text.c:185 +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"Ctrl-x to boot, Ctrl-c for a command-line or ESC to discard edits and return " +"to the GRUB menu." +msgstr "" + +#: normal/menu_text.c:193 +#, c-format +msgid "Use the %C and %C keys to select which entry is highlighted.\n" +msgstr "" + +#: normal/menu_text.c:210 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line. ESC to return previous menu.\n" +msgstr "" + +#: normal/menu_text.c:218 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line.\n" +msgstr "" + +#: normal/menu_text.c:370 +#, c-format +msgid "The highlighted entry will be executed automatically in %ds." +msgstr "" + +#: normal/misc.c:41 +#, c-format +msgid "Partition %s:" +msgstr "" + +#: normal/misc.c:46 +#, c-format +msgid "Device %s:" +msgstr "" + +#: normal/misc.c:52 +msgid "Filesystem cannot be accessed" +msgstr "" + +#: normal/misc.c:63 +#, c-format +msgid "Filesystem type %s" +msgstr "" + +#: normal/misc.c:73 +#, c-format +msgid "- Label \"%s\"" +msgstr "" + +#: normal/misc.c:88 +#, c-format +msgid "- Last modification time %d-%02d-%02d %02d:%02d:%02d %s" +msgstr "" + +#: normal/misc.c:111 +msgid "Unknown filesystem" +msgstr "" + +#: normal/misc.c:113 +msgid "Partition table" +msgstr "" + +#: term/serial.c:46 +msgid "Set the serial unit." +msgstr "" + +#: term/serial.c:47 +msgid "Set the serial port address." +msgstr "" + +#: term/serial.c:48 +msgid "Set the serial port speed." +msgstr "" + +#: term/serial.c:49 +msgid "Set the serial port word length." +msgstr "" + +#: term/serial.c:50 +msgid "Set the serial port parity." +msgstr "" + +#: term/serial.c:51 +msgid "Set the serial port stop bits." +msgstr "" + +#: term/serial.c:619 +#, fuzzy +msgid "[OPTIONS...]" +msgstr "[OPTIES] SCHIJF" + +#: term/serial.c:620 +msgid "Configure serial port." +msgstr "" + +#: util/grub-mkimage.c:440 +msgid "the core image is too small" +msgstr "de core-afbeelding is te klein" + +#: util/grub-mkimage.c:451 +msgid "cannot compress the kernel image" +msgstr "de kernel-afbeelding kan niet worden gecomprimeerd" + +#: util/grub-mkimage.c:548 +msgid "prefix is too long" +msgstr "voorvoegsel is te lang" + +#: util/grub-mkimage.c:672 +#, c-format +msgid "core image is too big (%p > %p)" +msgstr "Core-afbeelding is te groot (%p > %p)" + +#: util/grub-mkimage.c:678 +msgid "the core image is too big" +msgstr "de core-afbeelding is te groot" + +#: util/grub-mkimage.c:683 +#, c-format +msgid "diskboot.img size must be %u bytes" +msgstr "grootte diskboot.img moet %u bytes zijn" + +#: util/grub-mkimage.c:1168 util/i386/pc/grub-setup.c:619 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "Gebruik `%s --help' voor meer informatie.\n" + +#: util/grub-mkimage.c:1187 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... [MODULES]\n" +"\n" +"Make a bootable image of GRUB.\n" +"\n" +" -d, --directory=DIR use images and modules under DIR [default=%s/" +"@platform@]\n" +" -p, --prefix=DIR set grub_prefix directory [default=%s]\n" +" -m, --memdisk=FILE embed FILE as a memdisk image\n" +" -f, --font=FILE embed FILE as a boot font\n" +" -c, --config=FILE embed FILE as boot config\n" +" -n, --note add NOTE segment for CHRP Open Firmware\n" +" -o, --output=FILE output a generated image to FILE [default=stdout]\n" +" -O, --format=FORMAT generate an image in format\n" +" available formats: %s\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 "" +"Gebruik: %s [OPTIE]... [MODULES]\n" +"\n" +"Maak een opstartbare afbeelding van GRUB.\n" +"\n" +" -d, --directory=MAP gebruik afbeeldingen en modules onder MAP " +"[standaard=%s]\n" +" -p, --prefix=MAP map grub_prefix instellen [standaard=%s]\n" +" -m, --memdisk=BESTAND BESTAND als een memdisk-afbeelding inbedden\n" +" -c, --config=BESTAND BESTAND als boot-configuratie inbedden\n" +" -o, --output=BESTAND een aangemaakte afbeelding naar BESTAND " +"schrijven [standaard=stdout]\n" +" -O, --format=INDELING een afbeelding in INDELING aanmaken [standaard=" + +#: util/grub-mkimage.c:1333 +#, c-format +msgid "cannot open %s" +msgstr "kan %s niet openen" + +#: util/i386/pc/grub-setup.c:164 +msgid "the first sector of the core file is not sector-aligned" +msgstr "de eerste sector van het core-bestand is niet sector-uitgelijnd" + +#: util/i386/pc/grub-setup.c:178 +msgid "non-sector-aligned data is found in the core file" +msgstr "niet-sector-uitgelijnde gegevens gevonden in het core-bestand" + +#: util/i386/pc/grub-setup.c:192 +msgid "the sectors of the core file are too fragmented" +msgstr "de sectoren van het core-bestand zijn te gefragmenteerd" + +#: util/i386/pc/grub-setup.c:203 +#, c-format +msgid "the size of `%s' is not %u" +msgstr "de grootte van `%s' is niet %u" + +#: util/i386/pc/grub-setup.c:220 +#, c-format +msgid "the size of `%s' is too small" +msgstr "de grootte van `%s' is te klein" + +#: util/i386/pc/grub-setup.c:222 +#, c-format +msgid "the size of `%s' is too large" +msgstr "de grootte van `%s' is te groot" + +#: util/i386/pc/grub-setup.c:261 +#, c-format +msgid "unable to identify a filesystem in %s; safety check can't be performed" +msgstr "" +"bestandssysteem in %s wordt niet herkend; veiligheidscontrole kan niet " +"worden uitgevoerd" + +#: 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 blijkt een %s-bestandssysteem te bevatten waarvan bekend is dat er geen " +"ruimte voor DOS-achtig opstarten wordt gereserveerd. Installeren van GRUB " +"daarin kan VERNIELING VAN HET BESTANDSSYSTEEM tot gevolg hebben als " +"waardevolle gegevens worden overschreven door grub-setup (--skip-fs-probe " +"schakelt deze controle uit, op uw eigen risico)" + +#: util/i386/pc/grub-setup.c:339 util/i386/pc/grub-setup.c:366 +msgid "" +"Attempting to install GRUB to a partitionless disk. This is a BAD idea." +msgstr "" +"Poging om GRUB op een schijf zonder partitie te installeren. Dit is een " +"SLECHT idee." + +#: util/i386/pc/grub-setup.c:345 +msgid "" +"Attempting to install GRUB to a partition instead of the MBR. This is a BAD " +"idea." +msgstr "" +"Poging om GRUB in een partitie te installeren in plaats van de MBR. Dit is " +"een SLECHT idee." + +#: util/i386/pc/grub-setup.c:375 +msgid "No DOS-style partitions found" +msgstr "Geen DOS-achtige partities gevonden" + +#: util/i386/pc/grub-setup.c:380 +msgid "" +"This msdos-style partition label has no post-MBR gap; embedding won't be " +"possible!" +msgstr "" +"Dit MSDOS-achtige partitielabel heeft geen ruimte na de MBR; inbedding is " +"niet mogelijk!" + +#: util/i386/pc/grub-setup.c:382 +msgid "" +"This GPT partition label has no BIOS Boot Partition; embedding won't be " +"possible!" +msgstr "" +"Dit GPT-partitielabel heeft geen BIOS opstartpartitie; inbedding is niet " +"mogelijk!" + +#: util/i386/pc/grub-setup.c:389 +msgid "Your core.img is unusually large. It won't fit in the embedding area." +msgstr "" +"Uw core.img is ongebruikelijk groot. Het zal niet in de inbeddingsruimte " +"passen." + +#: util/i386/pc/grub-setup.c:391 +msgid "Your embedding area is unusually small. core.img won't fit in it." +msgstr "" +"Uw inbeddingsruimte is ongebruikelijk klein. core.img zal er niet in passen." + +#: util/i386/pc/grub-setup.c:436 +msgid "" +"embedding is not possible, but this is required when the root device is on a " +"RAID array or LVM volume" +msgstr "" +"inbedding is niet mogelijk, maar dit is wel vereist als het root-device op " +"een RAID-array of LVM-volume staat." + +#: util/i386/pc/grub-setup.c:439 +#, fuzzy +msgid "" +"Embedding is not possible. GRUB can only be installed in this setup by " +"using blocklists. However, blocklists are UNRELIABLE and their use is " +"discouraged." +msgstr "" +"Inbedden is niet mogelijk. GRUB kan in deze configuratie alleen worden " +"geïnstalleerd met bloklijsten. Echter, bloklijsten zijn ONBETROUWBAAR en het " +"gebruik ervan wordt ontraden." + +#: util/i386/pc/grub-setup.c:443 +msgid "if you really want blocklists, use --force" +msgstr "wanneer u zeker bloklijsten wilt, gebruik dan --force. " + +#: util/i386/pc/grub-setup.c:462 +#, c-format +msgid "attempting to read the core image `%s' from GRUB" +msgstr "poging om de core-afbeelding `%s' uit GRUB te lezen" + +#: util/i386/pc/grub-setup.c:463 +#, c-format +msgid "attempting to read the core image `%s' from GRUB again" +msgstr "poging om de core-afbeelding `%s' uit GRUB opnieuw te lezen" + +#: util/i386/pc/grub-setup.c:530 +#, c-format +msgid "cannot read `%s' correctly" +msgstr "lezen `%s' niet correct" + +#: util/i386/pc/grub-setup.c:543 +msgid "no terminator in the core image" +msgstr "de core-afbeelding bevat geen eindteken" + +#: util/i386/pc/grub-setup.c:554 +msgid "failed to read the first sector of the core image" +msgstr "lezen van de eerste sector van de core-afbeelding is mislukt" + +#: util/i386/pc/grub-setup.c:560 +msgid "failed to read the rest sectors of the core image" +msgstr "lezen van de overige sectoren van de core-afbeelding is mislukt" + +#: util/i386/pc/grub-setup.c:579 +#, c-format +msgid "cannot open `%s'" +msgstr "openen `%s' is mislukt" + +#: util/i386/pc/grub-setup.c:621 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... DEVICE\n" +"\n" +"Set up images to boot from DEVICE.\n" +"DEVICE must be a GRUB device (e.g. `(hd0,1)').\n" +"\n" +"You should not normally run %s directly. Use grub-install instead.\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 "" +"Gebruik: %s [OPTIE]... APPARAAT\n" +"\n" +"Afbeeldingen instellen om op te starten vanaf APPARAAT.\n" +"APPARAAT moet een GRUB-apparaat zijn (b.v. `(hd0,1)').\n" +"\n" +" -b, --boot-image=BESTAND BESTAND gebruiken als de opstartafbeelding " +"[standaard=%s]\n" +" -c, --core-image=BESTAND BESTAND gebruiken als de core-afbeelding " +"[standaard=%s]\n" +" -d, --directory=MAP GRUB-bestanden gebruiken in de map MAP " +"[standaard=%s]\n" +" -m, --device-map=BESTAND BESTAND gebruiken als de apparaatmap [dtandaard=" +"%s]\n" +" -r, --root-device=APP APP gebruiken als het root-apparaat " +"[standaard=guessed]\n" +" -f, --force installeren, zelfs bij het optreden van fouten\n" +" -s, --skip-fs-probe niet testen op bestandssystemen in APPARAAT\n" +" -h, --help deze hulptekst tonen en stoppen\n" +" -V, --version versieinformatie tonen en stoppen\n" +" -v, --verbose veel informatie tonen\n" +"\n" +"Programmafouten melden bij <%s>.\n" +"Vertaalfouten melden bij .\n" + +#: util/i386/pc/grub-setup.c:753 +#, c-format +msgid "No device is specified.\n" +msgstr "Geen apparaat opgegeven.\n" + +#: util/i386/pc/grub-setup.c:759 +#, c-format +msgid "Unknown extra argument `%s'.\n" +msgstr "Extra argument `%s' is onbekend.\n" + +#: util/i386/pc/grub-setup.c:776 +#, c-format +msgid "Invalid device `%s'.\n" +msgstr "Ongeldig apparaat `%s'.\n" + +#: util/i386/pc/grub-setup.c:789 +#, c-format +msgid "invalid root device `%s'" +msgstr "ongeldig root-apparaat `%s'" + +#: util/i386/pc/grub-setup.c:802 +msgid "cannot guess the root device. Specify the option `--root-device'" +msgstr "kan het root-apparaat niet raden. Gebruik de optie `--root-device'." + +#~ msgid "[class [handler]]" +#~ msgstr "[class [handler]]" + +#~ msgid "List or select a handler." +#~ msgstr "Toon of selecteer een 'handler'." + +#~ msgid "no DOS-style partitions found" +#~ msgstr "geen DOS-achtige partities gevonden" + +#~ msgid "%s, with kFreeBSD %s" +#~ msgstr "%s, met kFreeBSD %s" + +#~ msgid "%s, with Linux %s (recovery mode)" +#~ msgstr "%s, met Linux %s (herstelmodus)" + +#~ msgid "%s, with Linux %s" +#~ msgstr "%s, met Linux %s" + +#~ msgid "A boot catalog exists and appears corrupted.\n" +#~ msgstr "Een opstartcatalogus bestaat en lijkt misvormd.\n" + +#~ msgid "Please check the following file: %s.\n" +#~ msgstr "Controleer het volgende bestand: %s.\n" + +#~ msgid "This file must be removed before a bootable CD can be done.\n" +#~ msgstr "" +#~ "Dit bestand moet worden verwijderd voordat een opstartbare CD gemaakt kan " +#~ "worden.\n" + +#~ msgid "Error creating boot catalog (%s)" +#~ msgstr "Aanmaken van boot-catalogus is mislukt (%s)" + +#~ msgid "Error writing to boot catalog (%s)" +#~ msgstr "Schrijven naar boot-catalogus is mislukt (%s)" + +#~ msgid "Boot catalog cannot be found!\n" +#~ msgstr "Boot-catalogus is niet gevonden!\n" + +#~ msgid "Boot image cannot be found!\n" +#~ msgstr "Boot-afbeelding is niet gevonden!\n" + +#~ msgid "" +#~ "\n" +#~ "Size of boot image is %d sectors" +#~ msgstr "" +#~ "\n" +#~ "Grootte van boot-afbeelding is %d sectoren" + +#~ msgid "No emulation\n" +#~ msgstr "Geen emulatie\n" + +#~ msgid "Emulating a 1.44 meg floppy\n" +#~ msgstr "Emuleren van een 1.44 Mb floppy\n" + +#~ msgid "Emulating a 2.88 meg floppy\n" +#~ msgstr "Emuleren van een 2.88 Mb floppy\n" + +#~ msgid "Emulating a 1.2 meg floppy\n" +#~ msgstr "Emuleren van een 1.2 Mb floppy\n" + +#~ msgid "" +#~ "\n" +#~ "Error - boot image is not the an allowable size.\n" +#~ msgstr "" +#~ "\n" +#~ "Fout - grootte boot-afbeelding is niet toegestaan.\n" + +#~ msgid "Error opening boot catalog for update" +#~ msgstr "Openen van boot-catalogus voor bijwerken is mislukt" + +#~ msgid "Error writing to boot catalog" +#~ msgstr "Schrijven naar boot-catalogus is mislukt" + +#~ msgid "Error opening boot image file '%s' for update" +#~ msgstr "Openen van boot-afbeeldingsbestand `%s' voor bijwerken is mislukt" + +#~ msgid "Odd alignment at non-end-of-file in boot image '%s'" +#~ msgstr "" +#~ "Vreemde uitlijning bij niet-einde-van-bestand in boot-afbeelding `%s'" + +#~ msgid "Boot image file '%s' changed unexpectedly" +#~ msgstr "Boot-afbeeldingsbestand `%s' is onverwacht gewijzigd" + +#~ msgid "Error writing to boot image (%s)" +#~ msgstr "Schrijven naar boot-afbeelding (%s) is mislukt" + +#~ msgid "Unable to generate sane path tables - too many directories (%d)\n" +#~ msgstr "" +#~ "Genereren van degelijke padtabellen is mislukt - te veel mappen (%d)\n" + +#~ msgid "Entry %d not in path tables\n" +#~ msgstr "Invoer %d niet in padtabellen\n" + +#~ msgid "Fatal goof - directory has amnesia\n" +#~ msgstr "Fatale flater - map leidt aan geheugenverlies\n" + +#~ msgid "Joliet path table lengths do not match %d %d\n" +#~ msgstr "Lengten joliet-padtabel komen niet overeen met %d %d\n" + +#~ msgid "Unable to locate relocated directory\n" +#~ msgstr "Kan verplaatste map niet vinden\n" + +#~ msgid "Fatal goof - unable to find directory location\n" +#~ msgstr "Fatale flater - maplocatie is niet gevonden\n" + +#~ msgid "Unexpected joliet directory length %d %d %s\n" +#~ msgstr "Onverwachte joliet-maplengte %d %d %s\n" + +#~ msgid "Using \"%s\"\n" +#~ msgstr "Gebruikt \"%s\"\n" + +#~ msgid "%s:%d: name required\n" +#~ msgstr "%s:%d: naam vereist\n" + +#~ msgid "%s:%d: equals sign required\n" +#~ msgstr "%s:%d: gelijkteken vereist\n" + +#~ msgid "%s:%d: field name \"%s\" unknown\n" +#~ msgstr "%s:%d: veldnaam \"%s\" is onbekend\n" + +#~ msgid "Usage: %s [options] file...\n" +#~ msgstr "Gebruik: %s [opties] bestand...\n" + +#~ msgid "Options:\n" +#~ msgstr "Opties:\n" + +#~ msgid "-i option no longer supported.\n" +#~ msgstr "-i-optie wordt niet langer ondersteund.\n" + +#~ msgid "Required boot image pathname missing\n" +#~ msgstr "Vereiste padnaam van boot-afbeelding ontbreekt\n" + +#~ msgid "Required boot catalog pathname missing\n" +#~ msgstr "Vereiste padnaam boot-catalogus ontbreekt\n" + +#~ msgid "Ignoring -no-emul-boot (no-emulation is the default behaviour)\n" +#~ msgstr "-no-emul-boot negeren (geen emulatie is het standaardgedrag)\n" + +#~ msgid "Abstract filename string too long\n" +#~ msgstr "Tekenreeks Abstracte bestandsnaam is te lang\n" + +#~ msgid "Application-id string too long\n" +#~ msgstr "Tekenreeks Applicatie-id is te lang\n" + +#~ msgid "Bibliographic filename string too long\n" +#~ msgstr "Tekenreeks Bibliografische bestandsnaam is te lang\n" + +#~ msgid "Copyright filename string too long\n" +#~ msgstr "Tekenreeks Copyright-bestandsnaam is te lang\n" + +#~ msgid "Preparer string too long\n" +#~ msgstr "Tekenreeks Voorbereider is te lang\n" + +#~ msgid "Publisher string too long\n" +#~ msgstr "Tekenreeks Uitgever is te lang\n" + +#~ msgid "System ID string too long\n" +#~ msgstr "Tekenreeks Systeem-id is te lang\n" + +#~ msgid "Volume ID string too long\n" +#~ msgstr "Tekenreeks Schijf-id is te lang\n" + +#~ msgid "Volume set ID string too long\n" +#~ msgstr "Tekenreeks Schijvenset-id is te lang\n" + +#~ msgid "Volume set sequence number too big\n" +#~ msgstr "Volgordenummer schijvenset is te groot\n" + +#~ msgid "date string must be 16 characters.\n" +#~ msgstr "datumtekenreeks dient 16 tekens te bedragen.\n" + +#~ msgid "Warning: getrlimit" +#~ msgstr "Waarschuwing: getrlimit" + +#~ msgid "Warning: setrlimit" +#~ msgstr "Waarschuwing: setrlimit" + +#~ msgid "Multisession usage bug: Must specify -C if -M is used.\n" +#~ msgstr "" +#~ "Fout in gebruik multisessie: -C moet worden opgegeven bij gebruik van -" +#~ "M.\n" + +#~ msgid "" +#~ "Warning: -C specified without -M: old session data will not be merged.\n" +#~ msgstr "" +#~ "Waarschuwing: -C opgegeven zonder -M: oude sessiegegevens worden niet " +#~ "samengevoegd.\n" + +#~ msgid "can't open logfile: %s" +#~ msgstr "kan logbestand %s niet openen" + +#~ msgid "re-directing all messages to %s\n" +#~ msgstr "alle meldingen wordt doorgestuurd naar %s\n" + +#~ msgid "can't open logfile: %s\n" +#~ msgstr "kan logbestand %s niet openen\n" + +#~ msgid "Unable to open previous session image %s\n" +#~ msgstr "Openen van vorige sessieafbeelding %s is mislukt\n" + +#~ msgid "Invalid node - %s\n" +#~ msgstr "Ongeldige knoop - %s\n" + +#~ msgid "Joliet tree sort failed.\n" +#~ msgstr "Sorteren joliet-boom is mislukt.\n" + +#~ msgid "Unable to open /dev/null\n" +#~ msgstr "Kan /dev/null niet openen\n" + +#~ msgid "Unable to open disc image file\n" +#~ msgstr "Kan bestand met schijfafbeelding niet openen\n" + +#~ msgid "Max brk space used %x\n" +#~ msgstr "Maximaal gebruikte brk-ruimte %x\n" + +#~ msgid "%llu extents written (%llu MiB)\n" +#~ msgstr "%llu uitbreiding geschreven (%llu MiB)\n" + +#~ msgid "Seek error on old image\n" +#~ msgstr "Zoekfout op oude afbeelding\n" + +#~ msgid "**Bad RR version attribute" +#~ msgstr "**Slechte RR-versieattribuut" + +#~ 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 "" +#~ "Waarschuwing: noch Rock Ridge (-R), noch TRANS.TBL (-T) naamvertalingen " +#~ "zijn gevonden bij de vorige sessie. In plaats daarvan zijn ISO (8.3) " +#~ "bestandsnamen gebruikt.\n" + +#~ msgid "Read error on old image %s\n" +#~ msgstr "Leesfout op oude afbeelding %s\n" + +#~ msgid "Special parameters for cdwrite not specified with -C\n" +#~ msgstr "Speciale parameter voor cdwrite niet opgegeven met -C\n" + +#~ msgid "Malformed cdwrite parameters\n" +#~ msgstr "Misvormde cdwrite-parameters\n" + +#~ msgid "symbolic link ``%s'' to long for one SL System Use Field, splitting" +#~ msgstr "" +#~ "symbolische koppeling ``%s'' te lang voor een SL System Use Field, wordt " +#~ "opgesplitst" + +#~ msgid "Unable to insert transparent compressed file - name conflict\n" +#~ msgstr "" +#~ "Kan transparant gecomprimeerd bestand niet invoegen - naamconflict\n" + +#~ msgid "Extension record too long\n" +#~ msgstr "Extensie-record te lang\n" + +#~ msgid "Fatal goof\n" +#~ msgstr "Fatale flater\n" + +#~ msgid "Unable to generate unique name for file %s\n" +#~ msgstr "Genereren unieke naam voor bestand %s is mislukt\n" + +#~ msgid "Using %s for %s%s%s (%s)\n" +#~ msgstr "%s gebruiken voor %s%s%s (%s)\n" + +#~ msgid "Fatal error - RR overflow for file %s\n" +#~ msgstr "Fatale fout - RR-overloop voor bestand %s\n" + +#~ msgid "Unable to sort directory %s\n" +#~ msgstr "Kan map %s niet sorteren\n" + +#~ msgid "Translation table size mismatch %d %d\n" +#~ msgstr "Grootte vertaaltabel komt niet overeen %d %d\n" + +#~ msgid "Unable to locate directory parent\n" +#~ msgstr "Vinden bovenliggende map is mislukt\n" + +#~ msgid "Scanning %s\n" +#~ msgstr "%s scannen\n" + +#~ msgid "Unable to open directory %s\n" +#~ msgstr "Openen map %s is mislukt\n" + +#~ msgid "Ignoring file %s\n" +#~ msgstr "Bestand %s negeren\n" + +#~ msgid "Overflow of stat buffer\n" +#~ msgstr "Overloop van stat-buffer\n" + +#~ msgid "Excluded by match: %s\n" +#~ msgstr "Uitgesloten bij overeenkomst: %s\n" + +#~ msgid "Excluded: %s\n" +#~ msgstr "Uitgesloten: %s\n" + +#~ msgid "Non-existant or inaccessible: %s\n" +#~ msgstr "Niet-bestaand of ontoegankelijk: %s\n" + +#~ msgid "Unable to stat file %s - ignoring and continuing.\n" +#~ msgstr "Kan status van bestand %s niet bepalen - negeren en doorgaan.\n" + +#~ msgid "Symlink %s ignored - continuing.\n" +#~ msgstr "Symbolische koppeling %s genegeerd - doorgaan.\n" + +#~ msgid "Already cached directory seen (%s)\n" +#~ msgstr "Reeds gebufferde map gezien (%s)\n" + +#~ msgid "File %s is not readable (%s) - ignoring\n" +#~ msgstr "Bestand %s is niet leesbaar (%s) - negeren\n" + +#~ msgid "Directory loop - fatal goof (%s %lx %lu).\n" +#~ msgstr "Mappenlus - fatale flater (%s %lx %lu).\n" + +#~ msgid "Unknown file type %s - ignoring and continuing.\n" +#~ msgstr "Onbekend bestandstype %s - negeren en doorgaan.\n" + +#~ msgid "Hidden from ISO9660 tree: %s\n" +#~ msgstr "Verborgen voor ISO9660-boom: %s\n" + +#~ msgid "Hidden from Joliet tree: %s\n" +#~ msgstr "Verborgen voor joliet-boom: %s\n" + +#~ msgid "Directories too deep %s\n" +#~ msgstr "Mapstructuur te diep %s\n" + +#~ msgid "Unable to delete non-empty directory\n" +#~ msgstr "Kan gevulde map niet verwijderen\n" + +#~ msgid "Unable to locate child directory in parent list\n" +#~ msgstr "Kan kind-map niet vinden in ouder-lijst\n" + +#~ msgid "call to search_tree_file with an absolute path, stripping\n" +#~ msgstr "aanroep van search_tree_file met een absoluut pad, strippen\n" + +#~ msgid "initial path separator. Hope this was intended...\n" +#~ msgstr "oorspronkelijk padscheidingsteken. Hopelijk is dit opzettelijk...\n" + +#~ msgid "Cannot open '%s'" +#~ msgstr "Openen '%s' is mislukt" + +#~ msgid "cannot fwrite %llu*%llu\n" +#~ msgstr "fwrite %llu*%llu is mislukt\n" + +#~ msgid "cannot open %s\n" +#~ msgstr "Openen %s is mislukt\n" + +#~ msgid "cannot read %llu bytes from %s" +#~ msgstr "Lezen %llu bytes van %s is mislukt" + +#~ msgid "%6.2f%% done, estimate finish %s" +#~ msgstr "%6.2f%% gedaan, verwachte afronding %s" + +#~ msgid "Cache hit for %s%s%s\n" +#~ msgstr "Bufferovereenkomst voor %s%s%s\n" + +#~ msgid "Unexpected directory length %d %d %s\n" +#~ msgstr "Onverwachte maplengte %d %d %s\n" + +#~ msgid "Continuation entry record length mismatch (%d %d).\n" +#~ msgstr "Recordlengte voortzettingsitem komt niet overeen (%d %d).\n" + +#~ msgid "Path table lengths do not match %d %d\n" +#~ msgstr "Lengten padtabel komen niet overeen %d %d\n" + +#~ msgid "Total extents scheduled to be written = %llu\n" +#~ msgstr "Totale uitbreidingen ingepland om te worden weggeschreven = %llu\n" + +#~ msgid "Total extents actually written = %llu\n" +#~ msgstr "Werkelijk weggeschreven totale uitbreidingen = %llu\n" + +#~ msgid "" +#~ "Number of extents written different than what was predicted. Please " +#~ "fix.\n" +#~ msgstr "" +#~ "Aantal weggeschreven uitbreidingen verschilt van de verwachting. Graag " +#~ "herstellen.\n" + +#~ msgid "Predicted = %d, written = %llu\n" +#~ msgstr "Verwacht = %d, weggeschreven = %llu\n" + +#~ msgid "Total translation table size: %d\n" +#~ msgstr "Totale grootte vertaaltabel: %d\n" + +#~ msgid "Total rockridge attributes bytes: %d\n" +#~ msgstr "Totaal aantal bytes rockridge-attributen: %d\n" + +#~ msgid "Total directory bytes: %d\n" +#~ msgstr "Totaal aantal mappenbytes: %d\n" + +#~ msgid "Path table size(bytes): %d\n" +#~ msgstr "Grootte padtabel (bytes): %d\n" --- grub2-1.98+20100804.orig/po/vi.po +++ grub2-1.98+20100804/po/vi.po @@ -0,0 +1,1342 @@ +# Vietnamese translation for GRUB. +# Copyright © 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the grub package. +# Clytie Siddall , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub 1.97+20100124\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-06-19 01:35+0100\n" +"PO-Revision-Date: 2010-03-20 00:25+0930\n" +"Last-Translator: Clytie Siddall \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: LocFactoryEditor 1.8\n" + +#: commands/acpi.c:40 +msgid "Don't load host tables specified by comma-separated list." +msgstr "Đừng nạp các bảng chủ chỉ rõ trong danh sách định giới bằng dấu phẩy." + +#: commands/acpi.c:43 +msgid "Load only tables specified by comma-separated list." +msgstr "Nạp chỉ bảng chủ chỉ rõ trong danh sách định giới bằng dấu phẩy." + +#: commands/acpi.c:44 +msgid "Expose v1 tables." +msgstr "Phơi bày các bảng phiên bản 1." + +#: commands/acpi.c:45 +msgid "Expose v2 and v3 tables." +msgstr "Phơi bày các bảng phiên bản 2 và 3." + +#: commands/acpi.c:46 +msgid "Set OEMID of RSDP, XSDT and RSDT." +msgstr "Lập OEMID của RSDP, XSDT và RSDT." + +#: commands/acpi.c:48 +msgid "Set OEMTABLE ID of RSDP, XSDT and RSDT." +msgstr "Lập mã số OEMTABLE ID của RSDP, XSDT và RSDT." + +#: commands/acpi.c:50 +msgid "Set OEMTABLE revision of RSDP, XSDT and RSDT." +msgstr "Lập bản sửa đổi OEMTABLE của RSDP, XSDT và RSDT." + +#: commands/acpi.c:52 +msgid "Set creator field of RSDP, XSDT and RSDT." +msgstr "Lập trường trình tạo của RSDP, XSDT và RSDT." + +#: commands/acpi.c:54 +msgid "Set creator revision of RSDP, XSDT and RSDT." +msgstr "Lập bản sửa đổi trình tạo của RSDP, XSDT và RSDT." + +#: commands/acpi.c:55 +msgid "" +"Don't update EBDA. May fix failures or hangs on some. BIOSes but makes it " +"ineffective with OS not receiving RSDP from GRUB." +msgstr "" +"Đừng cập nhật EBDA. Có thể sửa chữa trường hợp thất bại hoặc bị treo trên " +"một số BIOS nào đó, nhưng mà làm cho không có kết quả khi HĐH không nhận " +"RDSP từ GRUB." + +#: commands/acpi.c:763 +msgid "" +"[-1|-2] [--exclude=TABLE1,TABLE2|--load-only=table1,table2] FILE1 [FILE2] " +"[...]" +msgstr "" +"[-1|-2] [--exclude=BẢNG1,BẢNG2|--load-only=bảng1,bảng2] TẬP_TIN1 [TẬP_TIN2] " +"[...]" + +#: commands/acpi.c:766 +msgid "Load host ACPI tables and tables specified by arguments." +msgstr "Nạp các bảng ACPI chủ và các bảng được đối số chỉ rõ." + +#: commands/blocklist.c:113 commands/cat.c:82 commands/configfile.c:57 +#: commands/configfile.c:60 commands/configfile.c:65 commands/crc.c:64 +#: commands/minicmd.c:353 loader/i386/bsd.c:1287 loader/i386/bsd.c:1291 +#: loader/i386/bsd.c:1295 +msgid "FILE" +msgstr "TỆP" + +#: commands/blocklist.c:113 +msgid "Print a block list." +msgstr "In ra một danh sách cấm." + +#: commands/boot.c:190 +msgid "Boot an operating system." +msgstr "Khởi động một hệ điều hành." + +#: commands/cat.c:82 commands/minicmd.c:353 +msgid "Show the contents of a file." +msgstr "Hiển thị nội dung của một tập tin." + +#: commands/cmp.c:113 +msgid "FILE1 FILE2" +msgstr "TỆP1 TỆP2" + +#: commands/cmp.c:113 +msgid "Compare two files." +msgstr "So sánh hai tập tin." + +#: commands/configfile.c:57 +msgid "Load another config file." +msgstr "Nạp một tập tin cấu hình khác." + +#: commands/configfile.c:61 commands/configfile.c:66 +msgid "Load another config file without changing context." +msgstr "Nạp một tập tin cấu hình khác mà không thay đổi ngữ cảnh." + +#: commands/crc.c:65 +msgid "Calculate the crc32 checksum of a file." +msgstr "Tính tổng kiểm crc32 của một tập tin." + +#: commands/date.c:139 +msgid "[[year-]month-day] [hour:minute[:second]]" +msgstr "[[năm-]tháng-ngày] [giờ:phút[:giây]]" + +#: commands/date.c:140 +msgid "Command to display/set current datetime." +msgstr "Câu lệnh để hiển thị hay lập ngày/giờ hiện thời." + +#: commands/echo.c:27 +msgid "Do not output the trailing newline." +msgstr "Đừng xuất ký tự dòng mới theo sau." + +#: commands/echo.c:28 +msgid "Enable interpretation of backslash escapes." +msgstr "Hiệu lực khả năng biên dịch ký tự thoát xuyệc ngược." + +#: commands/echo.c:117 +msgid "[-e|-n] STRING" +msgstr "[-e|-n] CHUỖI" + +#: commands/echo.c:117 +msgid "Display a line of text." +msgstr "Hiển thị một dòng văn bản." + +#: commands/efi/fixvideo.c:103 +msgid "Fix video problem." +msgstr "Sửa chữa vấn đề ảnh động." + +#: commands/efi/loadbios.c:207 +msgid "Fake BIOS." +msgstr "BIOS giả." + +#: commands/efi/loadbios.c:211 +msgid "Load BIOS dump." +msgstr "Nạp bản đổ BIOS." + +#: commands/gptsync.c:244 +msgid "DEVICE [PARTITION[+/-[TYPE]]] ..." +msgstr "THIẾT_BỊ [PHÂN_VÙNG[+/-[KIỂU]]] ..." + +#: commands/gptsync.c:245 +#, fuzzy +msgid "" +"Fill hybrid MBR of GPT drive DEVICE. Specified partitions will be a part of " +"hybrid MBR. Up to 3 partitions are allowed. TYPE is an MBR type. + means " +"that partition is active. Only one partition can be active." +msgstr "" +"Tô đầy MBR pha giống của ổ đĩa GPT « THIẾT_BỊ ». Các phân vùng chỉ rõ sẽ " +"thuộc về MBR pha giống. Cho phép đến 3 phân vùng. « KIỂU » là một kiểu MBR. " +"« + » có nghĩa là phân vùng đó vẫn hoạt động. Chỉ một phân vùng có thể hoạt " +"động." + +#: commands/halt.c:39 +msgid "" +"Halts the computer. This command does not work on all firmware " +"implementations." +msgstr "" +"Tạm dừng lại chạy máy tính. Câu lệnh này không có tác động trên mọi bản thực " +"hiện phần vững." + +#: commands/hdparm.c:30 +msgid "" +"Set Advanced Power Management\n" +"(1=low, ..., 254=high, 255=off)." +msgstr "" +"Lập sự quản lý điện năng cấp cao (Advanced Power Management)\n" +"(1=thấp, ..., 254=cao, 255=tắt)." + +#: commands/hdparm.c:33 +msgid "Check power mode." +msgstr "Kiểm tra chế độ điện năng." + +#: commands/hdparm.c:34 +msgid "Freeze ATA security settings until reset." +msgstr "Làm đông đặc thiết lập bảo mật ATA đến khi đặt lại." + +#: commands/hdparm.c:36 +msgid "Check SMART health status." +msgstr "Kiểm tra trạng thái lành mạnh SMART." + +#: commands/hdparm.c:37 +msgid "" +"Set Automatic Acoustic Management\n" +"(0=off, 128=quiet, ..., 254=fast)." +msgstr "" +"Lập sự tự động quản lý âm thanh (Automatic Acoustic Management)\n" +"(0=tắt, 128=im, ..., 254=nhanh)." + +#: commands/hdparm.c:40 +msgid "" +"Set standby timeout\n" +"(0=off, 1=5s, 2=10s, ..., 240=20m, 241=30m, ...)." +msgstr "" +"Lập thời hạn trạng thái chờ\n" +"(0=tắt, 1=5giây, 2=10giây, ..., 240=20phút, 241=30phút, ...)." + +#: commands/hdparm.c:43 +msgid "Set drive to standby mode." +msgstr "Lập ổ đĩa thành chế độ chờ." + +#: commands/hdparm.c:44 +msgid "Set drive to sleep mode." +msgstr "Lập ổ đĩa thành chế độ ngủ." + +#: commands/hdparm.c:45 +msgid "Print drive identity and settings." +msgstr "In ra sự nhận diện và thiết lập về ổ đĩa." + +#: commands/hdparm.c:47 +msgid "Dump contents of ATA IDENTIFY sector." +msgstr "Đổ nội dung của rãnh ghi IDENTIFY (nhận diện) kiểu ATA." + +#: commands/hdparm.c:49 +msgid "Disable/enable SMART (0/1)." +msgstr "Bật/tắt SMART (0/1)." + +#: commands/hdparm.c:50 +msgid "Do not print messages." +msgstr "Đừng hiển thị thông điệp." + +#: commands/hdparm.c:414 +msgid "[OPTIONS] DISK" +msgstr "[TÙY_CHỌN ...] ĐĨA" + +#: commands/hdparm.c:415 +msgid "Get/set ATA disk parameters." +msgstr "Lấy/lập các tham số đĩa ATA." + +#: commands/help.c:112 lib/arg.c:110 +msgid "Usage:" +msgstr "Sử dụng:" + +#: commands/help.c:129 +msgid "[PATTERN ...]" +msgstr "[MẪU ...]" + +#: commands/help.c:130 +msgid "Show a help message." +msgstr "Hiển thị một thông điệp trợ giúp." + +#: commands/hexdump.c:30 +msgid "Skip offset bytes from the beginning of file." +msgstr "Bỏ qua các byte bù từ đầu tập tin." + +#: commands/hexdump.c:32 +msgid "Read only LENGTH bytes." +msgstr "Đọc chỉ DÀI byte." + +#: commands/hexdump.c:125 +msgid "[OPTIONS] FILE_OR_DEVICE" +msgstr "[TÙY_CHỌN ...] TẬP_TIN_HAY_THIẾT_BỊ" + +#: commands/hexdump.c:126 +msgid "Dump the contents of a file or memory." +msgstr "Đổ nội dung của một tập tin hay vùng nhớ." + +#: commands/i386/cpuid.c:37 +msgid "Check for long mode flag (default)." +msgstr "Kiểm tra có cờ chế độ dài (mặc định)." + +#: commands/i386/cpuid.c:92 +msgid "Check for CPU features." +msgstr "Kiểm tra có các tính năng CPU." + +#: commands/i386/pc/drivemap.c:37 +msgid "Show the current mappings." +msgstr "Hiển thị các sự ánh xạ hiện thời." + +#: commands/i386/pc/drivemap.c:38 +msgid "Reset all mappings to the default values." +msgstr "Đặt lại mỗi sự ánh xạ thành giá trị mặc định." + +#: commands/i386/pc/drivemap.c:39 +msgid "Perform both direct and reverse mappings." +msgstr "Ánh xạ bằng cả hai cách trực tiếp và ngược lại." + +#: commands/i386/pc/drivemap.c:406 +msgid "-l | -r | [-s] grubdev osdisk." +msgstr "-l | -r | [-s] grubdev đĩa_chứa_HĐH." + +#: commands/i386/pc/drivemap.c:407 +msgid "Manage the BIOS drive mappings." +msgstr "Quản lý các sự ánh xạ ổ đĩa BIOS." + +#: commands/i386/pc/halt.c:27 +msgid "Do not use APM to halt the computer." +msgstr "Đừng dùng APM để tạm dừng lại chạy máy tính." + +#: commands/i386/pc/halt.c:51 +msgid "Halt the system, if possible using APM." +msgstr "Tạm dừng lại chạy máy tính, nếu có thể, dùng APM." + +#: commands/i386/pc/play.c:266 +msgid "FILE | TEMPO [PITCH1 DURATION1] [PITCH2 DURATION2] ... " +msgstr "" + +#: commands/i386/pc/play.c:267 +msgid "Play a tune." +msgstr "Phát một giai điệu." + +#: commands/i386/pc/pxecmd.c:46 +msgid "Unload PXE environment." +msgstr "Bỏ nạp môi trường PXE." + +#: commands/i386/pc/vbeinfo.c:179 +msgid "List compatible VESA BIOS extension video modes." +msgstr "Liệt kê các chế độ ảnh động mở rộng BIOS VESA tương thích." + +#: commands/i386/pc/vbetest.c:173 +msgid "Test VESA BIOS Extension 2.0+ support." +msgstr "Thử khả năng hỗ trợ phần mở rộng VESA BIOS Extension 2.0+." + +#: commands/ieee1275/suspend.c:43 +msgid "Return to Open Firmware prompt." +msgstr "Trở về dấu nhắc Phần vững Mở (Open Firmware)." + +#: commands/keystatus.c:28 +msgid "Check Shift key." +msgstr "Kiểm tra phím Shift." + +#: commands/keystatus.c:29 +msgid "Check Control key." +msgstr "Kiểm tra phím Control." + +#: commands/keystatus.c:30 +msgid "Check Alt key." +msgstr "Kiểm tra phím Alt." + +# nghĩa chữ +#: commands/keystatus.c:85 +msgid "[--shift] [--ctrl] [--alt]" +msgstr "[--shift] [--ctrl] [--alt]" + +#: commands/keystatus.c:86 +msgid "Check key modifier status." +msgstr "Kiểm tra trạng thái về phím bổ trợ." + +#: commands/loadenv.c:33 +msgid "Specify filename." +msgstr "Ghi rõ tên tập tin." + +#: commands/loadenv.c:378 commands/loadenv.c:384 +msgid "[-f FILE]" +msgstr "[-f TỆP]" + +#: commands/loadenv.c:379 +msgid "Load variables from environment block file." +msgstr "Nạp các biến từ tập tin khối môi trường." + +#: commands/loadenv.c:385 +msgid "List variables from environment block file." +msgstr "Liệt kê các biến từ tập tin khối môi trường." + +#: commands/loadenv.c:390 +msgid "[-f FILE] variable_name [...]" +msgstr "[-f TỆP] tên_biến [...]" + +#: commands/loadenv.c:391 +msgid "Save variables to environment block file." +msgstr "Lưu các biến vào tập tin khối môi trường." + +#: commands/ls.c:37 +msgid "Show a long list with more detailed information." +msgstr "Hiển thị một danh sách dài chứa thông tin bổ sung." + +#: commands/ls.c:38 +msgid "Print sizes in a human readable format." +msgstr "In kích cỡ theo một định dạng cho người đọc được." + +#: commands/ls.c:39 +msgid "List all files." +msgstr "Liệt kê tất cả các tập tin." + +#: commands/ls.c:269 +msgid "[-l|-h|-a] [FILE]" +msgstr "[-l|-h|-a] [TỆP]" + +#: commands/ls.c:270 +msgid "List devices and files." +msgstr "Liệt kê các thiết bị và tập tin." + +#: commands/lsmmap.c:51 +msgid "List memory map provided by firmware." +msgstr "Liệt kê các sơ đồ vùng nhớ được phần vững cung cấp." + +#: commands/lspci.c:228 +msgid "List PCI devices." +msgstr "Liệt kê cạc thiết bị PCI." + +#: commands/memrw.c:31 +msgid "Save read value into variable VARNAME." +msgstr "Lưu giá trị đọc vào biến TÊN_BIẾN." + +#: commands/memrw.c:123 commands/memrw.c:126 commands/memrw.c:129 +#: commands/minicmd.c:362 +msgid "ADDR" +msgstr "ĐỊA_CHỈ" + +#: commands/memrw.c:123 +msgid "Read byte from ADDR." +msgstr "Đọc byte từ ĐỊA_CHỈ." + +#: commands/memrw.c:126 +msgid "Read word from ADDR." +msgstr "Đọc từ từ ĐỊA_CHỈ." + +#: commands/memrw.c:129 +msgid "Read dword from ADDR." +msgstr "Đọc dword từ ĐỊA_CHỈ." + +#: commands/memrw.c:132 commands/memrw.c:135 commands/memrw.c:138 +msgid "ADDR VALUE [MASK]" +msgstr "ĐỊA_CHỈ GIÁ_TRỊ [BỘ_LỌC]" + +#: commands/memrw.c:132 +msgid "Write byte VALUE to ADDR." +msgstr "Ghi GIÁ_TRỊ byte vào ĐỊA_CHỈ." + +#: commands/memrw.c:135 +msgid "Write word VALUE to ADDR." +msgstr "Ghi GIÁ_TRỊ từ vào ĐỊA_CHỈ." + +#: commands/memrw.c:138 +msgid "Write dword VALUE to ADDR." +msgstr "Ghi GIÁ_TRỊ dword vào ĐỊA_CHỈ." + +#: commands/minicmd.c:356 +msgid "Show this message." +msgstr "Hiển thị thông điệp này." + +#: commands/minicmd.c:359 commands/probe.c:154 +msgid "[DEVICE]" +msgstr "[THIẾT_BỊ]" + +#: commands/minicmd.c:359 +msgid "Set the root device." +msgstr "Lập thiết bị gốc." + +#: commands/minicmd.c:362 +msgid "Dump memory." +msgstr "Đổ vùng nhớ." + +#: commands/minicmd.c:365 +msgid "MODULE" +msgstr "MÔ-ĐUN" + +#: commands/minicmd.c:365 +msgid "Remove a module." +msgstr "Gỡ bỏ một mô-đun nào đó." + +#: commands/minicmd.c:368 +msgid "Show loaded modules." +msgstr "Hiển thị các mô-đun được nạp." + +#: commands/minicmd.c:371 +msgid "Exit from GRUB." +msgstr "Thoát khỏi GRUB." + +#: commands/minicmd.c:374 +msgid "Clear the screen." +msgstr "Xoá màn hình." + +#: commands/parttool.c:325 +msgid "PARTITION COMMANDS" +msgstr "PHÂN_VÙNG CÁC_LỆNH" + +#: commands/password.c:78 +msgid "USER PASSWORD" +msgstr "NGƯỜI_DÙNG MẬT_KHẨU" + +#: commands/password.c:79 +msgid "Set user password (plaintext). Unrecommended and insecure." +msgstr "Lập mật khẩu người dùng (chữ rõ). KHÔNG AN TOÀN !" + +#: commands/probe.c:38 +msgid "Set a variable to return value." +msgstr "Lập một biến để trả lại giá trị." + +#: commands/probe.c:39 +msgid "Determine driver." +msgstr "Quyết định trình điều khiển." + +#: commands/probe.c:40 +msgid "Determine partition map type." +msgstr "Quyết định kiểu sơ đồ phân vùng." + +#: commands/probe.c:41 +msgid "Determine filesystem type." +msgstr "Quyết định kiểu hệ thống tập tin." + +#: commands/probe.c:42 +msgid "Determine filesystem UUID." +msgstr "Quyết định UUID hệ thống tập tin." + +#: commands/probe.c:43 +msgid "Determine filesystem label." +msgstr "Quyết định nhãn hệ thống tập tin." + +#: commands/probe.c:155 +msgid "Retrieve device info." +msgstr "Lấy thông tin về thiết bị." + +#: commands/read.c:83 +msgid "[ENVVAR]" +msgstr "[BIẾN_MÔI_TRƯỜNG]" + +#: commands/read.c:84 +msgid "Set variable with user input." +msgstr "Lập biến dùng đầu vào người dùng." + +#: commands/reboot.c:39 +msgid "Reboot the computer." +msgstr "Khởi động lại máy tính." + +#: commands/search.c:161 +msgid "NAME [VARIABLE]" +msgstr "TÊN [BIẾN]" + +#: commands/search_file.c:5 +msgid "" +"Search devices by file. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Quét các thiết bị theo tập tin. Chỉ rõ BIẾN thì thiết bị được tìm thứ nhất " +"được lập thành một biến." + +#: commands/search_label.c:5 +msgid "" +"Search devices by label. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Quét các thiết bị theo nhãn. Chỉ rõ BIẾN thì thiết bị được tìm thứ nhất được " +"lập thành một biến." + +#: commands/search_uuid.c:5 +msgid "" +"Search devices by UUID. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Quét các thiết bị theo UUID (mã nhận diện duy nhất). Chỉ rõ BIẾN thì thiết " +"bị được tìm thứ nhất được lập thành một biến." + +#: commands/sleep.c:30 +msgid "Verbose countdown." +msgstr "Đếm ngược với chi tiết." + +#: commands/sleep.c:31 +msgid "Interruptible with ESC." +msgstr "Gián đoạn được với phím ESC." + +#: commands/sleep.c:105 +msgid "NUMBER_OF_SECONDS" +msgstr "SỐ_CÁC_GIÂY" + +#: commands/sleep.c:106 +msgid "Wait for a specified number of seconds." +msgstr "Đợi trong vòng một số các giây được ghi rõ." + +#: commands/test.c:424 +msgid "EXPRESSION ]" +msgstr "BIỂU_THỨC ]" + +#: commands/test.c:424 commands/test.c:426 +msgid "Evaluate an expression." +msgstr "Ước lượng một biểu thức." + +#: commands/test.c:426 +msgid "EXPRESSION" +msgstr "BIỂU_THỨC" + +#: commands/true.c:47 +msgid "Do nothing, successfully." +msgstr "Không làm gì, một cách thành công." + +#: commands/true.c:50 +msgid "Do nothing, unsuccessfully." +msgstr "Không làm gì, một cách không thành công." + +#: commands/usbtest.c:208 +msgid "Test USB support." +msgstr "Thử khả năng hỗ trợ USB." + +#: commands/videotest.c:180 +msgid "Test video subsystem." +msgstr "Thử hệ thống phụ ảnh động." + +#: commands/xnu_uuid.c:92 +msgid "GRUBUUID [VARNAME]" +msgstr "UUID_GRUB [TÊN_BIẾN]" + +#: commands/xnu_uuid.c:93 +msgid "Transform 64-bit UUID to format suitable for XNU." +msgstr "Chuyển dạng UUID 64-bit sang một định dạng thích hợp với XNU." + +#: disk/loopback.c:40 +msgid "Delete the loopback device entry." +msgstr "Xoá mục nhập thiết bị mạch nội bộ." + +#: disk/loopback.c:41 +msgid "Simulate a hard drive with partitions." +msgstr "Mô phỏng một ổ đĩa cứng có phân vùng." + +#: disk/loopback.c:249 +msgid "[-d|-p] DEVICENAME FILE." +msgstr "[-d|-p] TÊN_THIẾT_BỊ TẬP_TIN." + +#: disk/loopback.c:250 +msgid "Make a device of a file." +msgstr "Tạo thiết bị từ một tập tin." + +#: hello/hello.c:43 +msgid "Say \"Hello World\"." +msgstr "Nói « Chào thế giới »." + +#: lib/arg.c:34 +msgid "Display this help and exit." +msgstr "Hiển thị trợ giúp này, sau đó thoát." + +#: lib/arg.c:36 +msgid "Display the usage of this command and exit." +msgstr "Hiển thị cách sử dụng lệnh này, sau đó thoát." + +#: loader/efi/appleloader.c:325 +msgid "Boot legacy system." +msgstr "Khởi động hệ thống thừa tự." + +#: loader/efi/chainloader.c:340 loader/i386/pc/chainloader.c:166 +msgid "Load another boot loader." +msgstr "Nạp một bộ nạp khởi động khác." + +#: loader/i386/bsd.c:65 +msgid "Display output on all consoles." +msgstr "Hiển thị kết xuất trên tất cả các bàn giao tiếp." + +#: loader/i386/bsd.c:66 +msgid "Use serial console." +msgstr "Dùng bàn giao tiếp kiểu nối tiếp." + +#: loader/i386/bsd.c:67 loader/i386/bsd.c:93 loader/i386/bsd.c:114 +msgid "Ask for file name to reboot from." +msgstr "Yêu cầu tên tập tin từ đó cần khởi động lại." + +#: loader/i386/bsd.c:68 +msgid "Use CDROM as root." +msgstr "Dùng ĐĨA_CD làm gốc." + +#: loader/i386/bsd.c:69 +msgid "Invoke user configuration routing." +msgstr "Gọi chức năng định tuyến tùy theo cấu hình người dùng." + +#: loader/i386/bsd.c:70 loader/i386/bsd.c:97 loader/i386/bsd.c:117 +msgid "Enter in KDB on boot." +msgstr "Vào KDB khi khởi động." + +#: loader/i386/bsd.c:71 +msgid "Use GDB remote debugger instead of DDB." +msgstr "Dùng bộ gỡ lỗi GDB từ xa thay cho DDB." + +#: loader/i386/bsd.c:72 +msgid "Disable all boot output." +msgstr "Tắt tất cả các kết xuất khởi động." + +#: loader/i386/bsd.c:74 +msgid "Wait for keypress after every line of output." +msgstr "Đợi cú bấm phím sau khi kết xuất mỗi dòng." + +#: loader/i386/bsd.c:76 +msgid "Use compiled-in rootdev." +msgstr "Dùng thiết bị khởi động (rootdev) được biên dịch vào." + +#: loader/i386/bsd.c:77 loader/i386/bsd.c:96 loader/i386/bsd.c:120 +msgid "Boot into single mode." +msgstr "Khởi động vào chế độ người dùng đơn." + +#: loader/i386/bsd.c:78 loader/i386/bsd.c:121 +msgid "Boot with verbose messages." +msgstr "Khởi động với thông điệp chi tiết." + +#: loader/i386/bsd.c:94 loader/i386/bsd.c:115 +msgid "Don't reboot, just halt." +msgstr "Đừng khởi động lại, chỉ tạm dừng lại." + +#: loader/i386/bsd.c:95 loader/i386/bsd.c:116 +msgid "Change configured devices." +msgstr "Thay đổi các thiết bị được cấu hình." + +#: loader/i386/bsd.c:98 loader/i386/bsd.c:124 +msgid "Set root device." +msgstr "Lập thiết bị gốc." + +#: loader/i386/bsd.c:112 +msgid "Disable SMP." +msgstr "Tắt SMP." + +#: loader/i386/bsd.c:113 +msgid "Disable ACPI." +msgstr "Tắt ACPI." + +#: loader/i386/bsd.c:119 +msgid "Don't display boot diagnostic messages." +msgstr "Đừng hiển thị các thông điệp chẩn đoán khởi động." + +#: loader/i386/bsd.c:122 +msgid "Boot with debug messages." +msgstr "Khởi động với thông điệp gỡ lỗi." + +#: loader/i386/bsd.c:123 +msgid "Supress normal output (warnings remain)." +msgstr "Thu hồi kết xuất thông thường (vẫn còn hiển thị cảnh báo)." + +#: loader/i386/bsd.c:124 +msgid "DEVICE" +msgstr "THIẾT_BỊ" + +#: loader/i386/bsd.c:1287 +msgid "Load kernel of FreeBSD." +msgstr "Nạp hạt nhân FreeBSD." + +#: loader/i386/bsd.c:1291 +msgid "Load kernel of OpenBSD." +msgstr "Nạp hạt nhân OpenBSD." + +#: loader/i386/bsd.c:1295 +msgid "Load kernel of NetBSD." +msgstr "Nạp hạt nhân NetBSD." + +#: loader/i386/bsd.c:1299 +msgid "Load FreeBSD env." +msgstr "Nạp env. (môi trường?) FreeBSD." + +#: loader/i386/bsd.c:1302 +msgid "Load FreeBSD kernel module." +msgstr "Nạp mô-đun hạt nhân FreeBSD." + +#: loader/i386/bsd.c:1305 +msgid "Load FreeBSD kernel module (ELF)." +msgstr "Nạp mô-đun hạt nhân FreeBSD (ELF)." + +#: loader/i386/efi/linux.c:1011 loader/i386/ieee1275/linux.c:301 +#: loader/i386/linux.c:1012 loader/i386/pc/linux.c:399 +#: loader/powerpc/ieee1275/linux.c:353 loader/sparc64/ieee1275/linux.c:519 +msgid "Load Linux." +msgstr "Nạp Linux." + +#: loader/i386/efi/linux.c:1013 loader/i386/ieee1275/linux.c:303 +#: loader/i386/linux.c:1014 loader/i386/pc/linux.c:402 +#: loader/powerpc/ieee1275/linux.c:355 loader/sparc64/ieee1275/linux.c:521 +msgid "Load initrd." +msgstr "Nạp initrd." + +#: loader/i386/xnu.c:1032 +msgid "Load device-properties dump." +msgstr "Nạp bản đổ các thuộc tính thiết bị (device-properties)." + +#: loader/multiboot.c:337 +msgid "Load a multiboot 2 kernel." +msgstr "Nạp một hạt nhân đa khởi động (multiboot) 2." + +#: loader/multiboot.c:340 +#, fuzzy +msgid "Load a multiboot 2 module." +msgstr "Nạp một mô-đun đa khởi động (multiboot)." + +#: loader/multiboot.c:343 +msgid "Load a multiboot kernel." +msgstr "Nạp một hạt nhân đa khởi động (multiboot)." + +#: loader/multiboot.c:346 +msgid "Load a multiboot module." +msgstr "Nạp một mô-đun đa khởi động (multiboot)." + +#: loader/xnu.c:1428 +msgid "Load XNU image." +msgstr "Nạp ảnh XNU." + +#: loader/xnu.c:1430 +msgid "Load 64-bit XNU image." +msgstr "Nạp ảnh XNU 64-bit." + +#: loader/xnu.c:1432 +msgid "Load XNU extension package." +msgstr "Nạp gói mở rộng XNU." + +#: loader/xnu.c:1434 +msgid "Load XNU extension." +msgstr "Nạp phần mở rộng XNU." + +#: loader/xnu.c:1436 +msgid "DIRECTORY [OSBundleRequired]" +msgstr "THƯ_MỤC [bó_HĐH_yêu_cầu]" + +#: loader/xnu.c:1437 +msgid "Load XNU extension directory." +msgstr "Nạp thư mục phần mở rộng XNU." + +#: loader/xnu.c:1444 +msgid "Load a splash image for XNU." +msgstr "Nạp một ảnh giật gân cho XNU." + +#: loader/xnu.c:1449 +msgid "Load XNU hibernate image." +msgstr "Nạp ảnh ngủ đông XNU." + +#: normal/auth.c:217 +msgid "Enter username: " +msgstr "Gõ tên người dùng:" + +#: normal/auth.c:222 +msgid "Enter password: " +msgstr "Gõ mật khẩu :" + +#: normal/color.c:80 +#, c-format +msgid "Warning: syntax error (missing slash) in `%s'\n" +msgstr "Cảnh báo : gặp lỗi cú pháp (dấu xuyệc còn thiếu) trong « %s »\n" + +#: normal/color.c:89 +#, c-format +msgid "Warning: invalid foreground color `%s'\n" +msgstr "Cảnh báo : gặp màu cảnh gần không đúng « %s »\n" + +#: normal/color.c:95 +#, c-format +msgid "Warning: invalid background color `%s'\n" +msgstr "Cảnh báo : gặp màu nền không đúng « %s »\n" + +#: normal/dyncmd.c:144 +msgid "not loaded" +msgstr "chưa nạp" + +#: normal/main.c:415 +#, c-format +msgid "GNU GRUB version %s" +msgstr "GNU GRUB phiên bản %s" + +#: normal/main.c:552 +#, c-format +msgid "" +"Minimal BASH-like line editing is supported. For the first word, TAB lists " +"possible command completions. Anywhere else TAB lists possible device or " +"file completions. %s" +msgstr "" +"Cũng hỗ trợ chức năng chỉnh sửa dòng kiểu BASH cực tiểu. Đối với từ đầu tiên " +"thì phím TAB liệt kê các sự điền nốt lệnh có thể làm. Ở bất cứ nơi khác nào, " +"phím TAB liệt kê các sự điền nốt thiết bị hay tập tin có thể làm. %s" + +#: normal/main.c:555 +msgid "ESC at any time exits." +msgstr "Phím ESC lúc nào cũng thoát." + +#: normal/main.c:670 +msgid "Enter normal mode." +msgstr "" + +#: normal/main.c:672 +msgid "Exit from normal mode." +msgstr "" + +#: normal/menu_entry.c:1061 +msgid "Possible commands are:" +msgstr "Các câu lệnh có thể chạy:" + +#: normal/menu_entry.c:1065 +msgid "Possible devices are:" +msgstr "Các thiết bị có thể dùng:" + +#: normal/menu_entry.c:1069 +msgid "Possible files are:" +msgstr "Các tập tin có thể dùng:" + +#: normal/menu_entry.c:1073 +msgid "Possible partitions are:" +msgstr "Các phân vùng có thể dùng:" + +#: normal/menu_entry.c:1077 +msgid "Possible arguments are:" +msgstr "Các đối số có thể dùng:" + +#: normal/menu_entry.c:1081 +msgid "Possible things are:" +msgstr "Các điều có thể dùng:" + +#: normal/menu_entry.c:1185 +msgid "Booting a command list" +msgstr "Đang khởi động một danh sách câu lệnh" + +#: normal/menu_entry.c:1398 +msgid "Press any key to continue..." +msgstr "Bấm bất cứ phím nào để tiếp tục..." + +#: normal/menu_text.c:180 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"F1 to boot, F2=Ctrl-a, F3=Ctrl-e, F4 for a command-line or ESC to discard " +"edits and return to the GRUB menu." +msgstr "" +"Cũng hỗ trợ chức năng chỉnh sửa màn hình kiểu Emacs cực tiểu. Phím TAB liệt " +"kê các sự điền nốt. Bấm tổ hợp phím Ctrl-x đổ khởi động, Ctrl-c để truy cập " +"đến dòng lệnh, hoặc phím ESC để trở về trình đơn." + +#: normal/menu_text.c:185 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"Ctrl-x to boot, Ctrl-c for a command-line or ESC to discard edits and return " +"to the GRUB menu." +msgstr "" +"Cũng hỗ trợ chức năng chỉnh sửa màn hình kiểu Emacs cực tiểu. Phím TAB liệt " +"kê các sự điền nốt. Bấm tổ hợp phím Ctrl-x đổ khởi động, Ctrl-c để truy cập " +"đến dòng lệnh, hoặc phím ESC để trở về trình đơn." + +#: normal/menu_text.c:193 +#, c-format +msgid "Use the %C and %C keys to select which entry is highlighted.\n" +msgstr "Dùng phím %C và %C để chọn mục nhập nào cần tô sáng.\n" + +#: normal/menu_text.c:210 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line. ESC to return previous menu.\n" +msgstr "" +"Bấm phím Enter để khởi động HĐH được chọn, phím « e » để chỉnh sửa câu lệnh " +"trước khi khởi động, phím « c » để truy cập đến dòng lệnh, hoặc phím ESC để " +"trở về trình đơn trước.\n" + +#: normal/menu_text.c:218 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line.\n" +msgstr "" +"Bấm phím Enter để khởi động HĐH được chọn, phím « e » để chỉnh sửa câu lệnh " +"trước khi khởi động, hoặc phím « c » để truy cập đến dòng lệnh.\n" + +#: normal/menu_text.c:370 +#, c-format +msgid "The highlighted entry will be executed automatically in %ds." +msgstr "Mục nhập được tô sáng sẽ được tự động thực hiện trong %d giây." + +#: normal/misc.c:41 +#, c-format +msgid "Partition %s:" +msgstr "Phân vùng %s:" + +#: normal/misc.c:46 +#, c-format +msgid "Device %s:" +msgstr "Thiết bị %s:" + +#: normal/misc.c:52 +msgid "Filesystem cannot be accessed" +msgstr "Không thể truy cập được đến hệ thống tập tin" + +#: normal/misc.c:63 +#, c-format +msgid "Filesystem type %s" +msgstr "Hệ thống tập tin kiểu %s" + +#: normal/misc.c:73 +#, c-format +msgid "- Label \"%s\"" +msgstr "- Nhãn « %s »" + +#: normal/misc.c:88 +#, c-format +msgid "- Last modification time %d-%02d-%02d %02d:%02d:%02d %s" +msgstr "- Sửa đổi cuối cùng %d-%02d-%02d %02d:%02d:%02d %s" + +#: normal/misc.c:111 +msgid "Unknown filesystem" +msgstr "Không nhận ra hệ thống tập tin" + +#: normal/misc.c:113 +msgid "Partition table" +msgstr "Bảng phân vùng" + +#: term/serial.c:46 +msgid "Set the serial unit." +msgstr "Lập đơn vị nối tiếp." + +#: term/serial.c:47 +msgid "Set the serial port address." +msgstr "Lập địa chỉ của cổng nối tiếp." + +#: term/serial.c:48 +msgid "Set the serial port speed." +msgstr "Lập tốc độ của cổng nối tiếp." + +#: term/serial.c:49 +msgid "Set the serial port word length." +msgstr "Lập chiều dài từ của cổng nối tiếp." + +#: term/serial.c:50 +msgid "Set the serial port parity." +msgstr "Lập tính chẵn lẻ của cổng nối tiếp." + +#: term/serial.c:51 +msgid "Set the serial port stop bits." +msgstr "Lập các bit dừng của của cổng nối tiếp." + +#: term/serial.c:619 +#, fuzzy +msgid "[OPTIONS...]" +msgstr "[TÙY_CHỌN ...] ĐĨA" + +#: term/serial.c:620 +msgid "Configure serial port." +msgstr "" + +#: util/grub-mkimage.c:440 +msgid "the core image is too small" +msgstr "ảnh lõi quá nhỏ" + +#: util/grub-mkimage.c:451 +msgid "cannot compress the kernel image" +msgstr "không thể nén ảnh hạt nhân" + +#: util/grub-mkimage.c:548 +msgid "prefix is too long" +msgstr "tiền tố quá dài" + +#: util/grub-mkimage.c:672 +#, c-format +msgid "core image is too big (%p > %p)" +msgstr "ảnh lõi quá lớn (%p > %p)" + +#: util/grub-mkimage.c:678 +msgid "the core image is too big" +msgstr "ảnh lõi quá lớn" + +#: util/grub-mkimage.c:683 +#, c-format +msgid "diskboot.img size must be %u bytes" +msgstr "Kích cỡ diskboot.img phải là %u byte." + +#: util/grub-mkimage.c:1168 util/i386/pc/grub-setup.c:619 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "Hãy thử chạy câu lệnh trợ giúp « %s --help » để tìm thêm thông tin.\n" + +#: util/grub-mkimage.c:1187 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... [MODULES]\n" +"\n" +"Make a bootable image of GRUB.\n" +"\n" +" -d, --directory=DIR use images and modules under DIR [default=%s/" +"@platform@]\n" +" -p, --prefix=DIR set grub_prefix directory [default=%s]\n" +" -m, --memdisk=FILE embed FILE as a memdisk image\n" +" -f, --font=FILE embed FILE as a boot font\n" +" -c, --config=FILE embed FILE as boot config\n" +" -n, --note add NOTE segment for CHRP Open Firmware\n" +" -o, --output=FILE output a generated image to FILE [default=stdout]\n" +" -O, --format=FORMAT generate an image in format\n" +" available formats: %s\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 "" +"Sử dụng: %s [TÙY_CHỌN]... [MÔ-ĐUN ...]\n" +"\n" +"Tạo một ảnh GRUB có khả năng khởi động.\n" +"\n" +" -d, --directory=TMỤC dùng các ảnh và mô-đun nằm dưới thư mục này [mặc " +"định=%s]\n" +" -p, --prefix=TMỤC lập thư mục grub_prefix [mặc định=%s]\n" +" -m, --memdisk=TỆP nhúng tập tin này làm một ảnh memdisk\n" +" -f, --font=TỆP nhúng tập tin này làm một phông chữ khởi động\n" +" -c, --config=TỆP nhúng tập tin này làm cấu hình khởi động\n" +" -o, --output=TỆP xuất vào tập tin này một ảnh đã tạo [mặc " +"định=stdout]\n" +" -O, --format=DẠNG tạo một ảnh theo định dạng này [mặc định=" + +#: util/grub-mkimage.c:1333 +#, c-format +msgid "cannot open %s" +msgstr "không mở được %s" + +#: util/i386/pc/grub-setup.c:164 +msgid "the first sector of the core file is not sector-aligned" +msgstr "" +"rãnh ghi thứ nhất của tập tin lõi không phải được sắp hàng theo rãnh ghi" + +#: util/i386/pc/grub-setup.c:178 +msgid "non-sector-aligned data is found in the core file" +msgstr "" +"trong tập tin lõi tìm được dữ liệu không phải được sắp hàng theo rãnh ghi" + +#: util/i386/pc/grub-setup.c:192 +msgid "the sectors of the core file are too fragmented" +msgstr "trong tập tin lõi, các rãnh ghi bị phân mảnh quá" + +#: util/i386/pc/grub-setup.c:203 +#, c-format +msgid "the size of `%s' is not %u" +msgstr "« %s » không có kích cỡ %u" + +#: util/i386/pc/grub-setup.c:220 +#, c-format +msgid "the size of `%s' is too small" +msgstr "« %s » có kích cỡ quá nhỏ" + +#: util/i386/pc/grub-setup.c:222 +#, c-format +msgid "the size of `%s' is too large" +msgstr "« %s » có kích cỡ quá lớn" + +#: util/i386/pc/grub-setup.c:261 +#, c-format +msgid "unable to identify a filesystem in %s; safety check can't be performed" +msgstr "" +"không nhận ra được một hệ thống tập tin trong %s nên không thực hiện tiến " +"trình kiểm tra tính an toàn" + +#: 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 "" +"Có vẻ là %s chứa một hệ thống tập tin %s mà (theo thông tin hiện thời) không " +"dành riêng sức chứa cho sự khởi động kiểu DOS. Vì thế việc cài đặt GRUB vào " +"đó có thể gây ra HỆ THỐNG TẬP TIN BỊ HỦY nếu dữ liệu quan trọng bị ghi đè " +"bởi tiến trình thiết lập GRUB (grub-setup). Tuỳ chọn « --skip-fs-probe » tắt " +"hàm kiểm tra này: hãy tự chịu trách nhiệm khi sử dụng nó." + +#: util/i386/pc/grub-setup.c:339 util/i386/pc/grub-setup.c:366 +msgid "" +"Attempting to install GRUB to a partitionless disk. This is a BAD idea." +msgstr "" +"Đang thử cài đặt GRUB vào một đĩa không có phân vùng. Đây là một ý kiến XẤU." + +#: util/i386/pc/grub-setup.c:345 +msgid "" +"Attempting to install GRUB to a partition instead of the MBR. This is a BAD " +"idea." +msgstr "" +"Đang thử cài đặt GRUB vào một phân vùng thay cho MBR. Đây là một ý kiến XẤU." + +#: util/i386/pc/grub-setup.c:375 +msgid "No DOS-style partitions found" +msgstr "Không tìm thấy phân vùng nào kiểu DOS" + +#: util/i386/pc/grub-setup.c:380 +msgid "" +"This msdos-style partition label has no post-MBR gap; embedding won't be " +"possible!" +msgstr "" +"Nhãn phân vùng kiểu MSDOS (msdos-style) không có chỗ trống nằm sau MBR nên " +"không nhúng được !" + +#: util/i386/pc/grub-setup.c:382 +msgid "" +"This GPT partition label has no BIOS Boot Partition; embedding won't be " +"possible!" +msgstr "" +"Nhãn phân vùng GPT này không có phân vùng khởi động BIOS nên không nhúng " +"được !" + +#: util/i386/pc/grub-setup.c:389 +msgid "Your core.img is unusually large. It won't fit in the embedding area." +msgstr "Bạn có một core.img quá lớn mà không vừa trong vùng nhúng." + +#: util/i386/pc/grub-setup.c:391 +msgid "Your embedding area is unusually small. core.img won't fit in it." +msgstr "Bạn có một core.img quá nhỏ mà không chứa được core.img." + +#: util/i386/pc/grub-setup.c:436 +msgid "" +"embedding is not possible, but this is required when the root device is on a " +"RAID array or LVM volume" +msgstr "" +"không thể nhúng được, nhưng mà chức năng này cần thiết khi thiết bị gốc nằm " +"trên một mảng RAID hay khối tin LVM" + +#: util/i386/pc/grub-setup.c:439 +#, fuzzy +msgid "" +"Embedding is not possible. GRUB can only be installed in this setup by " +"using blocklists. However, blocklists are UNRELIABLE and their use is " +"discouraged." +msgstr "" +"Không thể nhúng được. GRUB chỉ cài đặt được vào thiết lập này bằng cách sử " +"dụng danh sách cấm. Tuy nhiên, danh sách cấm vẫn không đáng tin thì không " +"nên sử dụng." + +#: util/i386/pc/grub-setup.c:443 +msgid "if you really want blocklists, use --force" +msgstr "Nếu bạn thực sự muốn sử dụng danh sách cấm, dùng « --force » (ép buộc)" + +#: util/i386/pc/grub-setup.c:462 +#, c-format +msgid "attempting to read the core image `%s' from GRUB" +msgstr "đang thử đọc ảnh lõi « %s » từ GRUB" + +#: util/i386/pc/grub-setup.c:463 +#, c-format +msgid "attempting to read the core image `%s' from GRUB again" +msgstr "đang thử đọc ảnh lõi « %s » từ GRUB lần nữa" + +#: util/i386/pc/grub-setup.c:530 +#, c-format +msgid "cannot read `%s' correctly" +msgstr "không thể đọc « %s » cho đúng" + +#: util/i386/pc/grub-setup.c:543 +msgid "no terminator in the core image" +msgstr "ảnh lõi không chứa dấu chấm dứt" + +#: util/i386/pc/grub-setup.c:554 +msgid "failed to read the first sector of the core image" +msgstr "lỗi đọc rãnh ghi thứ nhất của ảnh lõi" + +#: util/i386/pc/grub-setup.c:560 +msgid "failed to read the rest sectors of the core image" +msgstr "lỗi đọc các rãnh ghi còn lại của ảnh lõi" + +#: util/i386/pc/grub-setup.c:579 +#, c-format +msgid "cannot open `%s'" +msgstr "không thể mở « %s »" + +#: util/i386/pc/grub-setup.c:621 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... DEVICE\n" +"\n" +"Set up images to boot from DEVICE.\n" +"DEVICE must be a GRUB device (e.g. `(hd0,1)').\n" +"\n" +"You should not normally run %s directly. Use grub-install instead.\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 "" +"Sử dụng: %s [TÙY_CHỌN]... THIẾT_BỊ\n" +"\n" +"Thiết lập ảnh để khởi động từ THIẾT_BỊ.\n" +"THIẾT_BỊ phải là một thiết bị kiểu GRUB (v.d. `(hd0,1)').\n" +"\n" +" -b, --boot-image=TỆP dùng tập tin này làm ảnh khởi động [mặc định=%s]\n" +" -c, --core-image=TỆP dùng tập tin này làm ảnh lõi [mặc định=%s]\n" +" -d, --directory=TMỤC dùng các tập tin GRUB nằm trong thư mục này [mặc " +"định=%s]\n" +" -m, --device-map=TỆP dùng tập tin này làm sơ đồ thiết bị [mặc định=%s]\n" +" -r, --root-device=TBỊ dùng thiết bị này làm thiết bị gốc [mặc " +"định=guessed]\n" +" -f, --force vẫn cài đặt ngay cả khi gặp vấn đề\n" +" -s, --skip-fs-probe đừng thăm dò hệ thống tập tin trong THIẾT_BỊ\n" +" -h, --help hiển thị trợ giúp này, sau đó thoát\n" +" -V, --version hiển thị thông tin về phiên bản, sau đó thoát\n" +" -v, --verbose hiển thị chi tiết\n" +"\n" +"Thông báo lỗi nào cho <%s>.\n" + +#: util/i386/pc/grub-setup.c:753 +#, c-format +msgid "No device is specified.\n" +msgstr "Chưa ghi rõ thiết bị.\n" + +#: util/i386/pc/grub-setup.c:759 +#, c-format +msgid "Unknown extra argument `%s'.\n" +msgstr "Không nhân ra đối số bổ sung « %s ».\n" + +#: util/i386/pc/grub-setup.c:776 +#, c-format +msgid "Invalid device `%s'.\n" +msgstr "Thiết bị không đúng « %s ».\n" + +#: util/i386/pc/grub-setup.c:789 +#, c-format +msgid "invalid root device `%s'" +msgstr "thiết bị gốc không đúng « %s »" + +#: util/i386/pc/grub-setup.c:802 +msgid "cannot guess the root device. Specify the option `--root-device'" +msgstr "" +"không chẩn đoán được thiết bị gốc. Hãy ghi rõ nó dùng tuỳ chọn « --root-" +"device »" + +#~ msgid "[class [handler]]" +#~ msgstr "[hạng [bộ_quản_lý]]" + +#~ msgid "List or select a handler." +#~ msgstr "Liệt kê hoặc chọn một bộ quản lý." + +#~ msgid "Load XNU ramdisk. It will be seen as md0." +#~ msgstr "Nạp đĩa RAM XNU. Nó sẽ được thấy là « md0 »." + +#~ msgid "no DOS-style partitions found" +#~ msgstr "không tìm thấy phân vùng nào kiểu DOS" + +#~ msgid "%s, with kFreeBSD %s" +#~ msgstr "%s, với kFreeBSD %s" + +#~ msgid "Loading kernel of FreeBSD %s ..." +#~ msgstr "Đang nạp hạt nhân của FreeBSD %s ..." + +#~ msgid "%s, with Linux %s (recovery mode)" +#~ msgstr "%s, với Linux %s (chế độ phục hồi)" + +#~ msgid "%s, with Linux %s" +#~ msgstr "%s, với Linux %s" + +#~ msgid "Loading Linux %s ..." +#~ msgstr "Đang nạp Linux %s ..." + +#~ msgid "Loading initial ramdisk ..." +#~ msgstr "Đang nạp đĩa RAM đầu tiên ..." --- grub2-1.98+20100804.orig/po/fr.po +++ grub2-1.98+20100804/po/fr.po @@ -0,0 +1,1476 @@ +# translation of grub to Français. +# Copyright (C) 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the grub package. +# Nicolas Provost , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub-1.97+20100124\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-01-24 19:29+0000\n" +"PO-Revision-Date: 2010-08-01 17:15+0100\n" +"Last-Translator: Nicolas Provost \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: commands/acpi.c:40 +msgid "Don't load host tables specified by comma-separated list." +msgstr "Ne pas charger les tables spécifiées dans la liste (séparateur : virgule)." + +#: commands/acpi.c:43 +msgid "Load only tables specified by comma-separated list." +msgstr "Charge seulement les tables spécifiées dans la liste (séparateur : virgule)." + +#: commands/acpi.c:44 +msgid "Expose v1 tables." +msgstr "Affiche les tables v1." + +#: commands/acpi.c:45 +msgid "Expose v2 and v3 tables." +msgstr "Affiche les tables v2 et v3." + +#: commands/acpi.c:46 +msgid "Set OEMID of RSDP, XSDT and RSDT." +msgstr "Spécifie OEMID des RSDP, XSDT et RSDT." + +#: commands/acpi.c:48 +msgid "Set OEMTABLE ID of RSDP, XSDT and RSDT." +msgstr "Spécifie OEMTABLE ID des RSDP, XSDT et RSDT." + +#: commands/acpi.c:50 +msgid "Set OEMTABLE revision of RSDP, XSDT and RSDT." +msgstr "Spécifie la révision OEMTABLE des RSDP, XSDT et RSDT." + +#: commands/acpi.c:52 +msgid "Set creator field of RSDP, XSDT and RSDT." +msgstr "Spécifie le champ 'créateur' de RSDP, XSDT et RSDT." + +#: commands/acpi.c:54 +msgid "Set creator revision of RSDP, XSDT and RSDT." +msgstr "Spécifie la révision du 'créateur' de RSDP, XSDT et RSDT." + +#: commands/acpi.c:55 +msgid "Don't update EBDA. May fix failures or hangs on some. BIOSes but makes it ineffective with OS not receiving RSDP from GRUB." +msgstr "Ne pas mettre à jour EBDA. Peut corriger des dysfonctionnements sur certains BIOS, mais est souvent inefficace si le système d'exploitation ne gère pas les pointeurs RSDP depuis GRUB." + +#: commands/acpi.c:763 +msgid "[-1|-2] [--exclude=TABLE1,TABLE2|--load-only=table1,table2] FILE1 [FILE2] [...]" +msgstr "[-1|-2] [--exclude=TABLE1,TABLE2|--load-only=table1,table2] FICHIER1 [FICHIER2] [...]" + +#: commands/acpi.c:766 +msgid "Load host ACPI tables and tables specified by arguments." +msgstr "Charge les tables ACPI de l'hôte et les tables spécifiées par les arguments." + +#: commands/blocklist.c:114 commands/cat.c:82 commands/configfile.c:57 +#: commands/configfile.c:60 commands/configfile.c:65 commands/crc.c:64 +#: commands/i386/pc/play.c:211 commands/minicmd.c:358 loader/i386/bsd.c:1296 +#: loader/i386/bsd.c:1300 loader/i386/bsd.c:1304 +msgid "FILE" +msgstr "FICHIER" + +#: commands/blocklist.c:114 +msgid "Print a block list." +msgstr "Liste les blocs." + +#: commands/boot.c:190 +msgid "Boot an operating system." +msgstr "Démarre un système d'exploitation." + +#: commands/cat.c:82 commands/minicmd.c:358 +msgid "Show the contents of a file." +msgstr "Liste le contenu d'un fichier." + +#: commands/cmp.c:113 +msgid "FILE1 FILE2" +msgstr "FICHIER1 FICHIER2" + +#: commands/cmp.c:113 +msgid "Compare two files." +msgstr "Compare 2 fichiers." + +#: commands/configfile.c:57 +msgid "Load another config file." +msgstr "Charge un autre fichier de configuration." + +#: commands/configfile.c:61 commands/configfile.c:66 +msgid "Load another config file without changing context." +msgstr "Charge un autre fichier de configuration sans changer le contexte." + +#: commands/crc.c:65 +msgid "Calculate the crc32 checksum of a file." +msgstr "Calcule la somme de contrôle CRC32 d'un fichier." + +#: commands/date.c:139 +msgid "[[year-]month-day] [hour:minute[:second]]" +msgstr "[[année-]mois-jour] [heures:minutes[:secondes]]" + +#: commands/date.c:140 +msgid "Command to display/set current datetime." +msgstr "Commande pour afficher/modifier date et heure." + +#: commands/echo.c:27 +msgid "Do not output the trailing newline." +msgstr "Ne pas émettre le saut de ligne final." + +#: commands/echo.c:28 +msgid "Enable interpretation of backslash escapes." +msgstr "Active l'interprétation des séquences d'échappement par anti-slash." + +#: commands/echo.c:117 +msgid "[-e|-n] STRING" +msgstr "[-e|-n] CHAINE" + +#: commands/echo.c:117 +msgid "Display a line of text." +msgstr "Affiche une ligne de texte." + +#: commands/efi/fixvideo.c:103 +msgid "Fix video problem." +msgstr "Corrige un problème vidéo." + +#: commands/efi/loadbios.c:207 +msgid "Fake BIOS." +msgstr "Faux BIOS." + +#: commands/efi/loadbios.c:211 +msgid "Load BIOS dump." +msgstr "Charge le contenu du BIOS." + +#: commands/gptsync.c:244 +msgid "DEVICE [PARTITION[+/-[TYPE]]] ..." +msgstr "PERIPHERIQUE [PARTITION[+/-[TYPE]]] ..." + +#: commands/gptsync.c:245 +msgid "Fill hybrid MBR of GPT drive DEVICE. specified partitions will be a part of hybrid mbr. Up to 3 partitions are allowed. TYPE is an MBR type. + means that partition is active. Only one partition can be active." +msgstr "Remplit le MBR hybride du disque PERIPH de type GPT. Les partitions spécifiées feront partie du MBR hybride. Jusqu'à 3 partitions sont autorisées. TYPE est un type de MBR. + signifie que la partition est active. Une seule partition peut être active." + +#: commands/halt.c:39 +msgid "Halts the computer. This command does not work on all firmware implementations." +msgstr "Arrête l'ordinateur. Cette commande ne fonctionne pas sur toutes les implémentations de firmware." + +#: commands/handler.c:94 +msgid "[class [handler]]" +msgstr "[classe [gestionnaire]]" + +#: commands/handler.c:95 +msgid "List or select a handler." +msgstr "Liste ou sélectionne un gestionnaire." + +#: commands/hdparm.c:30 +msgid "" +"Set Advanced Power Management\n" +"(1=low, ..., 254=high, 255=off)." +msgstr "" +"Configure la gestion avancée d'énergie\n" +"(1=basse, ..., 254=haute, 255=off)." + +#: commands/hdparm.c:33 +msgid "Check power mode." +msgstr "Contrôle le mode d'alimentation." + +#: commands/hdparm.c:34 +msgid "Freeze ATA security settings until reset." +msgstr "Fige les paramètres de sécurité ATA jusqu'au redémarrage." + +#: commands/hdparm.c:36 +msgid "Check SMART health status." +msgstr "Contrôle la température avec SMART." + +#: commands/hdparm.c:37 +msgid "" +"Set Automatic Acoustic Management\n" +"(0=off, 128=quiet, ..., 254=fast)." +msgstr "" +"Réglage de la gestion acoustique automatique (AAM)\n" +"(0=off, 128=silencieux, ..., 254=rapide)." + +#: commands/hdparm.c:40 +msgid "" +"Set standby timeout\n" +"(0=off, 1=5s, 2=10s, ..., 240=20m, 241=30m, ...)." +msgstr "" +"Règle le temps de 'stand by'\n" +"(0=off, 1=5s, 2=10s, ..., 240=20m, 241=30m, ...)." + +#: commands/hdparm.c:43 +msgid "Set drive to standby mode." +msgstr "Met le lecteur en mode veille." + +#: commands/hdparm.c:44 +msgid "Set drive to sleep mode." +msgstr "Met le lecteur en mode sommeil." + +#: commands/hdparm.c:45 +msgid "Print drive identity and settings." +msgstr "Affiche les paramètres et l'identité du disque." + +#: commands/hdparm.c:47 +msgid "Dump contents of ATA IDENTIFY sector." +msgstr "Affiche le contenu du secteur ATA IDENTIFY." + +#: commands/hdparm.c:49 +msgid "Disable/enable SMART (0/1)." +msgstr "Désactive/active SMART (0/1)." + +#: commands/hdparm.c:50 +msgid "Do not print messages." +msgstr "Ne pas afficher les messages." + +#: commands/hdparm.c:414 +msgid "[OPTIONS] DISK" +msgstr "[OPTIONS] DISQUE" + +#: commands/hdparm.c:415 +msgid "Get/set ATA disk parameters." +msgstr "Obtient/positionne les paramètres ATA du disque." + +#: commands/help.c:103 lib/arg.c:110 +msgid "Usage:" +msgstr "Usage :" + +#: commands/help.c:136 +msgid "[PATTERN ...]" +msgstr "[MOTIF ...]" + +#: commands/help.c:137 +msgid "Show a help message." +msgstr "Affiche un message d'aide." + +#: commands/hexdump.c:30 +msgid "Skip offset bytes from the beginning of file." +msgstr "Saute un nombre d'octets au début du fichier." + +#: commands/hexdump.c:32 +msgid "Read only LENGTH bytes." +msgstr "Lit seulement LENGTH octets." + +#: commands/hexdump.c:125 +msgid "[OPTIONS] FILE_OR_DEVICE" +msgstr "[OPTIONS] FICHIER_OU_PERIPH" + +#: commands/hexdump.c:126 +msgid "Dump the contents of a file or memory." +msgstr "Affiche le contenu d'un fichier ou de la mémoire." + +#: commands/i386/cpuid.c:37 +msgid "Check for long mode flag (default)." +msgstr "Contrôle le mode de drapeaux longs (défaut, long mode flag)." + +#: commands/i386/cpuid.c:92 +msgid "Check for CPU features." +msgstr "Teste les capacités CPU." + +#: commands/i386/pc/drivemap.c:37 +msgid "Show the current mappings." +msgstr "Affiche les correspondances actuelles." + +#: commands/i386/pc/drivemap.c:38 +msgid "Reset all mappings to the default values." +msgstr "Réinitialise toutes les correspondances aux valeurs par défaut." + +#: commands/i386/pc/drivemap.c:39 +msgid "Perform both direct and reverse mappings." +msgstr "Active les correspondances dans les deux sens (direct/reverse)." + +#: commands/i386/pc/drivemap.c:407 +msgid "-l | -r | [-s] grubdev osdisk." +msgstr "-l | -r | [-s] grubdev osdisk." + +#: commands/i386/pc/drivemap.c:408 +msgid "Manage the BIOS drive mappings." +msgstr "Gère les correspondances de disques BIOS." + +#: commands/i386/pc/halt.c:27 +msgid "Do not use APM to halt the computer." +msgstr "Ne pas utiliser APM pour arrêter l'ordinateur." + +#: commands/i386/pc/halt.c:51 +msgid "Halt the system, if possible using APM." +msgstr "Arrête le système, si possible avec APM." + +#: commands/i386/pc/play.c:211 +msgid "Play a tune." +msgstr "Emet un son." + +#: commands/i386/pc/pxecmd.c:46 +msgid "Unload PXE environment." +msgstr "Décharge l'environnement PXE." + +#: commands/i386/pc/vbeinfo.c:179 +msgid "List compatible VESA BIOS extension video modes." +msgstr "Liste les modes vidéo compatibles avec l'extension BIOS VESA." + +#: commands/i386/pc/vbetest.c:172 +msgid "Test VESA BIOS Extension 2.0+ support." +msgstr "Teste le support de l'extension VESA BIOS 2.0+." + +#: commands/ieee1275/suspend.c:43 +msgid "Return to Open Firmware prompt." +msgstr "Retourner au prompt Open Firmware." + +#: commands/keystatus.c:28 +msgid "Check Shift key." +msgstr "Contrôlez l'état des touches Shift." + +#: commands/keystatus.c:29 +msgid "Check Control key." +msgstr "Contrôlez l'état des touches Ctrl." + +#: commands/keystatus.c:30 +msgid "Check Alt key." +msgstr "Contrôlez l'état des touches Alt." + +#: commands/keystatus.c:85 +msgid "[--shift] [--ctrl] [--alt]" +msgstr "[--shift] [--ctrl] [--alt]" + +#: commands/keystatus.c:86 +msgid "Check key modifier status." +msgstr "Contrôlez l'état des touches spéciales (alt,...)." + +#: commands/loadenv.c:33 +msgid "Specify filename." +msgstr "Spécifie un nom de fichier." + +#: commands/loadenv.c:383 commands/loadenv.c:389 +msgid "[-f FILE]" +msgstr "[-f FICHIER]" + +#: commands/loadenv.c:384 +msgid "Load variables from environment block file." +msgstr "Charge les variables depuis un fichier contenant un bloc d'environnement." + +#: commands/loadenv.c:390 +msgid "List variables from environment block file." +msgstr "Liste les variables depuis un fichier contenant un bloc d'environnement." + +#: commands/loadenv.c:395 +msgid "[-f FILE] variable_name [...]" +msgstr "[-f FICHIER] nom_de_variable [...]" + +#: commands/loadenv.c:396 +msgid "Save variables to environment block file." +msgstr "Sauve les variables dans un fichier contenant un bloc d'environnement." + +#: commands/ls.c:37 +msgid "Show a long list with more detailed information." +msgstr "Affiche une longue liste d'informations plus détaillées." + +#: commands/ls.c:38 +msgid "Print sizes in a human readable format." +msgstr "Affiche les tailles au format lisible par un humain." + +#: commands/ls.c:39 +msgid "List all files." +msgstr "Liste tous les fichiers." + +#: commands/ls.c:268 +msgid "[-l|-h|-a] [FILE]" +msgstr "[-l|-h|-a] [FICHIER]" + +#: commands/ls.c:269 +msgid "List devices and files." +msgstr "Liste périphériques et fichiers." + +#: commands/lsmmap.c:47 +msgid "List memory map provided by firmware." +msgstr "Liste le plan mémoire transmis par le firmware." + +#: commands/lspci.c:228 +msgid "List PCI devices." +msgstr "Liste les périphériques PCI." + +#: commands/memrw.c:31 +msgid "Save read value into variable VARNAME." +msgstr "Sauve la valeur lue dans la variable NOMVAR." + +#: commands/memrw.c:123 commands/memrw.c:126 commands/memrw.c:129 +#: commands/minicmd.c:367 +msgid "ADDR" +msgstr "ADRESSE" + +#: commands/memrw.c:123 +msgid "Read byte from ADDR." +msgstr "Lit l'octet à ADRESSE." + +#: commands/memrw.c:126 +msgid "Read word from ADDR." +msgstr "Lit le mot à ADRESSE." + +#: commands/memrw.c:129 +msgid "Read dword from ADDR." +msgstr "Lit le double mot à ADRESSE." + +#: commands/memrw.c:132 commands/memrw.c:135 commands/memrw.c:138 +msgid "ADDR VALUE [MASK]" +msgstr "ADRESSE VALEUR [MASQUE]" + +#: commands/memrw.c:132 +msgid "Write byte VALUE to ADDR." +msgstr "Ecrit l'octet VALEUR à ADRESSE." + +#: commands/memrw.c:135 +msgid "Write word VALUE to ADDR." +msgstr "Ecrit le mot VALEUR à ADRESSE." + +#: commands/memrw.c:138 +msgid "Write dword VALUE to ADDR." +msgstr "Ecrit le double mot VALEUR à ADRESSE." + +#: commands/minicmd.c:361 +msgid "Show this message." +msgstr "Affiche ce message." + +#: commands/minicmd.c:364 commands/probe.c:154 +msgid "[DEVICE]" +msgstr "[PERIPH]" + +#: commands/minicmd.c:364 +msgid "Set the root device." +msgstr "Fixe le périphérique racine." + +#: commands/minicmd.c:367 +msgid "Dump memory." +msgstr "Liste la mémoire." + +#: commands/minicmd.c:370 +msgid "MODULE" +msgstr "MODULE" + +#: commands/minicmd.c:370 +msgid "Remove a module." +msgstr "Retire un module." + +#: commands/minicmd.c:373 +msgid "Show loaded modules." +msgstr "Liste les modules chargés." + +#: commands/minicmd.c:376 +msgid "Exit from GRUB." +msgstr "Quitte GRUB." + +#: commands/minicmd.c:379 +msgid "Clear the screen." +msgstr "Efface l'écran." + +#: commands/parttool.c:325 +msgid "PARTITION COMMANDS" +msgstr "PARTITION COMMANDES" + +#: commands/password.c:78 +msgid "USER PASSWORD" +msgstr "MOT DE PASSE utilisateur" + +#: commands/password.c:79 +msgid "Set user password (plaintext). Unrecommended and insecure." +msgstr "Fixe le mot de passe utilisateur (texte en clair). Non recommandé et non sûr." + +#: commands/probe.c:38 +msgid "Set a variable to return value." +msgstr "Fixe une variable à la valeur retournée." + +#: commands/probe.c:39 +msgid "Determine driver." +msgstr "Choisir le pilote à utiliser." + +#: commands/probe.c:40 +msgid "Determine partition map type." +msgstr "Déterminer le type de plan de partition." + +#: commands/probe.c:41 +msgid "Determine filesystem type." +msgstr "Déterminer le type de système de fichiers." + +#: commands/probe.c:42 +msgid "Determine filesystem UUID." +msgstr "Déterminer l'identifiant UUID du système de fichiers." + +#: commands/probe.c:43 +msgid "Determine filesystem label." +msgstr "Déterminer l'étiquette du système de fichiers." + +#: commands/probe.c:155 +msgid "Retrieve device info." +msgstr "Récupère les infos du périphérique." + +#: commands/read.c:83 +msgid "[ENVVAR]" +msgstr "[VAR_ENV]" + +#: commands/read.c:84 +msgid "Set variable with user input." +msgstr "Remplit la variable avec la saisie de l'utilisateur." + +#: commands/reboot.c:39 +msgid "Reboot the computer." +msgstr "Redémarre l'ordinateur." + +#: commands/search.c:161 +msgid "NAME [VARIABLE]" +msgstr "NOM [VARIABLE]" + +#: commands/search_file.c:5 +msgid "Search devices by file. If VARIABLE is specified, the first device found is set to a variable." +msgstr "Cherche des périphériques par fichiers. Si VARIABLE est spécifiée, elle est remplie avec le premier périphérique trouvé." + +#: commands/search_label.c:5 +msgid "Search devices by label. If VARIABLE is specified, the first device found is set to a variable." +msgstr "Cherche des périphériques par étiquette. Si VARIABLE est spécifiée, elle est remplie avec le premier périphérique trouvé." + +#: commands/search_uuid.c:5 +msgid "Search devices by UUID. If VARIABLE is specified, the first device found is set to a variable." +msgstr "Cherche des périphériques par UUID. Si VARIABLE est spécifiée, elle est remplie avec le premier périphérique trouvé." + +#: commands/sleep.c:31 +msgid "Verbose countdown." +msgstr "Décompte détaillé." + +#: commands/sleep.c:32 +msgid "Interruptible with ESC." +msgstr "Interrompre avec ESC." + +#: commands/sleep.c:106 +msgid "NUMBER_OF_SECONDS" +msgstr "NOMBRE_DE_SECONDES" + +#: commands/sleep.c:107 +msgid "Wait for a specified number of seconds." +msgstr "Attends le nombre de secondes spécifié." + +#: commands/test.c:424 +msgid "EXPRESSION ]" +msgstr "EXPRESSION ]" + +#: commands/test.c:424 commands/test.c:426 +msgid "Evaluate an expression." +msgstr "Evalue une expression." + +#: commands/test.c:426 +msgid "EXPRESSION" +msgstr "EXPRESSION" + +#: commands/true.c:47 +msgid "Do nothing, successfully." +msgstr "Ne fait rien, avec succès." + +#: commands/true.c:50 +msgid "Do nothing, unsuccessfully." +msgstr "Ne fait rien, avec échec." + +#: commands/usbtest.c:199 +msgid "Test USB support." +msgstr "Teste le support de l'USB." + +#: commands/videotest.c:185 +msgid "Test video subsystem." +msgstr "Teste le sous-système vidéo." + +#: commands/xnu_uuid.c:92 +msgid "GRUBUUID [VARNAME]" +msgstr "GRUBUUID [NOMVAR]" + +#: commands/xnu_uuid.c:93 +msgid "Transform 64-bit UUID to format suitable for XNU." +msgstr "Transforme un UUID 64 bits au format convenable pour XNU." + +#: disk/loopback.c:40 +msgid "Delete the loopback device entry." +msgstr "Efface l'entrée de périphérique \"boucle\" (loopback)." + +#: disk/loopback.c:41 +msgid "Simulate a hard drive with partitions." +msgstr "Simule un disque dur et ses partitions." + +#: disk/loopback.c:249 +msgid "[-d|-p] DEVICENAME FILE." +msgstr "[-d|-p] NOM_PERIPH FICHIER." + +#: disk/loopback.c:250 +msgid "Make a device of a file." +msgstr "Transforme un fichier en périphérique." + +#: hello/hello.c:43 +msgid "Say \"Hello World\"." +msgstr "Dit \"Bonjour\"." + +#: lib/arg.c:34 +msgid "Display this help and exit." +msgstr "Affiche cette aide et quitte." + +#: lib/arg.c:36 +msgid "Display the usage of this command and exit." +msgstr "Affiche l'aide de cette commande et quitte." + +#: loader/efi/appleloader.c:325 +msgid "Boot legacy system." +msgstr "Démarre le système précédent." + +#: loader/efi/chainloader.c:340 loader/i386/pc/chainloader.c:153 +msgid "Load another boot loader." +msgstr "Charge un autre gestionnaire de démarrage." + +#: loader/i386/bsd.c:65 +msgid "Display output on all consoles." +msgstr "Affiche les messages sur toutes les consoles." + +#: loader/i386/bsd.c:66 +msgid "Use serial console." +msgstr "Utiliser la console série." + +#: loader/i386/bsd.c:67 loader/i386/bsd.c:93 loader/i386/bsd.c:114 +msgid "Ask for file name to reboot from." +msgstr "Spécifie le nom de fichier sur lequel redémarrer." + +#: loader/i386/bsd.c:68 +msgid "Use CDROM as root." +msgstr "Utiliser le lecteur de CD comme racine." + +#: loader/i386/bsd.c:69 +msgid "Invoke user configuration routing." +msgstr "Demande le changement de la configuration utilisateur." + +#: loader/i386/bsd.c:70 loader/i386/bsd.c:97 loader/i386/bsd.c:117 +msgid "Enter in KDB on boot." +msgstr "Entrer dans KDB au démarrage." + +#: loader/i386/bsd.c:71 +msgid "Use GDB remote debugger instead of DDB." +msgstr "Utiliser le débogueur distant GDB à la place de DDB." + +#: loader/i386/bsd.c:72 +msgid "Disable all boot output." +msgstr "Désactive toutes les sorties au démarrage." + +#: loader/i386/bsd.c:74 +msgid "Wait for keypress after every line of output." +msgstr "Attendre qu'une touche soit pressée après chaque ligne affichée." + +#: loader/i386/bsd.c:76 +msgid "Use compiled-in rootdev." +msgstr "Utiliser le rootdev intégré." + +#: loader/i386/bsd.c:77 loader/i386/bsd.c:96 loader/i386/bsd.c:120 +msgid "Boot into single mode." +msgstr "Démarre en mode simple (single)." + +#: loader/i386/bsd.c:78 loader/i386/bsd.c:121 +msgid "Boot with verbose messages." +msgstr "Démarre en affichant plus de messages." + +#: loader/i386/bsd.c:94 loader/i386/bsd.c:115 +msgid "Don't reboot, just halt." +msgstr "Ne pas redémarrer, seulement arrêter." + +#: loader/i386/bsd.c:95 loader/i386/bsd.c:116 +msgid "Change configured devices." +msgstr "Modifie les périphériques configurés." + +#: loader/i386/bsd.c:98 loader/i386/bsd.c:124 +msgid "Set root device." +msgstr "Fixe le périphérique racine." + +#: loader/i386/bsd.c:112 +msgid "Disable SMP." +msgstr "Désactive SMP." + +#: loader/i386/bsd.c:113 +msgid "Disable ACPI." +msgstr "Désactive ACPI." + +#: loader/i386/bsd.c:119 +msgid "Don't display boot diagnostic messages." +msgstr "Ne pas afficher les messages de diagnostic au démarrage." + +#: loader/i386/bsd.c:122 +msgid "Boot with debug messages." +msgstr "Démarre avec les messages de débogage." + +#: loader/i386/bsd.c:123 +msgid "Supress normal output (warnings remain)." +msgstr "Supprimer les sorties standards (les avertissements sont conservés)." + +#: loader/i386/bsd.c:124 +msgid "DEVICE" +msgstr "PERIPHERIQUE" + +#: loader/i386/bsd.c:1296 +msgid "Load kernel of FreeBSD." +msgstr "Charge le noyau FreeBSD." + +#: loader/i386/bsd.c:1300 +msgid "Load kernel of OpenBSD." +msgstr "Charge le noyau OpenBSD." + +#: loader/i386/bsd.c:1304 +msgid "Load kernel of NetBSD." +msgstr "Charge le noyau NetBSD." + +#: loader/i386/bsd.c:1308 +msgid "Load FreeBSD env." +msgstr "Charge l'environnement FreeBSD." + +#: loader/i386/bsd.c:1311 +msgid "Load FreeBSD kernel module." +msgstr "Charge le module noyau FreeBSD." + +#: loader/i386/bsd.c:1314 +msgid "Load FreeBSD kernel module (ELF)." +msgstr "Charge le module noyau FreeBSD (ELF)." + +#: loader/i386/efi/linux.c:1011 loader/i386/ieee1275/linux.c:301 +#: loader/i386/linux.c:1007 loader/i386/pc/linux.c:399 +#: loader/powerpc/ieee1275/linux.c:353 loader/sparc64/ieee1275/linux.c:520 +msgid "Load Linux." +msgstr "Charge Linux." + +#: loader/i386/efi/linux.c:1013 loader/i386/ieee1275/linux.c:303 +#: loader/i386/linux.c:1009 loader/i386/pc/linux.c:402 +#: loader/powerpc/ieee1275/linux.c:355 loader/sparc64/ieee1275/linux.c:522 +msgid "Load initrd." +msgstr "Charge initrd." + +#: loader/i386/xnu.c:1032 +msgid "Load device-properties dump." +msgstr "Charge le contenu des propriétés du périphérique." + +#: loader/multiboot_loader.c:133 +msgid "Load a multiboot 2 kernel." +msgstr "Charge un noyau de type 'multiboot 2'." + +#: loader/multiboot_loader.c:136 +msgid "Load a multiboot kernel." +msgstr "Charge un noyau de type 'multiboot'." + +#: loader/multiboot_loader.c:141 +msgid "Load a multiboot module." +msgstr "Charge un module 'multiboot'." + +#: loader/xnu.c:1407 +msgid "Load XNU image." +msgstr "Charge l'image XNU." + +#: loader/xnu.c:1409 +msgid "Load 64-bit XNU image." +msgstr "Charge l'image 64 bits XNU." + +#: loader/xnu.c:1411 +msgid "Load XNU extension package." +msgstr "Charge le paquet d'extension XNU." + +#: loader/xnu.c:1413 +msgid "Load XNU extension." +msgstr "Charge l'extension XNU." + +#: loader/xnu.c:1415 +msgid "DIRECTORY [OSBundleRequired]" +msgstr "REPERTOIRE [OSBundleRequired]" + +#: loader/xnu.c:1416 +msgid "Load XNU extension directory." +msgstr "Charge un répertoire d'extensions XNU." + +#: loader/xnu.c:1418 +msgid "Load XNU ramdisk. It will be seen as md0." +msgstr "Charge le disque mémoire XNU, vu comme md0." + +#: loader/xnu.c:1421 +msgid "Load a splash image for XNU." +msgstr "Charge l'image de démarrage pour XNU." + +#: loader/xnu.c:1425 +msgid "Load XNU hibernate image." +msgstr "Charge l'image d'hibernation XNU." + +#: normal/auth.c:233 +msgid "Enter username: " +msgstr "Entrez le nom d'utilisateur : " + +#: normal/auth.c:238 +msgid "Enter password: " +msgstr "Entrez le mot de passe : " + +#: normal/color.c:80 +#, c-format +msgid "Warning: syntax error (missing slash) in `%s'\n" +msgstr "Attention : erreur de syntaxe (slash manquant) dans `%s'\n" + +#: normal/color.c:89 +#, c-format +msgid "Warning: invalid foreground color `%s'\n" +msgstr "Attention : couleur de premier plan `%s' non valide\n" + +#: normal/color.c:95 +#, c-format +msgid "Warning: invalid background color `%s'\n" +msgstr "Attention : couleur d'arrière-plan `%s' non valide\n" + +#: normal/dyncmd.c:147 +msgid "not loaded" +msgstr "non chargé(e)" + +#: normal/main.c:408 +#, c-format +msgid "GNU GRUB version %s" +msgstr "GNU GRUB version %s" + +#: normal/main.c:538 +#, c-format +msgid "Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists possible device or file completions. %s" +msgstr "Edition basique de type BASH possible. Pour le premier mot, TAB liste les commandes complétées possibles. Ailleurs, TAB liste les fichiers ou périphériques possibles en complétant. %s " + +#: normal/main.c:541 +msgid "ESC at any time exits." +msgstr "ESC à tout moment pour quitter." + +#: normal/menu_entry.c:1060 +msgid "Possible commands are:" +msgstr "Les commandes possibles sont :" + +#: normal/menu_entry.c:1064 +msgid "Possible devices are:" +msgstr "Les périphériques possibles sont :" + +#: normal/menu_entry.c:1068 +msgid "Possible files are:" +msgstr "Les fichiers utilisables sont :" + +#: normal/menu_entry.c:1072 +msgid "Possible partitions are:" +msgstr "Partitions utilisables :" + +#: normal/menu_entry.c:1076 +msgid "Possible arguments are:" +msgstr "Les arguments utilisables sont :" + +#: normal/menu_entry.c:1080 +msgid "Possible things are:" +msgstr "Les actions possibles sont :" + +#: normal/menu_entry.c:1184 +msgid "Booting a command list" +msgstr "Démarrage suivant une liste de commandes" + +#: normal/menu_entry.c:1397 +msgid "Press any key to continue..." +msgstr "Pressez une touche pour continuer..." + +#: normal/menu_text.c:179 +msgid "Minimum Emacs-like screen editing is supported. TAB lists completions. Press Ctrl-x to boot, Ctrl-c for a command-line or ESC to return menu." +msgstr "Edition basique de type Emacs possible. TAB complète automatiquement. Pressez Ctrl-x pour démarrer, Ctrl-c pour une ligne de commandes ou ESC pour retourner au menu." + +#: normal/menu_text.c:186 +#, c-format +msgid "Use the %C and %C keys to select which entry is highlighted.\n" +msgstr "Utilisez les touches %C et %C pour sélectionner une entrée.\n" + +#: normal/menu_text.c:203 +msgid "Press enter to boot the selected OS, 'e' to edit the commands before booting or 'c' for a command-line. ESC to return previous menu.\n" +msgstr "" +"Pressez 'entrée' pour démarrer le système sélectionné, 'e' pour éditer les commandes avant de démarrer ou 'c' pour une invite de commandes.\n" +"'ESC' pour retourner au menu précédent.\n" + +#: normal/menu_text.c:211 +msgid "Press enter to boot the selected OS, 'e' to edit the commands before booting or 'c' for a command-line.\n" +msgstr "" +"Pressez 'entrée' pour démarrer le système sélectionné, 'e' pour éditer les commandes avant de démarrer,\n" +"ou 'c' pour une invite de commandes.\n" + +#: normal/menu_text.c:363 +#, c-format +msgid "The highlighted entry will be executed automatically in %ds." +msgstr "L'entrée sélectionnée sera exécutée automatiquement dans %d s." + +#: normal/misc.c:41 +#, c-format +msgid "Partition %s:" +msgstr "Partition %s :" + +#: normal/misc.c:46 +#, c-format +msgid "Device %s:" +msgstr "Périphérique %s :" + +#: normal/misc.c:52 +msgid "Filesystem cannot be accessed" +msgstr "Le système de fichiers est inaccessible" + +#: normal/misc.c:63 +#, c-format +msgid "Filesystem type %s" +msgstr "Type de système de fichiers : %s" + +#: normal/misc.c:73 +#, c-format +msgid "- Label \"%s\"" +msgstr "- Etiquette \"%s\"" + +#: normal/misc.c:88 +#, c-format +msgid "- Last modification time %d-%02d-%02d %02d:%02d:%02d %s" +msgstr "- Dernière heure de modification %d-%02d-%02d %02d:%02d:%02d %s" + +#: normal/misc.c:111 +msgid "Unknown filesystem" +msgstr "Système de fichiers inconnu" + +#: normal/misc.c:113 +msgid "Partition table" +msgstr "Table de partitions" + +#: term/serial.c:46 +msgid "Set the serial unit." +msgstr "Spécifie le port série." + +#: term/serial.c:47 +msgid "Set the serial port address." +msgstr "Spécifie l'adresse du port série." + +#: term/serial.c:48 +msgid "Set the serial port speed." +msgstr "Spécifie la vitesse du port série." + +#: term/serial.c:49 +msgid "Set the serial port word length." +msgstr "Spécifie la taille du message pour le port série." + +#: term/serial.c:50 +msgid "Set the serial port parity." +msgstr "Spécifie la parité pour le port série." + +#: term/serial.c:51 +msgid "Set the serial port stop bits." +msgstr "Spécifie les bits de stop pour le port série." + +#: util/grub-mkrawimage.c:67 +msgid "the core image is too small" +msgstr "l'image noyau est trop petite" + +#: util/grub-mkrawimage.c:79 +msgid "cannot compress the kernel image" +msgstr "impossible de compresser l'image du noyau" + +#: util/grub-mkrawimage.c:154 +msgid "prefix is too long" +msgstr "préfixe trop long" + +#: util/grub-mkrawimage.c:240 +msgid "the core image is too big" +msgstr "l'image noyau est trop grande" + +#: util/grub-mkrawimage.c:245 +#, c-format +msgid "diskboot.img size must be %u bytes" +msgstr "la taille de diskboot.img doit être %u octets" + +#: util/grub-mkrawimage.c:328 +#, c-format +msgid "core image is too big (%p > %p)" +msgstr "image noyau trop grande (%p > %p)" + +#: util/grub-mkrawimage.c:432 util/i386/pc/grub-setup.c:587 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "Essayez `%s --help' pour plus d'informations.\n" + +#: util/grub-mkrawimage.c:434 +#, c-format +msgid "" +"Usage: %s [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" +" -f, --font=FILE embed FILE as a boot font\n" +" -c, --config=FILE embed FILE as boot config\n" +" -o, --output=FILE output a generated image to FILE [default=stdout]\n" +" -O, --format=FORMAT generate an image in format [default=" +msgstr "" +"Usage : %s [OPTION]... [MODULES]\n" +"\n" +"Construit une image de démarrage GRUB.\n" +"\n" +" -d, --directory=REP utiliser images et modules sous REP [par défaut=%s]\n" +" -p, --prefix=REP fixe le répertoire grub_prefix [par défaut=%s]\n" +" -m, --memdisk=FIC inclut FIC comme image mémoire memdisk\n" +" -c, --config=FIC inclut FIC comme configuration de démarrage\n" +" -f, --font=FIC inclut FIC comme police de démarrage\n" +" -o, --output=FIC génère l'image dans le fichier FIC [par défaut=stdout]\n" +" -O, --format=FORMAT génère l'image au FORMAT [par défaut=" + +#: util/grub-mkrawimage.c:573 +#, c-format +msgid "cannot open %s" +msgstr "impossible d'ouvrir %s" + +#: util/i386/pc/grub-setup.c:159 +msgid "the first sector of the core file is not sector-aligned" +msgstr "le premier secteur du fichier noyau n'est pas aligné sur un secteur" + +#: util/i386/pc/grub-setup.c:173 +msgid "non-sector-aligned data is found in the core file" +msgstr "données non alignées sur des secteurs trouvées dans le fichier noyau" + +#: util/i386/pc/grub-setup.c:187 +msgid "the sectors of the core file are too fragmented" +msgstr "les secteurs du fichier noyau sont trop dispersés" + +#: util/i386/pc/grub-setup.c:198 +#, c-format +msgid "the size of `%s' is not %u" +msgstr "la taille de `%s' n'est pas égale à %u" + +#: util/i386/pc/grub-setup.c:215 +#, c-format +msgid "the size of `%s' is too small" +msgstr "la taille de `%s' est trop petite" + +#: util/i386/pc/grub-setup.c:217 +#, c-format +msgid "the size of `%s' is too large" +msgstr "la taille de `%s' est trop grande" + +#: util/i386/pc/grub-setup.c:254 +#, c-format +msgid "unable to identify a filesystem in %s; safety check can't be performed" +msgstr "impossible d'identifier le système de fichiers sur %s ; contrôle impossible à effectuer" + +#: util/i386/pc/grub-setup.c:258 +#, 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 "il semble que %s contienne un système de fichiers %s qui ne réserve pas de place pour un démarrage de type DOS. Installer GRUB peut conduire à la DESTRUCTION du système de fichiers si des données valides sont écrasées par l'installation de grub (--skip-fs-probe désactive ce contrôle, à utiliser à vos risques et périls)" + +#: util/i386/pc/grub-setup.c:307 +msgid "no DOS-style partitions found" +msgstr "aucune partition de type DOS trouvée" + +#: util/i386/pc/grub-setup.c:323 util/i386/pc/grub-setup.c:348 +msgid "Attempting to install GRUB to a partitionless disk. This is a BAD idea." +msgstr "Tentative d'installation de GRUB sur un disque sans partition. Mauvaise idée." + +#: util/i386/pc/grub-setup.c:329 +msgid "Attempting to install GRUB to a partition instead of the MBR. This is a BAD idea." +msgstr "Tentative d'installation de GRUB sur une partition au lieu du MBR. Mauvaise idée." + +#: util/i386/pc/grub-setup.c:357 +msgid "No DOS-style partitions found" +msgstr "Aucune partition de type DOS trouvée" + +#: util/i386/pc/grub-setup.c:362 +msgid "This msdos-style partition label has no post-MBR gap; embedding won't be possible!" +msgstr "Cette partition de type DOS n'a pas d'espace après le MBR ; inclusion impossible !" + +#: util/i386/pc/grub-setup.c:364 +msgid "This GPT partition label has no BIOS Boot Partition; embedding won't be possible!" +msgstr "Il n'y a pas de partition de type 'Boot BIOS' dans la structure GPT ; installation impossible !" + +#: util/i386/pc/grub-setup.c:371 +msgid "Your core.img is unusually large. It won't fit in the embedding area." +msgstr "Votre image noyau est inhabituellement grande. Elle ne tiendra pas dans l'aire dédiée." + +#: util/i386/pc/grub-setup.c:373 +msgid "Your embedding area is unusually small. core.img won't fit in it." +msgstr "Votre zone d'installation est anormalement petite. core.img n'y tient pas." + +#: util/i386/pc/grub-setup.c:416 +msgid "embedding is not possible, but this is required when the root device is on a RAID array or LVM volume" +msgstr "l'installation est impossible, mais reste nécessaire quand le périphérique racine est une grappe RAID ou un volume LVM" + +#: util/i386/pc/grub-setup.c:419 +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 "Installation impossible. GRUB peut seulement être installé sur cette configuration en utilisant les listes de blocs. Toutefois, les listes de blocs ne sont pas fiables et leur emploi n'est pas conseillé." + +#: util/i386/pc/grub-setup.c:423 +msgid "if you really want blocklists, use --force" +msgstr "Si vous voulez vraiment utiliser les listes de blocs, utilisez --force" + +#: util/i386/pc/grub-setup.c:439 +#, c-format +msgid "attempting to read the core image `%s' from GRUB" +msgstr "tentative de lecture de l'image noyau `%s' par GRUB" + +#: util/i386/pc/grub-setup.c:440 +#, c-format +msgid "attempting to read the core image `%s' from GRUB again" +msgstr "nouvelle tentative de lecture de l'image noyau `%s' par GRUB" + +#: util/i386/pc/grub-setup.c:498 +#, c-format +msgid "cannot read `%s' correctly" +msgstr "impossible de lire `%s' correctement" + +#: util/i386/pc/grub-setup.c:511 +msgid "no terminator in the core image" +msgstr "pas de terminateur dans l'image noyau" + +#: util/i386/pc/grub-setup.c:522 +msgid "failed to read the first sector of the core image" +msgstr "échec de lecture du premier secteur de l'image noyau" + +#: util/i386/pc/grub-setup.c:528 +msgid "failed to read the rest sectors of the core image" +msgstr "échec de lecture des secteurs restants de l'image noyau" + +#: util/i386/pc/grub-setup.c:547 +#, c-format +msgid "cannot open `%s'" +msgstr "impossible d'ouvrir `%s'" + +#: util/i386/pc/grub-setup.c:589 +#, c-format +msgid "" +"Usage: %s [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 "" +"Usage : %s [OPTION]... PERIPH\n" +"\n" +"Installe des images pour démarrer sur PERIPH.\n" +"PERIPH doit être un périphérique GRUB (i.e. `(hd0,1)').\n" +"\n" +" -b, --boot-image=FIC utilise FIC comme image de démarrage [par défaut=%s]\n" +" -c, --core-image=FIC utilise FIC comme image noyau [par défaut=%s]\n" +" -d, --directory=REP utilise les fichiers GRUB dans le répertoire REP [par défaut=%s]\n" +" -m, --device-map=FIC utilise FIC comme carte de périphérique [par défaut=%s]\n" +" -r, --root-device=PERIPH utilise PERIPH comme périphérique racine [par défaut=deviné]\n" +" -f, --force installe même si des problèmes sont détectés\n" +" -s, --skip-fs-probe ne teste pas le système de fichiers sur PERIPH\n" +" -h, --help affiche ce message et quitte\n" +" -V, --version affiche la version et quitte\n" +" -v, --verbose mode verbeux\n" +"\n" +"Rapporter les anomalies à <%s>.\n" + +#: util/i386/pc/grub-setup.c:719 +#, c-format +msgid "No device is specified.\n" +msgstr "Aucun périphérique spécifié.\n" + +#: util/i386/pc/grub-setup.c:725 +#, c-format +msgid "Unknown extra argument `%s'.\n" +msgstr "Argument superflu inconnu `%s'.\n" + +#: util/i386/pc/grub-setup.c:742 +#, c-format +msgid "Invalid device `%s'.\n" +msgstr "Périphérique non valide `%s'.\n" + +#: util/i386/pc/grub-setup.c:755 +#, c-format +msgid "invalid root device `%s'" +msgstr "périphérique racine non valide `%s'" + +#: util/i386/pc/grub-setup.c:768 +msgid "cannot guess the root device. Specify the option `--root-device'" +msgstr "impossible de deviner le périphérique racine. Utilisez l'option `--root-device'" + +#: util/grub.d/10_kfreebsd.in:40 +msgid "%s, with kFreeBSD %s" +msgstr "%s, avec kFreeBSD %s" + +#: util/grub.d/10_kfreebsd.in:48 +msgid "Loading kernel of FreeBSD %s ..." +msgstr "Chargement du noyau FreeBSD %s ..." + +#: util/grub.d/10_linux.in:57 +msgid "%s, with Linux %s (recovery mode)" +msgstr "%s, avec Linux %s (mode de dépannage)" + +#: util/grub.d/10_linux.in:59 +msgid "%s, with Linux %s" +msgstr "%s, avec Linux %s" + +#: util/grub.d/10_linux.in:77 +msgid "Loading Linux %s ..." +msgstr "Chargement de Linux %s ..." + +#: util/grub.d/10_linux.in:82 +msgid "Loading initial ramdisk ..." +msgstr "Chargement du disque mémoire initial ..." + +#~ msgid "A boot catalog exists and appears corrupted.\n" +#~ msgstr "Un catalogue de démarrage existe et semble corrompu.\n" + +#~ msgid "Please check the following file: %s.\n" +#~ msgstr "SVP contrôlez le fichier : %s.\n" + +#~ msgid "This file must be removed before a bootable CD can be done.\n" +#~ msgstr "Ce fichier doit être supprimé avant de créer un CD amorçable.\n" + +#~ msgid "Error creating boot catalog (%s)" +#~ msgstr "Erreur de création du catalogue de démarrage (%s)" + +#~ msgid "Error writing to boot catalog (%s)" +#~ msgstr "Erreur d'écriture du catalogue de démarrage (%s)" + +#~ msgid "Boot catalog cannot be found!\n" +#~ msgstr "Catalogue de démarrage non trouvé !\n" + +#~ msgid "Boot image cannot be found!\n" +#~ msgstr "Image de démarrage non trouvée !\n" + +#~ msgid "" +#~ "\n" +#~ "Size of boot image is %d sectors" +#~ msgstr "" +#~ "\n" +#~ "La taille de l'image de démarrage est %d secteurs" + +#~ msgid "No emulation\n" +#~ msgstr "Pas d'émulation\n" + +#~ msgid "Emulating a 1.44 meg floppy\n" +#~ msgstr "Emulation d'une disquette 1.44 Mo\n" + +#~ msgid "Emulating a 2.88 meg floppy\n" +#~ msgstr "Emulation d'une disquette 2.88 Mo\n" + +#~ msgid "Emulating a 1.2 meg floppy\n" +#~ msgstr "Emulation d'une disquette 1.2 Mo\n" + +#~ msgid "" +#~ "\n" +#~ "Error - boot image is not the an allowable size.\n" +#~ msgstr "" +#~ "\n" +#~ "Erreur - l'image de démarrage n'est pas de taille autorisée.\n" + +#~ msgid "Error opening boot catalog for update" +#~ msgstr "Erreur d'ouverture du catalogue de démarrage pour mise à jour" + +#~ msgid "Error writing to boot catalog" +#~ msgstr "Erreur durant l'écriture du catalogue de démarrage" + +#~ msgid "Error opening boot image file '%s' for update" +#~ msgstr "Erreur d'ouverture du fichier image de démarrage `%s' pour mise à jour" + +#~ msgid "Odd alignment at non-end-of-file in boot image '%s'" +#~ msgstr "Alignement suspect avant la fin de l'image de démarrage '%s'" + +#~ msgid "Boot image file '%s' changed unexpectedly" +#~ msgstr "Le fichier image de démarrage `%s' a été modifié de façon inattendue" + +#~ msgid "Error writing to boot image (%s)" +#~ msgstr "Erreur en écrivant l'image de démarrage (%s)" + +#~ msgid "Unable to generate sane path tables - too many directories (%d)\n" +#~ msgstr "Impossible de générer des tables de chemins saines - répertoires trop nombreux (%d)\n" + +#~ msgid "Fatal goof - directory has amnesia\n" +#~ msgstr "Erreur fatale - le répertoire est amnésique !\n" + +#~ msgid "Unable to locate relocated directory\n" +#~ msgstr "Impossible de localiser le répertoire déplacé\n" + +#~ msgid "Fatal goof - unable to find directory location\n" +#~ msgstr "Erreur fatale - impossible de localiser le répertoire\n" + +#~ msgid "Unexpected joliet directory length %d %d %s\n" +#~ msgstr "Longueur de répertoire Joliet inattendue %d %d %s\n" + +#~ msgid "Using \"%s\"\n" +#~ msgstr "Utilisation de \"%s\"\n" + +#~ msgid "%s:%d: name required\n" +#~ msgstr "%s :%d : nom requis\n" + +#~ msgid "%s:%d: equals sign required\n" +#~ msgstr "%s :%d : signe égal requis\n" + +#~ msgid "%s:%d: field name \"%s\" unknown\n" +#~ msgstr "%s :%d : nom de champ \"%s\" inconnu\n" + +#~ msgid "Usage: %s [options] file...\n" +#~ msgstr "Usage : %s [options] fichier...\n" + +#~ msgid "Options:\n" +#~ msgstr "Options :\n" + +#~ msgid "-i option no longer supported.\n" +#~ msgstr "l'option -i n'est plus supportée.\n" + +#~ msgid "Ignoring -no-emul-boot (no-emulation is the default behaviour)\n" +#~ msgstr "option -no-emul-boot ignorée (no-emulation est le comportement par défaut)\n" + +#~ msgid "Copyright filename string too long\n" +#~ msgstr "Nom de fichier copyright trop long\n" + +#~ msgid "System ID string too long\n" +#~ msgstr "Chaîne d'ID système trop longue\n" + +#~ msgid "Volume ID string too long\n" +#~ msgstr "Chaîne d'ID volume trop longue\n" + +#~ msgid "date string must be 16 characters.\n" +#~ msgstr "la date doit former une chaîne de 16 caractères.\n" + +#~ msgid "Warning: getrlimit" +#~ msgstr "Attention : getrlimit" + +#~ msgid "Warning: setrlimit" +#~ msgstr "Attention : setrlimit" + +#~ msgid "Multisession usage bug: Must specify -C if -M is used.\n" +#~ msgstr "Problème d'utilisation multisession : option -C requise si -M est spécifiée.\n" + +#~ msgid "Warning: -C specified without -M: old session data will not be merged.\n" +#~ msgstr "Attention : option -C spécifiée sans -M, l'ancienne session ne sera pas fusionnée.\n" + +#~ msgid "can't open logfile: %s" +#~ msgstr "impossible d'ouvrir le fichier journal : %s" + +#~ msgid "re-directing all messages to %s\n" +#~ msgstr "redirection des messages à %s\n" + +#~ msgid "can't open logfile: %s\n" +#~ msgstr "impossible d'ouvrir le fichier journal : %s\n" + +#~ msgid "Unable to open previous session image %s\n" +#~ msgstr "Impossible d'ouvrir l'image de session précédente %s\n" + +#~ msgid "Invalid node - %s\n" +#~ msgstr "Noeud non valide - %s\n" + +#~ msgid "Joliet tree sort failed.\n" +#~ msgstr "Echec du tri de l'arbre Joliet.\n" + +#~ msgid "Unable to open /dev/null\n" +#~ msgstr "Impossible d'ouvrir /dev/null\n" + +#~ msgid "Unable to open disc image file\n" +#~ msgstr "Impossible d'ouvrir le fichier contenant l'image disque\n" + +#~ msgid "Seek error on old image\n" +#~ msgstr "Erreur de positionnement sur l'ancienne image\n" + +#~ msgid "**Bad RR version attribute" +#~ msgstr "**Mauvais attribut de version RR" + +#~ msgid "Read error on old image %s\n" +#~ msgstr "Erreur de lecture de l'ancienne image %s\n" + +#~ msgid "Special parameters for cdwrite not specified with -C\n" +#~ msgstr "Paramètres spéciaux pour cdwrite non spécifiés avec -C\n" + +#~ msgid "Malformed cdwrite parameters\n" +#~ msgstr "Paramètres pour cdwrite mal formés\n" + +#~ msgid "Unable to insert transparent compressed file - name conflict\n" +#~ msgstr "Impossible d'insérer un fichier compressé de façon transparente - conflit de nom\n" + +#~ msgid "Fatal goof\n" +#~ msgstr "Erreur fatale\n" + +#~ msgid "Unable to generate unique name for file %s\n" +#~ msgstr "Impossible de générer un nom unique pour le fichier %s\n" + +#~ msgid "Using %s for %s%s%s (%s)\n" +#~ msgstr "Utilisation de %s pour %s%s%s (%s)\n" + +#~ msgid "Fatal error - RR overflow for file %s\n" +#~ msgstr "Erreur fatale - dépassement RR pour le fichier %s\n" + +#~ msgid "Unable to sort directory %s\n" +#~ msgstr "Impossible de trier le répertoire %s\n" + +#~ msgid "Translation table size mismatch %d %d\n" +#~ msgstr "Mauvaise concordance de taille de table de translation %d %d\n" + +#~ msgid "Unable to locate directory parent\n" +#~ msgstr "Impossible de localiser le répertoire parent\n" + +#~ msgid "Scanning %s\n" +#~ msgstr "Examen de %s en cours\n" + +#~ msgid "Unable to open directory %s\n" +#~ msgstr "Impossible d'ouvrir le répertoire %s\n" + +#~ msgid "Ignoring file %s\n" +#~ msgstr "Fichier ignoré %s\n" + +#~ msgid "Overflow of stat buffer\n" +#~ msgstr "Dépassement de tampon \"stat\"\n" + +#~ msgid "Excluded: %s\n" +#~ msgstr "Exclusion de : %s\n" + +#~ msgid "Non-existant or inaccessible: %s\n" +#~ msgstr "Inexistant ou inaccessible : %s\n" + +#~ msgid "Unable to stat file %s - ignoring and continuing.\n" +#~ msgstr "Impossible d'atteindre le fichier %s - ignoré et poursuite.\n" + +#~ msgid "Symlink %s ignored - continuing.\n" +#~ msgstr "Lien symbolique %s ignoré - poursuite...\n" + +#~ msgid "File %s is not readable (%s) - ignoring\n" +#~ msgstr "Fichier %s non lisible (%s) - ignoré\n" + +#~ msgid "Directory loop - fatal goof (%s %lx %lu).\n" +#~ msgstr "Boucle de répertoires - erreur fatale (%s %lx %lu).\n" + +#~ msgid "Unknown file type %s - ignoring and continuing.\n" +#~ msgstr "Type du fichier %s inconnu - ignoré, poursuite...\n" + +#~ msgid "Directories too deep %s\n" +#~ msgstr "Arborescence de répertoires trop profonde %s\n" + +#~ msgid "Unable to delete non-empty directory\n" +#~ msgstr "Impossible de supprimer un répertoire non vide\n" + +#~ msgid "Unable to locate child directory in parent list\n" +#~ msgstr "Impossible de localiser le répertoire fils dans la liste parente\n" + +#~ msgid "call to search_tree_file with an absolute path, stripping\n" +#~ msgstr "appel de search_tree_file avec un chemin absolu, troncage\n" + +#~ msgid "initial path separator. Hope this was intended...\n" +#~ msgstr "séparateur de chemin en tête. Est-ce voulu...?\n" + +#~ msgid "Cannot open '%s'" +#~ msgstr "Imposible d'ouvrir '%s'" + +#~ msgid "cannot fwrite %llu*%llu\n" +#~ msgstr "impossible d'écrire (fwrite) %llu*%llu\n" + +#~ msgid "cannot open %s\n" +#~ msgstr "impossible d'ouvrir %s\n" + +#~ msgid "cannot read %llu bytes from %s" +#~ msgstr "impossible de lire %llu octets depuis %s" + +#~ msgid "%6.2f%% done, estimate finish %s" +#~ msgstr "effectué %6.2f%%, estimation de fin %s" + +#~ msgid "Unexpected directory length %d %d %s\n" +#~ msgstr "Longueur de répertoire inattendue %d %d %s\n" + +#~ msgid "Predicted = %d, written = %llu\n" +#~ msgstr "Prévus = %d, écrits = %llu\n" + +#~ msgid "Total translation table size: %d\n" +#~ msgstr "Taille totale de table de translation : %d\n" + +#~ msgid "Total rockridge attributes bytes: %d\n" +#~ msgstr "Nb total d'octets des attributs rockridge : %d\n" + +#~ msgid "Total directory bytes: %d\n" +#~ msgstr "Nb total d'octets du répertoire : %d\n" --- grub2-1.98+20100804.orig/po/ca.po +++ grub2-1.98+20100804/po/ca.po @@ -0,0 +1,1345 @@ +# Catalan translation for grub. +# Copyright (C) 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the grub package. +# Robert Millan , 2009. +# Àngel Mompó , 2010. +# Àngel Mompó , 2010. +msgid "" +msgstr "" +"Project-Id-Version: grub-1.97+20100124\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-06-19 01:35+0100\n" +"PO-Revision-Date: 2010-03-21 21:47+0100\n" +"Last-Translator: Àngel Mompó \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: commands/acpi.c:40 +msgid "Don't load host tables specified by comma-separated list." +msgstr "" +"No carreguis les taules d'amfitrions especificades en llistes separades per " +"comes." + +#: commands/acpi.c:43 +msgid "Load only tables specified by comma-separated list." +msgstr "Carrega només les taules especificades en llistes separades per comes." + +#: commands/acpi.c:44 +msgid "Expose v1 tables." +msgstr "Exposa les taules v1." + +#: commands/acpi.c:45 +msgid "Expose v2 and v3 tables." +msgstr "Exposa les taules v2 i v3." + +#: commands/acpi.c:46 +msgid "Set OEMID of RSDP, XSDT and RSDT." +msgstr "Aplica l'OEMID de l'RSDP, XSDT i l'RSDT." + +#: commands/acpi.c:48 +msgid "Set OEMTABLE ID of RSDP, XSDT and RSDT." +msgstr "Aplica l'identificador de l'OEMTABLE de l'RSDP, XSDT i l'RSDT." + +#: commands/acpi.c:50 +msgid "Set OEMTABLE revision of RSDP, XSDT and RSDT." +msgstr "Aplica la revisió de l'OEMTABLE de l'RSDP, XSDT i l'RSDT." + +#: commands/acpi.c:52 +msgid "Set creator field of RSDP, XSDT and RSDT." +msgstr "Aplica el camp creador de l'RSDP, XSDT i l'RSDT." + +#: commands/acpi.c:54 +msgid "Set creator revision of RSDP, XSDT and RSDT." +msgstr "Aplica la revisió del creador de l'RSDP, XSDT i l'RSDT." + +#: commands/acpi.c:55 +msgid "" +"Don't update EBDA. May fix failures or hangs on some. BIOSes but makes it " +"ineffective with OS not receiving RSDP from GRUB." +msgstr "" +"No actualitzis EBDA. Pot corregir defectes o penjades a algunes BIOS, però " +"el fa ineficaç amb SO que no rebin RSDP del GRUB." + +#: commands/acpi.c:763 +msgid "" +"[-1|-2] [--exclude=TABLE1,TABLE2|--load-only=table1,table2] FILE1 [FILE2] " +"[...]" +msgstr "" +"[-1|-2] [--exclude=TAULA1,TAULA2|--load-only=taula1,taula2] FITXER1 " +"[FITXER2] [...]" + +#: commands/acpi.c:766 +msgid "Load host ACPI tables and tables specified by arguments." +msgstr "" +"Carrega les taules d'amfitrions ACPI i les taules especificades per " +"arguments." + +#: commands/blocklist.c:113 commands/cat.c:82 commands/configfile.c:57 +#: commands/configfile.c:60 commands/configfile.c:65 commands/crc.c:64 +#: commands/minicmd.c:353 loader/i386/bsd.c:1287 loader/i386/bsd.c:1291 +#: loader/i386/bsd.c:1295 +msgid "FILE" +msgstr "FITXER" + +#: commands/blocklist.c:113 +msgid "Print a block list." +msgstr "Mostra una llista de blocs." + +#: commands/boot.c:190 +msgid "Boot an operating system." +msgstr "Arrenca un sistema operatiu." + +#: commands/cat.c:82 commands/minicmd.c:353 +msgid "Show the contents of a file." +msgstr "Mostra el contingut d'un fitxer." + +#: commands/cmp.c:113 +msgid "FILE1 FILE2" +msgstr "FITXER1 FITXER2" + +#: commands/cmp.c:113 +msgid "Compare two files." +msgstr "Compara dos fitxers." + +#: commands/configfile.c:57 +msgid "Load another config file." +msgstr "Carrega un altre fitxer de configuració." + +#: commands/configfile.c:61 commands/configfile.c:66 +msgid "Load another config file without changing context." +msgstr "Carrega un altre fitxer de configuració sense canviar el context." + +#: commands/crc.c:65 +msgid "Calculate the crc32 checksum of a file." +msgstr "Calcula la suma de verificació CRC32 d'un fitxer." + +#: commands/date.c:139 +msgid "[[year-]month-day] [hour:minute[:second]]" +msgstr "[[any-]mes-dia] [hora:minut[:segon]]" + +#: commands/date.c:140 +msgid "Command to display/set current datetime." +msgstr "Ordre per mostrar/modificar el dia i l'hora actuals." + +#: commands/echo.c:27 +msgid "Do not output the trailing newline." +msgstr "No mostris els salts de línia." + +#: commands/echo.c:28 +msgid "Enable interpretation of backslash escapes." +msgstr "Habilita la interpretació dels caràcters amb contrabarra." + +#: commands/echo.c:117 +msgid "[-e|-n] STRING" +msgstr "[-e|-n] CADENA" + +#: commands/echo.c:117 +msgid "Display a line of text." +msgstr "Mostra una línia de text." + +#: commands/efi/fixvideo.c:103 +msgid "Fix video problem." +msgstr "Corregeix un problema de vídeo." + +#: commands/efi/loadbios.c:207 +msgid "Fake BIOS." +msgstr "Falsa BIOS." + +#: commands/efi/loadbios.c:211 +msgid "Load BIOS dump." +msgstr "Carrega l'abocament de memòria de la BIOS." + +#: commands/gptsync.c:244 +msgid "DEVICE [PARTITION[+/-[TYPE]]] ..." +msgstr "DISPOSITIU [PARTICIÓ[+/-[TIPUS]]]" + +#: commands/gptsync.c:245 +#, fuzzy +msgid "" +"Fill hybrid MBR of GPT drive DEVICE. Specified partitions will be a part of " +"hybrid MBR. Up to 3 partitions are allowed. TYPE is an MBR type. + means " +"that partition is active. Only one partition can be active." +msgstr "" +"Omple l'MBR híbrid del DISPOSITIU unitat GPT. Les particions especificades " +"seran una part del MBR híbrid. Es permeten fins a 3 particions. TIPUS és un " +"tipus de MBR. + significa que la partició és activa. Només es pot activar " +"una partició." + +#: commands/halt.c:39 +msgid "" +"Halts the computer. This command does not work on all firmware " +"implementations." +msgstr "" +"Atura l'ordinador. Aquesta ordre no funciona en totes les implementacions de " +"microprogramari." + +#: commands/hdparm.c:30 +msgid "" +"Set Advanced Power Management\n" +"(1=low, ..., 254=high, 255=off)." +msgstr "" +"Configura el gestor avançat de consum\n" +"(1=baix, ..., 254=alt, 255=apagat)." + +#: commands/hdparm.c:33 +msgid "Check power mode." +msgstr "Comprova el mode de consum." + +#: commands/hdparm.c:34 +msgid "Freeze ATA security settings until reset." +msgstr "Congela la configuració de seguretat ATA fins que es reinicïi." + +#: commands/hdparm.c:36 +msgid "Check SMART health status." +msgstr "Comprova l'estat de salut SMART." + +#: commands/hdparm.c:37 +msgid "" +"Set Automatic Acoustic Management\n" +"(0=off, 128=quiet, ..., 254=fast)." +msgstr "" +"Configura el gestor acústic automàtic\n" +"(0=apagat, 128=silenciós, ..., 254 ràpid)." + +#: commands/hdparm.c:40 +msgid "" +"Set standby timeout\n" +"(0=off, 1=5s, 2=10s, ..., 240=20m, 241=30m, ...)." +msgstr "" +"Configura el temps màxim d'espera\n" +"(0=apagat, 1=5s, 2=10s, ..., 240=20m, 241=30m, ...)." + +#: commands/hdparm.c:43 +msgid "Set drive to standby mode." +msgstr "Posa la unitat en mode d'espera." + +#: commands/hdparm.c:44 +msgid "Set drive to sleep mode." +msgstr "Posa la unitat en mode descans." + +#: commands/hdparm.c:45 +msgid "Print drive identity and settings." +msgstr "Mostra la identificació i la configuració de la unitat." + +#: commands/hdparm.c:47 +msgid "Dump contents of ATA IDENTIFY sector." +msgstr "Bolca el contingut del sector IDENTIFY ATA." + +#: commands/hdparm.c:49 +msgid "Disable/enable SMART (0/1)." +msgstr "Habilita/deshabilita SMART (1/0)." + +#: commands/hdparm.c:50 +msgid "Do not print messages." +msgstr "No mostris missatges." + +#: commands/hdparm.c:414 +msgid "[OPTIONS] DISK" +msgstr "[OPCIONS] DISC" + +#: commands/hdparm.c:415 +msgid "Get/set ATA disk parameters." +msgstr "Llegeix/escriu els paràmetres del disc ATA." + +#: commands/help.c:112 lib/arg.c:110 +msgid "Usage:" +msgstr "Ús:" + +#: commands/help.c:129 +msgid "[PATTERN ...]" +msgstr "[PATRÓ...]" + +#: commands/help.c:130 +msgid "Show a help message." +msgstr "Mostra un missatge de text." + +#: commands/hexdump.c:30 +msgid "Skip offset bytes from the beginning of file." +msgstr "Salta els bytes d'òfset des del principi del fitxer." + +#: commands/hexdump.c:32 +msgid "Read only LENGTH bytes." +msgstr "Llegeix només LONGITUD bytes." + +#: commands/hexdump.c:125 +msgid "[OPTIONS] FILE_OR_DEVICE" +msgstr "[OPCIONS] FITXER_O_DISPOSITIU" + +#: commands/hexdump.c:126 +msgid "Dump the contents of a file or memory." +msgstr "Bolca el contingut d'un fitxer o de la memòria." + +#: commands/i386/cpuid.c:37 +msgid "Check for long mode flag (default)." +msgstr "Es comprova l'indicador de mode llarg (per defecte)." + +#: commands/i386/cpuid.c:92 +msgid "Check for CPU features." +msgstr "Es comprova les característiques de la CPU." + +#: commands/i386/pc/drivemap.c:37 +msgid "Show the current mappings." +msgstr "Mostra els mapatges actuals." + +#: commands/i386/pc/drivemap.c:38 +msgid "Reset all mappings to the default values." +msgstr "Es reinicien tots els mapats als valors per defecte." + +#: commands/i386/pc/drivemap.c:39 +msgid "Perform both direct and reverse mappings." +msgstr "Realitza ambdós mapats, el directe i l'invers." + +#: commands/i386/pc/drivemap.c:406 +msgid "-l | -r | [-s] grubdev osdisk." +msgstr "-l | -r | [-s] grubdev osdisk." + +#: commands/i386/pc/drivemap.c:407 +msgid "Manage the BIOS drive mappings." +msgstr "Gestiona els mapats d'unitats de la BIOS." + +#: commands/i386/pc/halt.c:27 +msgid "Do not use APM to halt the computer." +msgstr "No utilitzis APM per aturar l'ordinador." + +#: commands/i386/pc/halt.c:51 +msgid "Halt the system, if possible using APM." +msgstr "Atura el sistema, si pots, fent servir APM." + +#: commands/i386/pc/play.c:266 +msgid "FILE | TEMPO [PITCH1 DURATION1] [PITCH2 DURATION2] ... " +msgstr "" + +#: commands/i386/pc/play.c:267 +msgid "Play a tune." +msgstr "Reprodueix una melodia." + +#: commands/i386/pc/pxecmd.c:46 +msgid "Unload PXE environment." +msgstr "Treu l'entorn PXE." + +#: commands/i386/pc/vbeinfo.c:179 +msgid "List compatible VESA BIOS extension video modes." +msgstr "Llista les extensions de vídeo compatibles de VESA BIOS." + +#: commands/i386/pc/vbetest.c:173 +msgid "Test VESA BIOS Extension 2.0+ support." +msgstr "Prova el suport per l'extensió 2.0+ de VESA BIOS." + +#: commands/ieee1275/suspend.c:43 +msgid "Return to Open Firmware prompt." +msgstr "Torna a l'indicador Open Firmware." + +#: commands/keystatus.c:28 +msgid "Check Shift key." +msgstr "Comprova la tecla de majúscules." + +#: commands/keystatus.c:29 +msgid "Check Control key." +msgstr "Comprova la tecla de control." + +#: commands/keystatus.c:30 +msgid "Check Alt key." +msgstr "Comprova la tecla d'alternativa." + +#: commands/keystatus.c:85 +msgid "[--shift] [--ctrl] [--alt]" +msgstr "[--shift] [--ctrl] [--alt]" + +#: commands/keystatus.c:86 +msgid "Check key modifier status." +msgstr "Comprova l'estat de la tecla modificadora." + +#: commands/loadenv.c:33 +msgid "Specify filename." +msgstr "Especifica el nom del fitxer." + +#: commands/loadenv.c:378 commands/loadenv.c:384 +msgid "[-f FILE]" +msgstr "[-f FITXER]" + +#: commands/loadenv.c:379 +msgid "Load variables from environment block file." +msgstr "Carrega les variables del bloc del fitxer d'entorn." + +#: commands/loadenv.c:385 +msgid "List variables from environment block file." +msgstr "Llista les variables del bloc del fitxer d'entorn." + +#: commands/loadenv.c:390 +msgid "[-f FILE] variable_name [...]" +msgstr "[-f FITXER] nom_de_variable [...]" + +#: commands/loadenv.c:391 +msgid "Save variables to environment block file." +msgstr "Desa les variables al bloc del fitxer d'entorn." + +#: commands/ls.c:37 +msgid "Show a long list with more detailed information." +msgstr "Mostra una llista llarga amb informació més detallada." + +#: commands/ls.c:38 +msgid "Print sizes in a human readable format." +msgstr "Mostra les mides en un format llegible pels humans." + +#: commands/ls.c:39 +msgid "List all files." +msgstr "Llista tots els fitxers." + +#: commands/ls.c:269 +msgid "[-l|-h|-a] [FILE]" +msgstr "[-l|-h|-a] [FITXER]" + +#: commands/ls.c:270 +msgid "List devices and files." +msgstr "Llista dispositius i fitxers." + +#: commands/lsmmap.c:51 +msgid "List memory map provided by firmware." +msgstr "Llista el mapa de memòria proveït pel microprogramari." + +#: commands/lspci.c:228 +msgid "List PCI devices." +msgstr "Llista els dispositius PCI." + +#: commands/memrw.c:31 +msgid "Save read value into variable VARNAME." +msgstr "Desa el valor llegit a la variable NOMVARIABLE." + +#: commands/memrw.c:123 commands/memrw.c:126 commands/memrw.c:129 +#: commands/minicmd.c:362 +msgid "ADDR" +msgstr "ADDR" + +#: commands/memrw.c:123 +msgid "Read byte from ADDR." +msgstr "Llegeix un byte de ADDR." + +#: commands/memrw.c:126 +msgid "Read word from ADDR." +msgstr "Llegeix una paraula de ADDR." + +#: commands/memrw.c:129 +msgid "Read dword from ADDR." +msgstr "Llegeix una paraula doble de ADDR." + +#: commands/memrw.c:132 commands/memrw.c:135 commands/memrw.c:138 +msgid "ADDR VALUE [MASK]" +msgstr "ADDR VALOR [MASCARA]" + +#: commands/memrw.c:132 +msgid "Write byte VALUE to ADDR." +msgstr "Escriu un byte VALOR a ADDR." + +#: commands/memrw.c:135 +msgid "Write word VALUE to ADDR." +msgstr "Escriu una paraula VALOR a ADDR." + +#: commands/memrw.c:138 +msgid "Write dword VALUE to ADDR." +msgstr "Escriu una paraula doble VALOR a ADDR" + +#: commands/minicmd.c:356 +msgid "Show this message." +msgstr "Mostra aquest missatge." + +#: commands/minicmd.c:359 commands/probe.c:154 +msgid "[DEVICE]" +msgstr "[DISPOSITIU]" + +#: commands/minicmd.c:359 +msgid "Set the root device." +msgstr "Estableix el dispositiu arrel." + +#: commands/minicmd.c:362 +msgid "Dump memory." +msgstr "Bolca la memòria." + +#: commands/minicmd.c:365 +msgid "MODULE" +msgstr "MÒDUL" + +#: commands/minicmd.c:365 +msgid "Remove a module." +msgstr "Treu un mòdul." + +#: commands/minicmd.c:368 +msgid "Show loaded modules." +msgstr "Mostra els mòduls carregats." + +#: commands/minicmd.c:371 +msgid "Exit from GRUB." +msgstr "Surt de GRUB." + +#: commands/minicmd.c:374 +msgid "Clear the screen." +msgstr "Neteja la pantalla." + +#: commands/parttool.c:325 +msgid "PARTITION COMMANDS" +msgstr "COMANDES DE PARTICIONAT" + +#: commands/password.c:78 +msgid "USER PASSWORD" +msgstr "CONTRASENYA D'USUARI" + +#: commands/password.c:79 +msgid "Set user password (plaintext). Unrecommended and insecure." +msgstr "Estableix una contrasenya d'usuari (text pla). No recomanat i insegur." + +#: commands/probe.c:38 +msgid "Set a variable to return value." +msgstr "Estableix una variable per retornar un valor." + +#: commands/probe.c:39 +msgid "Determine driver." +msgstr "Determina el controlador." + +#: commands/probe.c:40 +msgid "Determine partition map type." +msgstr "Determina el tipus de mapa de particions." + +#: commands/probe.c:41 +msgid "Determine filesystem type." +msgstr "Determina el tipus de sistema de fitxers." + +#: commands/probe.c:42 +msgid "Determine filesystem UUID." +msgstr "Determina el UUID del sistema de fitxers." + +#: commands/probe.c:43 +msgid "Determine filesystem label." +msgstr "Determina l'etiqueta del sistema de fitxers." + +#: commands/probe.c:155 +msgid "Retrieve device info." +msgstr "Recupera la informació del dispositiu." + +#: commands/read.c:83 +msgid "[ENVVAR]" +msgstr "[ENVVAR]" + +#: commands/read.c:84 +msgid "Set variable with user input." +msgstr "Estableix la variable amb una entrada d'usuari." + +#: commands/reboot.c:39 +msgid "Reboot the computer." +msgstr "Reinicia l'ordinador." + +#: commands/search.c:161 +msgid "NAME [VARIABLE]" +msgstr "NOM [VARIABLE]" + +#: commands/search_file.c:5 +msgid "" +"Search devices by file. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Cerca dispositius pel fitxer. Si s'especifica VARIABLE, el nom del primer " +"dispositiu trobat s'escriu a la variable." + +#: commands/search_label.c:5 +msgid "" +"Search devices by label. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Cerca dispositius per l'etiqueta. Si s'especifica VARIABLE, el nom del " +"primer dispositiu trobat s'escriu a la variable." + +#: commands/search_uuid.c:5 +msgid "" +"Search devices by UUID. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Cerca dispositius per l'UUID. Si s'especifica VARIABLE, el nom del primer " +"dispositiu trobat s'escriu a la variable." + +#: commands/sleep.c:30 +msgid "Verbose countdown." +msgstr "Compte enrere detallat." + +#: commands/sleep.c:31 +msgid "Interruptible with ESC." +msgstr "Es pot interrompre amb ESC." + +#: commands/sleep.c:105 +msgid "NUMBER_OF_SECONDS" +msgstr "NOMBRE_DE_SEGONS" + +#: commands/sleep.c:106 +msgid "Wait for a specified number of seconds." +msgstr "Espera un nombre especificat de segons." + +#: commands/test.c:424 +msgid "EXPRESSION ]" +msgstr "EXPRESSIÓ ]" + +#: commands/test.c:424 commands/test.c:426 +msgid "Evaluate an expression." +msgstr "Avalua una expressió." + +#: commands/test.c:426 +msgid "EXPRESSION" +msgstr "EXPRESSIÓ" + +#: commands/true.c:47 +msgid "Do nothing, successfully." +msgstr "No facis res, amb èxit." + +#: commands/true.c:50 +msgid "Do nothing, unsuccessfully." +msgstr "No facis res, sense èxit." + +#: commands/usbtest.c:208 +msgid "Test USB support." +msgstr "Prova el suport USB." + +#: commands/videotest.c:180 +msgid "Test video subsystem." +msgstr "Prova el subsistema de video." + +#: commands/xnu_uuid.c:92 +msgid "GRUBUUID [VARNAME]" +msgstr "GRUBUUID [VARNOM]" + +#: commands/xnu_uuid.c:93 +msgid "Transform 64-bit UUID to format suitable for XNU." +msgstr "Transforma un UUID de 64 bits a un format adient per XNU" + +#: disk/loopback.c:40 +msgid "Delete the loopback device entry." +msgstr "Esborra l'entrada de dispositiu de retrobucle." + +#: disk/loopback.c:41 +msgid "Simulate a hard drive with partitions." +msgstr "Simula un disc dur amb particions." + +#: disk/loopback.c:249 +msgid "[-d|-p] DEVICENAME FILE." +msgstr "[-d| -p] NOMDISPOSITIU FITXER." + +#: disk/loopback.c:250 +msgid "Make a device of a file." +msgstr "Fes un dispositiu d'un fitxer." + +#: hello/hello.c:43 +msgid "Say \"Hello World\"." +msgstr "Diu «Hola Mon»." + +#: lib/arg.c:34 +msgid "Display this help and exit." +msgstr "Mostra aquesta ajuda i surt." + +#: lib/arg.c:36 +msgid "Display the usage of this command and exit." +msgstr "Mostra l'ús d'aquesta comanda i surt." + +#: loader/efi/appleloader.c:325 +msgid "Boot legacy system." +msgstr "Arrenca el sistema heretat." + +#: loader/efi/chainloader.c:340 loader/i386/pc/chainloader.c:166 +msgid "Load another boot loader." +msgstr "Carrega un altre gestor d'engegada." + +#: loader/i386/bsd.c:65 +msgid "Display output on all consoles." +msgstr "Mostra la sortida a totes les consoles." + +#: loader/i386/bsd.c:66 +msgid "Use serial console." +msgstr "Usa una consola sèrie." + +#: loader/i386/bsd.c:67 loader/i386/bsd.c:93 loader/i386/bsd.c:114 +msgid "Ask for file name to reboot from." +msgstr "Demana el nom del fitxer des d'on tornar a engegar." + +#: loader/i386/bsd.c:68 +msgid "Use CDROM as root." +msgstr "Utilitza el CDROM com arrel." + +#: loader/i386/bsd.c:69 +msgid "Invoke user configuration routing." +msgstr "Invoca el camí de la configuració d'usuari." + +#: loader/i386/bsd.c:70 loader/i386/bsd.c:97 loader/i386/bsd.c:117 +msgid "Enter in KDB on boot." +msgstr "Entra en KDB al arrencar." + +#: loader/i386/bsd.c:71 +msgid "Use GDB remote debugger instead of DDB." +msgstr "Fes servir el depuració remot GDB en comptes de DDB." + +#: loader/i386/bsd.c:72 +msgid "Disable all boot output." +msgstr "Deshabilita totes les sortides d'arrencada." + +#: loader/i386/bsd.c:74 +msgid "Wait for keypress after every line of output." +msgstr "Espera que es premi una tecla després de cada línia de sortida." + +#: loader/i386/bsd.c:76 +msgid "Use compiled-in rootdev." +msgstr "Fes servir el rootdev compilat a dins." + +#: loader/i386/bsd.c:77 loader/i386/bsd.c:96 loader/i386/bsd.c:120 +msgid "Boot into single mode." +msgstr "Arrenca en mode simple." + +#: loader/i386/bsd.c:78 loader/i386/bsd.c:121 +msgid "Boot with verbose messages." +msgstr "Arrenca amb missatges detallats." + +#: loader/i386/bsd.c:94 loader/i386/bsd.c:115 +msgid "Don't reboot, just halt." +msgstr "No reiniciïs, només apaga." + +#: loader/i386/bsd.c:95 loader/i386/bsd.c:116 +msgid "Change configured devices." +msgstr "Canvia els dispositius configurats." + +#: loader/i386/bsd.c:98 loader/i386/bsd.c:124 +msgid "Set root device." +msgstr "Indica el dispositiu arrel." + +#: loader/i386/bsd.c:112 +msgid "Disable SMP." +msgstr "Deshabilita SMP." + +#: loader/i386/bsd.c:113 +msgid "Disable ACPI." +msgstr "Deshabilita ACPI." + +#: loader/i386/bsd.c:119 +msgid "Don't display boot diagnostic messages." +msgstr "No mostris els missatges de diagnòstics de l'arrencada." + +#: loader/i386/bsd.c:122 +msgid "Boot with debug messages." +msgstr "Arrenca amb missatges de depuració." + +#: loader/i386/bsd.c:123 +msgid "Supress normal output (warnings remain)." +msgstr "Suprimeix els missatges normals (conserva els avisos)." + +#: loader/i386/bsd.c:124 +msgid "DEVICE" +msgstr "DISPOSITIU" + +#: loader/i386/bsd.c:1287 +msgid "Load kernel of FreeBSD." +msgstr "Carrega el nucli de FreeBSD" + +#: loader/i386/bsd.c:1291 +msgid "Load kernel of OpenBSD." +msgstr "Carrega el nucli de OpenBSD." + +#: loader/i386/bsd.c:1295 +msgid "Load kernel of NetBSD." +msgstr "Carrega el nucli de NetBSD." + +#: loader/i386/bsd.c:1299 +msgid "Load FreeBSD env." +msgstr "Carrega l'entorn FreeBSD." + +#: loader/i386/bsd.c:1302 +msgid "Load FreeBSD kernel module." +msgstr "Carrega el mòdul del nucli FreeBSD." + +#: loader/i386/bsd.c:1305 +msgid "Load FreeBSD kernel module (ELF)." +msgstr "Carrega el mòdul del nucli FreeBSD (ELF)." + +#: loader/i386/efi/linux.c:1011 loader/i386/ieee1275/linux.c:301 +#: loader/i386/linux.c:1012 loader/i386/pc/linux.c:399 +#: loader/powerpc/ieee1275/linux.c:353 loader/sparc64/ieee1275/linux.c:519 +msgid "Load Linux." +msgstr "Carrega Linux." + +#: loader/i386/efi/linux.c:1013 loader/i386/ieee1275/linux.c:303 +#: loader/i386/linux.c:1014 loader/i386/pc/linux.c:402 +#: loader/powerpc/ieee1275/linux.c:355 loader/sparc64/ieee1275/linux.c:521 +msgid "Load initrd." +msgstr "Carrega initrd." + +#: loader/i386/xnu.c:1032 +msgid "Load device-properties dump." +msgstr "Carrega el bolcat de les propietats del dispositiu." + +#: loader/multiboot.c:337 +msgid "Load a multiboot 2 kernel." +msgstr "Carrega un nucli multiarranc 2." + +#: loader/multiboot.c:340 +#, fuzzy +msgid "Load a multiboot 2 module." +msgstr "Carrega un mòdul multiarranc." + +#: loader/multiboot.c:343 +msgid "Load a multiboot kernel." +msgstr "Carrega un nucli multiarranc." + +#: loader/multiboot.c:346 +msgid "Load a multiboot module." +msgstr "Carrega un mòdul multiarranc." + +#: loader/xnu.c:1428 +msgid "Load XNU image." +msgstr "Carrega una imatge XNU." + +#: loader/xnu.c:1430 +msgid "Load 64-bit XNU image." +msgstr "Carrega una imatge XNU de 64 bits." + +#: loader/xnu.c:1432 +msgid "Load XNU extension package." +msgstr "Carrega un paquet d'extensió XNU." + +#: loader/xnu.c:1434 +msgid "Load XNU extension." +msgstr "Carrega una extensió XNU." + +#: loader/xnu.c:1436 +msgid "DIRECTORY [OSBundleRequired]" +msgstr "DIRECTORI [NecessitaOSBundle]" + +#: loader/xnu.c:1437 +msgid "Load XNU extension directory." +msgstr "Carrega el directori de les extensions XNU." + +#: loader/xnu.c:1444 +msgid "Load a splash image for XNU." +msgstr "Carrega una imatge de presentació per XNU." + +#: loader/xnu.c:1449 +msgid "Load XNU hibernate image." +msgstr "Carrega una imatge hibernada de XNU." + +#: normal/auth.c:217 +msgid "Enter username: " +msgstr "Introdueix el nom d'usuari: " + +#: normal/auth.c:222 +msgid "Enter password: " +msgstr "Introdueix la contrasenya: " + +#: normal/color.c:80 +#, c-format +msgid "Warning: syntax error (missing slash) in `%s'\n" +msgstr "Avís: error de sintaxi (falta una barra) a «%s»\n" + +#: normal/color.c:89 +#, c-format +msgid "Warning: invalid foreground color `%s'\n" +msgstr "Avís: color de primer pla invàlid «%s»\n" + +#: normal/color.c:95 +#, c-format +msgid "Warning: invalid background color `%s'\n" +msgstr "Avís: color de fons invàlid «%s»\n" + +#: normal/dyncmd.c:144 +msgid "not loaded" +msgstr "no s'ha carregat" + +#: normal/main.c:415 +#, c-format +msgid "GNU GRUB version %s" +msgstr "Versió %s de GNU GRUB" + +#: normal/main.c:552 +#, c-format +msgid "" +"Minimal BASH-like line editing is supported. For the first word, TAB lists " +"possible command completions. Anywhere else TAB lists possible device or " +"file completions. %s" +msgstr "" +"Es suporta una línia d'edició mínima tipus BASH. Per la primera paraula, TAB " +"mostra les possibles opcions per completar. A qualsevol altre lloc, TAB " +"mostra possibles completats de dispositius o fitxers. %s" + +#: normal/main.c:555 +msgid "ESC at any time exits." +msgstr "En qualsevol moment ESC surt." + +#: normal/main.c:670 +msgid "Enter normal mode." +msgstr "" + +#: normal/main.c:672 +msgid "Exit from normal mode." +msgstr "" + +#: normal/menu_entry.c:1061 +msgid "Possible commands are:" +msgstr "Les possibles ordres són:" + +#: normal/menu_entry.c:1065 +msgid "Possible devices are:" +msgstr "Els possibles dispositius són:" + +#: normal/menu_entry.c:1069 +msgid "Possible files are:" +msgstr "Els possibles fitxers són:" + +#: normal/menu_entry.c:1073 +msgid "Possible partitions are:" +msgstr "Les possibles particions són:" + +#: normal/menu_entry.c:1077 +msgid "Possible arguments are:" +msgstr "Els possibles arguments són:" + +#: normal/menu_entry.c:1081 +msgid "Possible things are:" +msgstr "Les possibilitats són:" + +#: normal/menu_entry.c:1185 +msgid "Booting a command list" +msgstr "Arrencant una llista d'ordres" + +#: normal/menu_entry.c:1398 +msgid "Press any key to continue..." +msgstr "Premeu una tecla per continuar..." + +#: normal/menu_text.c:180 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"F1 to boot, F2=Ctrl-a, F3=Ctrl-e, F4 for a command-line or ESC to discard " +"edits and return to the GRUB menu." +msgstr "" +"Es suporta una pantalla d'edició mínima semblant a Emacs. TAB llista els " +"completats. Premeu Ctrl+x per arrencar, Ctrl+c per una línia d'ordres o ESC " +"per tornar al menú." + +#: normal/menu_text.c:185 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"Ctrl-x to boot, Ctrl-c for a command-line or ESC to discard edits and return " +"to the GRUB menu." +msgstr "" +"Es suporta una pantalla d'edició mínima semblant a Emacs. TAB llista els " +"completats. Premeu Ctrl+x per arrencar, Ctrl+c per una línia d'ordres o ESC " +"per tornar al menú." + +#: normal/menu_text.c:193 +#, c-format +msgid "Use the %C and %C keys to select which entry is highlighted.\n" +msgstr "" +"Utilitzeu les tecles %C i %C per seleccionar quina entrada voleu realçar.\n" + +#: normal/menu_text.c:210 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line. ESC to return previous menu.\n" +msgstr "" +"Premeu enter per arrencar el SO seleccionat, «e» per editar les ordres abans " +"d'arrencar o «c» per una línia de comandes. ESC torna al menú anterior.\n" + +#: normal/menu_text.c:218 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line.\n" +msgstr "" +"Premeu enter per arrencar el SO seleccionat, «e» per editar les ordres abans " +"d'arrencar o «c» per una línia de comandes.\n" + +#: normal/menu_text.c:370 +#, c-format +msgid "The highlighted entry will be executed automatically in %ds." +msgstr "L'entrada realçada s'executarà automàticament en %ds." + +#: normal/misc.c:41 +#, c-format +msgid "Partition %s:" +msgstr "Partició %s:" + +#: normal/misc.c:46 +#, c-format +msgid "Device %s:" +msgstr "Dispositiu %s:" + +#: normal/misc.c:52 +msgid "Filesystem cannot be accessed" +msgstr "No es pot accedir al sistema de fitxers." + +#: normal/misc.c:63 +#, c-format +msgid "Filesystem type %s" +msgstr "Tipus de sistema de fitxers %s" + +#: normal/misc.c:73 +#, c-format +msgid "- Label \"%s\"" +msgstr "- Etiqueta «%s»" + +#: normal/misc.c:88 +#, c-format +msgid "- Last modification time %d-%02d-%02d %02d:%02d:%02d %s" +msgstr "- Hora de la darrera modificació %d-%02d-%02d %02d:%02d:%02d %s" + +#: normal/misc.c:111 +msgid "Unknown filesystem" +msgstr "Sistema de fitxers desconegut" + +#: normal/misc.c:113 +msgid "Partition table" +msgstr "Taula de particions" + +#: term/serial.c:46 +msgid "Set the serial unit." +msgstr "Indica la unitat sèrie." + +#: term/serial.c:47 +msgid "Set the serial port address." +msgstr "Indica l'adreça del port sèrie." + +#: term/serial.c:48 +msgid "Set the serial port speed." +msgstr "Indica la velocitat del port sèrie." + +#: term/serial.c:49 +msgid "Set the serial port word length." +msgstr "Indica la longitud de paraula del port sèrie." + +#: term/serial.c:50 +msgid "Set the serial port parity." +msgstr "Indica la paritat del port sèrie." + +#: term/serial.c:51 +msgid "Set the serial port stop bits." +msgstr "Indica el nombre de bits d'aturada del port sèrie." + +#: term/serial.c:619 +#, fuzzy +msgid "[OPTIONS...]" +msgstr "[OPCIONS] DISC" + +#: term/serial.c:620 +msgid "Configure serial port." +msgstr "" + +#: util/grub-mkimage.c:440 +msgid "the core image is too small" +msgstr "la imatge del nucli és massa petita" + +#: util/grub-mkimage.c:451 +msgid "cannot compress the kernel image" +msgstr "no es pot comprimir la imatge del nucli" + +#: util/grub-mkimage.c:548 +msgid "prefix is too long" +msgstr "el prefix és massa llarg" + +#: util/grub-mkimage.c:672 +#, c-format +msgid "core image is too big (%p > %p)" +msgstr "la imatge del nucli és massa gran (%p > %p)" + +#: util/grub-mkimage.c:678 +msgid "the core image is too big" +msgstr "la imatge del nucli és massa gran" + +#: util/grub-mkimage.c:683 +#, c-format +msgid "diskboot.img size must be %u bytes" +msgstr "la mida de diskboot.img ha de ser de %u bytes" + +#: util/grub-mkimage.c:1168 util/i386/pc/grub-setup.c:619 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "Proveu «%s --help» per a obtenir més informació.\n" + +#: util/grub-mkimage.c:1187 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... [MODULES]\n" +"\n" +"Make a bootable image of GRUB.\n" +"\n" +" -d, --directory=DIR use images and modules under DIR [default=%s/" +"@platform@]\n" +" -p, --prefix=DIR set grub_prefix directory [default=%s]\n" +" -m, --memdisk=FILE embed FILE as a memdisk image\n" +" -f, --font=FILE embed FILE as a boot font\n" +" -c, --config=FILE embed FILE as boot config\n" +" -n, --note add NOTE segment for CHRP Open Firmware\n" +" -o, --output=FILE output a generated image to FILE [default=stdout]\n" +" -O, --format=FORMAT generate an image in format\n" +" available formats: %s\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 "" +"Ús: %s [OPCIÓ]... [MÒDULS]\n" +"\n" +"Fa una imatge que pot arrencar de GRUB\n" +"\n" +" -d, --directory=DIR utilitza les imatges i els mòduls de DIR [per " +"defecte=%s]\n" +" -p, --prefix=DIR utilitza el directori grub_prefix [per defecte=" +"%s]\n" +" -m, --memdisk=FITXER incrusta el FITXER com una imatge memdisk\n" +" -f, --font=FITXER incrusta el FITXER com a font d'arranc\n" +" -c, --config=FITXER incrusa el FITXER com a configuració d'arranc\n" +" -o, --outut=FITXER posa una imatge generada al FITXER [per " +"defecte=stdout]\n" +" -O, --format=FORMAT genera una imatge amb el format [defecte=" + +#: util/grub-mkimage.c:1333 +#, c-format +msgid "cannot open %s" +msgstr "no es pot obrir %s" + +#: util/i386/pc/grub-setup.c:164 +msgid "the first sector of the core file is not sector-aligned" +msgstr "el primer sector del fitxer del nucli no està alineat amb el sector" + +#: util/i386/pc/grub-setup.c:178 +msgid "non-sector-aligned data is found in the core file" +msgstr "s'han trobat dades no alineades amb el sector al fitxer del nucli" + +#: util/i386/pc/grub-setup.c:192 +msgid "the sectors of the core file are too fragmented" +msgstr "els sectors del fitxer del nucli estan massa fragmentats" + +#: util/i386/pc/grub-setup.c:203 +#, c-format +msgid "the size of `%s' is not %u" +msgstr "la mida de «%s» no és %u" + +#: util/i386/pc/grub-setup.c:220 +#, c-format +msgid "the size of `%s' is too small" +msgstr "la mida de «%s» és massa petita" + +#: util/i386/pc/grub-setup.c:222 +#, c-format +msgid "the size of `%s' is too large" +msgstr "la mida de «%s» és massa gran" + +#: util/i386/pc/grub-setup.c:261 +#, c-format +msgid "unable to identify a filesystem in %s; safety check can't be performed" +msgstr "" +"No s'ha pogut identificar el sistema de fitxers de %s; no es pot comprovar " +"la seguretat" + +#: 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 sembla contenir un sistema de fitxers %s que no sé si pot reservar espai " +"pel sistema d'arrencada de l'estil de DOS. Instal·lar GRUB pot DESTRUIR EL " +"SISTEMA DE FITXERS si el grub-setup sobreescriu dades importants (--skip-fs-" +"probe deshabilita la comprovació. Feu-la servir sota la vostra " +"responsabilitat)" + +#: util/i386/pc/grub-setup.c:339 util/i386/pc/grub-setup.c:366 +msgid "" +"Attempting to install GRUB to a partitionless disk. This is a BAD idea." +msgstr "" +"Esteu intentant instal·lar GRUB a un disc sense particions. És una MALA idea." + +#: util/i386/pc/grub-setup.c:345 +msgid "" +"Attempting to install GRUB to a partition instead of the MBR. This is a BAD " +"idea." +msgstr "" +"Esteu intentant instal·lar GRUB a una partició en lloc de al MBR. És una " +"MALA idea." + +#: util/i386/pc/grub-setup.c:375 +msgid "No DOS-style partitions found" +msgstr "No s'ha trobat cap partició d'estil DOS" + +#: util/i386/pc/grub-setup.c:380 +msgid "" +"This msdos-style partition label has no post-MBR gap; embedding won't be " +"possible!" +msgstr "" +"Aquesta etiqueta de partició d'estil msdos no té espai després del MBR; no " +"es podrà incrustar!" + +#: util/i386/pc/grub-setup.c:382 +msgid "" +"This GPT partition label has no BIOS Boot Partition; embedding won't be " +"possible!" +msgstr "" +"Aquesta etiqueta de partició GPT no té una partició d'arranc per a la BIOS; " +"no es podrà incrustar!" + +#: util/i386/pc/grub-setup.c:389 +msgid "Your core.img is unusually large. It won't fit in the embedding area." +msgstr "El vostre core.img és massa gran. No cabrà a l'àrea d'incrustació." + +#: util/i386/pc/grub-setup.c:391 +msgid "Your embedding area is unusually small. core.img won't fit in it." +msgstr "" +"La vostra àrea d'incrustació és petita. El fitxer core.img no hi cabrà." + +#: util/i386/pc/grub-setup.c:436 +msgid "" +"embedding is not possible, but this is required when the root device is on a " +"RAID array or LVM volume" +msgstr "" +"No s'ha pogut incrustar, però és imprescindible quan el dispositiu arrel és " +"a una matriu RAID o a un volum LVM." + +#: util/i386/pc/grub-setup.c:439 +#, fuzzy +msgid "" +"Embedding is not possible. GRUB can only be installed in this setup by " +"using blocklists. However, blocklists are UNRELIABLE and their use is " +"discouraged." +msgstr "" +"No s'ha pogut incrustar. El GRUB només es pot instal·lar d'aquesta manera " +"fent servir llistes de blocs. De tota manera, les llistes de blocs NO SÓN " +"FIABLES i es desaconsella el seu ús." + +#: util/i386/pc/grub-setup.c:443 +msgid "if you really want blocklists, use --force" +msgstr "Si realment voleu fer servir llistes de blocs, empreu --force." + +#: util/i386/pc/grub-setup.c:462 +#, c-format +msgid "attempting to read the core image `%s' from GRUB" +msgstr "s'intenta llegir la imatge del nucli «%s» des del GRUB" + +#: util/i386/pc/grub-setup.c:463 +#, c-format +msgid "attempting to read the core image `%s' from GRUB again" +msgstr "s'intenta llegir la imatge del nucli «%s» des del GRUB un altre cop" + +#: util/i386/pc/grub-setup.c:530 +#, c-format +msgid "cannot read `%s' correctly" +msgstr "no es pot llegir «%s» correctament" + +#: util/i386/pc/grub-setup.c:543 +msgid "no terminator in the core image" +msgstr "no hi ha terminació a la imatge del nucli" + +#: util/i386/pc/grub-setup.c:554 +msgid "failed to read the first sector of the core image" +msgstr "no s'ha pogut llegir el primer sector de la imatge del nucli" + +#: util/i386/pc/grub-setup.c:560 +msgid "failed to read the rest sectors of the core image" +msgstr "no s'ha pogut llegir la resta de sectors de la imatge del nucli" + +#: util/i386/pc/grub-setup.c:579 +#, c-format +msgid "cannot open `%s'" +msgstr "no es pot obrir %s" + +#: util/i386/pc/grub-setup.c:621 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... DEVICE\n" +"\n" +"Set up images to boot from DEVICE.\n" +"DEVICE must be a GRUB device (e.g. `(hd0,1)').\n" +"\n" +"You should not normally run %s directly. Use grub-install instead.\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 "" +"Sintaxi: %s [OPCIÓ]... DISPOSITIU\n" +"\n" +"Configura imatges per arrencar des del DISPOSITIU.\n" +"DISPOSITIU ha de ser un dispositiu GRUB (p.e. «(hd0,1)»).\n" +"\n" +" -b, --boot-image=FITXER usa FITXER com a imatge d'arranc [per defecte=%s]\n" +" -c, --core-image=FITXER usa FITXER com a imatge del nucli [per defecte=" +"%s]\n" +" -d, --directory=DIR usa els fitxers del GRUB del directori DIR [def=" +"%s]\n" +" -m, --device-map=FITXER usa el FITXER com a mapa del dispositiu [def=%s]\n" +" -r, --root-device=DISP usa DISP com a dispositiu arrel [per " +"defecte=dedueix]\n" +" -f, --force instal·la encara que es detectin problemes\n" +" -s, --skip-fs-probe no comprovis els sistemes de fitxers a DISPOSITIU\n" +" -h, --help mostra aquest missatge i surt\n" +" -V, --version mostra informació sobre la versió i surt\n" +" -v, --verbose mostra els missatges detallats\n" +"\n" +"Informeu dels errors a <%s>.\n" + +#: util/i386/pc/grub-setup.c:753 +#, c-format +msgid "No device is specified.\n" +msgstr "No s'ha especificat cap dispositiu.\n" + +#: util/i386/pc/grub-setup.c:759 +#, c-format +msgid "Unknown extra argument `%s'.\n" +msgstr "Argument extra desconegut «%s».\n" + +#: util/i386/pc/grub-setup.c:776 +#, c-format +msgid "Invalid device `%s'.\n" +msgstr "Dispositiu «%s» invàlid.\n" + +#: util/i386/pc/grub-setup.c:789 +#, c-format +msgid "invalid root device `%s'" +msgstr "dispositiu arrel «%s» invàlid" + +#: util/i386/pc/grub-setup.c:802 +msgid "cannot guess the root device. Specify the option `--root-device'" +msgstr "" +"No es pot deduir el dispositiu arrel. Especifiqueu la opció «--root-device»" + +#~ msgid "[class [handler]]" +#~ msgstr "[classe [gestor]]" + +#~ msgid "List or select a handler." +#~ msgstr "Llista o selecciona un gestor." + +#~ msgid "Load XNU ramdisk. It will be seen as md0." +#~ msgstr "Carrega un disc ram XNU. Es veurà com md0." + +#~ msgid "no DOS-style partitions found" +#~ msgstr "no s'ha trobat cap partició d'estil DOS" + +#~ msgid "%s, with kFreeBSD %s" +#~ msgstr "%s, amb kFreeBSD %s" + +#~ msgid "Loading kernel of FreeBSD %s ..." +#~ msgstr "Es carrega el nucli de FreeBSD %s ..." + +#~ msgid "%s, with Linux %s (recovery mode)" +#~ msgstr "%s, amb Linux %s (mode de restabliment)" + +#~ msgid "%s, with Linux %s" +#~ msgstr "%s, amb Linux %s" + +#~ msgid "Loading Linux %s ..." +#~ msgstr "Carregant Linux %s ..." + +#~ msgid "Loading initial ramdisk ..." +#~ msgstr "S'està carregant la ramdisk inicial ..." --- grub2-1.98+20100804.orig/po/de.po +++ grub2-1.98+20100804/po/de.po @@ -0,0 +1,1688 @@ +# German translation for grub. +# Copyright (C) 2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the grub package. +# Mario Blättermann , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub-1.97+20100124\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-06-19 01:35+0100\n" +"PO-Revision-Date: 2010-06-06 19:41+0100\n" +"Last-Translator: Mario Blättermann \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: German\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"X-Poedit-Country: GERMANY\n" + +#: commands/acpi.c:40 +msgid "Don't load host tables specified by comma-separated list." +msgstr "Keine Host-Tabellen mit kommagetrennter Liste laden." + +#: commands/acpi.c:43 +msgid "Load only tables specified by comma-separated list." +msgstr "Nur Tabellen mit kommagetrennter Liste laden." + +#: commands/acpi.c:44 +msgid "Expose v1 tables." +msgstr "v1-Tabellen darstellen." + +#: commands/acpi.c:45 +msgid "Expose v2 and v3 tables." +msgstr "v2- und v3-Tabellen darstellen." + +#: commands/acpi.c:46 +msgid "Set OEMID of RSDP, XSDT and RSDT." +msgstr "OEMID von RSDP, XSDT und RSDT festlegen." + +#: commands/acpi.c:48 +msgid "Set OEMTABLE ID of RSDP, XSDT and RSDT." +msgstr "OEMTABLE-ID von RSDP, XSDT and RSDT festlegen." + +#: commands/acpi.c:50 +msgid "Set OEMTABLE revision of RSDP, XSDT and RSDT." +msgstr "OEMTABLE-Revision von RSDP, XSDT und RSDT festlegen." + +#: commands/acpi.c:52 +msgid "Set creator field of RSDP, XSDT and RSDT." +msgstr "Ersteller-Feld von RSDP, XSDT und RSDT festlegen." + +#: commands/acpi.c:54 +msgid "Set creator revision of RSDP, XSDT and RSDT." +msgstr "Ersteller-Revision von RSDP, XSDT und RSDT festlegen." + +#: commands/acpi.c:55 +msgid "" +"Don't update EBDA. May fix failures or hangs on some. BIOSes but makes it " +"ineffective with OS not receiving RSDP from GRUB." +msgstr "" +"EBDA nicht aktualiseren. Könnte Fehler oder Hänger in manchen BIOS-Versionen " +"beseitigen, ist aber nicht effektiv bei Betriebssystemen, die kein RSDP von " +"GRUB empfangen. " + +#: commands/acpi.c:763 +msgid "" +"[-1|-2] [--exclude=TABLE1,TABLE2|--load-only=table1,table2] FILE1 [FILE2] " +"[...]" +msgstr "" +"[-1|-2] [--exclude=TABELLE1,TABELLE2|--load-only=tabelle1,tabelle2] DATEI1 " +"[DATEI2] [...]" + +#: commands/acpi.c:766 +msgid "Load host ACPI tables and tables specified by arguments." +msgstr "" + +#: commands/blocklist.c:113 commands/cat.c:82 commands/configfile.c:57 +#: commands/configfile.c:60 commands/configfile.c:65 commands/crc.c:64 +#: commands/minicmd.c:353 loader/i386/bsd.c:1287 loader/i386/bsd.c:1291 +#: loader/i386/bsd.c:1295 +msgid "FILE" +msgstr "DATEI" + +#: commands/blocklist.c:113 +msgid "Print a block list." +msgstr "Eine Blockliste ausgeben." + +#: commands/boot.c:190 +msgid "Boot an operating system." +msgstr "Ein Betriebssystem starten." + +#: commands/cat.c:82 commands/minicmd.c:353 +msgid "Show the contents of a file." +msgstr "Inhalt einer Datei anzeigen." + +#: commands/cmp.c:113 +msgid "FILE1 FILE2" +msgstr "DATEI1 DATEI2" + +#: commands/cmp.c:113 +msgid "Compare two files." +msgstr "Zwei Dateien vergleichen." + +#: commands/configfile.c:57 +msgid "Load another config file." +msgstr "Eine andere Konfigurationsdatei laden." + +#: commands/configfile.c:61 commands/configfile.c:66 +msgid "Load another config file without changing context." +msgstr "Eine andere Konfigurationsdatei laden, ohne den Kontext zu ändern." + +#: commands/crc.c:65 +msgid "Calculate the crc32 checksum of a file." +msgstr "Die crc32-Prüfsumme einer Datei berechnen." + +#: commands/date.c:139 +msgid "[[year-]month-day] [hour:minute[:second]]" +msgstr "[[Jahr-]Monat-Tag] [Stunde:Minute[:Sekunde]]" + +#: commands/date.c:140 +msgid "Command to display/set current datetime." +msgstr "Befehl zum Anzeigen/Festlegen des/der aktuellen Datums/Zeit." + +#: commands/echo.c:27 +msgid "Do not output the trailing newline." +msgstr "Angehängte Zeilenumbrüche nicht ausgeben." + +#: commands/echo.c:28 +msgid "Enable interpretation of backslash escapes." +msgstr "Auswertung der Backslash-Maskierungen ermöglichen." + +#: commands/echo.c:117 +msgid "[-e|-n] STRING" +msgstr "[-e|-n] ZEICHENKETTE" + +#: commands/echo.c:117 +msgid "Display a line of text." +msgstr "Eine Textzeile anzeigen." + +#: commands/efi/fixvideo.c:103 +msgid "Fix video problem." +msgstr "Ein Videoproblem beheben." + +#: commands/efi/loadbios.c:207 +msgid "Fake BIOS." +msgstr "" + +#: commands/efi/loadbios.c:211 +msgid "Load BIOS dump." +msgstr "BIOS-Sicherung laden." + +#: commands/gptsync.c:244 +msgid "DEVICE [PARTITION[+/-[TYPE]]] ..." +msgstr "GERÄT [PARTITION[+/-[TYP]]] ..." + +#: commands/gptsync.c:245 +msgid "" +"Fill hybrid MBR of GPT drive DEVICE. Specified partitions will be a part of " +"hybrid MBR. Up to 3 partitions are allowed. TYPE is an MBR type. + means " +"that partition is active. Only one partition can be active." +msgstr "" + +#: commands/halt.c:39 +msgid "" +"Halts the computer. This command does not work on all firmware " +"implementations." +msgstr "" +"Diesen Rechner anhalten. Dieser Befehl funktioniert nicht in allen Firmware-" +"Implementationen." + +#: commands/hdparm.c:30 +msgid "" +"Set Advanced Power Management\n" +"(1=low, ..., 254=high, 255=off)." +msgstr "" +"Erweiterte Energieverwaltung setzen\n" +"(1=niedrig, ..., 254=hoch, 255=aus)." + +#: commands/hdparm.c:33 +msgid "Check power mode." +msgstr "Energiemodus überprüfen." + +#: commands/hdparm.c:34 +msgid "Freeze ATA security settings until reset." +msgstr "ATA-Sicherheitseinstellungen bis zum Zurücksetzen einfrieren." + +#: commands/hdparm.c:36 +msgid "Check SMART health status." +msgstr "Laufwerksstatus mit SMART überprüfen." + +#: commands/hdparm.c:37 +msgid "" +"Set Automatic Acoustic Management\n" +"(0=off, 128=quiet, ..., 254=fast)." +msgstr "" +"Automatische Klangverwaltung festlegen\n" +"(0=aus, 128=leise, ..., 254=schnell)." + +#: commands/hdparm.c:40 +msgid "" +"Set standby timeout\n" +"(0=off, 1=5s, 2=10s, ..., 240=20m, 241=30m, ...)." +msgstr "" +"Wartezeit bis Standby festlegen\n" +"(0=off, 1=5s, 2=10s, ..., 240=20m, 241=30m, ...)." + +#: commands/hdparm.c:43 +msgid "Set drive to standby mode." +msgstr "Laufwerk in den Standby-Modus versetzen." + +#: commands/hdparm.c:44 +msgid "Set drive to sleep mode." +msgstr "Laufwerk in den Schlafmodus versetzen." + +#: commands/hdparm.c:45 +msgid "Print drive identity and settings." +msgstr "Identität und Einstellungen des Laufwerks ausgeben." + +#: commands/hdparm.c:47 +msgid "Dump contents of ATA IDENTIFY sector." +msgstr "Inhalt des ATA IDENTIFY-Sektors sichern." + +#: commands/hdparm.c:49 +msgid "Disable/enable SMART (0/1)." +msgstr "SMART aktivieren/deaktivieren (0/1)." + +#: commands/hdparm.c:50 +msgid "Do not print messages." +msgstr "Keine Meldungen ausgeben." + +#: commands/hdparm.c:414 +msgid "[OPTIONS] DISK" +msgstr "[OPTIONEN] DATENTRÄGER" + +#: commands/hdparm.c:415 +msgid "Get/set ATA disk parameters." +msgstr "ATA-Datenträgerparameter ermitteln/festlegen." + +#: commands/help.c:112 lib/arg.c:110 +msgid "Usage:" +msgstr "Aufruf:" + +#: commands/help.c:129 +msgid "[PATTERN ...]" +msgstr "[MUSTER ...]" + +#: commands/help.c:130 +msgid "Show a help message." +msgstr "Eine Hilfemeldung anzeigen." + +#: commands/hexdump.c:30 +msgid "Skip offset bytes from the beginning of file." +msgstr "Offset-Bytes am Beginn der Datei überspringen." + +#: commands/hexdump.c:32 +msgid "Read only LENGTH bytes." +msgstr "Nur Bytes der Länge LENGTH lesen." + +#: commands/hexdump.c:125 +msgid "[OPTIONS] FILE_OR_DEVICE" +msgstr "[OPTIONEN] DATEI_ODER_GERÄT" + +#: commands/hexdump.c:126 +msgid "Dump the contents of a file or memory." +msgstr "Inhalt einer Datei oder des Speichers sichern." + +#: commands/i386/cpuid.c:37 +msgid "Check for long mode flag (default)." +msgstr "Auf lange Markierungen überprüfen (Vorgabe)." + +#: commands/i386/cpuid.c:92 +msgid "Check for CPU features." +msgstr "Fähigkeiten der CPU überprüfen." + +#: commands/i386/pc/drivemap.c:37 +msgid "Show the current mappings." +msgstr "Alle aktuellen Zuordnungen anzeigen." + +#: commands/i386/pc/drivemap.c:38 +msgid "Reset all mappings to the default values." +msgstr "Alle Zuordnungen auf Standardwerte zurücksetzen." + +#: commands/i386/pc/drivemap.c:39 +msgid "Perform both direct and reverse mappings." +msgstr "Sowohl direkte als auch umgekehrte Zuordnungen ausführen." + +#: commands/i386/pc/drivemap.c:406 +msgid "-l | -r | [-s] grubdev osdisk." +msgstr "-l | -r | [-s] grubdev osdisk." + +#: commands/i386/pc/drivemap.c:407 +msgid "Manage the BIOS drive mappings." +msgstr "BIOS-Laufwerkszuordnungen verwalten." + +#: commands/i386/pc/halt.c:27 +msgid "Do not use APM to halt the computer." +msgstr "Zum Abschalten des Rechners kein APM verwenden." + +#: commands/i386/pc/halt.c:51 +msgid "Halt the system, if possible using APM." +msgstr "Das System anhalten, wenn möglich, mit APM." + +#: commands/i386/pc/play.c:266 +msgid "FILE | TEMPO [PITCH1 DURATION1] [PITCH2 DURATION2] ... " +msgstr "" + +#: commands/i386/pc/play.c:267 +msgid "Play a tune." +msgstr "Einen Klang abspielen." + +#: commands/i386/pc/pxecmd.c:46 +msgid "Unload PXE environment." +msgstr "PXE-Umgebung entladen." + +#: commands/i386/pc/vbeinfo.c:179 +msgid "List compatible VESA BIOS extension video modes." +msgstr "Kompatible VESA BIOS-Erweiterunsmodi für Video auflisten." + +#: commands/i386/pc/vbetest.c:173 +msgid "Test VESA BIOS Extension 2.0+ support." +msgstr "Unterstützung für VESA BIOS-Erweiterung 2.0+ überprüfen." + +#: commands/ieee1275/suspend.c:43 +msgid "Return to Open Firmware prompt." +msgstr "Zum OpenFirmware-Prompt zurückkehren." + +#: commands/keystatus.c:28 +msgid "Check Shift key." +msgstr "Umschalttaste überprüfen." + +#: commands/keystatus.c:29 +msgid "Check Control key." +msgstr "Strg-Taste überprüfen." + +#: commands/keystatus.c:30 +msgid "Check Alt key." +msgstr "Alt-Taste überprüfen." + +#: commands/keystatus.c:85 +msgid "[--shift] [--ctrl] [--alt]" +msgstr "[--shift] [--ctrl] [--alt]" + +#: commands/keystatus.c:86 +msgid "Check key modifier status." +msgstr "Status der Umschalttasten überprüfen." + +#: commands/loadenv.c:33 +msgid "Specify filename." +msgstr "Dateiname angeben." + +#: commands/loadenv.c:378 commands/loadenv.c:384 +msgid "[-f FILE]" +msgstr "[-f DATEI]" + +#: commands/loadenv.c:379 +msgid "Load variables from environment block file." +msgstr "" + +#: commands/loadenv.c:385 +msgid "List variables from environment block file." +msgstr "" + +#: commands/loadenv.c:390 +msgid "[-f FILE] variable_name [...]" +msgstr "[-f DATEI] Variablenname [...]" + +#: commands/loadenv.c:391 +msgid "Save variables to environment block file." +msgstr "" + +#: commands/ls.c:37 +msgid "Show a long list with more detailed information." +msgstr "Lange Liste mit ausführlicheren Informationen anzeigen." + +#: commands/ls.c:38 +msgid "Print sizes in a human readable format." +msgstr "Größenwerte in menschenlesbarem Format ausgeben." + +#: commands/ls.c:39 +msgid "List all files." +msgstr "Alle Dateien auflisten." + +#: commands/ls.c:269 +msgid "[-l|-h|-a] [FILE]" +msgstr "[-l|-h|-a] [DATEI]" + +#: commands/ls.c:270 +msgid "List devices and files." +msgstr "Geräte und Dateien auflisten." + +#: commands/lsmmap.c:51 +msgid "List memory map provided by firmware." +msgstr "Von Firmware bereitgestellte Speicherzuordnung auflisten." + +#: commands/lspci.c:228 +msgid "List PCI devices." +msgstr "PCI-Geräte auflisten." + +#: commands/memrw.c:31 +msgid "Save read value into variable VARNAME." +msgstr "Gelesenen Wert in Variable VARNAME speichern." + +#: commands/memrw.c:123 commands/memrw.c:126 commands/memrw.c:129 +#: commands/minicmd.c:362 +msgid "ADDR" +msgstr "ADDR" + +#: commands/memrw.c:123 +msgid "Read byte from ADDR." +msgstr "byte aus ADDR lesen." + +#: commands/memrw.c:126 +msgid "Read word from ADDR." +msgstr "word aus ADDR lesen." + +#: commands/memrw.c:129 +msgid "Read dword from ADDR." +msgstr "dword aus ADDR lesen." + +#: commands/memrw.c:132 commands/memrw.c:135 commands/memrw.c:138 +msgid "ADDR VALUE [MASK]" +msgstr "ADDR WERT [MASKE]" + +#: commands/memrw.c:132 +msgid "Write byte VALUE to ADDR." +msgstr "byte-WERT in ADDR schreiben." + +#: commands/memrw.c:135 +msgid "Write word VALUE to ADDR." +msgstr "word-WERT in ADDR schreiben." + +#: commands/memrw.c:138 +msgid "Write dword VALUE to ADDR." +msgstr "dword-WERT in ADDR schreiben." + +#: commands/minicmd.c:356 +msgid "Show this message." +msgstr "Diese Meldung anzeigen." + +#: commands/minicmd.c:359 commands/probe.c:154 +msgid "[DEVICE]" +msgstr "[GERÄT]" + +#: commands/minicmd.c:359 +msgid "Set the root device." +msgstr "Root-Gerät festlegen." + +#: commands/minicmd.c:362 +msgid "Dump memory." +msgstr "Speicherinhalt sichern." + +#: commands/minicmd.c:365 +msgid "MODULE" +msgstr "MODUL" + +#: commands/minicmd.c:365 +msgid "Remove a module." +msgstr "Ein Modul entfernen." + +#: commands/minicmd.c:368 +msgid "Show loaded modules." +msgstr "Geladene Module anzeigen." + +#: commands/minicmd.c:371 +msgid "Exit from GRUB." +msgstr "GRUB beenden." + +#: commands/minicmd.c:374 +msgid "Clear the screen." +msgstr "Den Bildschirm leeren." + +#: commands/parttool.c:325 +msgid "PARTITION COMMANDS" +msgstr "PARTITION BEFEHLE" + +#: commands/password.c:78 +msgid "USER PASSWORD" +msgstr "BENUTZER PASSWORT" + +#: commands/password.c:79 +msgid "Set user password (plaintext). Unrecommended and insecure." +msgstr "Benutzerpasswort (Klartext) festlegen. Nicht empfohlen, da unsicher." + +#: commands/probe.c:38 +msgid "Set a variable to return value." +msgstr "Eine Variable auf den Rückgabewert setzen." + +#: commands/probe.c:39 +msgid "Determine driver." +msgstr "Treiber ermitteln." + +#: commands/probe.c:40 +msgid "Determine partition map type." +msgstr "Typ der Partitionszuordnung bestimmen." + +#: commands/probe.c:41 +msgid "Determine filesystem type." +msgstr "Dateisystemtyp ermitteln." + +#: commands/probe.c:42 +msgid "Determine filesystem UUID." +msgstr "Dateisystem-UUID ermitteln." + +#: commands/probe.c:43 +msgid "Determine filesystem label." +msgstr "Dateisystembezeichnung ermitteln." + +#: commands/probe.c:155 +msgid "Retrieve device info." +msgstr "Info zum Gerät holen." + +#: commands/read.c:83 +msgid "[ENVVAR]" +msgstr "[ENVVAR]" + +#: commands/read.c:84 +msgid "Set variable with user input." +msgstr "Variable durch Benutzereingabe setzen." + +#: commands/reboot.c:39 +msgid "Reboot the computer." +msgstr "Den Rechner neu starten." + +#: commands/search.c:161 +msgid "NAME [VARIABLE]" +msgstr "NAME [VARIABLE]" + +#: commands/search_file.c:5 +msgid "" +"Search devices by file. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Anhand von Dateien nach Geräten suchen. Falls VARIABLE angegeben wird, dann " +"wird das erste gefundene Gerät zum Setzen der Variable verwendet." + +#: commands/search_label.c:5 +msgid "" +"Search devices by label. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Anhand von Bezeichnungen nach Geräten suchen. Falls VARIABLE angegeben wird, " +"dann wird das erste gefundene Gerät zum Setzen der Variable verwendet." + +#: commands/search_uuid.c:5 +msgid "" +"Search devices by UUID. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Anhand von UUIDs nach Geräten suchen. Falls VARIABLE angegeben wird, dann " +"wird das erste gefundene Gerät zum Setzen der Variable verwendet." + +#: commands/sleep.c:30 +msgid "Verbose countdown." +msgstr "Ausführlicher Countdown." + +#: commands/sleep.c:31 +msgid "Interruptible with ESC." +msgstr "Unterbrechung mit ESC möglich." + +#: commands/sleep.c:105 +msgid "NUMBER_OF_SECONDS" +msgstr "ANZAHL_DER_SEKUNDEN" + +#: commands/sleep.c:106 +msgid "Wait for a specified number of seconds." +msgstr "Die angegebene Anzahl an Sekunden warten." + +#: commands/test.c:424 +msgid "EXPRESSION ]" +msgstr "AUSDRUCK ]" + +#: commands/test.c:424 commands/test.c:426 +msgid "Evaluate an expression." +msgstr "Einen Ausdruck auswerten." + +#: commands/test.c:426 +msgid "EXPRESSION" +msgstr "AUSDRUCK" + +#: commands/true.c:47 +msgid "Do nothing, successfully." +msgstr "Nichts tun, erfolgreich." + +#: commands/true.c:50 +msgid "Do nothing, unsuccessfully." +msgstr "Nichts tun, nicht erfolgreich." + +#: commands/usbtest.c:208 +msgid "Test USB support." +msgstr "USB-Unterstützung überprüfen." + +#: commands/videotest.c:180 +msgid "Test video subsystem." +msgstr "Das Video-Subsystem überprüfen." + +#: commands/xnu_uuid.c:92 +msgid "GRUBUUID [VARNAME]" +msgstr "GRUBUUID [VARNAME]" + +#: commands/xnu_uuid.c:93 +msgid "Transform 64-bit UUID to format suitable for XNU." +msgstr "64-bit-UUID für die Verarbeitung in XNU umwandeln." + +#: disk/loopback.c:40 +msgid "Delete the loopback device entry." +msgstr "Eintrag für Loopback-Gerät löschen." + +#: disk/loopback.c:41 +msgid "Simulate a hard drive with partitions." +msgstr "Einen Datenträger mit Partitionen simulieren." + +#: disk/loopback.c:249 +msgid "[-d|-p] DEVICENAME FILE." +msgstr "[-d|-p] GERÄTENAME DATEI." + +#: disk/loopback.c:250 +msgid "Make a device of a file." +msgstr "" + +#: hello/hello.c:43 +msgid "Say \"Hello World\"." +msgstr "»Hello World« ausgeben." + +#: lib/arg.c:34 +msgid "Display this help and exit." +msgstr "Diese Hilfe anzeigen und beenden." + +#: lib/arg.c:36 +msgid "Display the usage of this command and exit." +msgstr "Benutzung dieses Befehls anzeigen und beenden." + +#: loader/efi/appleloader.c:325 +msgid "Boot legacy system." +msgstr "" + +#: loader/efi/chainloader.c:340 loader/i386/pc/chainloader.c:166 +msgid "Load another boot loader." +msgstr "Einen anderen Bootloader laden." + +#: loader/i386/bsd.c:65 +msgid "Display output on all consoles." +msgstr "Ausgabe auf allen Konsolen anzeigen." + +#: loader/i386/bsd.c:66 +msgid "Use serial console." +msgstr "Serielle Konsole verwenden." + +#: loader/i386/bsd.c:67 loader/i386/bsd.c:93 loader/i386/bsd.c:114 +msgid "Ask for file name to reboot from." +msgstr "Nach dem Dateinamen für den Neustart fragen." + +#: loader/i386/bsd.c:68 +msgid "Use CDROM as root." +msgstr "CDROM als Root-Gerät verwenden." + +#: loader/i386/bsd.c:69 +msgid "Invoke user configuration routing." +msgstr "" + +#: loader/i386/bsd.c:70 loader/i386/bsd.c:97 loader/i386/bsd.c:117 +msgid "Enter in KDB on boot." +msgstr "" + +#: loader/i386/bsd.c:71 +msgid "Use GDB remote debugger instead of DDB." +msgstr "Entfernte GDB-Fehlerdiagnose anstatt DDB verwenden." + +#: loader/i386/bsd.c:72 +msgid "Disable all boot output." +msgstr "Alle Boot-Ausgaben deaktivieren." + +#: loader/i386/bsd.c:74 +msgid "Wait for keypress after every line of output." +msgstr "Nach jeder ausgegebenen Zeile auf Tastendruck warten." + +#: loader/i386/bsd.c:76 +msgid "Use compiled-in rootdev." +msgstr "Einkompiliertes Root-Gerät verwenden." + +#: loader/i386/bsd.c:77 loader/i386/bsd.c:96 loader/i386/bsd.c:120 +msgid "Boot into single mode." +msgstr "In den Single-User-Modus booten." + +#: loader/i386/bsd.c:78 loader/i386/bsd.c:121 +msgid "Boot with verbose messages." +msgstr "Mit ausführlichen Meldungen booten." + +#: loader/i386/bsd.c:94 loader/i386/bsd.c:115 +msgid "Don't reboot, just halt." +msgstr "Nicht neu starten, nur herunterfahren." + +#: loader/i386/bsd.c:95 loader/i386/bsd.c:116 +msgid "Change configured devices." +msgstr "Konfigurierte Geräte bearbeiten." + +#: loader/i386/bsd.c:98 loader/i386/bsd.c:124 +msgid "Set root device." +msgstr "Root-Gerät festlegen." + +#: loader/i386/bsd.c:112 +msgid "Disable SMP." +msgstr "SMP deaktivieren." + +#: loader/i386/bsd.c:113 +msgid "Disable ACPI." +msgstr "ACPI deaktivieren." + +#: loader/i386/bsd.c:119 +msgid "Don't display boot diagnostic messages." +msgstr "Keine Fehlerdiagnosemeldungen beim Booten anzeigen." + +#: loader/i386/bsd.c:122 +msgid "Boot with debug messages." +msgstr "Mit Fehlerdiagnosemeldungen booten." + +#: loader/i386/bsd.c:123 +msgid "Supress normal output (warnings remain)." +msgstr "Normale Ausgaben unterdrücken (Warnungen verbleiben)" + +#: loader/i386/bsd.c:124 +msgid "DEVICE" +msgstr "GERÄT" + +#: loader/i386/bsd.c:1287 +msgid "Load kernel of FreeBSD." +msgstr "Kernel von FreeBSD laden." + +#: loader/i386/bsd.c:1291 +msgid "Load kernel of OpenBSD." +msgstr "Kernel von OpenBSD laden." + +#: loader/i386/bsd.c:1295 +msgid "Load kernel of NetBSD." +msgstr "Kernel von NetBSD laden." + +#: loader/i386/bsd.c:1299 +msgid "Load FreeBSD env." +msgstr "FreeBSD-Umgebung laden." + +#: loader/i386/bsd.c:1302 +msgid "Load FreeBSD kernel module." +msgstr "FreeBSD-Kernelmodul laden." + +#: loader/i386/bsd.c:1305 +msgid "Load FreeBSD kernel module (ELF)." +msgstr "FreeBSD-Kernelmodul laden (ELF)." + +#: loader/i386/efi/linux.c:1011 loader/i386/ieee1275/linux.c:301 +#: loader/i386/linux.c:1012 loader/i386/pc/linux.c:399 +#: loader/powerpc/ieee1275/linux.c:353 loader/sparc64/ieee1275/linux.c:519 +msgid "Load Linux." +msgstr "Linux laden." + +#: loader/i386/efi/linux.c:1013 loader/i386/ieee1275/linux.c:303 +#: loader/i386/linux.c:1014 loader/i386/pc/linux.c:402 +#: loader/powerpc/ieee1275/linux.c:355 loader/sparc64/ieee1275/linux.c:521 +msgid "Load initrd." +msgstr "initrd laden." + +#: loader/i386/xnu.c:1032 +msgid "Load device-properties dump." +msgstr "" + +#: loader/multiboot.c:337 +msgid "Load a multiboot 2 kernel." +msgstr "Einen Mlutiboot2-Kernel laden." + +#: loader/multiboot.c:340 +#, fuzzy +msgid "Load a multiboot 2 module." +msgstr "Ein Multiboot-Modul laden." + +#: loader/multiboot.c:343 +msgid "Load a multiboot kernel." +msgstr "Einen Multiboot-Kernel laden." + +#: loader/multiboot.c:346 +msgid "Load a multiboot module." +msgstr "Ein Multiboot-Modul laden." + +#: loader/xnu.c:1428 +msgid "Load XNU image." +msgstr "XNU-Abbild laden." + +#: loader/xnu.c:1430 +msgid "Load 64-bit XNU image." +msgstr "64-bit XNU-Abbild laden." + +#: loader/xnu.c:1432 +msgid "Load XNU extension package." +msgstr "XNU-Erweiterungspaket laden." + +#: loader/xnu.c:1434 +msgid "Load XNU extension." +msgstr "XNU-Erweiterung laden." + +#: loader/xnu.c:1436 +msgid "DIRECTORY [OSBundleRequired]" +msgstr "ORDNER [OSBundleRequired]" + +#: loader/xnu.c:1437 +msgid "Load XNU extension directory." +msgstr "XNU-Erweiterungsordner laden." + +#: loader/xnu.c:1444 +msgid "Load a splash image for XNU." +msgstr "Begrüßungsbildschirm für XNU laden." + +#: loader/xnu.c:1449 +msgid "Load XNU hibernate image." +msgstr "XNU-Ruhezustand-Abbild laden." + +#: normal/auth.c:217 +msgid "Enter username: " +msgstr "Benutzername eingeben:" + +#: normal/auth.c:222 +msgid "Enter password: " +msgstr "Passwort eingeben:" + +#: normal/color.c:80 +#, c-format +msgid "Warning: syntax error (missing slash) in `%s'\n" +msgstr "Warnung: Syntaxfehler (fehlender /) in »%s«\n" + +#: normal/color.c:89 +#, c-format +msgid "Warning: invalid foreground color `%s'\n" +msgstr "Warnung: ungültige Vordergrundfarbe »%s«\n" + +#: normal/color.c:95 +#, c-format +msgid "Warning: invalid background color `%s'\n" +msgstr "Warnung: ungültige Hintergrundfarbe »%s«\n" + +#: normal/dyncmd.c:144 +msgid "not loaded" +msgstr "nicht geladen" + +#: normal/main.c:415 +#, c-format +msgid "GNU GRUB version %s" +msgstr "GNU GRUB Version %s" + +#: normal/main.c:552 +#, c-format +msgid "" +"Minimal BASH-like line editing is supported. For the first word, TAB lists " +"possible command completions. Anywhere else TAB lists possible device or " +"file completions. %s" +msgstr "" +"Minimale BASH-ähnliche Zeilenbearbeitung wird unterstützt. Für das erste " +"Wort listet TAB die möglichen Befehlsvervollständigungen auf. Ansonsten " +"werden mit TAB die möglichen Geräte-oder Dateivervollständigungen angezeigt. " +"%s" + +#: normal/main.c:555 +msgid "ESC at any time exits." +msgstr "Beenden ist jederzeit mit ESC möglich." + +#: normal/main.c:670 +msgid "Enter normal mode." +msgstr "" + +#: normal/main.c:672 +msgid "Exit from normal mode." +msgstr "" + +#: normal/menu_entry.c:1061 +msgid "Possible commands are:" +msgstr "Mögliche Befehle sind:" + +#: normal/menu_entry.c:1065 +msgid "Possible devices are:" +msgstr "Mögliche Geräte sind:" + +#: normal/menu_entry.c:1069 +msgid "Possible files are:" +msgstr "Mögliche Dateien sind:" + +#: normal/menu_entry.c:1073 +msgid "Possible partitions are:" +msgstr "Mögliche Partitionen sind:" + +#: normal/menu_entry.c:1077 +msgid "Possible arguments are:" +msgstr "Mögliche Argumente sind:" + +#: normal/menu_entry.c:1081 +msgid "Possible things are:" +msgstr "Mögliche Dinge sind:" + +#: normal/menu_entry.c:1185 +msgid "Booting a command list" +msgstr "Eine Befehlsliste booten." + +#: normal/menu_entry.c:1398 +msgid "Press any key to continue..." +msgstr "Beliebige Taste drücken, um fortzusetzen …" + +#: normal/menu_text.c:180 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"F1 to boot, F2=Ctrl-a, F3=Ctrl-e, F4 for a command-line or ESC to discard " +"edits and return to the GRUB menu." +msgstr "" +"Minimale Emacs-ähnliche Bildschirmbearbeitung wird unterstützt. TAB listet " +"Vervollständigungen auf. Drücken Sie Strg-X zum Booten, Strg-C für eine " +"Befehlszeile oder ESC, um zum Menü zurückzukehren." + +#: normal/menu_text.c:185 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"Ctrl-x to boot, Ctrl-c for a command-line or ESC to discard edits and return " +"to the GRUB menu." +msgstr "" +"Minimale Emacs-ähnliche Bildschirmbearbeitung wird unterstützt. TAB listet " +"Vervollständigungen auf. Drücken Sie Strg-X zum Booten, Strg-C für eine " +"Befehlszeile oder ESC, um zum Menü zurückzukehren." + +#: normal/menu_text.c:193 +#, c-format +msgid "Use the %C and %C keys to select which entry is highlighted.\n" +msgstr "" +"Verwenden Sie die Tasten %C und %C, um Einträge hervorzuheben und " +"auszuwählen.\n" + +#: normal/menu_text.c:210 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line. ESC to return previous menu.\n" +msgstr "" +"Drücken Sie die Eingabetaste, um das ausgewählte Betriebssystem zu booten, " +"»e« zum Bearbeiten der Befehle vor dem Booten oder »c« für eine " +"Befehlszeile. Mit ESC kehren Sie zum vorherigen Menü zurück.\n" + +#: normal/menu_text.c:218 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line.\n" +msgstr "" +"Drücken Sie die Eingabetaste, um das ausgewählte Betriebssystem zu booten, " +"»e« zum Bearbeiten der Befehle vor dem Booten oder »c« für eine " +"Befehlszeile.\n" + +#: normal/menu_text.c:370 +#, c-format +msgid "The highlighted entry will be executed automatically in %ds." +msgstr "Der hervorgehobene Eintrag wird automatisch in %ds ausgeführt." + +#: normal/misc.c:41 +#, c-format +msgid "Partition %s:" +msgstr "Partition %s:" + +#: normal/misc.c:46 +#, c-format +msgid "Device %s:" +msgstr "Gerät %s:" + +#: normal/misc.c:52 +msgid "Filesystem cannot be accessed" +msgstr "Zugriff auf Dateisystem nicht möglich" + +#: normal/misc.c:63 +#, c-format +msgid "Filesystem type %s" +msgstr "Dateisystemtyp %s" + +#: normal/misc.c:73 +#, c-format +msgid "- Label \"%s\"" +msgstr "- Bezeichnung »%s«" + +#: normal/misc.c:88 +#, c-format +msgid "- Last modification time %d-%02d-%02d %02d:%02d:%02d %s" +msgstr "- Letzte Änderungszeit %d-%02d-%02d %02d:%02d:%02d %s" + +#: normal/misc.c:111 +msgid "Unknown filesystem" +msgstr "Unbekanntes Dateisystem" + +#: normal/misc.c:113 +msgid "Partition table" +msgstr "Partitionstabelle" + +#: term/serial.c:46 +msgid "Set the serial unit." +msgstr "Einheit des seriellen Ports festlegen." + +#: term/serial.c:47 +msgid "Set the serial port address." +msgstr "Adresse des seriellen Ports festlegen." + +#: term/serial.c:48 +msgid "Set the serial port speed." +msgstr "Geschwindigkeit des seriellen Ports festlegen." + +#: term/serial.c:49 +msgid "Set the serial port word length." +msgstr "Wortlänge des seriellen Ports festlegen." + +#: term/serial.c:50 +msgid "Set the serial port parity." +msgstr "Parität des seriellen Ports festlegen." + +#: term/serial.c:51 +msgid "Set the serial port stop bits." +msgstr "Stop-Bits des seriellen Ports festlegen." + +#: term/serial.c:619 +#, fuzzy +msgid "[OPTIONS...]" +msgstr "[OPTIONEN] DATENTRÄGER" + +#: term/serial.c:620 +msgid "Configure serial port." +msgstr "" + +#: util/grub-mkimage.c:440 +msgid "the core image is too small" +msgstr "Core-Abbild ist zu klein" + +#: util/grub-mkimage.c:451 +msgid "cannot compress the kernel image" +msgstr "Kernel-Abbild kann nicht komprimiert werden" + +#: util/grub-mkimage.c:548 +msgid "prefix is too long" +msgstr "Präfix ist zu lang" + +#: util/grub-mkimage.c:672 +#, c-format +msgid "core image is too big (%p > %p)" +msgstr "Core-Abbild ist zu groß (%p > %p)" + +#: util/grub-mkimage.c:678 +msgid "the core image is too big" +msgstr "Core-Abbild ist zu groß" + +#: util/grub-mkimage.c:683 +#, c-format +msgid "diskboot.img size must be %u bytes" +msgstr "Die Größe von diskboot.img muss %u Bytes betragen" + +#: util/grub-mkimage.c:1168 util/i386/pc/grub-setup.c:619 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "Rufen Sie »%s --help« auf, um weitere Informationen zu erhalten.\n" + +#: util/grub-mkimage.c:1187 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... [MODULES]\n" +"\n" +"Make a bootable image of GRUB.\n" +"\n" +" -d, --directory=DIR use images and modules under DIR [default=%s/" +"@platform@]\n" +" -p, --prefix=DIR set grub_prefix directory [default=%s]\n" +" -m, --memdisk=FILE embed FILE as a memdisk image\n" +" -f, --font=FILE embed FILE as a boot font\n" +" -c, --config=FILE embed FILE as boot config\n" +" -n, --note add NOTE segment for CHRP Open Firmware\n" +" -o, --output=FILE output a generated image to FILE [default=stdout]\n" +" -O, --format=FORMAT generate an image in format\n" +" available formats: %s\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 "" +"Aufruf: %s [OPTION]... [MODULE]\n" +"\n" +"Erstellen eines bootfähigen GRUB-Abbildes.\n" +"\n" +" -d, --directory=DIR Abbilder und Module in DIR verwenden [Vorgabe=%s]\n" +" -p, --prefix=DIR Ordner für grub_prefix festlegen [Vorgabe=%s]\n" +" -m, --memdisk=DATEI DATEI als memdisk-Abbild einbetten\n" +" -c, --config=DATEI DATEI als Boot-Konfiguration einbetten\n" +" -o, --output=DATEI Erzeugtes Abbild in DATEI ausgeben " +"[Vorgabe=stdout]\n" +" -O, --format=FORMAT Abbild in format erzeugen [Vorgabe=" + +#: util/grub-mkimage.c:1333 +#, c-format +msgid "cannot open %s" +msgstr "%s kann nicht geöffnet werden" + +#: util/i386/pc/grub-setup.c:164 +msgid "the first sector of the core file is not sector-aligned" +msgstr "Der erste Sektor der Core-Datei ist nicht sektor-ausgerichtet" + +#: util/i386/pc/grub-setup.c:178 +msgid "non-sector-aligned data is found in the core file" +msgstr "" +"Nicht an Sektoren ausgerichtete Daten wurden in der Core-Datei gefunden" + +#: util/i386/pc/grub-setup.c:192 +msgid "the sectors of the core file are too fragmented" +msgstr "Die Sektoren der Core-Datei sind zu stark fragmentiert" + +#: util/i386/pc/grub-setup.c:203 +#, c-format +msgid "the size of `%s' is not %u" +msgstr "Die Größe von »%s« ist nicht %u" + +#: util/i386/pc/grub-setup.c:220 +#, c-format +msgid "the size of `%s' is too small" +msgstr "»%s« ist zu klein" + +#: util/i386/pc/grub-setup.c:222 +#, c-format +msgid "the size of `%s' is too large" +msgstr "»%s« ist zu groß" + +#: util/i386/pc/grub-setup.c:261 +#, c-format +msgid "unable to identify a filesystem in %s; safety check can't be performed" +msgstr "" +"Es kann kein Dateisystem in %s erkannt werden. Sicherheitsüberprüfung kann " +"nicht ausgeführt werden" + +#: 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 enthält ein %s-Dateisystem, welches bekanntermaßen keinen Platz für einen " +"DOS-Betriebssystemstart bereithält. Die Installation von GRUB könnte die " +"ZERSTÖRUNG DES DATEISYSTEMS nach sich ziehen, sofern Daten durch grub-setup " +"überschrieben werden. Die Option --skip-fs-probe deaktiviert diese " +"Überprüfung, verwenden Sie dies auf eigene Gefahr." + +#: util/i386/pc/grub-setup.c:339 util/i386/pc/grub-setup.c:366 +msgid "" +"Attempting to install GRUB to a partitionless disk. This is a BAD idea." +msgstr "" +"Es wird versucht, GRUB auf einer nicht partitionierten Platte zu " +"installieren. Das ist eine SCHLECHTE Idee." + +#: util/i386/pc/grub-setup.c:345 +msgid "" +"Attempting to install GRUB to a partition instead of the MBR. This is a BAD " +"idea." +msgstr "" +"Es wird versucht, GRUB in eine Partition anstelle in den MBR zu " +"installieren. Das ist eine SCHLECHTE Idee." + +#: util/i386/pc/grub-setup.c:375 +msgid "No DOS-style partitions found" +msgstr "Keine DOS-Partitionen gefunden" + +#: util/i386/pc/grub-setup.c:380 +msgid "" +"This msdos-style partition label has no post-MBR gap; embedding won't be " +"possible!" +msgstr "" +"Die MSDOS-Partitionsbezeichnung hat keinen Freiraum nach dem MBR, Einbettung " +"würde unmöglich sein!" + +#: util/i386/pc/grub-setup.c:382 +msgid "" +"This GPT partition label has no BIOS Boot Partition; embedding won't be " +"possible!" +msgstr "" +"Diese GPT-Partitionsbezeichnung hat keine BIOS-Boot-Partition, Einbettung " +"würde unmöglich sein!" + +#: util/i386/pc/grub-setup.c:389 +msgid "Your core.img is unusually large. It won't fit in the embedding area." +msgstr "" +"Ihr core.img ist ungewöhnlich groß. Es würde nicht in den Einbettungsbereich " +"passen." + +#: util/i386/pc/grub-setup.c:391 +msgid "Your embedding area is unusually small. core.img won't fit in it." +msgstr "" +"Ihr Einbettungsbereich ist ungewöhnlich klein. core.img würde nicht " +"hineinpassen." + +#: util/i386/pc/grub-setup.c:436 +msgid "" +"embedding is not possible, but this is required when the root device is on a " +"RAID array or LVM volume" +msgstr "" +"Einbettung ist nicht möglich, jedoch erforderlich, wenn das Root-Gerät sich " +"in einem RAID-Verbund oder einem LVM-Datenträger befindet." + +#: util/i386/pc/grub-setup.c:439 +#, fuzzy +msgid "" +"Embedding is not possible. GRUB can only be installed in this setup by " +"using blocklists. However, blocklists are UNRELIABLE and their use is " +"discouraged." +msgstr "" +"Einbettung ist nicht möglich. GRUB kann in dieser Konfiguration nur mittels " +"Blocklisten installiert werden. Blocklisten sind allerdings UNZUVERLÄSSIG " +"und deren Verwendung wird daher nicht empfohlen." + +#: util/i386/pc/grub-setup.c:443 +msgid "if you really want blocklists, use --force" +msgstr "Benutzen Sie --force, wenn Sie wirklich Blocklisten verwenden wollen." + +#: util/i386/pc/grub-setup.c:462 +#, c-format +msgid "attempting to read the core image `%s' from GRUB" +msgstr "Es wird versucht, das Core-Abbild »%s« aus GRUB zu lesen" + +#: util/i386/pc/grub-setup.c:463 +#, c-format +msgid "attempting to read the core image `%s' from GRUB again" +msgstr "Es wird versucht, das Core-Abbild »%s« erneut aus GRUB zu lesen" + +#: util/i386/pc/grub-setup.c:530 +#, c-format +msgid "cannot read `%s' correctly" +msgstr "»%s« kann nicht korrekt gelesen werden" + +#: util/i386/pc/grub-setup.c:543 +msgid "no terminator in the core image" +msgstr "Kein Terminator im Core-Abbild" + +#: util/i386/pc/grub-setup.c:554 +msgid "failed to read the first sector of the core image" +msgstr "Lesen des ersten Sektors des Core-Abbildes ist gescheitert" + +#: util/i386/pc/grub-setup.c:560 +msgid "failed to read the rest sectors of the core image" +msgstr "Lesen der übrigen Sektoren des Core-Abbildes ist gescheitert" + +#: util/i386/pc/grub-setup.c:579 +#, c-format +msgid "cannot open `%s'" +msgstr "»%s« kann nicht geöffnet werden" + +#: util/i386/pc/grub-setup.c:621 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... DEVICE\n" +"\n" +"Set up images to boot from DEVICE.\n" +"DEVICE must be a GRUB device (e.g. `(hd0,1)').\n" +"\n" +"You should not normally run %s directly. Use grub-install instead.\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 "" +"Aufruf: %s [OPTION]... GERÄT\n" +"\n" +"Abbilder zum Booten von GERÄT einrichten.\n" +"GERÄT muss ein GRUB-Gerät sein (z.B. »(hd0,1)«).\n" +"\n" +" -b, --boot-image=DATEI DATEI als Boot-Abbild verwenden [Vorgabe=%s]\n" +" -c, --core-image=DATEI DATEI als Core-Abbild verwenden [Vorgabe=%s]\n" +" -d, --directory=DIR GRUB-Dateien im Ordner DIR verwenden [Vorgabe=%s]\n" +" -m, --device-map=DATEI DATEI als Map des Gerätes verwenden [Vorgabe=%s]\n" +" -r, --root-device=DEV DEV als Root-Gerät verwenden [Vorgabe=geschätzt]\n" +" -f, --force Auch bei erkannten Problemen installieren\n" +" -s, --skip-fs-probe nicht auf Dateisysteme in GERÄT überprüfen\n" +" -h, --help Diese Meldung anzeigen und beenden\n" +" -V, --version Versionsinformation anzeigen und beenden\n" +" -v, --verbose Ausführliche Meldungen anzeigen\n" +"\n" +"Fehler bitte an <%s> melden.\n" + +#: util/i386/pc/grub-setup.c:753 +#, c-format +msgid "No device is specified.\n" +msgstr "Kein Gerät angegeben.\n" + +#: util/i386/pc/grub-setup.c:759 +#, c-format +msgid "Unknown extra argument `%s'.\n" +msgstr "Unbekanntes zusätzliches Argument »%s«.\n" + +#: util/i386/pc/grub-setup.c:776 +#, c-format +msgid "Invalid device `%s'.\n" +msgstr "Ungültiges Gerät »%s«.\n" + +#: util/i386/pc/grub-setup.c:789 +#, c-format +msgid "invalid root device `%s'" +msgstr "Ungültiges Root-Gerät »%s«" + +#: util/i386/pc/grub-setup.c:802 +msgid "cannot guess the root device. Specify the option `--root-device'" +msgstr "" +"Das Root-Gerät kann nicht ermittelt werden. Verwenden Sie die Option »--root-" +"device«." + +#~ msgid "Load XNU ramdisk. It will be seen as md0." +#~ msgstr "XNU-Ramdisk laden. Wird als md0 angezeigt." + +#~ msgid "no DOS-style partitions found" +#~ msgstr "Keine DOS-Partitionen gefunden" + +#~ msgid "%s, with kFreeBSD %s" +#~ msgstr "%s, mit kFreeBSD %s" + +#~ msgid "Loading kernel of FreeBSD %s ..." +#~ msgstr "FreeBSD-Kernel %s wird geladen …" + +#~ msgid "%s, with Linux %s (recovery mode)" +#~ msgstr "%s, mit Linux %s (Wiederherstellungsmodus)" + +#~ msgid "%s, with Linux %s" +#~ msgstr "%s, mit Linux %s" + +#~ msgid "Loading Linux %s ..." +#~ msgstr "Linux %s wird geladen …" + +#~ msgid "Loading initial ramdisk ..." +#~ msgstr "Initiale Ramdisk wird geladen …" + +#~ msgid "A boot catalog exists and appears corrupted.\n" +#~ msgstr "Ein Boot-Katalog existiert, scheint aber beschädigt zu sein.\n" + +#~ msgid "Please check the following file: %s.\n" +#~ msgstr "Bitte überprüfen Sie folgende Datei: %s.\n" + +#~ msgid "This file must be removed before a bootable CD can be done.\n" +#~ msgstr "" +#~ "Diese Datei muss entfernt werden, bevor eine bootfähige CD erstellt " +#~ "werden kann.\n" + +#~ msgid "Error creating boot catalog (%s)" +#~ msgstr "Fehler beim Erstellen des Boot-Katalogs (%s)" + +#~ msgid "Error writing to boot catalog (%s)" +#~ msgstr "Fehler beim Speichern des Boot-Katalogs (%s)" + +#~ msgid "Boot catalog cannot be found!\n" +#~ msgstr "Boot-Katalog kann nicht gefunden werden!\n" + +#~ msgid "Boot image cannot be found!\n" +#~ msgstr "Boot-Abbild kann nicht gefunden werden!\n" + +#~ msgid "" +#~ "\n" +#~ "Size of boot image is %d sectors" +#~ msgstr "" +#~ "\n" +#~ "Das Boot-Abbild umfasst %d Sektoren" + +#~ msgid "No emulation\n" +#~ msgstr "Keine Emulation\n" + +#~ msgid "Emulating a 1.44 meg floppy\n" +#~ msgstr "Eine 1,44 MB-Diskette emulieren\n" + +#~ msgid "Emulating a 2.88 meg floppy\n" +#~ msgstr "Eine 2,88 MB-Diskette emulieren\n" + +#~ msgid "Emulating a 1.2 meg floppy\n" +#~ msgstr "Eine 1,2 MB-Diskette emulieren\n" + +#~ msgid "" +#~ "\n" +#~ "Error - boot image is not the an allowable size.\n" +#~ msgstr "" +#~ "\n" +#~ "Fehler - Boot-Abbild hat keine akzeptable Größe.\n" + +#~ msgid "Error opening boot catalog for update" +#~ msgstr "Fehler beim Öffnen des Boot-Katalogs zum Aktualisieren" + +#~ msgid "Error writing to boot catalog" +#~ msgstr "Fehler beim Schreiben in den Boot-Katalog" + +#~ msgid "Error opening boot image file '%s' for update" +#~ msgstr "Fehler beim Öffnen der Boot-Abbilddatei »%s« zum Aktualisieren" + +#~ msgid "Boot image file '%s' changed unexpectedly" +#~ msgstr "Boot-Abbilddatei »%s« wurde unerwartet geändert" + +#~ msgid "Error writing to boot image (%s)" +#~ msgstr "Fehler beim Schreiben in das Boot-Abbild (%s)" + +#~ msgid "Unable to generate sane path tables - too many directories (%d)\n" +#~ msgstr "" +#~ "Erzeugung der Sane-Pfadtabellen ist nicht möglich - zu viele Ordner (%d)\n" + +#~ msgid "Entry %d not in path tables\n" +#~ msgstr "Eintrag %d nicht in Pfadtabellen vorhanden\n" + +#~ msgid "Joliet path table lengths do not match %d %d\n" +#~ msgstr "Längen der Joliet-Pfadtabellen %d %d stimmen nicht überein\n" + +#~ msgid "Unable to locate relocated directory\n" +#~ msgstr "Geänderter Ordner kann nicht gefunden werden\n" + +#~ msgid "Fatal goof - unable to find directory location\n" +#~ msgstr "Fataler Fehler - Ort des Ordners kann nicht gefunden werden\n" + +#~ msgid "Unexpected joliet directory length %d %d %s\n" +#~ msgstr "Unerwartete Länge des Joliet-Ordners %d %d %s\n" + +#~ msgid "Using \"%s\"\n" +#~ msgstr "»%s« wird verwendet\n" + +#~ msgid "%s:%d: name required\n" +#~ msgstr "%s:%d: Name erforderlich\n" + +#~ msgid "%s:%d: equals sign required\n" +#~ msgstr "%s:%d: Gleichheitszeichen erforderlich\n" + +#~ msgid "%s:%d: field name \"%s\" unknown\n" +#~ msgstr "%s:%d: Feldname »%s« ist unbekannt\n" + +#~ msgid "Usage: %s [options] file...\n" +#~ msgstr "Aufruf: %s [Optionen] Datei...\n" + +#~ msgid "Options:\n" +#~ msgstr "Optionen:\n" + +#~ msgid "-i option no longer supported.\n" +#~ msgstr "Option -i wird nicht mehr unterstützt.\n" + +#~ msgid "Required boot image pathname missing\n" +#~ msgstr "Pfadname des Boot-Abbildes ist notwendig, fehlt aber\n" + +#~ msgid "Required boot catalog pathname missing\n" +#~ msgstr "Pfadname des Boot-Katalogs ist notwendig, fehlt aber\n" + +#~ msgid "Ignoring -no-emul-boot (no-emulation is the default behaviour)\n" +#~ msgstr "" +#~ "-no-emul-boot wird ignoriert (no-emulation ist das Standardverhalten)\n" + +#~ msgid "Abstract filename string too long\n" +#~ msgstr "»Abstract«-Zeichenkette für Dateiname ist zu lang\n" + +#~ msgid "Application-id string too long\n" +#~ msgstr "»Application-id«-Zeichenkette ist zu lang\n" + +#~ msgid "Bibliographic filename string too long\n" +#~ msgstr "»Bibliographic«-Zeichenkette für Dateiname ist zu lang\n" + +#~ msgid "Copyright filename string too long\n" +#~ msgstr "»Copyright«-Zeichenkette für Dateiname ist zu lang\n" + +#~ msgid "Preparer string too long\n" +#~ msgstr "»Preparer«-Zeichenkette ist zu lang\n" + +#~ msgid "Publisher string too long\n" +#~ msgstr "»Publisher«-Zeichenkette ist zu lang\n" + +#~ msgid "System ID string too long\n" +#~ msgstr "»System ID«-Zeichenkette ist zu lang\n" + +#~ msgid "Volume ID string too long\n" +#~ msgstr "»Volume ID«-Zeichenkette ist zu lang\n" + +#~ msgid "Volume set ID string too long\n" +#~ msgstr "»Volume set ID«-Zeichenkette ist zu lang\n" + +#~ msgid "Volume set sequence number too big\n" +#~ msgstr "Sequenznummer des Datenträgersatzes ist zu groß\n" + +#~ msgid "date string must be 16 characters.\n" +#~ msgstr "Datumszeichenkette muss aus 16 Zeichen bestehen.\n" + +#~ msgid "Warning: getrlimit" +#~ msgstr "Warnung: getrlimit" + +#~ msgid "Warning: setrlimit" +#~ msgstr "Warnung: setrlimit" + +#~ msgid "Multisession usage bug: Must specify -C if -M is used.\n" +#~ msgstr "" +#~ "Für Mehrfachsitzungen muss -C angegeben werden, falls -M benutzt wird.\n" + +#~ msgid "" +#~ "Warning: -C specified without -M: old session data will not be merged.\n" +#~ msgstr "" +#~ "Warnung: -C wurde ohne -M angegeben: alte Sitzungsdaten werden nicht " +#~ "berücksichtigt.\n" + +#~ msgid "can't open logfile: %s" +#~ msgstr "Protokolldatei kann nicht geöffnet werden: %s" + +#~ msgid "re-directing all messages to %s\n" +#~ msgstr "Alle Meldungen werden zu %s umgeleitet\n" + +#~ msgid "can't open logfile: %s\n" +#~ msgstr "Protokolldatei kann nicht geöffnet werden: %s\n" + +#~ msgid "Unable to open previous session image %s\n" +#~ msgstr "Abbild der vorherigen Sitzung %s kann nicht geöffnet werden\n" + +#~ msgid "Invalid node - %s\n" +#~ msgstr "Ungültiger Node - %s\n" + +#~ msgid "Joliet tree sort failed.\n" +#~ msgstr "Sortierung des Joliet-Baums ist gescheitert.\n" + +#~ msgid "Unable to open /dev/null\n" +#~ msgstr "/dev/null kann nicht geöffnet werden\n" + +#~ msgid "Unable to open disc image file\n" +#~ msgstr "Abbilddatei der Platte kann nicht geöffnet werden\n" + +#~ msgid "%llu extents written (%llu MiB)\n" +#~ msgstr "%llu Einheiten geschrieben (%llu MiB)\n" + +#~ msgid "Seek error on old image\n" +#~ msgstr "Fehler beim Durchsuchen eines alten Abbildes\n" + +#~ msgid "**Bad RR version attribute" +#~ msgstr "**Falsches RR-Versionsattribut" + +#~ 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 "" +#~ "Warnung: Weder RockRidge (-R) noch TRANS.TBL (-T)-Namensübersetzungen " +#~ "wurden in der vorherigen Sitzung gefunden. ISO (8.3)-Dateinamen wurden " +#~ "stattdessen verwendet.\n" + +#~ msgid "Read error on old image %s\n" +#~ msgstr "Fehler beim Lesen des alten Abbildes %s\n" + +#~ msgid "Special parameters for cdwrite not specified with -C\n" +#~ msgstr "Spezielle Parameter für cdwrite wurden nicht mit -C angegeben\n" + +#~ msgid "Malformed cdwrite parameters\n" +#~ msgstr "Ungültige Parameter für cdwrite\n" + +#~ msgid "Unable to insert transparent compressed file - name conflict\n" +#~ msgstr "" +#~ "Transparente komprimierte Datei kann nicht eingefügt werden - " +#~ "Namenskonflikt\n" + +#~ msgid "Extension record too long\n" +#~ msgstr "Erweiterungsaufzeichnung ist zu lang\n" + +#~ msgid "Fatal goof\n" +#~ msgstr "Fataler Fehler\n" + +#~ msgid "Unable to generate unique name for file %s\n" +#~ msgstr "Eindeutiger Name für Datei %s kann nicht erzeugt werden\n" + +#~ msgid "Using %s for %s%s%s (%s)\n" +#~ msgstr "%s wird für %s%s%s verwendet (%s)\n" + +#~ msgid "Fatal error - RR overflow for file %s\n" +#~ msgstr "Fataler Fehler - RR-Überlauf für Datei %s\n" + +#~ msgid "Unable to sort directory %s\n" +#~ msgstr "Ordner %s kann nicht sortiert werden\n" + +#~ msgid "Translation table size mismatch %d %d\n" +#~ msgstr "Größe der Übersetzungstabellen %d %d stimmt nicht überein\n" + +#~ msgid "Unable to locate directory parent\n" +#~ msgstr "Ort des Elternordners kann nicht bestimmt werden\n" + +#~ msgid "Scanning %s\n" +#~ msgstr "%s wird eingelesen\n" + +#~ msgid "Unable to open directory %s\n" +#~ msgstr "Ordner %s kann nicht geöffnet werden\n" + +#~ msgid "Ignoring file %s\n" +#~ msgstr "Datei %s wird ignoriert\n" + +#~ msgid "Overflow of stat buffer\n" +#~ msgstr "Überlauf des stat-Zwischenspeichers\n" + +#~ msgid "Excluded by match: %s\n" +#~ msgstr "Ausgeschlossen nach Übereinstimmung: %s\n" + +#~ msgid "Excluded: %s\n" +#~ msgstr "Ausgeschlossen: %s\n" + +#~ msgid "Non-existant or inaccessible: %s\n" +#~ msgstr "Nicht vorhanden oder kein Zugriff möglich: %s\n" + +#~ msgid "Unable to stat file %s - ignoring and continuing.\n" +#~ msgstr "" +#~ "Statusermittlung der Datei %s nicht möglich - wird ignoriert und " +#~ "fortgesetzt.\n" + +#~ msgid "Symlink %s ignored - continuing.\n" +#~ msgstr "Symbolische Verknüpfung %s wird ignoriert und fortgesetzt.\n" + +#~ msgid "Already cached directory seen (%s)\n" +#~ msgstr "Bereits zwischengespeicherter Ordner erkannt (%s)\n" + +#~ msgid "File %s is not readable (%s) - ignoring\n" +#~ msgstr "Datei %s ist nicht lesbar (%s) - wird ignoriert\n" + +#~ msgid "Directory loop - fatal goof (%s %lx %lu).\n" +#~ msgstr "Ordnerschleife - fataler Fehler (%s %lx %lu).\n" + +#~ msgid "Unknown file type %s - ignoring and continuing.\n" +#~ msgstr "Unbekannter Dateityp %s - wird ignoriert und fortgesetzt.\n" + +#~ msgid "Hidden from ISO9660 tree: %s\n" +#~ msgstr "Im ISO9660-Baum verborgen: %s\n" + +#~ msgid "Hidden from Joliet tree: %s\n" +#~ msgstr "Im Joliet-Baum verborgen: %s\n" + +#~ msgid "Directories too deep %s\n" +#~ msgstr "Ordnertiefe %s zu groß\n" + +#~ msgid "Unable to delete non-empty directory\n" +#~ msgstr "Nicht leerer Ordner kann nicht entfernt werden\n" + +#~ msgid "Unable to locate child directory in parent list\n" +#~ msgstr "Kindordner kann in Elternliste nicht gefunden werden\n" + +#~ msgid "call to search_tree_file with an absolute path, stripping\n" +#~ msgstr "" +#~ "Aufruf von search_tree_file mit absolutem Pfad, wird abgeschnitten\n" + +#~ msgid "initial path separator. Hope this was intended...\n" +#~ msgstr "Anfänglicher Pfadtrenner. Hoffentlich war dies beabsichtigt...\n" + +#~ msgid "Cannot open '%s'" +#~ msgstr "»%s« kann nicht geöffnet werden" + +#~ msgid "cannot open %s\n" +#~ msgstr "%s kann nicht geöffnet werden\n" + +#~ msgid "cannot read %llu bytes from %s" +#~ msgstr "%llu Bytes können nicht aus %s gelesen werden" + +#~ msgid "%6.2f%% done, estimate finish %s" +#~ msgstr "%6.2f%% abgeschlossen, voraussichtlich beendet %s" + +#~ msgid "Unexpected directory length %d %d %s\n" +#~ msgstr "Unerwartete Ordnerlänge %d %d %s\n" + +#~ msgid "Path table lengths do not match %d %d\n" +#~ msgstr "Längen der Pfadtabellen %d %d stimmen nicht überein\n" + +#~ msgid "Total extents scheduled to be written = %llu\n" +#~ msgstr "Geplante zu schreibende Einheiten = %llu\n" + +#~ msgid "Total extents actually written = %llu\n" +#~ msgstr "Gesamte derzeit geschriebene Einheiten = %llu\n" + +#~ msgid "" +#~ "Number of extents written different than what was predicted. Please " +#~ "fix.\n" +#~ msgstr "" +#~ "Anzahl der zu schreibenden Einheiten anders als erwartet. Bitte " +#~ "berichtigen.\n" + +#~ msgid "Predicted = %d, written = %llu\n" +#~ msgstr "Erwartet = %d, geschrieben = %llu\n" + +#~ msgid "Total translation table size: %d\n" +#~ msgstr "Gesamtgröße der Übersetzungstabelle: %d\n" + +#~ msgid "Total rockridge attributes bytes: %d\n" +#~ msgstr "Gesamtgröße der RockRidge-Attribute in Bytes: %d\n" + +#~ msgid "Total directory bytes: %d\n" +#~ msgstr "Gesamte Ordnergröße in Bytes: %d\n" + +#~ msgid "Path table size(bytes): %d\n" +#~ msgstr "Größe der Pfadtabelle in Bytes: %d\n" --- grub2-1.98+20100804.orig/po/da.po +++ grub2-1.98+20100804/po/da.po @@ -0,0 +1,1349 @@ +# Danish translation of grub +# Copyright (C) 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the grub package. +# +# core, kernel -> kerne ??? Ville være bedre med forskellige ord +# +# Ask Hjorth Larsen , 2010. +msgid "" +msgstr "" +"Project-Id-Version: grub-1.97+20100124\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-06-19 01:35+0100\n" +"PO-Revision-Date: 2010-04-02 15:24+0200\n" +"Last-Translator: Ask Hjorth Larsen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: commands/acpi.c:40 +msgid "Don't load host tables specified by comma-separated list." +msgstr "Indlæs ikke værtstabeller angivet i kommaadskilt liste." + +#: commands/acpi.c:43 +msgid "Load only tables specified by comma-separated list." +msgstr "Indlæs kun tabeller angivet i kommaadskilt liste." + +#: commands/acpi.c:44 +msgid "Expose v1 tables." +msgstr "Blotlæg v1-tabeller." + +#: commands/acpi.c:45 +msgid "Expose v2 and v3 tables." +msgstr "Blotlæg v2- og v3-tabeller." + +#: commands/acpi.c:46 +msgid "Set OEMID of RSDP, XSDT and RSDT." +msgstr "Indstil OEMID for RSDP, XSDT og RSDT." + +#: commands/acpi.c:48 +msgid "Set OEMTABLE ID of RSDP, XSDT and RSDT." +msgstr "Indstil OEMTABLE ID for RSDP, XSDT og RSDT." + +#: commands/acpi.c:50 +msgid "Set OEMTABLE revision of RSDP, XSDT and RSDT." +msgstr "Indstil revision af OEMTABLE for RSDP, XSDT og RSDT." + +#: commands/acpi.c:52 +msgid "Set creator field of RSDP, XSDT and RSDT." +msgstr "Indstil skaberfeltet for RSDP, XSDT og RSDT." + +#: commands/acpi.c:54 +msgid "Set creator revision of RSDP, XSDT and RSDT." +msgstr "Indstil skaberrevision for RSDP, XSDT og RSDT." + +#: commands/acpi.c:55 +msgid "" +"Don't update EBDA. May fix failures or hangs on some. BIOSes but makes it " +"ineffective with OS not receiving RSDP from GRUB." +msgstr "" +"Opdatér ikke EBDA. Vil måske forhindre fejl eller nedbrud med visse BIOS'er, " +"men forringer effektiviteten, da operativsystemet ikke modtager RSDP fra " +"GRUB." + +#: commands/acpi.c:763 +msgid "" +"[-1|-2] [--exclude=TABLE1,TABLE2|--load-only=table1,table2] FILE1 [FILE2] " +"[...]" +msgstr "" +"[-1|-2] [--exclude=TABEL1,TABEL2|--load-only=table1,table2] FIL1 [FIL2] [...]" + +#: commands/acpi.c:766 +msgid "Load host ACPI tables and tables specified by arguments." +msgstr "Indæs ACPI-værtstabeller og tabeller angivet ved argumenter." + +#: commands/blocklist.c:113 commands/cat.c:82 commands/configfile.c:57 +#: commands/configfile.c:60 commands/configfile.c:65 commands/crc.c:64 +#: commands/minicmd.c:353 loader/i386/bsd.c:1287 loader/i386/bsd.c:1291 +#: loader/i386/bsd.c:1295 +msgid "FILE" +msgstr "FIL" + +#: commands/blocklist.c:113 +msgid "Print a block list." +msgstr "Udskriv en blokliste." + +#: commands/boot.c:190 +msgid "Boot an operating system." +msgstr "Start et operativsystem." + +#: commands/cat.c:82 commands/minicmd.c:353 +msgid "Show the contents of a file." +msgstr "Vis indholdet af en fil." + +#: commands/cmp.c:113 +msgid "FILE1 FILE2" +msgstr "FIL1 FIL2" + +#: commands/cmp.c:113 +msgid "Compare two files." +msgstr "Sammenlign to filer." + +#: commands/configfile.c:57 +msgid "Load another config file." +msgstr "Indlæs en anden konfigurationsfil." + +#: commands/configfile.c:61 commands/configfile.c:66 +msgid "Load another config file without changing context." +msgstr "Indlæs en anden konfigurationsfil uden at ændre kontekst." + +#: commands/crc.c:65 +msgid "Calculate the crc32 checksum of a file." +msgstr "Udregn crc32-kontrolsummen for en fil." + +#: commands/date.c:139 +msgid "[[year-]month-day] [hour:minute[:second]]" +msgstr "[[år-]måned-dag] [time:minut[:sekund]]" + +#: commands/date.c:140 +msgid "Command to display/set current datetime." +msgstr "Kommando til at vise/ændre nuværende tidspunkt og dato." + +#: commands/echo.c:27 +msgid "Do not output the trailing newline." +msgstr "Udskriv ikke afsluttende linjeskiftstegn." + +#: commands/echo.c:28 +msgid "Enable interpretation of backslash escapes." +msgstr "Aktivér fortolkning af undvigesekvenser med omvendt skråstreg." + +#: commands/echo.c:117 +msgid "[-e|-n] STRING" +msgstr "[-e|-n] STRENG" + +#: commands/echo.c:117 +msgid "Display a line of text." +msgstr "Vis en linje af tekst." + +#: commands/efi/fixvideo.c:103 +msgid "Fix video problem." +msgstr "Fiks videoproblem." + +#: commands/efi/loadbios.c:207 +msgid "Fake BIOS." +msgstr "Falsk BIOS." + +#: commands/efi/loadbios.c:211 +msgid "Load BIOS dump." +msgstr "Indlæs BIOS-dump." + +#: commands/gptsync.c:244 +msgid "DEVICE [PARTITION[+/-[TYPE]]] ..." +msgstr "ENHED [PARTITION[+/-[TYPE]]] ..." + +#: commands/gptsync.c:245 +#, fuzzy +msgid "" +"Fill hybrid MBR of GPT drive DEVICE. Specified partitions will be a part of " +"hybrid MBR. Up to 3 partitions are allowed. TYPE is an MBR type. + means " +"that partition is active. Only one partition can be active." +msgstr "" +"Fyld hybrid-MBR for GPT-drevet ENHED. Angivne partitioner vil være en del af " +"hybrid-MBR. Op til tre partitioner er tilladt. TYPE er en MBR-type. + " +"betyder, at partitionen er aktiv. Kun én partition kan være aktiv." + +#: commands/halt.c:39 +msgid "" +"Halts the computer. This command does not work on all firmware " +"implementations." +msgstr "" +"Standser computeren. Denne kommando fungerer ikke på alle " +"firmwareimplementationer." + +#: commands/hdparm.c:30 +msgid "" +"Set Advanced Power Management\n" +"(1=low, ..., 254=high, 255=off)." +msgstr "" +"Indstil advanceret strømstyring (APM)\n" +"(1=lav, ..., 254=høj, 255=deaktiveret)." + +#: commands/hdparm.c:33 +msgid "Check power mode." +msgstr "Kontrollér strømtilstand." + +#: commands/hdparm.c:34 +msgid "Freeze ATA security settings until reset." +msgstr "Fastlås ATA-sikkerhedsindstillinger indtil nulstilling." + +#: commands/hdparm.c:36 +msgid "Check SMART health status." +msgstr "Kontrollér SMART-helbredsstatus." + +#: commands/hdparm.c:37 +msgid "" +"Set Automatic Acoustic Management\n" +"(0=off, 128=quiet, ..., 254=fast)." +msgstr "" +"Indstil Automatic Acoustic Management\n" +"(0=deaktiveret, 128=stille, ..., 254=hurtig)." + +# fixmig: ved ikke hvilken 'standby' de taler om eller hvad oversættelsen bør være +#: commands/hdparm.c:40 +msgid "" +"Set standby timeout\n" +"(0=off, 1=5s, 2=10s, ..., 240=20m, 241=30m, ...)." +msgstr "" +"Indstil tidsudløb for standby\n" +"(0=deaktiveret, 1=5s, 2=10s, ..., 240=20m, 241=30m, ...)." + +#: commands/hdparm.c:43 +msgid "Set drive to standby mode." +msgstr "Sæt drevet i ventetilstand (standby)." + +#: commands/hdparm.c:44 +msgid "Set drive to sleep mode." +msgstr "Sæt drevet i hviletilstand (sleep)." + +#: commands/hdparm.c:45 +msgid "Print drive identity and settings." +msgstr "Udskriv drevidentitet og indstillinger." + +#: commands/hdparm.c:47 +msgid "Dump contents of ATA IDENTIFY sector." +msgstr "Dump indhold af ATA IDENTIFY-sektor." + +#: commands/hdparm.c:49 +msgid "Disable/enable SMART (0/1)." +msgstr "Deaktivér/aktivér SMART (0/1)." + +#: commands/hdparm.c:50 +msgid "Do not print messages." +msgstr "Udskriv ikke meddelelser." + +#: commands/hdparm.c:414 +msgid "[OPTIONS] DISK" +msgstr "[TILVALG] DISK" + +#: commands/hdparm.c:415 +msgid "Get/set ATA disk parameters." +msgstr "Vis/angiv ATA-diskparametre." + +#: commands/help.c:112 lib/arg.c:110 +msgid "Usage:" +msgstr "Brug:" + +#: commands/help.c:129 +msgid "[PATTERN ...]" +msgstr "[MØNSTER ...]" + +#: commands/help.c:130 +msgid "Show a help message." +msgstr "Vis en hjælpebesked." + +# jf. man-siden for hexdump, dog omskrevet til noget mere indirekte så der ikke kan opstå misforståelser +#: commands/hexdump.c:30 +msgid "Skip offset bytes from the beginning of file." +msgstr "Spring et antal byte over fra filens begyndelse." + +#: commands/hexdump.c:32 +msgid "Read only LENGTH bytes." +msgstr "Læs kun LÆNGDE byte." + +#: commands/hexdump.c:125 +msgid "[OPTIONS] FILE_OR_DEVICE" +msgstr "[TILVALG] FIL_ELLER_ENHED" + +#: commands/hexdump.c:126 +msgid "Dump the contents of a file or memory." +msgstr "Dump indholdet af en fil eller hukommelsen." + +#: commands/i386/cpuid.c:37 +msgid "Check for long mode flag (default)." +msgstr "Kontrollér for langt tilstandsflag (standard)." + +#: commands/i386/cpuid.c:92 +msgid "Check for CPU features." +msgstr "Kontrollér for CPU-funktioner." + +#: commands/i386/pc/drivemap.c:37 +msgid "Show the current mappings." +msgstr "Vis de aktuelle afbildninger." + +#: commands/i386/pc/drivemap.c:38 +msgid "Reset all mappings to the default values." +msgstr "Nulstil alle afbildninger til standardværdierne." + +#: commands/i386/pc/drivemap.c:39 +msgid "Perform both direct and reverse mappings." +msgstr "Udfør både direkte og omvendte afbilninger." + +#: commands/i386/pc/drivemap.c:406 +msgid "-l | -r | [-s] grubdev osdisk." +msgstr "-l | -r | [-s] grubdev osdisk." + +#: commands/i386/pc/drivemap.c:407 +msgid "Manage the BIOS drive mappings." +msgstr "Håndtér BIOS-drevafbildinger." + +#: commands/i386/pc/halt.c:27 +msgid "Do not use APM to halt the computer." +msgstr "Brug ikke APM til at standse computeren." + +#: commands/i386/pc/halt.c:51 +msgid "Halt the system, if possible using APM." +msgstr "Stands systemet, med APM hvis muligt." + +#: commands/i386/pc/play.c:266 +msgid "FILE | TEMPO [PITCH1 DURATION1] [PITCH2 DURATION2] ... " +msgstr "" + +#: commands/i386/pc/play.c:267 +msgid "Play a tune." +msgstr "Afspil en melodi." + +#: commands/i386/pc/pxecmd.c:46 +msgid "Unload PXE environment." +msgstr "Afindlæs PXE-miljøet." + +# vælger at bruge Extension som en del af navnet jf. strengen nedenfor +#: commands/i386/pc/vbeinfo.c:179 +msgid "List compatible VESA BIOS extension video modes." +msgstr "Vis liste af kompatible VESA BIOS Extension-videotilstande." + +#: commands/i386/pc/vbetest.c:173 +msgid "Test VESA BIOS Extension 2.0+ support." +msgstr "Test understøttelse af VESA BIOS Extension 2.0+." + +#: commands/ieee1275/suspend.c:43 +msgid "Return to Open Firmware prompt." +msgstr "Vend tilbage til Open Firmware-prompten." + +#: commands/keystatus.c:28 +msgid "Check Shift key." +msgstr "Kontrollér skift-tasten." + +#: commands/keystatus.c:29 +msgid "Check Control key." +msgstr "Kontrollér Ctrl-tasten." + +#: commands/keystatus.c:30 +msgid "Check Alt key." +msgstr "Kontrollér Alt-tasten." + +#: commands/keystatus.c:85 +msgid "[--shift] [--ctrl] [--alt]" +msgstr "[--shift] [--ctrl] [--alt]" + +#: commands/keystatus.c:86 +msgid "Check key modifier status." +msgstr "Kontrollér status af modifikationstaster." + +#: commands/loadenv.c:33 +msgid "Specify filename." +msgstr "Angiv filnavn." + +#: commands/loadenv.c:378 commands/loadenv.c:384 +msgid "[-f FILE]" +msgstr "[-f FIL]" + +#: commands/loadenv.c:379 +msgid "Load variables from environment block file." +msgstr "Indlæs variable fra miljøblokfil." + +#: commands/loadenv.c:385 +msgid "List variables from environment block file." +msgstr "Vis variabelliste fra miljøblokfil." + +#: commands/loadenv.c:390 +msgid "[-f FILE] variable_name [...]" +msgstr "[-f FIL] variabelnavn [...]" + +#: commands/loadenv.c:391 +msgid "Save variables to environment block file." +msgstr "Gem variable til miljøblokfil." + +#: commands/ls.c:37 +msgid "Show a long list with more detailed information." +msgstr "Vis en lang liste med mere detaljeret information." + +#: commands/ls.c:38 +msgid "Print sizes in a human readable format." +msgstr "Udskriv størrelser i læsevenligt format." + +#: commands/ls.c:39 +msgid "List all files." +msgstr "Vis liste af alle filer." + +#: commands/ls.c:269 +msgid "[-l|-h|-a] [FILE]" +msgstr "[-l|-h|-a] [FIL]" + +#: commands/ls.c:270 +msgid "List devices and files." +msgstr "Vis liste af enheder og filer." + +#: commands/lsmmap.c:51 +msgid "List memory map provided by firmware." +msgstr "Vis hukommelsesafbildningen tilgængelig via firmware." + +#: commands/lspci.c:228 +msgid "List PCI devices." +msgstr "Vis liste af PCI-enheder." + +#: commands/memrw.c:31 +msgid "Save read value into variable VARNAME." +msgstr "Gem den læste værdi i variablen VARNAVN." + +#: commands/memrw.c:123 commands/memrw.c:126 commands/memrw.c:129 +#: commands/minicmd.c:362 +msgid "ADDR" +msgstr "ADR" + +#: commands/memrw.c:123 +msgid "Read byte from ADDR." +msgstr "Læs byte fra ADR." + +# En word er vist to byte, men kan måske være maskinafhængig. Det er en lidt ualmindelig glose, så jeg bruger den engelske jf. den næste, 'dword', som slet ikke har en dansk oversættelse. +#: commands/memrw.c:126 +msgid "Read word from ADDR." +msgstr "Læs word fra ADR." + +#: commands/memrw.c:129 +msgid "Read dword from ADDR." +msgstr "Læs dword fra ADR." + +#: commands/memrw.c:132 commands/memrw.c:135 commands/memrw.c:138 +msgid "ADDR VALUE [MASK]" +msgstr "ADR VÆRDI [MASKE]" + +#: commands/memrw.c:132 +msgid "Write byte VALUE to ADDR." +msgstr "Skriv byte-VÆRDI til ADR." + +#: commands/memrw.c:135 +msgid "Write word VALUE to ADDR." +msgstr "Skriv word-VÆRDI til ADR." + +#: commands/memrw.c:138 +msgid "Write dword VALUE to ADDR." +msgstr "Skriv dword-VÆRDI til ADR." + +#: commands/minicmd.c:356 +msgid "Show this message." +msgstr "Vis denne meddelelse." + +#: commands/minicmd.c:359 commands/probe.c:154 +msgid "[DEVICE]" +msgstr "[ENHED]" + +#: commands/minicmd.c:359 +msgid "Set the root device." +msgstr "Indstil rodenheden." + +#: commands/minicmd.c:362 +msgid "Dump memory." +msgstr "Dump hukommelse." + +#: commands/minicmd.c:365 +msgid "MODULE" +msgstr "MODUL" + +#: commands/minicmd.c:365 +msgid "Remove a module." +msgstr "Fjern et modul." + +#: commands/minicmd.c:368 +msgid "Show loaded modules." +msgstr "Vis indlæste moduler." + +#: commands/minicmd.c:371 +msgid "Exit from GRUB." +msgstr "Gå ud af GRUB." + +#: commands/minicmd.c:374 +msgid "Clear the screen." +msgstr "Ryd skærmen." + +# Så vidt jeg kan se er det to forskellige værdier, der angives på kommandolinjen, og derfor to ord +#: commands/parttool.c:325 +msgid "PARTITION COMMANDS" +msgstr "PARTITION KOMMANDOER" + +# Så vidt jeg kan se er det to forskellige værdier, der angives på kommandolinjen, og derfor to ord +#: commands/password.c:78 +msgid "USER PASSWORD" +msgstr "BRUGER ADGANGSKODE" + +#: commands/password.c:79 +msgid "Set user password (plaintext). Unrecommended and insecure." +msgstr "Angiv brugeradgangskode (klartekst). Dette er usikkert og frarådes." + +#: commands/probe.c:38 +msgid "Set a variable to return value." +msgstr "Sæt en variabel til en returværdi." + +#: commands/probe.c:39 +msgid "Determine driver." +msgstr "Bestem driver." + +#: commands/probe.c:40 +msgid "Determine partition map type." +msgstr "Bestem type af partitionsafbildning." + +#: commands/probe.c:41 +msgid "Determine filesystem type." +msgstr "Bestem type af filsystem." + +#: commands/probe.c:42 +msgid "Determine filesystem UUID." +msgstr "Bestem UUID for filsystem." + +#: commands/probe.c:43 +msgid "Determine filesystem label." +msgstr "Bestem etiket for filsystem." + +#: commands/probe.c:155 +msgid "Retrieve device info." +msgstr "Hent enhedsinformation." + +#: commands/read.c:83 +msgid "[ENVVAR]" +msgstr "[MILJØVAR]" + +#: commands/read.c:84 +msgid "Set variable with user input." +msgstr "Sæt variablen med brugerinddata." + +#: commands/reboot.c:39 +msgid "Reboot the computer." +msgstr "Genstart computeren." + +#: commands/search.c:161 +msgid "NAME [VARIABLE]" +msgstr "NAVN [VARIABEL]" + +#: commands/search_file.c:5 +msgid "" +"Search devices by file. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Søg i enheder efter fil. Hvis VARIABEL er angivet, vil variablen blive sat " +"til den først fundne enhed." + +#: commands/search_label.c:5 +msgid "" +"Search devices by label. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Søg i enheder efter etiket. Hvis VARIABEL er angivet, vil variablen blive " +"sat til den først fundne enhed." + +#: commands/search_uuid.c:5 +msgid "" +"Search devices by UUID. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Søg i enheder efter UUID. Hvis VARIABEL er angivet, vil variablen blive sat " +"til den først fundne enhed." + +#: commands/sleep.c:30 +msgid "Verbose countdown." +msgstr "Ekstra udskrift ved nedtælling." + +#: commands/sleep.c:31 +msgid "Interruptible with ESC." +msgstr "Kan ikke afbrydes med ESC." + +#: commands/sleep.c:105 +msgid "NUMBER_OF_SECONDS" +msgstr "ANTAL_SEKUNDER" + +#: commands/sleep.c:106 +msgid "Wait for a specified number of seconds." +msgstr "Vent et givet antal sekunder." + +#: commands/test.c:424 +msgid "EXPRESSION ]" +msgstr "UDTRYK ]" + +#: commands/test.c:424 commands/test.c:426 +msgid "Evaluate an expression." +msgstr "Evaluér et udtryk." + +#: commands/test.c:426 +msgid "EXPRESSION" +msgstr "UDTRYK" + +#: commands/true.c:47 +msgid "Do nothing, successfully." +msgstr "Gør intet, med success." + +#: commands/true.c:50 +msgid "Do nothing, unsuccessfully." +msgstr "Gør intet, fejlagtigt." + +#: commands/usbtest.c:208 +msgid "Test USB support." +msgstr "Test USB-understøttelse." + +#: commands/videotest.c:180 +msgid "Test video subsystem." +msgstr "Test videoundersystem." + +#: commands/xnu_uuid.c:92 +msgid "GRUBUUID [VARNAME]" +msgstr "GRUBUUID [VARNAVN]" + +#: commands/xnu_uuid.c:93 +msgid "Transform 64-bit UUID to format suitable for XNU." +msgstr "Konvertér 64-bits UUID til format, der passer til XNU." + +# ? +#: disk/loopback.c:40 +msgid "Delete the loopback device entry." +msgstr "Slet indgangen for loopback-enheden." + +#: disk/loopback.c:41 +msgid "Simulate a hard drive with partitions." +msgstr "Simulér en harddisk med partitioner." + +#: disk/loopback.c:249 +msgid "[-d|-p] DEVICENAME FILE." +msgstr "[-d|-p] ENHEDSNAVN FIL." + +#: disk/loopback.c:250 +msgid "Make a device of a file." +msgstr "Gør en fil til en enhed." + +# Desværre synes denne streng ikke at være oversat +#: hello/hello.c:43 +msgid "Say \"Hello World\"." +msgstr "Sig \"Hello World\"." + +#: lib/arg.c:34 +msgid "Display this help and exit." +msgstr "Vis denne hjælp og afslut." + +#: lib/arg.c:36 +msgid "Display the usage of this command and exit." +msgstr "Vis brugsinformation for denne kommando og afslut." + +# Denne relaterer vist til nedenstående strenge; man kan vist køre en opstartsindlæser for et andet ('legacy') system, der ligger på computeren +#: loader/efi/appleloader.c:325 +msgid "Boot legacy system." +msgstr "Start ældre system." + +#: loader/efi/chainloader.c:340 loader/i386/pc/chainloader.c:166 +msgid "Load another boot loader." +msgstr "Indlæs en anden opstartsindlæser." + +#: loader/i386/bsd.c:65 +msgid "Display output on all consoles." +msgstr "Vis udskrift på alle konsoller." + +#: loader/i386/bsd.c:66 +msgid "Use serial console." +msgstr "Brug seriel konsol." + +#: loader/i386/bsd.c:67 loader/i386/bsd.c:93 loader/i386/bsd.c:114 +msgid "Ask for file name to reboot from." +msgstr "Spørg om et filnavn, der skal genstartes fra." + +#: loader/i386/bsd.c:68 +msgid "Use CDROM as root." +msgstr "Brug cd-rom som root." + +# ??? +#: loader/i386/bsd.c:69 +msgid "Invoke user configuration routing." +msgstr "Aktivér brugerkonfigurations-routing." + +#: loader/i386/bsd.c:70 loader/i386/bsd.c:97 loader/i386/bsd.c:117 +msgid "Enter in KDB on boot." +msgstr "Gå ind i KDB ved opstart." + +#: loader/i386/bsd.c:71 +msgid "Use GDB remote debugger instead of DDB." +msgstr "Brug GDBs fjernfejlfinder frem for DDB." + +#: loader/i386/bsd.c:72 +msgid "Disable all boot output." +msgstr "Deaktivér al opstartsudskrift." + +#: loader/i386/bsd.c:74 +msgid "Wait for keypress after every line of output." +msgstr "Vent på tastetryk efter hver udskrevet linje." + +#: loader/i386/bsd.c:76 +msgid "Use compiled-in rootdev." +msgstr "Brug indkompileret rootdev." + +#: loader/i386/bsd.c:77 loader/i386/bsd.c:96 loader/i386/bsd.c:120 +msgid "Boot into single mode." +msgstr "Start i single-tilstand." + +#: loader/i386/bsd.c:78 loader/i386/bsd.c:121 +msgid "Boot with verbose messages." +msgstr "Start med ekstra information." + +#: loader/i386/bsd.c:94 loader/i386/bsd.c:115 +msgid "Don't reboot, just halt." +msgstr "Stands kun, genstart ikke." + +#: loader/i386/bsd.c:95 loader/i386/bsd.c:116 +msgid "Change configured devices." +msgstr "Ændr konfigurerede enheder." + +#: loader/i386/bsd.c:98 loader/i386/bsd.c:124 +msgid "Set root device." +msgstr "Ændr rodenhed." + +#: loader/i386/bsd.c:112 +msgid "Disable SMP." +msgstr "Deaktivér SMP." + +#: loader/i386/bsd.c:113 +msgid "Disable ACPI." +msgstr "Deaktivér ACPI." + +#: loader/i386/bsd.c:119 +msgid "Don't display boot diagnostic messages." +msgstr "Vis ikke boot-diagonstikmeddelelser." + +#: loader/i386/bsd.c:122 +msgid "Boot with debug messages." +msgstr "Start op med fejlsøgningsbeskeder." + +#: loader/i386/bsd.c:123 +msgid "Supress normal output (warnings remain)." +msgstr "Undertryk normal udskrift (advarsler vises stadig)." + +#: loader/i386/bsd.c:124 +msgid "DEVICE" +msgstr "ENHED" + +#: loader/i386/bsd.c:1287 +msgid "Load kernel of FreeBSD." +msgstr "Indlæs FreeBSD-kerne." + +#: loader/i386/bsd.c:1291 +msgid "Load kernel of OpenBSD." +msgstr "Indlæs OpenBSD-kerne." + +#: loader/i386/bsd.c:1295 +msgid "Load kernel of NetBSD." +msgstr "Indlæs NetBSD-kerne." + +#: loader/i386/bsd.c:1299 +msgid "Load FreeBSD env." +msgstr "Indlæs FreeBSD-miljø." + +#: loader/i386/bsd.c:1302 +msgid "Load FreeBSD kernel module." +msgstr "Indlæs FreeBSD-kernemodul." + +#: loader/i386/bsd.c:1305 +msgid "Load FreeBSD kernel module (ELF)." +msgstr "Indlæs FreeBSD-kernemodul (ELF)." + +#: loader/i386/efi/linux.c:1011 loader/i386/ieee1275/linux.c:301 +#: loader/i386/linux.c:1012 loader/i386/pc/linux.c:399 +#: loader/powerpc/ieee1275/linux.c:353 loader/sparc64/ieee1275/linux.c:519 +msgid "Load Linux." +msgstr "Indlæs Linux." + +#: loader/i386/efi/linux.c:1013 loader/i386/ieee1275/linux.c:303 +#: loader/i386/linux.c:1014 loader/i386/pc/linux.c:402 +#: loader/powerpc/ieee1275/linux.c:355 loader/sparc64/ieee1275/linux.c:521 +msgid "Load initrd." +msgstr "Indlæs initrd." + +#: loader/i386/xnu.c:1032 +msgid "Load device-properties dump." +msgstr "Indlæs dump af enhedsegenskaber." + +#: loader/multiboot.c:337 +msgid "Load a multiboot 2 kernel." +msgstr "Indlæs en multiboot 2-kerne." + +#: loader/multiboot.c:340 +#, fuzzy +msgid "Load a multiboot 2 module." +msgstr "Indlæs et multiboot-modul." + +#: loader/multiboot.c:343 +msgid "Load a multiboot kernel." +msgstr "Indlæs en multiboot-kerne." + +#: loader/multiboot.c:346 +msgid "Load a multiboot module." +msgstr "Indlæs et multiboot-modul." + +#: loader/xnu.c:1428 +msgid "Load XNU image." +msgstr "Indlæs XNU-aftryk." + +#: loader/xnu.c:1430 +msgid "Load 64-bit XNU image." +msgstr "Indlæs 64-bit XNU-aftryk." + +#: loader/xnu.c:1432 +msgid "Load XNU extension package." +msgstr "Indlæs XNU-udvidelsespakke." + +#: loader/xnu.c:1434 +msgid "Load XNU extension." +msgstr "Indlæs XNU-udvidelse." + +# ? +#: loader/xnu.c:1436 +msgid "DIRECTORY [OSBundleRequired]" +msgstr "KATALOG [OSBundleRequired]" + +#: loader/xnu.c:1437 +msgid "Load XNU extension directory." +msgstr "Indlæs XNU-udvidelseskatalog." + +# ??? splash image lige pludselig? Det er vel så et billede og ikke et aftryk. Så vidt jeg kan se i koden er dette eneste forekomst af dén slags. -Ask +#: loader/xnu.c:1444 +msgid "Load a splash image for XNU." +msgstr "Indlæs et startbillede for XNU." + +#: loader/xnu.c:1449 +msgid "Load XNU hibernate image." +msgstr "Indlæs XNU-dvaleaftryk." + +#: normal/auth.c:217 +msgid "Enter username: " +msgstr "Indtast brugernavn: " + +#: normal/auth.c:222 +msgid "Enter password: " +msgstr "Indtast adgangskode: " + +#: normal/color.c:80 +#, c-format +msgid "Warning: syntax error (missing slash) in `%s'\n" +msgstr "Advarsel: syntaksfejl (manglende skråstreg) i \"%s\"\n" + +#: normal/color.c:89 +#, c-format +msgid "Warning: invalid foreground color `%s'\n" +msgstr "Advarsel: ugyldig forgrundsfarve \"%s\"\n" + +#: normal/color.c:95 +#, c-format +msgid "Warning: invalid background color `%s'\n" +msgstr "Advarsel: ugyldig baggrundsfarve \"%s\"\n" + +#: normal/dyncmd.c:144 +msgid "not loaded" +msgstr "ikke indlæst" + +#: normal/main.c:415 +#, c-format +msgid "GNU GRUB version %s" +msgstr "GNU GRUB version %s" + +#: normal/main.c:552 +#, c-format +msgid "" +"Minimal BASH-like line editing is supported. For the first word, TAB lists " +"possible command completions. Anywhere else TAB lists possible device or " +"file completions. %s" +msgstr "" +"Minimal BASH-agtig linjeredigering understøttes. For det første ord vil TAB " +"vise de mulige kommandofuldførelser. Alle andre steder vil TAB vise de " +"mulige fuldførelser af enheds- eller filnavne. %s" + +#: normal/main.c:555 +msgid "ESC at any time exits." +msgstr "ESC på ethvert tidspunkt afslutter." + +#: normal/main.c:670 +msgid "Enter normal mode." +msgstr "" + +#: normal/main.c:672 +msgid "Exit from normal mode." +msgstr "" + +#: normal/menu_entry.c:1061 +msgid "Possible commands are:" +msgstr "Mulige kommandoer er:" + +#: normal/menu_entry.c:1065 +msgid "Possible devices are:" +msgstr "Mulige enheder er:" + +#: normal/menu_entry.c:1069 +msgid "Possible files are:" +msgstr "Mulige filer er:" + +#: normal/menu_entry.c:1073 +msgid "Possible partitions are:" +msgstr "Mulige partitioner er:" + +#: normal/menu_entry.c:1077 +msgid "Possible arguments are:" +msgstr "Mulige argumenter er:" + +#: normal/menu_entry.c:1081 +msgid "Possible things are:" +msgstr "Mulige ting er:" + +# ??? +#: normal/menu_entry.c:1185 +msgid "Booting a command list" +msgstr "Starter en kommandoliste" + +#: normal/menu_entry.c:1398 +msgid "Press any key to continue..." +msgstr "Tryk på en tast for at fortsætte..." + +#: normal/menu_text.c:180 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"F1 to boot, F2=Ctrl-a, F3=Ctrl-e, F4 for a command-line or ESC to discard " +"edits and return to the GRUB menu." +msgstr "" +"Minimal Emacs-agtig skærmredigering understøttes. TAB viser fuldførelser. " +"Tryk Ctrl-x for at starte, Ctrl-c for at få en kommandolinje, eller ESC for " +"at vende tilbage til menuen." + +#: normal/menu_text.c:185 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"Ctrl-x to boot, Ctrl-c for a command-line or ESC to discard edits and return " +"to the GRUB menu." +msgstr "" +"Minimal Emacs-agtig skærmredigering understøttes. TAB viser fuldførelser. " +"Tryk Ctrl-x for at starte, Ctrl-c for at få en kommandolinje, eller ESC for " +"at vende tilbage til menuen." + +#: normal/menu_text.c:193 +#, c-format +msgid "Use the %C and %C keys to select which entry is highlighted.\n" +msgstr "Brug tasterne %C og %C til at vælge fremhævet punkt.\n" + +#: normal/menu_text.c:210 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line. ESC to return previous menu.\n" +msgstr "" +"Tryk retur for at starte det valgte operativsystem, \"e\" for at redigere " +"kommandoerne før opstart, eller \"c\" for at få en kommandolinje. ESC vender " +"tilbage til den forrige menu.\n" + +#: normal/menu_text.c:218 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line.\n" +msgstr "" +"Tryk retur for at starte det valgte operativsystem, \"e\" for at redigere " +"kommandoerne før opstart, eller \"c\" for at få en kommandolinje.\n" + +#: normal/menu_text.c:370 +#, c-format +msgid "The highlighted entry will be executed automatically in %ds." +msgstr "Det fremhævede punkt vil blive kørt automatisk om %ds." + +#: normal/misc.c:41 +#, c-format +msgid "Partition %s:" +msgstr "Partition %s:" + +#: normal/misc.c:46 +#, c-format +msgid "Device %s:" +msgstr "Enhed %s:" + +#: normal/misc.c:52 +msgid "Filesystem cannot be accessed" +msgstr "Filsystem kan ikke tilgås" + +#: normal/misc.c:63 +#, c-format +msgid "Filesystem type %s" +msgstr "Filsystemtype %s" + +#: normal/misc.c:73 +#, c-format +msgid "- Label \"%s\"" +msgstr "- Etiket \"%s\"" + +#: normal/misc.c:88 +#, c-format +msgid "- Last modification time %d-%02d-%02d %02d:%02d:%02d %s" +msgstr "- Sidste modifikationstid %d-%02d-%02d %02d:%02d:%02d %s" + +#: normal/misc.c:111 +msgid "Unknown filesystem" +msgstr "Ukendt filsystem" + +#: normal/misc.c:113 +msgid "Partition table" +msgstr "Partitionstabel" + +#: term/serial.c:46 +msgid "Set the serial unit." +msgstr "Angiv den serielle enhed." + +#: term/serial.c:47 +msgid "Set the serial port address." +msgstr "Angiv adressen for den serielle port." + +#: term/serial.c:48 +msgid "Set the serial port speed." +msgstr "Angiv hastigheden for den serielle port." + +#: term/serial.c:49 +msgid "Set the serial port word length." +msgstr "Angiv word-længden for den serielle port." + +#: term/serial.c:50 +msgid "Set the serial port parity." +msgstr "Angiv pariteten for den serielle port." + +#: term/serial.c:51 +msgid "Set the serial port stop bits." +msgstr "Angiv stop-bit for den serielle port." + +#: term/serial.c:619 +#, fuzzy +msgid "[OPTIONS...]" +msgstr "[TILVALG] DISK" + +#: term/serial.c:620 +msgid "Configure serial port." +msgstr "" + +#: util/grub-mkimage.c:440 +msgid "the core image is too small" +msgstr "kerneaftrykket er for lille" + +#: util/grub-mkimage.c:451 +msgid "cannot compress the kernel image" +msgstr "kan ikke komprimere kerneaftryk" + +#: util/grub-mkimage.c:548 +msgid "prefix is too long" +msgstr "præfiks er for langt" + +#: util/grub-mkimage.c:672 +#, c-format +msgid "core image is too big (%p > %p)" +msgstr "kerneaftrykket er for stort (%p > %p)" + +#: util/grub-mkimage.c:678 +msgid "the core image is too big" +msgstr "kerneaftrykket er for stort" + +# bemærk: omkringstående linjer har småt begyndelsesbogstav +#: util/grub-mkimage.c:683 +#, c-format +msgid "diskboot.img size must be %u bytes" +msgstr "størrelsen af diskboot.img skal være %u byte" + +#: util/grub-mkimage.c:1168 util/i386/pc/grub-setup.c:619 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "Kør \"%s --help\" for yderligere information.\n" + +#: util/grub-mkimage.c:1187 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... [MODULES]\n" +"\n" +"Make a bootable image of GRUB.\n" +"\n" +" -d, --directory=DIR use images and modules under DIR [default=%s/" +"@platform@]\n" +" -p, --prefix=DIR set grub_prefix directory [default=%s]\n" +" -m, --memdisk=FILE embed FILE as a memdisk image\n" +" -f, --font=FILE embed FILE as a boot font\n" +" -c, --config=FILE embed FILE as boot config\n" +" -n, --note add NOTE segment for CHRP Open Firmware\n" +" -o, --output=FILE output a generated image to FILE [default=stdout]\n" +" -O, --format=FORMAT generate an image in format\n" +" available formats: %s\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 "" +"Brug: %s [TILVALG]... [MODULER]\n" +"\n" +"Opret et kørbart aftryk af GRUB.\n" +"\n" +" -d, --directory=KAT brug aftryk og moduler under KAT [standard=%s]\n" +" -p, --prefix=KAT angiv katalog for grub_prefix [standard=%s]\n" +" -m, --memdisk=FIL indlejr FIL som memdisk-aftryk\n" +" -f, --font=FIL indlejr FIL som opstartsskrifttype\n" +" -c, --config=FIL indlejr FIL som opstartskonfiguration\n" +" -o, --output=FIL udskriv genereret aftryk til FIL " +"[standard=stdout]\n" +" -O, --format=FORMAT generér et aftryk i FORMAT [standard=" + +#: util/grub-mkimage.c:1333 +#, c-format +msgid "cannot open %s" +msgstr "kan ikke åbne %s" + +#: util/i386/pc/grub-setup.c:164 +msgid "the first sector of the core file is not sector-aligned" +msgstr "første sektor af kernefilen er ikke sektorjusteret" + +#: util/i386/pc/grub-setup.c:178 +msgid "non-sector-aligned data is found in the core file" +msgstr "ikke-sektorjusterede data fundet i kernefilen" + +#: util/i386/pc/grub-setup.c:192 +msgid "the sectors of the core file are too fragmented" +msgstr "sektorerne i kernefilen er for fragmenterede" + +#: util/i386/pc/grub-setup.c:203 +#, c-format +msgid "the size of `%s' is not %u" +msgstr "størrelsen af \"%s\" er ikke %u" + +#: util/i386/pc/grub-setup.c:220 +#, c-format +msgid "the size of `%s' is too small" +msgstr "størrelsen af \"%s\" er for lille" + +#: util/i386/pc/grub-setup.c:222 +#, c-format +msgid "the size of `%s' is too large" +msgstr "størrelsen af \"%s\" er for stor" + +#: util/i386/pc/grub-setup.c:261 +#, c-format +msgid "unable to identify a filesystem in %s; safety check can't be performed" +msgstr "" +"kan ikke identificere noget filsystem i %s; sikkerhedstjek kan ikke udføres" + +#: 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 synes at indeholde et %s-filsystem, for hvilket det ikke vides om der er " +"reserveret plads til DOS-agtig opstart. Installation af GRUB der vil måske " +"resultere i ØDELÆGGELSE AF FILSYSTEMET, hvis værdifulde data overskrives af " +"grub-setup (--skip-fs-probe deaktiverer denne kontrol - bruges på eget " +"ansvar)" + +#: util/i386/pc/grub-setup.c:339 util/i386/pc/grub-setup.c:366 +msgid "" +"Attempting to install GRUB to a partitionless disk. This is a BAD idea." +msgstr "" +"Forsøger at installere GRUB på en partitionsløs disk. Dette er en DÅRLIG " +"idé." + +#: util/i386/pc/grub-setup.c:345 +msgid "" +"Attempting to install GRUB to a partition instead of the MBR. This is a BAD " +"idea." +msgstr "" +"Forsøger at installere GRUB til en partition frem for MBR. Dette er en " +"DÅRLIG idé." + +#: util/i386/pc/grub-setup.c:375 +msgid "No DOS-style partitions found" +msgstr "Ingen DOS-agtige partitioner fundet" + +#: util/i386/pc/grub-setup.c:380 +msgid "" +"This msdos-style partition label has no post-MBR gap; embedding won't be " +"possible!" +msgstr "" +"Denne msdos-agtige partitionsetiket har intet post-MBR-mellerum; indlejring " +"vil ikke være muligt!" + +#: util/i386/pc/grub-setup.c:382 +msgid "" +"This GPT partition label has no BIOS Boot Partition; embedding won't be " +"possible!" +msgstr "" +"Denne GPT-partitionsetiket har ingen BIOS-opstartspartition; indlejring vil " +"være umulig!" + +#: util/i386/pc/grub-setup.c:389 +msgid "Your core.img is unusually large. It won't fit in the embedding area." +msgstr "" +"Din core.img er usædvanlig stor og vil ikke passe ind i indlejringsområdet." + +#: util/i386/pc/grub-setup.c:391 +msgid "Your embedding area is unusually small. core.img won't fit in it." +msgstr "" +"Dit indlejringsområde er usædvanligt lille. Der er ikke plads til core.img." + +#: util/i386/pc/grub-setup.c:436 +msgid "" +"embedding is not possible, but this is required when the root device is on a " +"RAID array or LVM volume" +msgstr "" +"indlejring er ikke muligt, men dette kræves når rodenheden ligger på en RAID-" +"række eller LVM-diskenhed" + +#: util/i386/pc/grub-setup.c:439 +#, fuzzy +msgid "" +"Embedding is not possible. GRUB can only be installed in this setup by " +"using blocklists. However, blocklists are UNRELIABLE and their use is " +"discouraged." +msgstr "" +"Indlejring er ikke muligt. GRUB kan kun installeres i denne konfiguration " +"ved brug af bloklister. Dog er bloklister UTILREGNELIGE og deres brug " +"frarådes." + +#: util/i386/pc/grub-setup.c:443 +msgid "if you really want blocklists, use --force" +msgstr "hvis du virkelig vil have bloklister, så brug --force" + +#: util/i386/pc/grub-setup.c:462 +#, c-format +msgid "attempting to read the core image `%s' from GRUB" +msgstr "forsøger at læse kerneaftrykket \"%s\" fra GRUB" + +#: util/i386/pc/grub-setup.c:463 +#, c-format +msgid "attempting to read the core image `%s' from GRUB again" +msgstr "forsøger at læse kerneaftrykket \"%s\" fra GRUB igen" + +#: util/i386/pc/grub-setup.c:530 +#, c-format +msgid "cannot read `%s' correctly" +msgstr "kan ikke læse \"%s\" korrekt" + +#: util/i386/pc/grub-setup.c:543 +msgid "no terminator in the core image" +msgstr "ingen terminator i kerneaftrykket" + +#: util/i386/pc/grub-setup.c:554 +msgid "failed to read the first sector of the core image" +msgstr "kunne ikke læse første sektor af kerneaftrykket" + +#: util/i386/pc/grub-setup.c:560 +msgid "failed to read the rest sectors of the core image" +msgstr "kunne ikke læse restsektorerne i kerneaftrykket" + +#: util/i386/pc/grub-setup.c:579 +#, c-format +msgid "cannot open `%s'" +msgstr "kan ikke åbne \"%s\"" + +#: util/i386/pc/grub-setup.c:621 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... DEVICE\n" +"\n" +"Set up images to boot from DEVICE.\n" +"DEVICE must be a GRUB device (e.g. `(hd0,1)').\n" +"\n" +"You should not normally run %s directly. Use grub-install instead.\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 "" +"Brug: %s [TILVALG]... ENHED\n" +"\n" +"Konfigurér aftryk til opstart fra ENHED.\n" +"ENHED skal være en GRUB-enhed (f.eks. \"(hd0,1)\".\n" +"\n" +" -b, --boot-image=FIL brug FIL som opstartsaftryk [standard=%s]\n" +" -c, --core-image=FIL brug FIL som kerneaftryk [standard=%s]\n" +" -d, --directory=KAT brug GRUB-filer i kataloget DIR [standard=%s]\n" +" -m, --device-map=FIL brug FIL som enhedsafbildning [standard=%s]\n" +" -r, --root-device=ROD brug ROD som rodenhed [standard=guessed]\n" +" -f, --force installér selv hvis der opdages problemer\n" +" -s, --skip-fs-probe undersøg ikke ENHED for filsystemer\n" +" -h, --help vis denne besked og afslut\n" +" -V, --version udskriv versionsinformation og afslut\n" +" -v, --verbose udskriv ekstra information\n" +"\n" +"Rapportér fejl til <%s>.\n" + +#: util/i386/pc/grub-setup.c:753 +#, c-format +msgid "No device is specified.\n" +msgstr "Ingen enhed angivet.\n" + +#: util/i386/pc/grub-setup.c:759 +#, c-format +msgid "Unknown extra argument `%s'.\n" +msgstr "Ukendt ekstra argument \"%s\".\n" + +#: util/i386/pc/grub-setup.c:776 +#, c-format +msgid "Invalid device `%s'.\n" +msgstr "Ugyldig enhed \"%s\".\n" + +#: util/i386/pc/grub-setup.c:789 +#, c-format +msgid "invalid root device `%s'" +msgstr "ugyldig rodenhed \"%s\"" + +#: util/i386/pc/grub-setup.c:802 +msgid "cannot guess the root device. Specify the option `--root-device'" +msgstr "kan ikke gætte rodenheden. Brug tilvalget \"--root-device\"" + +#~ msgid "[class [handler]]" +#~ msgstr "[klasse [håndtering]]" + +#~ msgid "List or select a handler." +#~ msgstr "Udskriv eller vælg en håndtering." + +#~ msgid "Load XNU ramdisk. It will be seen as md0." +#~ msgstr "Indlæs XNU-ramdisk. Den vil kunne ses som md0." + +#~ msgid "no DOS-style partitions found" +#~ msgstr "ingen DOS-agtige partitioner fundet" + +#~ msgid "%s, with kFreeBSD %s" +#~ msgstr "%s, med kFreeBSD %s" + +#~ msgid "Loading kernel of FreeBSD %s ..." +#~ msgstr "Indlæser FreeBSD-kerne %s ..." + +#~ msgid "%s, with Linux %s (recovery mode)" +#~ msgstr "%s, med Linux %s (genoprettelsestilstand)" + +#~ msgid "%s, with Linux %s" +#~ msgstr "%s, med Linux %s" + +#~ msgid "Loading Linux %s ..." +#~ msgstr "Indlæser Linux %s ..." + +#~ msgid "Loading initial ramdisk ..." +#~ msgstr "Indlæser startramdisk ..." --- grub2-1.98+20100804.orig/po/ru.po +++ grub2-1.98+20100804/po/ru.po @@ -0,0 +1,1342 @@ +# translation of grub-1.97+20100124.ru.po to Russian +# Copyright (C) 2009, 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the grub package. +# +# Yuri Kozlov , 2009, 2010. +msgid "" +msgstr "" +"Project-Id-Version: grub 1.97+20100124\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-06-19 01:35+0100\n" +"PO-Revision-Date: 2010-01-25 21:49+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: commands/acpi.c:40 +msgid "Don't load host tables specified by comma-separated list." +msgstr "Не загружать таблицы компьютера, указанные через запятую." + +#: commands/acpi.c:43 +msgid "Load only tables specified by comma-separated list." +msgstr "Загружать только таблицы, указанные через запятую." + +#: commands/acpi.c:44 +msgid "Expose v1 tables." +msgstr "Обработать таблицы v1." + +#: commands/acpi.c:45 +msgid "Expose v2 and v3 tables." +msgstr "Обработать таблицы v2 и v3." + +#: commands/acpi.c:46 +msgid "Set OEMID of RSDP, XSDT and RSDT." +msgstr "Задать OEMID в RSDP, XSDT и RSDT." + +#: commands/acpi.c:48 +msgid "Set OEMTABLE ID of RSDP, XSDT and RSDT." +msgstr "Задать OEMTABLE ID в RSDP, XSDT и RSDT." + +#: commands/acpi.c:50 +msgid "Set OEMTABLE revision of RSDP, XSDT and RSDT." +msgstr "Задать ревизию OEMTABLE в RSDP, XSDT и RSDT." + +#: commands/acpi.c:52 +msgid "Set creator field of RSDP, XSDT and RSDT." +msgstr "Задать название создавшей программы в RSDP, XSDT и RSDT." + +#: commands/acpi.c:54 +msgid "Set creator revision of RSDP, XSDT and RSDT." +msgstr "Задать версию редакции создавшей программы в RSDP, XSDT и RSDT." + +#: commands/acpi.c:55 +msgid "" +"Don't update EBDA. May fix failures or hangs on some. BIOSes but makes it " +"ineffective with OS not receiving RSDP from GRUB." +msgstr "" +"Не обновлять EBDA. Может помочь при ошибках и подвисаниях с некоторыми BIOS, " +"но не оказывает влияния, если ОС не принимает RSDP от GRUB." + +#: commands/acpi.c:763 +msgid "" +"[-1|-2] [--exclude=TABLE1,TABLE2|--load-only=table1,table2] FILE1 [FILE2] " +"[...]" +msgstr "" +"[-1|-2] [--exclude=ТАБЛИЦА1,ТАБЛИЦА2|--load-only=таблица1,таблица2] ФАЙЛ1 " +"[ФАЙЛ2] [...]" + +#: commands/acpi.c:766 +msgid "Load host ACPI tables and tables specified by arguments." +msgstr "Загружать таблицы ACPI машины и таблицы, указанные в параметрах." + +#: commands/blocklist.c:113 commands/cat.c:82 commands/configfile.c:57 +#: commands/configfile.c:60 commands/configfile.c:65 commands/crc.c:64 +#: commands/minicmd.c:353 loader/i386/bsd.c:1287 loader/i386/bsd.c:1291 +#: loader/i386/bsd.c:1295 +msgid "FILE" +msgstr "ФАЙЛ" + +#: commands/blocklist.c:113 +msgid "Print a block list." +msgstr "Показать список блоков." + +#: commands/boot.c:190 +msgid "Boot an operating system." +msgstr "Загрузить операционную систему." + +#: commands/cat.c:82 commands/minicmd.c:353 +msgid "Show the contents of a file." +msgstr "Показать содержимое файла." + +#: commands/cmp.c:113 +msgid "FILE1 FILE2" +msgstr "ФАЙЛ1 ФАЙЛ2" + +#: commands/cmp.c:113 +msgid "Compare two files." +msgstr "Сравнить два файла." + +#: commands/configfile.c:57 +msgid "Load another config file." +msgstr "Загрузить другой файл настройки." + +#: commands/configfile.c:61 commands/configfile.c:66 +msgid "Load another config file without changing context." +msgstr "Загрузить другой файл настройки без смены контекста." + +#: commands/crc.c:65 +msgid "Calculate the crc32 checksum of a file." +msgstr "Вычислить контрольную сумму crc32 для файла." + +#: commands/date.c:139 +msgid "[[year-]month-day] [hour:minute[:second]]" +msgstr "[[год-]месяц-день] [часы:минуты[:секунды]]" + +#: commands/date.c:140 +msgid "Command to display/set current datetime." +msgstr "Команда для показа/настройки текущего времени." + +#: commands/echo.c:27 +msgid "Do not output the trailing newline." +msgstr "Не выдавать конечный символ новой строки." + +#: commands/echo.c:28 +msgid "Enable interpretation of backslash escapes." +msgstr "Включить обработку экранирующих символов обратной косой черты." + +#: commands/echo.c:117 +msgid "[-e|-n] STRING" +msgstr "[-e|-n] СТРОКА" + +#: commands/echo.c:117 +msgid "Display a line of text." +msgstr "Показать строку текста." + +#: commands/efi/fixvideo.c:103 +msgid "Fix video problem." +msgstr "Исправить проблему с видео." + +#: commands/efi/loadbios.c:207 +msgid "Fake BIOS." +msgstr "Ненастоящий BIOS." + +#: commands/efi/loadbios.c:211 +msgid "Load BIOS dump." +msgstr "Загрузить дамп BIOS." + +#: commands/gptsync.c:244 +msgid "DEVICE [PARTITION[+/-[TYPE]]] ..." +msgstr "УСТРОЙСТВО [РАЗДЕЛ[+/-[ТИП]]] ..." + +#: commands/gptsync.c:245 +#, fuzzy +msgid "" +"Fill hybrid MBR of GPT drive DEVICE. Specified partitions will be a part of " +"hybrid MBR. Up to 3 partitions are allowed. TYPE is an MBR type. + means " +"that partition is active. Only one partition can be active." +msgstr "" +"Укомплектовать GPT гибридным MBR для УСТРОЙСТВА. Указанные разделы будут " +"частью гибридного mbr. Можно указать до 3 разделов. В ТИПЕ задаётся тип MBR. " +"Символ + означает, что раздел активный. Активным может быть только один " +"раздел." + +#: commands/halt.c:39 +msgid "" +"Halts the computer. This command does not work on all firmware " +"implementations." +msgstr "Остановить компьютер. Эта команда работает не везде." + +#: commands/hdparm.c:30 +msgid "" +"Set Advanced Power Management\n" +"(1=low, ..., 254=high, 255=off)." +msgstr "" +"Настроить Advanced Power Management\n" +"(1=мин, ..., 254=макс, 255=выкл)." + +#: commands/hdparm.c:33 +msgid "Check power mode." +msgstr "Проверка режима питания." + +#: commands/hdparm.c:34 +msgid "Freeze ATA security settings until reset." +msgstr "Зафиксировать настройки безопасности ATA до перезагрузки." + +#: commands/hdparm.c:36 +msgid "Check SMART health status." +msgstr "Проверить состояние работоспособности по SMART." + +#: commands/hdparm.c:37 +msgid "" +"Set Automatic Acoustic Management\n" +"(0=off, 128=quiet, ..., 254=fast)." +msgstr "" +"Настроить Automatic Acoustic Management\n" +"(0=выкл, 128=тихо, ..., 254=быстро)." + +#: commands/hdparm.c:40 +msgid "" +"Set standby timeout\n" +"(0=off, 1=5s, 2=10s, ..., 240=20m, 241=30m, ...)." +msgstr "" +"Настроить задержку до перехода в дежурный режим (standby)\n" +"(0=выкл, 1=5с, 2=10с, ..., 240=20мин, 241=30мин, ...)." + +#: commands/hdparm.c:43 +msgid "Set drive to standby mode." +msgstr "Перевести устройство в дежурный режим." + +#: commands/hdparm.c:44 +msgid "Set drive to sleep mode." +msgstr "Перевести устройство в спящий (sleep) режим." + +#: commands/hdparm.c:45 +msgid "Print drive identity and settings." +msgstr "Показать идентификационную информацию и настройки устройства." + +#: commands/hdparm.c:47 +msgid "Dump contents of ATA IDENTIFY sector." +msgstr "Сделать дамп сектора ATA IDENTIFY." + +#: commands/hdparm.c:49 +msgid "Disable/enable SMART (0/1)." +msgstr "Выключить/включить SMART (0/1)." + +#: commands/hdparm.c:50 +msgid "Do not print messages." +msgstr "Не показывать сообщения." + +#: commands/hdparm.c:414 +msgid "[OPTIONS] DISK" +msgstr "[ПАРАМЕТРЫ] ДИСК" + +#: commands/hdparm.c:415 +msgid "Get/set ATA disk parameters." +msgstr "Получить/Задать параметры ATA-диска." + +#: commands/help.c:112 lib/arg.c:110 +msgid "Usage:" +msgstr "Использование:" + +#: commands/help.c:129 +msgid "[PATTERN ...]" +msgstr "[ШАБЛОН ...]" + +#: commands/help.c:130 +msgid "Show a help message." +msgstr "Показать справочное сообщение." + +#: commands/hexdump.c:30 +msgid "Skip offset bytes from the beginning of file." +msgstr "Пропустить указанное число байт от начала файла." + +#: commands/hexdump.c:32 +msgid "Read only LENGTH bytes." +msgstr "Прочитать только ЗАДАННОЕ число байт." + +#: commands/hexdump.c:125 +msgid "[OPTIONS] FILE_OR_DEVICE" +msgstr "[ПАРАМЕТРЫ] ФАЙЛ_ИЛИ_УСТРОЙСТВО" + +#: commands/hexdump.c:126 +msgid "Dump the contents of a file or memory." +msgstr "Сделать дамп содержимого файла или памяти." + +#: commands/i386/cpuid.c:37 +msgid "Check for long mode flag (default)." +msgstr "Проверить флаг \"длинного\" режима (по умолчанию)." + +#: commands/i386/cpuid.c:92 +msgid "Check for CPU features." +msgstr "Проверить возможности ЦП." + +#: commands/i386/pc/drivemap.c:37 +msgid "Show the current mappings." +msgstr "Показать текущие отображения." + +#: commands/i386/pc/drivemap.c:38 +msgid "Reset all mappings to the default values." +msgstr "Сбросить все отображения в значения по умолчанию." + +#: commands/i386/pc/drivemap.c:39 +msgid "Perform both direct and reverse mappings." +msgstr "Выполнить прямые и обратные отображения." + +#: commands/i386/pc/drivemap.c:406 +msgid "-l | -r | [-s] grubdev osdisk." +msgstr "-l | -r | [-s] устройство_grub диск_ос." + +#: commands/i386/pc/drivemap.c:407 +msgid "Manage the BIOS drive mappings." +msgstr "Управлять BIOS отображениями устройств." + +#: commands/i386/pc/halt.c:27 +msgid "Do not use APM to halt the computer." +msgstr "Не использовать APM для останова компьютера." + +#: commands/i386/pc/halt.c:51 +msgid "Halt the system, if possible using APM." +msgstr "Остановить систему, если возможно, с помощью APM." + +#: commands/i386/pc/play.c:266 +msgid "FILE | TEMPO [PITCH1 DURATION1] [PITCH2 DURATION2] ... " +msgstr "" + +#: commands/i386/pc/play.c:267 +msgid "Play a tune." +msgstr "Проиграть тон." + +#: commands/i386/pc/pxecmd.c:46 +msgid "Unload PXE environment." +msgstr "Выгрузить окружение PXE." + +#: commands/i386/pc/vbeinfo.c:179 +msgid "List compatible VESA BIOS extension video modes." +msgstr "Показать список видеорежимов расширения VESA BIOS." + +#: commands/i386/pc/vbetest.c:173 +msgid "Test VESA BIOS Extension 2.0+ support." +msgstr "Провести тест поддержки VESA BIOS Extension 2.0+." + +#: commands/ieee1275/suspend.c:43 +msgid "Return to Open Firmware prompt." +msgstr "Вернуться в приглашение Open Firmware." + +#: commands/keystatus.c:28 +msgid "Check Shift key." +msgstr "Проверить клавишу Shift." + +#: commands/keystatus.c:29 +msgid "Check Control key." +msgstr "Проверить клавишу Control." + +#: commands/keystatus.c:30 +msgid "Check Alt key." +msgstr "Проверить клавишу Alt." + +#: commands/keystatus.c:85 +msgid "[--shift] [--ctrl] [--alt]" +msgstr "[--shift] [--ctrl] [--alt]" + +#: commands/keystatus.c:86 +msgid "Check key modifier status." +msgstr "Проверить состояние модификатора клавиш." + +#: commands/loadenv.c:33 +msgid "Specify filename." +msgstr "Указать имя файла." + +#: commands/loadenv.c:378 commands/loadenv.c:384 +msgid "[-f FILE]" +msgstr "[-f ФАЙЛ]" + +#: commands/loadenv.c:379 +msgid "Load variables from environment block file." +msgstr "Загрузить переменные из файла блока окружения." + +#: commands/loadenv.c:385 +msgid "List variables from environment block file." +msgstr "Показать список переменных из файла блока окружения." + +#: commands/loadenv.c:390 +msgid "[-f FILE] variable_name [...]" +msgstr "[-f ФАЙЛ] имя_переменной [...]" + +#: commands/loadenv.c:391 +msgid "Save variables to environment block file." +msgstr "Сохранить переменные в файл блока окружения." + +#: commands/ls.c:37 +msgid "Show a long list with more detailed information." +msgstr "Показать длинный список с более подробной информацией." + +#: commands/ls.c:38 +msgid "Print sizes in a human readable format." +msgstr "Показать размеры в понятном человеку формате." + +#: commands/ls.c:39 +msgid "List all files." +msgstr "Показать список всех файлов." + +#: commands/ls.c:269 +msgid "[-l|-h|-a] [FILE]" +msgstr "[-l|-h|-a] [ФАЙЛ]" + +#: commands/ls.c:270 +msgid "List devices and files." +msgstr "Список устройств и файлов." + +#: commands/lsmmap.c:51 +msgid "List memory map provided by firmware." +msgstr "Показать карту памяти, предоставленную микропрограммой (firmware)." + +#: commands/lspci.c:228 +msgid "List PCI devices." +msgstr "Список устройств PCI." + +#: commands/memrw.c:31 +msgid "Save read value into variable VARNAME." +msgstr "Сохранить прочитанное значение в переменную ИМЯ_ПЕРЕМЕННОЙ." + +#: commands/memrw.c:123 commands/memrw.c:126 commands/memrw.c:129 +#: commands/minicmd.c:362 +msgid "ADDR" +msgstr "АДРЕС" + +#: commands/memrw.c:123 +msgid "Read byte from ADDR." +msgstr "Прочитать байт по АДРЕСУ." + +#: commands/memrw.c:126 +msgid "Read word from ADDR." +msgstr "Прочитать слово по АДРЕСУ." + +#: commands/memrw.c:129 +msgid "Read dword from ADDR." +msgstr "Прочитать двойное слово по АДРЕСУ." + +#: commands/memrw.c:132 commands/memrw.c:135 commands/memrw.c:138 +msgid "ADDR VALUE [MASK]" +msgstr "АДРЕС ЗНАЧЕНИЕ [МАСКА]" + +#: commands/memrw.c:132 +msgid "Write byte VALUE to ADDR." +msgstr "Записать байтовое ЗНАЧЕНИЕ по АДРЕСУ." + +#: commands/memrw.c:135 +msgid "Write word VALUE to ADDR." +msgstr "Записать ЗНАЧЕНИЕ размером с слово по АДРЕСУ." + +#: commands/memrw.c:138 +msgid "Write dword VALUE to ADDR." +msgstr "Записать ЗНАЧЕНИЕ размером с двойное слово по АДРЕСУ." + +#: commands/minicmd.c:356 +msgid "Show this message." +msgstr "Показать это сообщение." + +#: commands/minicmd.c:359 commands/probe.c:154 +msgid "[DEVICE]" +msgstr "[УСТРОЙСТВО]" + +#: commands/minicmd.c:359 +msgid "Set the root device." +msgstr "Задать корневое устройство." + +#: commands/minicmd.c:362 +msgid "Dump memory." +msgstr "Сделать дамп памяти." + +#: commands/minicmd.c:365 +msgid "MODULE" +msgstr "МОДУЛЬ" + +#: commands/minicmd.c:365 +msgid "Remove a module." +msgstr "Удалить модуль." + +#: commands/minicmd.c:368 +msgid "Show loaded modules." +msgstr "Показать загруженные модули." + +#: commands/minicmd.c:371 +msgid "Exit from GRUB." +msgstr "Выйти из GRUB." + +#: commands/minicmd.c:374 +msgid "Clear the screen." +msgstr "Очистить экран." + +#: commands/parttool.c:325 +msgid "PARTITION COMMANDS" +msgstr "КОМАНДЫ РАБОТЫ С РАЗДЕЛАМИ" + +#: commands/password.c:78 +msgid "USER PASSWORD" +msgstr "ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ" + +#: commands/password.c:79 +msgid "Set user password (plaintext). Unrecommended and insecure." +msgstr "" +"Задать пароль пользователя (в открытом виде). Не рекомендуется и небезопасно." + +#: commands/probe.c:38 +msgid "Set a variable to return value." +msgstr "Задать переменную для возврата значения." + +#: commands/probe.c:39 +msgid "Determine driver." +msgstr "Определить драйвер." + +#: commands/probe.c:40 +msgid "Determine partition map type." +msgstr "Определить тип карты разделов." + +#: commands/probe.c:41 +msgid "Determine filesystem type." +msgstr "Определить тип файловой системы." + +#: commands/probe.c:42 +msgid "Determine filesystem UUID." +msgstr "Определить UUID файловой системы." + +#: commands/probe.c:43 +msgid "Determine filesystem label." +msgstr "Определить метку файловой системы." + +#: commands/probe.c:155 +msgid "Retrieve device info." +msgstr "Получить информацию об устройстве." + +#: commands/read.c:83 +msgid "[ENVVAR]" +msgstr "[ПЕРЕМ_ОКРУЖ]" + +#: commands/read.c:84 +msgid "Set variable with user input." +msgstr "Задать переменную с введёнными данными пользователя." + +#: commands/reboot.c:39 +msgid "Reboot the computer." +msgstr "Перезагрузить компьютер." + +#: commands/search.c:161 +msgid "NAME [VARIABLE]" +msgstr "ИМЯ [ПЕРЕМЕННАЯ]" + +#: commands/search_file.c:5 +msgid "" +"Search devices by file. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Искать устройства по файлу. Если указана ПЕРЕМЕННАЯ, то ей присвоится первое " +"найденное устройство." + +#: commands/search_label.c:5 +msgid "" +"Search devices by label. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Искать устройства по метке. Если указана ПЕРЕМЕННАЯ, то ей присвоится первое " +"найденное устройство." + +#: commands/search_uuid.c:5 +msgid "" +"Search devices by UUID. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Искать устройства по UUID. Если указана ПЕРЕМЕННАЯ, то ей присвоится первое " +"найденное устройство." + +#: commands/sleep.c:30 +msgid "Verbose countdown." +msgstr "Детальный обратный отсчёт." + +#: commands/sleep.c:31 +msgid "Interruptible with ESC." +msgstr "Можно прервать по ESC." + +#: commands/sleep.c:105 +msgid "NUMBER_OF_SECONDS" +msgstr "ЧИСЛО_СЕКУНД" + +#: commands/sleep.c:106 +msgid "Wait for a specified number of seconds." +msgstr "Подождать указанное число секунд." + +#: commands/test.c:424 +msgid "EXPRESSION ]" +msgstr "ВЫРАЖЕНИЕ ]" + +#: commands/test.c:424 commands/test.c:426 +msgid "Evaluate an expression." +msgstr "Вычислить выражение." + +#: commands/test.c:426 +msgid "EXPRESSION" +msgstr "ВЫРАЖЕНИЕ" + +#: commands/true.c:47 +msgid "Do nothing, successfully." +msgstr "Ничего не сделано, успешное завершение." + +#: commands/true.c:50 +msgid "Do nothing, unsuccessfully." +msgstr "Ничего не сделано, неудачное завершение." + +#: commands/usbtest.c:208 +msgid "Test USB support." +msgstr "Тест поддержки USB." + +#: commands/videotest.c:180 +msgid "Test video subsystem." +msgstr "Тест видеоподсистемы." + +#: commands/xnu_uuid.c:92 +msgid "GRUBUUID [VARNAME]" +msgstr "GRUBUUID [ИМЯ_ПЕРЕМЕННОЙ]" + +#: commands/xnu_uuid.c:93 +msgid "Transform 64-bit UUID to format suitable for XNU." +msgstr "Преобразовать 64-бит UUID в формат, пригодный для XNU." + +#: disk/loopback.c:40 +msgid "Delete the loopback device entry." +msgstr "Удалить запись об устройстве обратной петли." + +#: disk/loopback.c:41 +msgid "Simulate a hard drive with partitions." +msgstr "Имитировать жёсткий диск с разделами." + +#: disk/loopback.c:249 +msgid "[-d|-p] DEVICENAME FILE." +msgstr "[-d|-p] ИМЯ_УСТРОЙСТВА ФАЙЛ." + +#: disk/loopback.c:250 +msgid "Make a device of a file." +msgstr "Создать устройство файла." + +#: hello/hello.c:43 +msgid "Say \"Hello World\"." +msgstr "Сказать \"Hello World\"." + +#: lib/arg.c:34 +msgid "Display this help and exit." +msgstr "Показать эту справку и закончить работу." + +#: lib/arg.c:36 +msgid "Display the usage of this command and exit." +msgstr "Показать справку по этой команде и закончить работу." + +#: loader/efi/appleloader.c:325 +msgid "Boot legacy system." +msgstr "Загрузить старую систему." + +#: loader/efi/chainloader.c:340 loader/i386/pc/chainloader.c:166 +msgid "Load another boot loader." +msgstr "Загрузить другой загрузчик." + +#: loader/i386/bsd.c:65 +msgid "Display output on all consoles." +msgstr "Выводить сообщения на всех консолях." + +#: loader/i386/bsd.c:66 +msgid "Use serial console." +msgstr "Использовать консоль на последовательном порту." + +#: loader/i386/bsd.c:67 loader/i386/bsd.c:93 loader/i386/bsd.c:114 +msgid "Ask for file name to reboot from." +msgstr "Запросить имя файла для перезагрузки." + +#: loader/i386/bsd.c:68 +msgid "Use CDROM as root." +msgstr "Использовать CDROM в качестве корня." + +#: loader/i386/bsd.c:69 +msgid "Invoke user configuration routing." +msgstr "Выполнить пользовательскую настройку маршрутизации." + +#: loader/i386/bsd.c:70 loader/i386/bsd.c:97 loader/i386/bsd.c:117 +msgid "Enter in KDB on boot." +msgstr "Войти в KDB при загрузке." + +#: loader/i386/bsd.c:71 +msgid "Use GDB remote debugger instead of DDB." +msgstr "Использовать удалённый отладчик GDB вместо DDB." + +#: loader/i386/bsd.c:72 +msgid "Disable all boot output." +msgstr "Выключить вывод при загрузке." + +#: loader/i386/bsd.c:74 +msgid "Wait for keypress after every line of output." +msgstr "Ждать нажатия любой клавиши после каждой выводимой строки." + +#: loader/i386/bsd.c:76 +msgid "Use compiled-in rootdev." +msgstr "Использовать вкомпилированный rootdev." + +#: loader/i386/bsd.c:77 loader/i386/bsd.c:96 loader/i386/bsd.c:120 +msgid "Boot into single mode." +msgstr "Загрузиться в однопользовательский режим." + +#: loader/i386/bsd.c:78 loader/i386/bsd.c:121 +msgid "Boot with verbose messages." +msgstr "Показывать подробные сообщения при загрузке." + +#: loader/i386/bsd.c:94 loader/i386/bsd.c:115 +msgid "Don't reboot, just halt." +msgstr "Не перезагружаться, а выполнить останов." + +#: loader/i386/bsd.c:95 loader/i386/bsd.c:116 +msgid "Change configured devices." +msgstr "Изменить настроенные устройства." + +#: loader/i386/bsd.c:98 loader/i386/bsd.c:124 +msgid "Set root device." +msgstr "Задать корневое устройство." + +#: loader/i386/bsd.c:112 +msgid "Disable SMP." +msgstr "Выключить SMP." + +#: loader/i386/bsd.c:113 +msgid "Disable ACPI." +msgstr "Выключить ACPI." + +#: loader/i386/bsd.c:119 +msgid "Don't display boot diagnostic messages." +msgstr "Не выводить отладочные загрузочные сообщения." + +#: loader/i386/bsd.c:122 +msgid "Boot with debug messages." +msgstr "Загружаться с выводом отладочных сообщений." + +#: loader/i386/bsd.c:123 +msgid "Supress normal output (warnings remain)." +msgstr "Не показывать обычные сообщения (только предупреждения)." + +#: loader/i386/bsd.c:124 +msgid "DEVICE" +msgstr "УСТРОЙСТВО" + +#: loader/i386/bsd.c:1287 +msgid "Load kernel of FreeBSD." +msgstr "Загрузить ядро FreeBSD." + +#: loader/i386/bsd.c:1291 +msgid "Load kernel of OpenBSD." +msgstr "Загрузить ядро OpenBSD." + +#: loader/i386/bsd.c:1295 +msgid "Load kernel of NetBSD." +msgstr "Загрузить ядро NetBSD." + +#: loader/i386/bsd.c:1299 +msgid "Load FreeBSD env." +msgstr "Загрузить окружение FreeBSD." + +#: loader/i386/bsd.c:1302 +msgid "Load FreeBSD kernel module." +msgstr "Загрузить модуль ядра FreeBSD." + +#: loader/i386/bsd.c:1305 +msgid "Load FreeBSD kernel module (ELF)." +msgstr "Загрузить модуль ядра FreeBSD (ELF)." + +#: loader/i386/efi/linux.c:1011 loader/i386/ieee1275/linux.c:301 +#: loader/i386/linux.c:1012 loader/i386/pc/linux.c:399 +#: loader/powerpc/ieee1275/linux.c:353 loader/sparc64/ieee1275/linux.c:519 +msgid "Load Linux." +msgstr "Загрузить Linux." + +#: loader/i386/efi/linux.c:1013 loader/i386/ieee1275/linux.c:303 +#: loader/i386/linux.c:1014 loader/i386/pc/linux.c:402 +#: loader/powerpc/ieee1275/linux.c:355 loader/sparc64/ieee1275/linux.c:521 +msgid "Load initrd." +msgstr "Загрузить initrd." + +#: loader/i386/xnu.c:1032 +msgid "Load device-properties dump." +msgstr "Загрузить дамп свойств устройства." + +#: loader/multiboot.c:337 +msgid "Load a multiboot 2 kernel." +msgstr "Загрузить ядро multiboot 2." + +#: loader/multiboot.c:340 +#, fuzzy +msgid "Load a multiboot 2 module." +msgstr "Загрузить модуль multiboot." + +#: loader/multiboot.c:343 +msgid "Load a multiboot kernel." +msgstr "Загрузить ядро multiboot." + +#: loader/multiboot.c:346 +msgid "Load a multiboot module." +msgstr "Загрузить модуль multiboot." + +#: loader/xnu.c:1428 +msgid "Load XNU image." +msgstr "Загрузить образ XNU." + +#: loader/xnu.c:1430 +msgid "Load 64-bit XNU image." +msgstr "Загрузить 64-битный образ XNU." + +#: loader/xnu.c:1432 +msgid "Load XNU extension package." +msgstr "Загрузить пакет расширения XNU." + +#: loader/xnu.c:1434 +msgid "Load XNU extension." +msgstr "Загрузить расширение XNU." + +#: loader/xnu.c:1436 +msgid "DIRECTORY [OSBundleRequired]" +msgstr "КАТАЛОГ [OSBundleRequired]" + +#: loader/xnu.c:1437 +msgid "Load XNU extension directory." +msgstr "Загрузить каталог с расширением XNU." + +#: loader/xnu.c:1444 +msgid "Load a splash image for XNU." +msgstr "Загрузить образ заставки для XNU." + +#: loader/xnu.c:1449 +msgid "Load XNU hibernate image." +msgstr "Загрузить образ XNU для выхода из спящего режима." + +#: normal/auth.c:217 +msgid "Enter username: " +msgstr "Введите имя пользователя: " + +#: normal/auth.c:222 +msgid "Enter password: " +msgstr "Введите пароль: " + +#: normal/color.c:80 +#, c-format +msgid "Warning: syntax error (missing slash) in `%s'\n" +msgstr "Предупреждение: синтаксическая ошибка (отсутствует косая черта) в %s\n" + +#: normal/color.c:89 +#, c-format +msgid "Warning: invalid foreground color `%s'\n" +msgstr "Предупреждение: неправильный цвет текста (foreground) %s\n" + +#: normal/color.c:95 +#, c-format +msgid "Warning: invalid background color `%s'\n" +msgstr "Предупреждение: неправильный цвет фона (background) %s\n" + +#: normal/dyncmd.c:144 +msgid "not loaded" +msgstr "не загружен" + +#: normal/main.c:415 +#, c-format +msgid "GNU GRUB version %s" +msgstr "GNU GRUB, версия %s" + +#: normal/main.c:552 +#, c-format +msgid "" +"Minimal BASH-like line editing is supported. For the first word, TAB lists " +"possible command completions. Anywhere else TAB lists possible device or " +"file completions. %s" +msgstr "" +"Поддерживается несколько BASH-подобных команд редактирования строки. Есть " +"вывод списка команд по TAB для дополнения. Также есть везде, где возможно, " +"вывод списка по TAB для устройств или файлов. %s" + +#: normal/main.c:555 +msgid "ESC at any time exits." +msgstr "Для выхода нажмите ESC в любой момент." + +#: normal/main.c:670 +msgid "Enter normal mode." +msgstr "" + +#: normal/main.c:672 +msgid "Exit from normal mode." +msgstr "" + +#: normal/menu_entry.c:1061 +msgid "Possible commands are:" +msgstr "Возможные команды:" + +#: normal/menu_entry.c:1065 +msgid "Possible devices are:" +msgstr "Возможные устройства:" + +#: normal/menu_entry.c:1069 +msgid "Possible files are:" +msgstr "Возможные файлы:" + +#: normal/menu_entry.c:1073 +msgid "Possible partitions are:" +msgstr "Возможные разделы:" + +#: normal/menu_entry.c:1077 +msgid "Possible arguments are:" +msgstr "Возможные параметры:" + +#: normal/menu_entry.c:1081 +msgid "Possible things are:" +msgstr "Возможные элементы:" + +#: normal/menu_entry.c:1185 +msgid "Booting a command list" +msgstr "Загрузка списка команд" + +#: normal/menu_entry.c:1398 +msgid "Press any key to continue..." +msgstr "Нажмите любую клавишу для продолжения..." + +#: normal/menu_text.c:180 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"F1 to boot, F2=Ctrl-a, F3=Ctrl-e, F4 for a command-line or ESC to discard " +"edits and return to the GRUB menu." +msgstr "" +"Поддерживается несколько Emacs-подобных команд редактирования на экране. " +"Есть списки дополнений по TAB. Нажмите Ctrl-x для загрузки, Ctrl-c для " +"получения командной строки или ESC для возврата в меню." + +#: normal/menu_text.c:185 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"Ctrl-x to boot, Ctrl-c for a command-line or ESC to discard edits and return " +"to the GRUB menu." +msgstr "" +"Поддерживается несколько Emacs-подобных команд редактирования на экране. " +"Есть списки дополнений по TAB. Нажмите Ctrl-x для загрузки, Ctrl-c для " +"получения командной строки или ESC для возврата в меню." + +#: normal/menu_text.c:193 +#, c-format +msgid "Use the %C and %C keys to select which entry is highlighted.\n" +msgstr "Используйте клавиши %C и %C для перемещения по элементам.\n" + +#: normal/menu_text.c:210 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line. ESC to return previous menu.\n" +msgstr "" +"Нажмите \"enter\" для загрузки выбранной ОС, \"e\" для редактирования команд " +"до загрузки или \"c\" для получения командной строки. По ESC осуществляется " +"возврат в предыдущее меню.\n" + +#: normal/menu_text.c:218 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line.\n" +msgstr "" +"Нажмите \"enter\" для загрузки выбранной ОС, \"e\" для редактирования команд " +"до загрузки или \"c\" для получения командной строки.\n" + +#: normal/menu_text.c:370 +#, c-format +msgid "The highlighted entry will be executed automatically in %ds." +msgstr "Выделенный пункт будет выполнен автоматически через %dс." + +#: normal/misc.c:41 +#, c-format +msgid "Partition %s:" +msgstr "Раздел %s:" + +#: normal/misc.c:46 +#, c-format +msgid "Device %s:" +msgstr "Устройство %s:" + +#: normal/misc.c:52 +msgid "Filesystem cannot be accessed" +msgstr "Файловая система недоступна" + +#: normal/misc.c:63 +#, c-format +msgid "Filesystem type %s" +msgstr "Тип файловой системы %s" + +#: normal/misc.c:73 +#, c-format +msgid "- Label \"%s\"" +msgstr "- Метка \"%s\"" + +#: normal/misc.c:88 +#, c-format +msgid "- Last modification time %d-%02d-%02d %02d:%02d:%02d %s" +msgstr "- Время последнего изменения %d-%02d-%02d %02d:%02d:%02d %s" + +#: normal/misc.c:111 +msgid "Unknown filesystem" +msgstr "Неизвестная файловая система" + +#: normal/misc.c:113 +msgid "Partition table" +msgstr "Таблица разделов" + +#: term/serial.c:46 +msgid "Set the serial unit." +msgstr "Задать номер последовательного порта." + +#: term/serial.c:47 +msgid "Set the serial port address." +msgstr "Задать адрес последовательного порта." + +#: term/serial.c:48 +msgid "Set the serial port speed." +msgstr "Задать скорость последовательного порта." + +#: term/serial.c:49 +msgid "Set the serial port word length." +msgstr "Задать длину слова последовательного порта." + +#: term/serial.c:50 +msgid "Set the serial port parity." +msgstr "Задать чётность последовательного порта." + +#: term/serial.c:51 +msgid "Set the serial port stop bits." +msgstr "Задать количество стоп-битов последовательного порта." + +#: term/serial.c:619 +#, fuzzy +msgid "[OPTIONS...]" +msgstr "[ПАРАМЕТРЫ] ДИСК" + +#: term/serial.c:620 +msgid "Configure serial port." +msgstr "" + +#: util/grub-mkimage.c:440 +msgid "the core image is too small" +msgstr "базовый образ слишком мал" + +#: util/grub-mkimage.c:451 +msgid "cannot compress the kernel image" +msgstr "не удалось сжать образ ядра" + +#: util/grub-mkimage.c:548 +msgid "prefix is too long" +msgstr "слишком длинный префикс" + +#: util/grub-mkimage.c:672 +#, c-format +msgid "core image is too big (%p > %p)" +msgstr "базовый образ слишком большой (%p > %p)" + +#: util/grub-mkimage.c:678 +msgid "the core image is too big" +msgstr "базовый образ слишком большой" + +#: util/grub-mkimage.c:683 +#, c-format +msgid "diskboot.img size must be %u bytes" +msgstr "размер diskboot.img должен быть %u байт" + +#: util/grub-mkimage.c:1168 util/i386/pc/grub-setup.c:619 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "По команде %s --help можно получить дополнительную информацию.\n" + +#: util/grub-mkimage.c:1187 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... [MODULES]\n" +"\n" +"Make a bootable image of GRUB.\n" +"\n" +" -d, --directory=DIR use images and modules under DIR [default=%s/" +"@platform@]\n" +" -p, --prefix=DIR set grub_prefix directory [default=%s]\n" +" -m, --memdisk=FILE embed FILE as a memdisk image\n" +" -f, --font=FILE embed FILE as a boot font\n" +" -c, --config=FILE embed FILE as boot config\n" +" -n, --note add NOTE segment for CHRP Open Firmware\n" +" -o, --output=FILE output a generated image to FILE [default=stdout]\n" +" -O, --format=FORMAT generate an image in format\n" +" available formats: %s\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 "" +"Использование: %s [ПАРАМЕТР]... [МОДУЛИ]\n" +"\n" +"Создаёт загрузочный образ GRUB.\n" +"\n" +" -d, --directory=КАТ использовать образы и модули из КАТалога\n" +" [по умолчанию %s]\n" +" -p, --prefix=КАТ задать каталог для grub_prefix [по умолчанию %s]\n" +" -m, --memdisk=ФАЙЛ встроить ФАЙЛ в качестве образа memdisk\n" +" -f, --font=ФАЙЛ встроить для загрузчика ФАЙЛ с шрифтом\n" +" -c, --config=ФАЙЛ встроить ФАЙЛ в качестве загрузочного\n" +" файла настройки\n" +" -o, --output=ФАЙЛ записать созданный образ в ФАЙЛ\n" +" [по умолчанию=stdout]\n" +" -O, --format=ФОРМАТ сгенериорвать образ в формате [по умолчанию " + +#: util/grub-mkimage.c:1333 +#, c-format +msgid "cannot open %s" +msgstr "не удалось открыть %s" + +#: util/i386/pc/grub-setup.c:164 +msgid "the first sector of the core file is not sector-aligned" +msgstr "первый сектор базового файла не выровнен посекторно" + +#: util/i386/pc/grub-setup.c:178 +msgid "non-sector-aligned data is found in the core file" +msgstr "в базовом файле найдены невыравненные посекторно данные" + +#: util/i386/pc/grub-setup.c:192 +msgid "the sectors of the core file are too fragmented" +msgstr "секторы базового файла слишком фрагментированы" + +#: util/i386/pc/grub-setup.c:203 +#, c-format +msgid "the size of `%s' is not %u" +msgstr "размер %s не равен %u" + +#: util/i386/pc/grub-setup.c:220 +#, c-format +msgid "the size of `%s' is too small" +msgstr "размер %s слишком мал" + +#: util/i386/pc/grub-setup.c:222 +#, 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 "" +"не удалось определить файловую систему в %s; невозможно выполнить безопасную " +"проверку" + +#: 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 содержит файловую систему %s, на которой, как известно, нет " +"места для загрузчика в стиле DOS. Установка GRUB в этом случае может " +"привести к ПОВРЕЖДЕНИЮ ФАЙЛОВОЙ СИСТЕМЫ, если важные данные будут " +"перезаписаны grub-setup (параметр --skip-fs-probe выключает эту проверку, но " +"вас предупредили)" + +#: util/i386/pc/grub-setup.c:339 util/i386/pc/grub-setup.c:366 +msgid "" +"Attempting to install GRUB to a partitionless disk. This is a BAD idea." +msgstr "Попытка установить GRUB на диск без разделов. Лучше этого НЕ ДЕЛАТЬ." + +#: util/i386/pc/grub-setup.c:345 +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:375 +msgid "No DOS-style partitions found" +msgstr "Разделов в стиле DOS не найдено" + +#: util/i386/pc/grub-setup.c:380 +msgid "" +"This msdos-style partition label has no post-MBR gap; embedding won't be " +"possible!" +msgstr "" +"Метка раздела в стиле msdos не имеет промежутка после MBR; встраивание " +"невозможно!" + +#: util/i386/pc/grub-setup.c:382 +msgid "" +"This GPT partition label has no BIOS Boot Partition; embedding won't be " +"possible!" +msgstr "" +"Метка раздела GPT не имеет BIOS Boot Partition; встраивание невозможно!" + +#: util/i386/pc/grub-setup.c:389 +msgid "Your core.img is unusually large. It won't fit in the embedding area." +msgstr "" +"Данный core.img необычно большого размера. Он не влезет во встраиваемую " +"область." + +#: util/i386/pc/grub-setup.c:391 +msgid "Your embedding area is unusually small. core.img won't fit in it." +msgstr "" +"Встраиваемая область необычно маленького размера. core.img не влезет в неё." + +#: util/i386/pc/grub-setup.c:436 +msgid "" +"embedding is not possible, but this is required when the root device is on a " +"RAID array or LVM volume" +msgstr "" +"встраивание невозможно, но оно необходимо, если корневое устройство " +"располагается в RAID-массиве или томе LVM." + +#: util/i386/pc/grub-setup.c:439 +#, fuzzy +msgid "" +"Embedding is not possible. GRUB can only be installed in this setup by " +"using blocklists. However, blocklists are UNRELIABLE and their use is " +"discouraged." +msgstr "" +"встраивание невозможно. При имеющихся параметрах GRUB можно установить " +"только с помощью списка блоков (blocklists). Однако, список блоков является " +"НЕНАДЁЖНЫМ механизмом и его лучше не использовать." + +#: util/i386/pc/grub-setup.c:443 +msgid "if you really want blocklists, use --force" +msgstr "если вы всё равно хотите использовать список блоков, укажите --force." + +#: util/i386/pc/grub-setup.c:462 +#, c-format +msgid "attempting to read the core image `%s' from GRUB" +msgstr "попытка прочитать базовый образ %s из GRUB" + +#: util/i386/pc/grub-setup.c:463 +#, c-format +msgid "attempting to read the core image `%s' from GRUB again" +msgstr "повторная попытка прочитать базовый образ %s из GRUB" + +#: util/i386/pc/grub-setup.c:530 +#, c-format +msgid "cannot read `%s' correctly" +msgstr "не удалось прочитать %s правильно" + +#: util/i386/pc/grub-setup.c:543 +msgid "no terminator in the core image" +msgstr "в базовом образе нет метки окончания" + +#: util/i386/pc/grub-setup.c:554 +msgid "failed to read the first sector of the core image" +msgstr "не удалось прочитать первый сектор базового образа" + +#: util/i386/pc/grub-setup.c:560 +msgid "failed to read the rest sectors of the core image" +msgstr "не удалось прочитать оставшиеся секторы базового образа" + +#: util/i386/pc/grub-setup.c:579 +#, c-format +msgid "cannot open `%s'" +msgstr "не удалось открыть %s" + +#: util/i386/pc/grub-setup.c:621 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... DEVICE\n" +"\n" +"Set up images to boot from DEVICE.\n" +"DEVICE must be a GRUB device (e.g. `(hd0,1)').\n" +"\n" +"You should not normally run %s directly. Use grub-install instead.\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 "" +"Использование: %s [ПАРАМЕТР]... УСТРОЙСТВО\n" +"\n" +"Настройка образов для загрузки с УСТРОЙСТВА.\n" +"УСТРОЙСТВО должно указываться как устройство GRUB (например (hd0,1)).\n" +"\n" +" -b, --boot-image=ФАЙЛ использовать ФАЙЛ в качестве загрузочного образа\n" +" [по умолчанию %s]\n" +" -c, --core-image=ФАЙЛ использовать ФАЙЛ в качестве базового образа\n" +" [по умолчанию %s]\n" +" -d, --directory=КАТ использовать файлы GRUB из КАТалога\n" +" [по умолчанию %s]\n" +" -m, --device-map=ФАЙЛ использовать ФАЙЛ в качестве карты устройства\n" +" [по умолчанию %s]\n" +" -r, --root-device=УСТР использовать УСТРойство в качестве корневого\n" +" устройства [по умолчанию вычисляется]\n" +" -f, --force устанавливать, даже если обнаружены проблемы\n" +" -s, --skip-fs-probe не определять файловую систему на УСТРОЙСТВЕ\n" +" -h, --help показать эту справку и завершить работу\n" +" -V, --version показать версию и завершить работу\n" +" -v, --verbose выводить доп. информацию при работе\n" +"\n" +"Сообщения об ошибках направляйте на <%s>.\n" + +#: util/i386/pc/grub-setup.c:753 +#, c-format +msgid "No device is specified.\n" +msgstr "Не указано устройство.\n" + +#: util/i386/pc/grub-setup.c:759 +#, c-format +msgid "Unknown extra argument `%s'.\n" +msgstr "Неизвестный дополнительный параметр %s.\n" + +#: util/i386/pc/grub-setup.c:776 +#, c-format +msgid "Invalid device `%s'.\n" +msgstr "Неверное устройство %s.\n" + +#: util/i386/pc/grub-setup.c:789 +#, c-format +msgid "invalid root device `%s'" +msgstr "неверное корневое устройство %s" + +#: util/i386/pc/grub-setup.c:802 +msgid "cannot guess the root device. Specify the option `--root-device'" +msgstr "" +"не удалось вычислить корневое устройство. Укажите его параметром --root-" +"device." + +#~ msgid "[class [handler]]" +#~ msgstr "[класс [обработчик]]" + +#~ msgid "List or select a handler." +#~ msgstr "Показать или выбрать обработчик." + +#~ msgid "Load XNU ramdisk. It will be seen as md0." +#~ msgstr "Загрузить XNU ramdisk. Он будет виден как md0." + +#~ msgid "no DOS-style partitions found" +#~ msgstr "разделов в стиле DOS не найдено" + +#~ msgid "%s, with kFreeBSD %s" +#~ msgstr "%s, с kFreeBSD %s" + +#~ msgid "Loading kernel of FreeBSD %s ..." +#~ msgstr "Загружается ядро FreeBSD %s ..." + +#~ msgid "%s, with Linux %s (recovery mode)" +#~ msgstr "%s, с Linux %s (режим восстановления)" + +#~ msgid "%s, with Linux %s" +#~ msgstr "%s, с Linux %s" + +#~ msgid "Loading Linux %s ..." +#~ msgstr "Загружается Linux %s ..." + +#~ msgid "Loading initial ramdisk ..." +#~ msgstr "Загружается начальный ramdisk ..." --- grub2-1.98+20100804.orig/po/zh_CN.po +++ grub2-1.98+20100804/po/zh_CN.po @@ -0,0 +1,1876 @@ +# grub 软件包的简体中文翻译。 +# Copyright (C) 2009, 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the grub package. +# Zhengyu Ji , 2009. +# Xin Ye , 2009. +# Eleanor Chen , 2010. +# Aron Xu , 2009, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub 1.97+20100124\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-06-19 01:35+0100\n" +"PO-Revision-Date: 2010-02-15 14:30+0800\n" +"Last-Translator: Aron Xu \n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: commands/acpi.c:40 +msgid "Don't load host tables specified by comma-separated list." +msgstr "不载入指定的主机表(多个表用逗号分隔)。" + +#: commands/acpi.c:43 +msgid "Load only tables specified by comma-separated list." +msgstr "只载入指定的主机表(多个表用逗号分隔)。" + +#: commands/acpi.c:44 +msgid "Expose v1 tables." +msgstr "显示 v1 表。" + +#: commands/acpi.c:45 +msgid "Expose v2 and v3 tables." +msgstr "显示 v2 和 v3 表。" + +#: commands/acpi.c:46 +msgid "Set OEMID of RSDP, XSDT and RSDT." +msgstr "设置 RSDP,XSDT 和 RSDT 中的 OEMID。" + +#: commands/acpi.c:48 +msgid "Set OEMTABLE ID of RSDP, XSDT and RSDT." +msgstr "设置 RSDP,XSDT 和 RSDT 中的 OEMTABLE ID。" + +#: commands/acpi.c:50 +msgid "Set OEMTABLE revision of RSDP, XSDT and RSDT." +msgstr "设置 RSDP,XSDT 和 RSDT 中的 OEMTABLE 修订信息。" + +#: commands/acpi.c:52 +msgid "Set creator field of RSDP, XSDT and RSDT." +msgstr "设置 RSDP,XSDT 和 RSDT 中的制造商信息。" + +#: commands/acpi.c:54 +msgid "Set creator revision of RSDP, XSDT and RSDT." +msgstr "设置 RSDP,XSDT 和 RSDT 中的制造商修订信息。" + +#: commands/acpi.c:55 +msgid "" +"Don't update EBDA. May fix failures or hangs on some. BIOSes but makes it " +"ineffective with OS not receiving RSDP from GRUB." +msgstr "" +"不更新 EBDA。有些时候能解决引导失败和挂起的问题。但因为 BIOS 的原因,对不从 " +"GRUB 接收 RSDP 的操作系统无效。" + +#: commands/acpi.c:763 +msgid "" +"[-1|-2] [--exclude=TABLE1,TABLE2|--load-only=table1,table2] FILE1 [FILE2] " +"[...]" +msgstr "[-1|-2] [--exclude=表1,表2|--load-on=表1,表2] 文件1 [文件2] [...]" + +#: commands/acpi.c:766 +msgid "Load host ACPI tables and tables specified by arguments." +msgstr "载入 ACPI 主机表和用户指定的表。" + +#: commands/blocklist.c:113 commands/cat.c:82 commands/configfile.c:57 +#: commands/configfile.c:60 commands/configfile.c:65 commands/crc.c:64 +#: commands/minicmd.c:353 loader/i386/bsd.c:1287 loader/i386/bsd.c:1291 +#: loader/i386/bsd.c:1295 +msgid "FILE" +msgstr "文件" + +#: commands/blocklist.c:113 +msgid "Print a block list." +msgstr "显示块列表。" + +#: commands/boot.c:190 +msgid "Boot an operating system." +msgstr "引导操作系统。" + +#: commands/cat.c:82 commands/minicmd.c:353 +msgid "Show the contents of a file." +msgstr "显示文件内容。" + +#: commands/cmp.c:113 +msgid "FILE1 FILE2" +msgstr "文件1 文件2" + +#: commands/cmp.c:113 +msgid "Compare two files." +msgstr "比较两个文件。" + +#: commands/configfile.c:57 +msgid "Load another config file." +msgstr "载入另外的配置文件。" + +#: commands/configfile.c:61 commands/configfile.c:66 +msgid "Load another config file without changing context." +msgstr "载入另外的配置文件(不改变环境)。" + +#: commands/crc.c:65 +msgid "Calculate the crc32 checksum of a file." +msgstr "计算文件的 CRC32 校验和。" + +#: commands/date.c:139 +msgid "[[year-]month-day] [hour:minute[:second]]" +msgstr "[[年-]月-日] [时:分[:秒]]" + +#: commands/date.c:140 +msgid "Command to display/set current datetime." +msgstr "显示/设置时间的命令" + +#: commands/echo.c:27 +msgid "Do not output the trailing newline." +msgstr "末尾不输出额外空行。" + +#: commands/echo.c:28 +msgid "Enable interpretation of backslash escapes." +msgstr "启用反斜杠转义" + +#: commands/echo.c:117 +msgid "[-e|-n] STRING" +msgstr "[-e|-n] 字符串" + +#: commands/echo.c:117 +msgid "Display a line of text." +msgstr "显示文本" + +#: commands/efi/fixvideo.c:103 +msgid "Fix video problem." +msgstr "修正显示问题" + +#: commands/efi/loadbios.c:207 +msgid "Fake BIOS." +msgstr "BIOS 伪装。" + +#: commands/efi/loadbios.c:211 +msgid "Load BIOS dump." +msgstr "载入 BIOS 转储。" + +#: commands/gptsync.c:244 +msgid "DEVICE [PARTITION[+/-[TYPE]]] ..." +msgstr "设备 [分区[+/-[类型]]] ..." + +#: commands/gptsync.c:245 +#, fuzzy +msgid "" +"Fill hybrid MBR of GPT drive DEVICE. Specified partitions will be a part of " +"hybrid MBR. Up to 3 partitions are allowed. TYPE is an MBR type. + means " +"that partition is active. Only one partition can be active." +msgstr "" +"重写指定 GPT 设备的混合 MBR,指定的分区会成为混合 MBR 的一部分(不超过三个)。" +"类型指 MBR 类型,+ 代表该分区是活动分区(只能有一个活动分区)。" + +#: commands/halt.c:39 +msgid "" +"Halts the computer. This command does not work on all firmware " +"implementations." +msgstr "关机(在某些计算机上无效)。" + +#: commands/hdparm.c:30 +msgid "" +"Set Advanced Power Management\n" +"(1=low, ..., 254=high, 255=off)." +msgstr "" +"设置高级电源管理模式\n" +"(1=最低,...,254=最高,255=关闭)。" + +#: commands/hdparm.c:33 +msgid "Check power mode." +msgstr "检查电源模式。" + +#: commands/hdparm.c:34 +msgid "Freeze ATA security settings until reset." +msgstr "禁止更改 ATA 安全设置直到此设置被重置。" + +#: commands/hdparm.c:36 +msgid "Check SMART health status." +msgstr "检查 SMART 健康状态。" + +#: commands/hdparm.c:37 +msgid "" +"Set Automatic Acoustic Management\n" +"(0=off, 128=quiet, ..., 254=fast)." +msgstr "" +"设置硬盘声音管理模式\n" +"(0=关闭,128=静音,...,254=高速)。" + +#: commands/hdparm.c:40 +msgid "" +"Set standby timeout\n" +"(0=off, 1=5s, 2=10s, ..., 240=20m, 241=30m, ...)." +msgstr "" +"设置等待时间\n" +"(0=关闭,1=5秒,2=10秒,...,240=20分,241=30分,...)。" + +#: commands/hdparm.c:43 +msgid "Set drive to standby mode." +msgstr "设置驱动器为等待模式。" + +#: commands/hdparm.c:44 +msgid "Set drive to sleep mode." +msgstr "设置驱动器为休眠模式。" + +#: commands/hdparm.c:45 +msgid "Print drive identity and settings." +msgstr "显示硬盘识别信息和设置。" + +#: commands/hdparm.c:47 +msgid "Dump contents of ATA IDENTIFY sector." +msgstr "转储 ATA IDENTIFY 扇区内容。" + +#: commands/hdparm.c:49 +msgid "Disable/enable SMART (0/1)." +msgstr "禁用/启用 SMART (0/1)。" + +#: commands/hdparm.c:50 +msgid "Do not print messages." +msgstr "安静模式。" + +#: commands/hdparm.c:414 +msgid "[OPTIONS] DISK" +msgstr "[选项] 磁盘" + +#: commands/hdparm.c:415 +msgid "Get/set ATA disk parameters." +msgstr "获取或设定 ATA 磁盘参数。" + +#: commands/help.c:112 lib/arg.c:110 +msgid "Usage:" +msgstr "用法:" + +#: commands/help.c:129 +msgid "[PATTERN ...]" +msgstr "[模式 ...]" + +#: commands/help.c:130 +msgid "Show a help message." +msgstr "显示帮助消息。" + +#: commands/hexdump.c:30 +msgid "Skip offset bytes from the beginning of file." +msgstr "跳过文件头部偏移字节。" + +#: commands/hexdump.c:32 +msgid "Read only LENGTH bytes." +msgstr "读取指定长度(字节)。" + +#: commands/hexdump.c:125 +msgid "[OPTIONS] FILE_OR_DEVICE" +msgstr "[选项] 文件或设备" + +#: commands/hexdump.c:126 +msgid "Dump the contents of a file or memory." +msgstr "显示文件或内存内容。" + +#: commands/i386/cpuid.c:37 +msgid "Check for long mode flag (default)." +msgstr "检查长模式标志(默认)。" + +#: commands/i386/cpuid.c:92 +msgid "Check for CPU features." +msgstr "检查 CPU 特性。" + +#: commands/i386/pc/drivemap.c:37 +msgid "Show the current mappings." +msgstr "显示当前映射。" + +#: commands/i386/pc/drivemap.c:38 +msgid "Reset all mappings to the default values." +msgstr "重置所有映射为默认值。" + +#: commands/i386/pc/drivemap.c:39 +msgid "Perform both direct and reverse mappings." +msgstr "同时进行直接和保留映射。" + +#: commands/i386/pc/drivemap.c:406 +msgid "-l | -r | [-s] grubdev osdisk." +msgstr "-l | -r | [-s] grub设备 系统磁盘" + +#: commands/i386/pc/drivemap.c:407 +msgid "Manage the BIOS drive mappings." +msgstr "管理 BIOS 设备映射。" + +#: commands/i386/pc/halt.c:27 +msgid "Do not use APM to halt the computer." +msgstr "不使用 APM 关闭计算机。" + +#: commands/i386/pc/halt.c:51 +msgid "Halt the system, if possible using APM." +msgstr "优先使用 APM 关闭计算机。" + +#: commands/i386/pc/play.c:266 +msgid "FILE | TEMPO [PITCH1 DURATION1] [PITCH2 DURATION2] ... " +msgstr "" + +#: commands/i386/pc/play.c:267 +msgid "Play a tune." +msgstr "运行优化。" + +#: commands/i386/pc/pxecmd.c:46 +msgid "Unload PXE environment." +msgstr "卸载 PXE 环境。" + +#: commands/i386/pc/vbeinfo.c:179 +msgid "List compatible VESA BIOS extension video modes." +msgstr "列出兼容的 VESA BIOS 扩展视频模式" + +#: commands/i386/pc/vbetest.c:173 +msgid "Test VESA BIOS Extension 2.0+ support." +msgstr "测试 VESA BIOS 扩展 2.0+ 支持。" + +#: commands/ieee1275/suspend.c:43 +msgid "Return to Open Firmware prompt." +msgstr "返回 Open Firmware 界面。" + +#: commands/keystatus.c:28 +msgid "Check Shift key." +msgstr "检查 Shift 键。" + +#: commands/keystatus.c:29 +msgid "Check Control key." +msgstr "检查 Ctrl 键。" + +#: commands/keystatus.c:30 +msgid "Check Alt key." +msgstr "检查 Alt 键。" + +#: commands/keystatus.c:85 +msgid "[--shift] [--ctrl] [--alt]" +msgstr "[--shift] [--ctrl] [--alt]" + +#: commands/keystatus.c:86 +msgid "Check key modifier status." +msgstr "检查修饰键状态。" + +#: commands/loadenv.c:33 +msgid "Specify filename." +msgstr "指定文件名。" + +#: commands/loadenv.c:378 commands/loadenv.c:384 +msgid "[-f FILE]" +msgstr "[-f 文件]" + +#: commands/loadenv.c:379 +msgid "Load variables from environment block file." +msgstr "载入环境变量文件。" + +#: commands/loadenv.c:385 +msgid "List variables from environment block file." +msgstr "显示环境变量文件内容。" + +#: commands/loadenv.c:390 +msgid "[-f FILE] variable_name [...]" +msgstr "[-f 文件] 变量名 [...]" + +#: commands/loadenv.c:391 +msgid "Save variables to environment block file." +msgstr "保存变量到文件。" + +#: commands/ls.c:37 +msgid "Show a long list with more detailed information." +msgstr "列出详细信息。" + +#: commands/ls.c:38 +msgid "Print sizes in a human readable format." +msgstr "使用易读的格式显示文件大小。" + +#: commands/ls.c:39 +msgid "List all files." +msgstr "列出全部文件。" + +#: commands/ls.c:269 +msgid "[-l|-h|-a] [FILE]" +msgstr "[-l|-h|-a] [文件]" + +#: commands/ls.c:270 +msgid "List devices and files." +msgstr "列出设备和文件。" + +#: commands/lsmmap.c:51 +msgid "List memory map provided by firmware." +msgstr "列出默认的内存映射。" + +#: commands/lspci.c:228 +msgid "List PCI devices." +msgstr "列出 PCI 设备。" + +#: commands/memrw.c:31 +msgid "Save read value into variable VARNAME." +msgstr "将读取的值存入变量 VARNAME。" + +#: commands/memrw.c:123 commands/memrw.c:126 commands/memrw.c:129 +#: commands/minicmd.c:362 +msgid "ADDR" +msgstr "地址" + +#: commands/memrw.c:123 +msgid "Read byte from ADDR." +msgstr "从指定地址读取字节" + +#: commands/memrw.c:126 +msgid "Read word from ADDR." +msgstr "从指定地址读取字。" + +#: commands/memrw.c:129 +msgid "Read dword from ADDR." +msgstr "从指定地址读取双字。" + +#: commands/memrw.c:132 commands/memrw.c:135 commands/memrw.c:138 +msgid "ADDR VALUE [MASK]" +msgstr "地址 值 [掩码]" + +#: commands/memrw.c:132 +msgid "Write byte VALUE to ADDR." +msgstr "向指定地址写入 byte 类型值。" + +#: commands/memrw.c:135 +msgid "Write word VALUE to ADDR." +msgstr "向指定地址写入 word 类型值。" + +#: commands/memrw.c:138 +msgid "Write dword VALUE to ADDR." +msgstr "向指定地址写入 dword 类型值。" + +#: commands/minicmd.c:356 +msgid "Show this message." +msgstr "显示此消息。" + +#: commands/minicmd.c:359 commands/probe.c:154 +msgid "[DEVICE]" +msgstr "[设备]" + +#: commands/minicmd.c:359 +msgid "Set the root device." +msgstr "设置根设备。" + +#: commands/minicmd.c:362 +msgid "Dump memory." +msgstr "转储内存。" + +#: commands/minicmd.c:365 +msgid "MODULE" +msgstr "模块" + +#: commands/minicmd.c:365 +msgid "Remove a module." +msgstr "删除模块。" + +#: commands/minicmd.c:368 +msgid "Show loaded modules." +msgstr "显示已加载的模块。" + +#: commands/minicmd.c:371 +msgid "Exit from GRUB." +msgstr "退出 GRUB。" + +#: commands/minicmd.c:374 +msgid "Clear the screen." +msgstr "清屏。" + +#: commands/parttool.c:325 +msgid "PARTITION COMMANDS" +msgstr "分区命令" + +#: commands/password.c:78 +msgid "USER PASSWORD" +msgstr "用户口令" + +#: commands/password.c:79 +msgid "Set user password (plaintext). Unrecommended and insecure." +msgstr "设置用户口令(纯文本)(不推荐且不安全)。" + +#: commands/probe.c:38 +msgid "Set a variable to return value." +msgstr "设置用于返回值的变量。" + +#: commands/probe.c:39 +msgid "Determine driver." +msgstr "指定驱动。" + +#: commands/probe.c:40 +msgid "Determine partition map type." +msgstr "指定分区表类型。" + +#: commands/probe.c:41 +msgid "Determine filesystem type." +msgstr "指定文件系统类型" + +#: commands/probe.c:42 +msgid "Determine filesystem UUID." +msgstr "指定文件系统 UUID。" + +#: commands/probe.c:43 +msgid "Determine filesystem label." +msgstr "指定文件系统卷标。" + +#: commands/probe.c:155 +msgid "Retrieve device info." +msgstr "获取设备信息。" + +#: commands/read.c:83 +msgid "[ENVVAR]" +msgstr "[环境变量]" + +#: commands/read.c:84 +msgid "Set variable with user input." +msgstr "将用户输入值保存到变量。" + +#: commands/reboot.c:39 +msgid "Reboot the computer." +msgstr "重新启动计算机。" + +#: commands/search.c:161 +msgid "NAME [VARIABLE]" +msgstr "文件名 [变量]" + +#: commands/search_file.c:5 +msgid "" +"Search devices by file. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"搜索含有指定文件的设备。如果指定了变量,找到的第一个设备会被保存到变量中。" + +#: commands/search_label.c:5 +msgid "" +"Search devices by label. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "按卷标搜索。如果指定了变量,找到的第一个设备会被保存到变量中。" + +#: commands/search_uuid.c:5 +msgid "" +"Search devices by UUID. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "按 UUID 搜索。如果指定了变量,找到的第一个设备会被保存到变量中。" + +#: commands/sleep.c:30 +msgid "Verbose countdown." +msgstr "显示倒计时。" + +#: commands/sleep.c:31 +msgid "Interruptible with ESC." +msgstr "可用 ESC 键中断。" + +#: commands/sleep.c:105 +msgid "NUMBER_OF_SECONDS" +msgstr "秒数" + +#: commands/sleep.c:106 +msgid "Wait for a specified number of seconds." +msgstr "等待指定时间(秒)。" + +#: commands/test.c:424 +msgid "EXPRESSION ]" +msgstr "表达式 ]" + +#: commands/test.c:424 commands/test.c:426 +msgid "Evaluate an expression." +msgstr "执行该表达式。" + +#: commands/test.c:426 +msgid "EXPRESSION" +msgstr "表达式" + +#: commands/true.c:47 +msgid "Do nothing, successfully." +msgstr "未进行操作,成功。" + +#: commands/true.c:50 +msgid "Do nothing, unsuccessfully." +msgstr "未进行操作,失败。" + +#: commands/usbtest.c:208 +msgid "Test USB support." +msgstr "测试 USB 支持。" + +#: commands/videotest.c:180 +msgid "Test video subsystem." +msgstr "测试显示子系统。" + +#: commands/xnu_uuid.c:92 +msgid "GRUBUUID [VARNAME]" +msgstr "GRUBUUID [变量]" + +#: commands/xnu_uuid.c:93 +msgid "Transform 64-bit UUID to format suitable for XNU." +msgstr "将 64 位的 UUID 转换成 XNU 的格式。" + +#: disk/loopback.c:40 +msgid "Delete the loopback device entry." +msgstr "删除回环设备项。" + +#: disk/loopback.c:41 +msgid "Simulate a hard drive with partitions." +msgstr "模拟一个带分区的硬盘。" + +#: disk/loopback.c:249 +msgid "[-d|-p] DEVICENAME FILE." +msgstr "[-d|-p] 设备名 文件名。" + +#: disk/loopback.c:250 +msgid "Make a device of a file." +msgstr "将一个文件模拟成设备。" + +#: hello/hello.c:43 +msgid "Say \"Hello World\"." +msgstr "显示 “Hello World”。" + +#: lib/arg.c:34 +msgid "Display this help and exit." +msgstr "显示此帮助并退出。" + +#: lib/arg.c:36 +msgid "Display the usage of this command and exit." +msgstr "显示此命令的用法并退出。" + +#: loader/efi/appleloader.c:325 +msgid "Boot legacy system." +msgstr "引导老版本系统。" + +#: loader/efi/chainloader.c:340 loader/i386/pc/chainloader.c:166 +msgid "Load another boot loader." +msgstr "载入其他引导程序。" + +#: loader/i386/bsd.c:65 +msgid "Display output on all consoles." +msgstr "在所有控制台显示输出。" + +#: loader/i386/bsd.c:66 +msgid "Use serial console." +msgstr "使用串行终端。" + +#: loader/i386/bsd.c:67 loader/i386/bsd.c:93 loader/i386/bsd.c:114 +msgid "Ask for file name to reboot from." +msgstr "从指定文件重新启动。" + +#: loader/i386/bsd.c:68 +msgid "Use CDROM as root." +msgstr "使用 CDROM 作为根。" + +#: loader/i386/bsd.c:69 +msgid "Invoke user configuration routing." +msgstr "使用用户配置路径。" + +#: loader/i386/bsd.c:70 loader/i386/bsd.c:97 loader/i386/bsd.c:117 +msgid "Enter in KDB on boot." +msgstr "启动后进入 KDB。" + +#: loader/i386/bsd.c:71 +msgid "Use GDB remote debugger instead of DDB." +msgstr "使用 GDB 远程调试工具替代 DDB。" + +#: loader/i386/bsd.c:72 +msgid "Disable all boot output." +msgstr "禁用所有引导输出。" + +#: loader/i386/bsd.c:74 +msgid "Wait for keypress after every line of output." +msgstr "每输出一行后暂停(按任意键继续)。" + +#: loader/i386/bsd.c:76 +msgid "Use compiled-in rootdev." +msgstr "使用内置根设备" + +#: loader/i386/bsd.c:77 loader/i386/bsd.c:96 loader/i386/bsd.c:120 +msgid "Boot into single mode." +msgstr "以单用户模式启动" + +#: loader/i386/bsd.c:78 loader/i386/bsd.c:121 +msgid "Boot with verbose messages." +msgstr "启动时显示完整信息。" + +#: loader/i386/bsd.c:94 loader/i386/bsd.c:115 +msgid "Don't reboot, just halt." +msgstr "直接关机。" + +#: loader/i386/bsd.c:95 loader/i386/bsd.c:116 +msgid "Change configured devices." +msgstr "更改此前配置的设备。" + +#: loader/i386/bsd.c:98 loader/i386/bsd.c:124 +msgid "Set root device." +msgstr "设置根设备。" + +#: loader/i386/bsd.c:112 +msgid "Disable SMP." +msgstr "禁用 SMP。" + +#: loader/i386/bsd.c:113 +msgid "Disable ACPI." +msgstr "禁用 ACPI。" + +#: loader/i386/bsd.c:119 +msgid "Don't display boot diagnostic messages." +msgstr "不显示引导对话消息。" + +#: loader/i386/bsd.c:122 +msgid "Boot with debug messages." +msgstr "显示调试信息。" + +#: loader/i386/bsd.c:123 +msgid "Supress normal output (warnings remain)." +msgstr "不显示普通输出(显示警告)。" + +#: loader/i386/bsd.c:124 +msgid "DEVICE" +msgstr "设备" + +#: loader/i386/bsd.c:1287 +msgid "Load kernel of FreeBSD." +msgstr "载入 FreeBSD 内核。" + +#: loader/i386/bsd.c:1291 +msgid "Load kernel of OpenBSD." +msgstr "载入 OpenBSD 内核。" + +#: loader/i386/bsd.c:1295 +msgid "Load kernel of NetBSD." +msgstr "载入 NetBSD 内核。" + +#: loader/i386/bsd.c:1299 +msgid "Load FreeBSD env." +msgstr "载入 FreeBSD 环境。" + +#: loader/i386/bsd.c:1302 +msgid "Load FreeBSD kernel module." +msgstr "载入 FreeBSD 内核模块。" + +#: loader/i386/bsd.c:1305 +msgid "Load FreeBSD kernel module (ELF)." +msgstr "载入 FreeBSD 内核模块(ELF)。" + +#: loader/i386/efi/linux.c:1011 loader/i386/ieee1275/linux.c:301 +#: loader/i386/linux.c:1012 loader/i386/pc/linux.c:399 +#: loader/powerpc/ieee1275/linux.c:353 loader/sparc64/ieee1275/linux.c:519 +msgid "Load Linux." +msgstr "载入 Linux。" + +#: loader/i386/efi/linux.c:1013 loader/i386/ieee1275/linux.c:303 +#: loader/i386/linux.c:1014 loader/i386/pc/linux.c:402 +#: loader/powerpc/ieee1275/linux.c:355 loader/sparc64/ieee1275/linux.c:521 +msgid "Load initrd." +msgstr "载入 initrd。" + +#: loader/i386/xnu.c:1032 +msgid "Load device-properties dump." +msgstr "载入设备特性转储。" + +#: loader/multiboot.c:337 +msgid "Load a multiboot 2 kernel." +msgstr "载入 multiboot 2 内核。" + +#: loader/multiboot.c:340 +#, fuzzy +msgid "Load a multiboot 2 module." +msgstr "载入 multiboot 模块。" + +#: loader/multiboot.c:343 +msgid "Load a multiboot kernel." +msgstr "载入 multiboot 内核。" + +#: loader/multiboot.c:346 +msgid "Load a multiboot module." +msgstr "载入 multiboot 模块。" + +#: loader/xnu.c:1428 +msgid "Load XNU image." +msgstr "载入 XNU 内核镜像。" + +#: loader/xnu.c:1430 +msgid "Load 64-bit XNU image." +msgstr "载入 64 位 XNU 镜像。" + +#: loader/xnu.c:1432 +msgid "Load XNU extension package." +msgstr "载入 XNU 扩展包。" + +#: loader/xnu.c:1434 +msgid "Load XNU extension." +msgstr "载入 XNU 扩展。" + +#: loader/xnu.c:1436 +msgid "DIRECTORY [OSBundleRequired]" +msgstr "目录 [OSBundleRequired]" + +#: loader/xnu.c:1437 +msgid "Load XNU extension directory." +msgstr "载入 XNU 扩展目录。" + +#: loader/xnu.c:1444 +msgid "Load a splash image for XNU." +msgstr "载入引导画面。" + +#: loader/xnu.c:1449 +msgid "Load XNU hibernate image." +msgstr "载入休眠镜像。" + +#: normal/auth.c:217 +msgid "Enter username: " +msgstr "输入用户名:" + +#: normal/auth.c:222 +msgid "Enter password: " +msgstr "输入口令:" + +#: normal/color.c:80 +#, c-format +msgid "Warning: syntax error (missing slash) in `%s'\n" +msgstr "警告:`%s' 中有语法错误(缺少斜杠)\n" + +#: normal/color.c:89 +#, c-format +msgid "Warning: invalid foreground color `%s'\n" +msgstr "警告:无效的前景色 `%s'\n" + +#: normal/color.c:95 +#, c-format +msgid "Warning: invalid background color `%s'\n" +msgstr "警告:无效的背景色 `%s'\n" + +#: normal/dyncmd.c:144 +msgid "not loaded" +msgstr "未加载" + +#: normal/main.c:415 +#, c-format +msgid "GNU GRUB version %s" +msgstr "GNU GRUB %s 版" + +#: normal/main.c:552 +#, c-format +msgid "" +"Minimal BASH-like line editing is supported. For the first word, TAB lists " +"possible command completions. Anywhere else TAB lists possible device or " +"file completions. %s" +msgstr "" +"支持最小化的类 Bash 行编辑。对于第一个单词 Tab 列出可用的命令名补全;对于其他" +"位置 Tab 列出可能的设备或文件。%s" + +#: normal/main.c:555 +msgid "ESC at any time exits." +msgstr "任何时候按下 ESC 均可退出。" + +#: normal/main.c:670 +msgid "Enter normal mode." +msgstr "" + +#: normal/main.c:672 +msgid "Exit from normal mode." +msgstr "" + +#: normal/menu_entry.c:1061 +msgid "Possible commands are:" +msgstr "可能的命令有:" + +#: normal/menu_entry.c:1065 +msgid "Possible devices are:" +msgstr "可能的设备有:" + +#: normal/menu_entry.c:1069 +msgid "Possible files are:" +msgstr "可能的文件有:" + +#: normal/menu_entry.c:1073 +msgid "Possible partitions are:" +msgstr "可能的分区有:" + +#: normal/menu_entry.c:1077 +msgid "Possible arguments are:" +msgstr "可能的参数有:" + +#: normal/menu_entry.c:1081 +msgid "Possible things are:" +msgstr "可能的有:" + +#: normal/menu_entry.c:1185 +msgid "Booting a command list" +msgstr "正在按照命令列表进行引导" + +#: normal/menu_entry.c:1398 +msgid "Press any key to continue..." +msgstr "按任意键继续..." + +#: normal/menu_text.c:180 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"F1 to boot, F2=Ctrl-a, F3=Ctrl-e, F4 for a command-line or ESC to discard " +"edits and return to the GRUB menu." +msgstr "" +"支持最小化的类 Emacs 屏幕编辑。Tab 列出可补全项,Ctrl-x 进行引导,Ctrl-c 进入" +"命令行,ESC 返回菜单。" + +#: normal/menu_text.c:185 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"Ctrl-x to boot, Ctrl-c for a command-line or ESC to discard edits and return " +"to the GRUB menu." +msgstr "" +"支持最小化的类 Emacs 屏幕编辑。Tab 列出可补全项,Ctrl-x 进行引导,Ctrl-c 进入" +"命令行,ESC 返回菜单。" + +#: normal/menu_text.c:193 +#, c-format +msgid "Use the %C and %C keys to select which entry is highlighted.\n" +msgstr "使用 %C 键和 %C 键选择要高亮的启动项。\n" + +#: normal/menu_text.c:210 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line. ESC to return previous menu.\n" +msgstr "" +"按回车引导选定的操作系统,按 e 编辑引导命令,按 c 进入命令行,按 ESC 返回上一" +"级菜单。\n" + +#: normal/menu_text.c:218 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line.\n" +msgstr "按回车引导选定的操作系统,按 e 编辑引导命令,按 c 进入命令行。\n" + +#: normal/menu_text.c:370 +#, c-format +msgid "The highlighted entry will be executed automatically in %ds." +msgstr "高亮显示的启动项将在 %d 秒后自动执行。" + +#: normal/misc.c:41 +#, c-format +msgid "Partition %s:" +msgstr "分区 %s:" + +#: normal/misc.c:46 +#, c-format +msgid "Device %s:" +msgstr "设备 %s:" + +#: normal/misc.c:52 +msgid "Filesystem cannot be accessed" +msgstr "无法访问文件系统" + +#: normal/misc.c:63 +#, c-format +msgid "Filesystem type %s" +msgstr "文件系统类型 %s" + +#: normal/misc.c:73 +#, c-format +msgid "- Label \"%s\"" +msgstr "- 卷标 %s" + +#: normal/misc.c:88 +#, c-format +msgid "- Last modification time %d-%02d-%02d %02d:%02d:%02d %s" +msgstr "- 最近更改 %d-%02d-%02d %02d:%02d:%02d %s" + +#: normal/misc.c:111 +msgid "Unknown filesystem" +msgstr "未知文件系统" + +#: normal/misc.c:113 +msgid "Partition table" +msgstr "分区表" + +#: term/serial.c:46 +msgid "Set the serial unit." +msgstr "设置串行单元。" + +#: term/serial.c:47 +msgid "Set the serial port address." +msgstr "设置串行端口地址。" + +#: term/serial.c:48 +msgid "Set the serial port speed." +msgstr "设置串行端口速度。" + +#: term/serial.c:49 +msgid "Set the serial port word length." +msgstr "设置串行端口字长。" + +#: term/serial.c:50 +msgid "Set the serial port parity." +msgstr "设置串行端口奇偶校验。" + +#: term/serial.c:51 +msgid "Set the serial port stop bits." +msgstr "设置串行端口停止位。" + +#: term/serial.c:619 +#, fuzzy +msgid "[OPTIONS...]" +msgstr "[选项] 磁盘" + +#: term/serial.c:620 +msgid "Configure serial port." +msgstr "" + +#: util/grub-mkimage.c:440 +msgid "the core image is too small" +msgstr "核心镜像太小" + +#: util/grub-mkimage.c:451 +msgid "cannot compress the kernel image" +msgstr "无法压缩内核镜像" + +#: util/grub-mkimage.c:548 +msgid "prefix is too long" +msgstr "前缀太长" + +#: util/grub-mkimage.c:672 +#, c-format +msgid "core image is too big (%p > %p)" +msgstr "核心镜像太大(%p > %p)" + +#: util/grub-mkimage.c:678 +msgid "the core image is too big" +msgstr "核心镜像太大" + +#: util/grub-mkimage.c:683 +#, c-format +msgid "diskboot.img size must be %u bytes" +msgstr "diskboot.img 的大小必须为 %u 字节" + +#: util/grub-mkimage.c:1168 util/i386/pc/grub-setup.c:619 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "请尝试运行“%s --help”以获得更多信息。\n" + +#: util/grub-mkimage.c:1187 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... [MODULES]\n" +"\n" +"Make a bootable image of GRUB.\n" +"\n" +" -d, --directory=DIR use images and modules under DIR [default=%s/" +"@platform@]\n" +" -p, --prefix=DIR set grub_prefix directory [default=%s]\n" +" -m, --memdisk=FILE embed FILE as a memdisk image\n" +" -f, --font=FILE embed FILE as a boot font\n" +" -c, --config=FILE embed FILE as boot config\n" +" -n, --note add NOTE segment for CHRP Open Firmware\n" +" -o, --output=FILE output a generated image to FILE [default=stdout]\n" +" -O, --format=FORMAT generate an image in format\n" +" available formats: %s\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 "" +"用法:%s [选项]... [模块]\n" +"\n" +"制作一个可引导的 GRUB 镜像。\n" +" -d, --directory=DIR 使用 DIR 目录下的镜像和模块 [默认=%s]\n" +" -p, --prefix=DIR 设定 grub_prefix 路径 [默认=%s]\n" +" -m, --memdisk=FILE 嵌入 FILE 文件作为内存盘镜像\n" +" -c, --config=FILE 嵌入 FILE 文件作为引导配置\n" +" -o, --output=FILE 将生成的镜像写入 FILE 文件 [默认=标准输出]\n" +" -O, --format=FORMAT 按照指定格式生成镜像 [默认=" + +#: util/grub-mkimage.c:1333 +#, c-format +msgid "cannot open %s" +msgstr "无法打开 %s" + +#: util/i386/pc/grub-setup.c:164 +msgid "the first sector of the core file is not sector-aligned" +msgstr "核心文件的第一扇区未对齐" + +#: util/i386/pc/grub-setup.c:178 +msgid "non-sector-aligned data is found in the core file" +msgstr "核心文件中发现未对齐的扇区" + +#: util/i386/pc/grub-setup.c:192 +msgid "the sectors of the core file are too fragmented" +msgstr "核心文件的扇区碎片太多" + +#: util/i386/pc/grub-setup.c:203 +#, c-format +msgid "the size of `%s' is not %u" +msgstr "“%s”的大小不是 %u" + +#: util/i386/pc/grub-setup.c:220 +#, c-format +msgid "the size of `%s' is too small" +msgstr "“%s”的尺寸太小" + +#: util/i386/pc/grub-setup.c:222 +#, 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 "无法在 %s 中识别文件系统,无法执行安全性检测" + +#: 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 中似乎包含一个不为 DOS 引导保留空间的 %s 文件系统。在此处安装 GRUB 可能导" +"致 grub-setup 覆盖重要数据从而损坏文件系统(--skip-fs-probe 参数可以禁用这个检" +"查,使用该选项风险自负)" + +#: util/i386/pc/grub-setup.c:339 util/i386/pc/grub-setup.c:366 +msgid "" +"Attempting to install GRUB to a partitionless disk. This is a BAD idea." +msgstr "正在试图将 GRUB 安装至未分区的磁盘。这是一个坏主意。" + +#: util/i386/pc/grub-setup.c:345 +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:375 +msgid "No DOS-style partitions found" +msgstr "未找到 DOS 类型分区" + +#: util/i386/pc/grub-setup.c:380 +msgid "" +"This msdos-style partition label has no post-MBR gap; embedding won't be " +"possible!" +msgstr "此 DOS 分区标签没有 MBR 前间隔,无法进行嵌入!" + +#: util/i386/pc/grub-setup.c:382 +msgid "" +"This GPT partition label has no BIOS Boot Partition; embedding won't be " +"possible!" +msgstr "此 GPT 分区标签没有 BIOS 引导分区,无法进行嵌入!" + +#: util/i386/pc/grub-setup.c:389 +msgid "Your core.img is unusually large. It won't fit in the embedding area." +msgstr "您的 core.img 过大,无法装入嵌入区域。" + +#: util/i386/pc/grub-setup.c:391 +msgid "Your embedding area is unusually small. core.img won't fit in it." +msgstr "您的嵌入区域过小,无法装入 core.img。" + +#: util/i386/pc/grub-setup.c:436 +msgid "" +"embedding is not possible, but this is required when the root device is on a " +"RAID array or LVM volume" +msgstr "无法嵌入,但在根设备位于 RAID 阵列或 LVM 卷上时必须使用嵌入。" + +#: util/i386/pc/grub-setup.c:439 +#, fuzzy +msgid "" +"Embedding is not possible. GRUB can only be installed in this setup by " +"using blocklists. However, blocklists are UNRELIABLE and their use is " +"discouraged." +msgstr "" +"无法嵌入,在此次安装中 GRUB 只能通过使用块列表安装。但是块列表是不可信赖的," +"不推荐使用" + +#: util/i386/pc/grub-setup.c:443 +msgid "if you really want blocklists, use --force" +msgstr "如果确实要使用块列表,请使用 --force 选项" + +#: util/i386/pc/grub-setup.c:462 +#, c-format +msgid "attempting to read the core image `%s' from GRUB" +msgstr "正在尝试从 GRUB 读取核心镜像“%s”" + +#: util/i386/pc/grub-setup.c:463 +#, c-format +msgid "attempting to read the core image `%s' from GRUB again" +msgstr "正在尝试再次从 GRUB 读取核心镜像“%s”" + +#: util/i386/pc/grub-setup.c:530 +#, c-format +msgid "cannot read `%s' correctly" +msgstr "无法正确读取“%s”" + +#: util/i386/pc/grub-setup.c:543 +msgid "no terminator in the core image" +msgstr "核心镜像中没有终止符" + +#: util/i386/pc/grub-setup.c:554 +msgid "failed to read the first sector of the core image" +msgstr "读取核心镜像的第一扇区失败" + +#: util/i386/pc/grub-setup.c:560 +msgid "failed to read the rest sectors of the core image" +msgstr "读取核心镜像的其他扇区失败" + +#: util/i386/pc/grub-setup.c:579 +#, c-format +msgid "cannot open `%s'" +msgstr "无法打开“%s”" + +#: util/i386/pc/grub-setup.c:621 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... DEVICE\n" +"\n" +"Set up images to boot from DEVICE.\n" +"DEVICE must be a GRUB device (e.g. `(hd0,1)').\n" +"\n" +"You should not normally run %s directly. Use grub-install instead.\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 "" +"用法:%s [选项]...[设备]\n" +"\n" +"设置从指定设备引导的镜像。\n" +"指定的设备必须是 GRUB 设备格式(例如“(hd0,1)”)。\n" +"\n" +" -b, --boot-image=文件 使用指定文件作为引导镜像 [默认为 %s]\n" +" -c, --core-image=文件 使用指定文件作为核心镜像 [默认为 %s]\n" +" -d, --directory=目录 使用指定目录中的 GRUB 文件 [默认为 %s]\n" +" -m, --device-map=文件 使用指定文件作为设备映射 [默认为 %s]\n" +" -r, --root-device=设备 使用指定设备作为根设备 [默认为 guessed]\n" +" -f, --force 检测到问题的情况下仍强制安装\n" +" -s, --skip-fs-probe 不在设备中探测文件系统\n" +" -h, --help 显示此信息并且退出\n" +" -V, --version 显示版本信息并且退出\n" +" -v, --verbose 显示详细信息\n" +"\n" +"软件错误请报告给 %s\n" + +#: util/i386/pc/grub-setup.c:753 +#, c-format +msgid "No device is specified.\n" +msgstr "没有指定设备。\n" + +#: util/i386/pc/grub-setup.c:759 +#, c-format +msgid "Unknown extra argument `%s'.\n" +msgstr "未知的额外参数“%s”。\n" + +#: util/i386/pc/grub-setup.c:776 +#, c-format +msgid "Invalid device `%s'.\n" +msgstr "无效的设备“%s”。\n" + +#: util/i386/pc/grub-setup.c:789 +#, c-format +msgid "invalid root device `%s'" +msgstr "无效的根设备“%s”" + +#: util/i386/pc/grub-setup.c:802 +msgid "cannot guess the root device. Specify the option `--root-device'" +msgstr "无法猜测根设备。请使用“--root-device”参数指定。" + +#~ msgid "[class [handler]]" +#~ msgstr "[类 [处理程序]]" + +#~ msgid "List or select a handler." +#~ msgstr "列出或选择一个处理程序。" + +#~ msgid "Load XNU ramdisk. It will be seen as md0." +#~ msgstr "载入 XNU ramdisk (显示为 md0)。" + +#~ msgid "no DOS-style partitions found" +#~ msgstr "未找到 DOS 类型分区" + +#~ msgid "%s, with kFreeBSD %s" +#~ msgstr "%s,kFreeBSD %s" + +#~ msgid "Loading kernel of FreeBSD %s ..." +#~ msgstr "载入 FreeBSD 内核 %s ..." + +#~ msgid "%s, with Linux %s (recovery mode)" +#~ msgstr "%s,Linux %s (恢复模式)" + +#~ msgid "%s, with Linux %s" +#~ msgstr "%s,Linux %s" + +#~ msgid "Loading Linux %s ..." +#~ msgstr "载入 Linux ..." + +#~ msgid "Loading initial ramdisk ..." +#~ msgstr "载入引导虚拟磁盘。" + +#~ msgid "A boot catalog exists and appears corrupted.\n" +#~ msgstr "引导目录存在且似乎已损坏。\n" + +#~ msgid "Please check the following file: %s.\n" +#~ msgstr "请检查以下文件:%s。\n" + +#~ msgid "This file must be removed before a bootable CD can be done.\n" +#~ msgstr "必须在可引导 CD 完成之前删除此文件。\n" + +#~ msgid "Error creating boot catalog (%s)" +#~ msgstr "创建引导目录时出错(%s)" + +#~ msgid "Error writing to boot catalog (%s)" +#~ msgstr "写入引导目录时出错(%s)" + +#~ msgid "Boot catalog cannot be found!\n" +#~ msgstr "无法找到引导目录!\n" + +#~ msgid "Boot image cannot be found!\n" +#~ msgstr "无法找到引导镜像!\n" + +#~ msgid "" +#~ "\n" +#~ "Size of boot image is %d sectors" +#~ msgstr "" +#~ "\n" +#~ "引导镜像的大小为 %d 个扇区" + +#~ msgid "No emulation\n" +#~ msgstr "无模拟\n" + +#~ msgid "Emulating a 1.44 meg floppy\n" +#~ msgstr "模拟 1.44MB 软盘\n" + +#~ msgid "Emulating a 2.88 meg floppy\n" +#~ msgstr "模拟 2.88MB 软盘\n" + +#~ msgid "Emulating a 1.2 meg floppy\n" +#~ msgstr "模拟 1.2MB 软盘\n" + +#~ msgid "" +#~ "\n" +#~ "Error - boot image is not the an allowable size.\n" +#~ msgstr "" +#~ "\n" +#~ "错误 - 引导镜像大小不被允许。\n" + +#~ msgid "Error opening boot catalog for update" +#~ msgstr "无法打开引导目录进行更新" + +#~ msgid "Error writing to boot catalog" +#~ msgstr "写入到引导目录时出错" + +#~ msgid "Error opening boot image file '%s' for update" +#~ msgstr "无法打开引导镜像文件“%s”进行更新" + +#~ msgid "Odd alignment at non-end-of-file in boot image '%s'" +#~ msgstr "引导镜像“%s”在非文件结束位置上存在错误的对齐。" + +#~ msgid "Boot image file '%s' changed unexpectedly" +#~ msgstr "引导镜像文件“%s”意外改变" + +#~ msgid "Error writing to boot image (%s)" +#~ msgstr "写入到引导镜像出错(%s)" + +#~ msgid "Unable to generate sane path tables - too many directories (%d)\n" +#~ msgstr "无法生成合理的路径表 - 目录过多(%d)\n" + +#~ msgid "Entry %d not in path tables\n" +#~ msgstr "条目 %d 不在路径表中\n" + +#~ msgid "Fatal goof - directory has amnesia\n" +#~ msgstr "致命错误 - 目录失忆\n" + +#~ msgid "Joliet path table lengths do not match %d %d\n" +#~ msgstr "Joliet 路径表长度不匹配 %d %d\n" + +#~ msgid "Unable to locate relocated directory\n" +#~ msgstr "无法找到重定位的目录\n" + +#~ msgid "Fatal goof - unable to find directory location\n" +#~ msgstr "致命错误 - 无法找到目录位置\n" + +#~ msgid "Unexpected joliet directory length %d %d %s\n" +#~ msgstr "未预料的 Joliet 目录长度 %d %d %s\n" + +#~ msgid "Process all files (don't skip backup files)" +#~ msgstr "处理全部文件(包括备份文件)" + +#~ msgid "ID" +#~ msgstr "ID" + +#~ msgid "Set Application ID" +#~ msgstr "设置应用 ID" + +#~ msgid "Set Bibliographic filename" +#~ msgstr "设置参考信息文件名" + +#~ msgid "Set Copyright filename" +#~ msgstr "设置版权文件名" + +#~ msgid "Set embedded boot image name" +#~ msgstr "设置嵌入式启动镜像名称" + +#~ msgid "Patch a protective DOS-style label in the image" +#~ msgstr "在镜像中补充保护性的 DOS 类型标签" + +#~ msgid "Set El Torito boot image name" +#~ msgstr "设置 El Torito 引导镜像名称" + +#~ msgid "Set El Torito boot catalog name" +#~ msgstr "设置 El Torito 引导目录名称" + +#~ msgid "Patch Boot Info Table in El Torito boot image" +#~ msgstr "在 El Torito 引导镜像中补充引导信息表" + +#~ msgid "Dummy option for backward compatibility" +#~ msgstr "为与过去兼容设计的过渡选项" + +#~ msgid "Enable floppy drive emulation for El Torito" +#~ msgstr "为 El Torito 启用软驱模拟" + +#~ msgid "PARAMS" +#~ msgstr "PARAMS" + +#~ msgid "Magic parameters from cdrecord" +#~ msgstr "cdrecord 使用的 magic 参数" + +#~ msgid "Omit trailing periods from filenames" +#~ msgstr "忽略文件名尾部的句号" + +#~ msgid "Disable deep directory relocation" +#~ msgstr "禁用深度目录重定位" + +#~ msgid "Follow symbolic links" +#~ msgstr "跟随符号链接" + +#~ msgid "Print option help" +#~ msgstr "输出选项帮助信息" + +#~ msgid "Print version information and exit" +#~ msgstr "输出版本信息并退出" + +#~ msgid "GLOBFILE" +#~ msgstr "GLOBFILE" + +#~ msgid "Hide ISO9660/RR file" +#~ msgstr "隐藏 ISO9660/RR 文件" + +#~ msgid "Hide Joliet file" +#~ msgstr "隐藏 Joliet 文件" + +#~ msgid "ADD_FILES" +#~ msgstr "ADD_FILES" + +#~ msgid "No longer supported" +#~ msgstr "不再支持" + +#~ msgid "Generate Joliet directory information" +#~ msgstr "生成 Joliet 目录信息" + +#~ msgid "Allow full 32 character filenames for iso9660 names" +#~ msgstr "允许 ISO9660 文件名完整包含 32 个字符" + +#~ msgid "Allow iso9660 filenames to start with '.'" +#~ msgstr "允许 ISO9660 文件名以“.”开头" + +#~ msgid "LOG_FILE" +#~ msgstr "LOG_FILE" + +#~ msgid "Re-direct messages to LOG_FILE" +#~ msgstr "重定向所有信息到 LOG_FILE" + +#~ msgid "Exclude file name" +#~ msgstr "排除文件名" + +#~ msgid "Set path to previous session to merge" +#~ msgstr "设置上一会话的路径以便合并" + +#~ msgid "Omit version number from iso9660 filename" +#~ msgstr "从 ISO9660 文件名中忽略版本号" + +#~ msgid "Inhibit splitting symlink components" +#~ msgstr "禁止分割符号链接组件" + +#~ msgid "Inhibit splitting symlink fields" +#~ msgstr "禁止分割符号链接域" + +#~ msgid "Set output file name" +#~ msgstr "设置输出文件名" + +#~ msgid "PREP" +#~ msgstr "PREP" + +#~ msgid "Set Volume preparer" +#~ msgstr "设置卷编制者" + +#~ msgid "Print estimated filesystem size and exit" +#~ msgstr "输出文件系统估计尺寸并退出" + +#~ msgid "PUB" +#~ msgstr "PUB" + +#~ msgid "Set Volume publisher" +#~ msgstr "设置卷发行者" + +#~ msgid "Run quietly" +#~ msgstr "静默执行" + +#~ msgid "Generate rationalized Rock Ridge directory information" +#~ msgstr "生成合理化的 Rock Ridge 目录信息" + +#~ msgid "Generate Rock Ridge directory information" +#~ msgstr "生成 Rock Ridge 目录信息" + +#~ msgid "Split output into files of approx. 1GB size" +#~ msgstr "将输出分割为 1GB 大小的文件" + +#~ msgid "Set System ID" +#~ msgstr "设置系统 ID" + +#~ msgid "" +#~ "Generate translation tables for systems that don't understand long " +#~ "filenames" +#~ msgstr "为无法识别长文件名的系统生成翻译表" + +#~ msgid "Verbose" +#~ msgstr "详细" + +#~ msgid "Set Volume ID" +#~ msgstr "设置卷 ID" + +#~ msgid "Set Volume set ID" +#~ msgstr "设置卷集合 ID" + +#~ msgid "Set Volume set size" +#~ msgstr "设置卷集合大小" + +#~ msgid "Set Volume set sequence number" +#~ msgstr "设置卷集合序列号" + +#~ msgid "Exclude file name (deprecated)" +#~ msgstr "排除文件名(不建议使用)" + +#~ msgid "Override creation date" +#~ msgstr "覆盖创建日期" + +#~ msgid "Override modification date" +#~ msgstr "覆盖修改日期" + +#~ msgid "Override expiration date" +#~ msgstr "覆盖过期日期" + +#~ msgid "Override effective date" +#~ msgstr "覆盖有效日期" + +#~ msgid "Using \"%s\"\n" +#~ msgstr "使用“%s”\n" + +#~ msgid "%s:%d: name required\n" +#~ msgstr "%s:%d:需要名称\n" + +#~ msgid "%s:%d: equals sign required\n" +#~ msgstr "%s:%d:需要等号\n" + +#~ msgid "%s:%d: field name \"%s\" unknown\n" +#~ msgstr "%s:%d:域名“%s”未知\n" + +#~ msgid "Usage: %s [options] file...\n" +#~ msgstr "用法:%s [选项] 文件...\n" + +#~ msgid "Options:\n" +#~ msgstr "选项:\n" + +#~ msgid "-i option no longer supported.\n" +#~ msgstr "-i 选项已不再被支持。\n" + +#~ msgid "Required boot image pathname missing" +#~ msgstr "缺少必须的引导镜像路径名" + +#~ msgid "Required boot catalog pathname missing\n" +#~ msgstr "缺少必须的引导目录路径名\n" + +#~ msgid "Ignoring -no-emul-boot (no-emulation is the default behaviour)\n" +#~ msgstr "忽略 -no-emul-boot 选项(no-emulation是默认行为)\n" + +#~ msgid "Abstract filename string too long\n" +#~ msgstr "摘要文件名太长\n" + +#~ msgid "Application-id string too long\n" +#~ msgstr "应用程序编号串太长\n" + +#~ msgid "Bibliographic filename string too long\n" +#~ msgstr "参考信息文件名太长\n" + +#~ msgid "Copyright filename string too long\n" +#~ msgstr "版权文件名太长\n" + +#~ msgid "Preparer string too long\n" +#~ msgstr "编制者描述信息太长\n" + +#~ msgid "Publisher string too long\n" +#~ msgstr "发行者描述信息太长\n" + +#~ msgid "System ID string too long\n" +#~ msgstr "系统 ID 字符串太长\n" + +#~ msgid "Volume ID string too long\n" +#~ msgstr "卷 ID 字符串太长\n" + +#~ msgid "Volume set ID string too long\n" +#~ msgstr "卷集合 ID 太长\n" + +#~ msgid "Volume set sequence number too big\n" +#~ msgstr "卷集合序列号太大\n" + +#~ msgid "date string must be 16 characters.\n" +#~ msgstr "日期字符串长度必须为 16 个字符。\n" + +#~ msgid "Warning: getrlimit" +#~ msgstr "警告:getrlimit" + +#~ msgid "Warning: setrlimit" +#~ msgstr "警告:setrlimit" + +#~ msgid "Multisession usage bug: Must specify -C if -M is used.\n" +#~ msgstr "多会话使用错误: 若使用 -M 选项则必须指定 -C 选项。\n" + +#~ msgid "" +#~ "Warning: -C specified without -M: old session data will not be merged.\n" +#~ msgstr "" +#~ "警告:在未使用 -M 的情况下使用了 -C 选项:原有会话数据将不被合并。\n" + +#~ msgid "can't open logfile: %s" +#~ msgstr "无法打开日志文件:%s" + +#~ msgid "re-directing all messages to %s\n" +#~ msgstr "重定向所有信息到 %s\n" + +#~ msgid "can't open logfile: %s\n" +#~ msgstr "无法打开日志文件:%s\n" + +#~ msgid "Unable to open previous session image %s\n" +#~ msgstr "无法打开上一会话使用的镜像 %s\n" + +#~ msgid "Invalid node - %s\n" +#~ msgstr "无效的节点 - %s\n" + +#~ msgid "Joliet tree sort failed.\n" +#~ msgstr "Joliet 树排序失败。\n" + +#~ msgid "Unable to open /dev/null\n" +#~ msgstr "无法打开 /dev/null\n" + +#~ msgid "Unable to open disc image file\n" +#~ msgstr "无法打开磁盘镜像文件\n" + +#~ msgid "Max brk space used %x\n" +#~ msgstr "已使用的最大中断空间 %x\n" + +#~ msgid "%llu extents written (%llu MiB)\n" +#~ msgstr "%llu 已经写入扩展块(%llu MiB)\n" + +#~ msgid "Seek error on old image\n" +#~ msgstr "在旧镜像上发生搜寻错误\n" + +#~ msgid "**Bad RR version attribute" +#~ msgstr "**错误的 Rock Ridge 版本属性" + +#~ 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 "" +#~ "警告:未在前一会话中发现 Rock Ridge (-R) 或 TRANS.TBL (-T) 名称翻译,使用 " +#~ "ISO (8.3) 文件名代替。\n" + +# need to check source code. +# Is %s referring to the "old image" or the error msg? +#~ msgid "Read error on old image %s\n" +#~ msgstr "在旧镜像 %s 上发生读错误\n" + +#~ msgid "Special parameters for cdwrite not specified with -C\n" +#~ msgstr "cdwrite 的特殊参数没有通过 -C 指定\n" + +#~ msgid "Malformed cdwrite parameters\n" +#~ msgstr "cdwrite 参数格式错误\n" + +#~ msgid "symbolic link ``%s'' to long for one SL System Use Field, splitting" +#~ msgstr "符号链接“%s”对于单个 SL 系统使用域太长,进行分割" + +#~ msgid "Unable to insert transparent compressed file - name conflict\n" +#~ msgstr "无法插入透明压缩文件 - 文件名冲突\n" + +#~ msgid "Extension record too long\n" +#~ msgstr "扩展记录太长\n" + +#~ msgid "Fatal goof\n" +#~ msgstr "致命错误\n" + +#~ msgid "Unable to generate unique name for file %s\n" +#~ msgstr "无法为文件 %s 生成唯一的名字\n" + +#~ msgid "Using %s for %s%s%s (%s)\n" +#~ msgstr "为 %2$s%3$s%4$s 使用 %1$s (%5$s)\n" + +#~ msgid "Fatal error - RR overflow for file %s\n" +#~ msgstr "致命错误 - 文件 %s 发生 Rock Ridge 溢出\n" + +# need to check source code: +# is the %s referring to the "directory" or the error msg? +#~ msgid "Unable to sort directory %s\n" +#~ msgstr "无法为目录 %s 排序\n" + +#~ msgid "Translation table size mismatch %d %d\n" +#~ msgstr "翻译表大小不匹配 %d %d\n" + +#~ msgid "Unable to locate directory parent\n" +#~ msgstr "无法定位上级目录\n" + +#~ msgid "Scanning %s\n" +#~ msgstr "正在扫描 %s\n" + +#~ msgid "Unable to open directory %s\n" +#~ msgstr "无法打开目录 %s\n" + +#~ msgid "Ignoring file %s\n" +#~ msgstr "忽略文件 %s\n" + +#~ msgid "Overflow of stat buffer\n" +#~ msgstr "状态缓冲区溢出\n" + +#~ msgid "Excluded by match: %s\n" +#~ msgstr "匹配排除条件:%s\n" + +#~ msgid "Excluded: %s\n" +#~ msgstr "已排除:%s\n" + +#~ msgid "Non-existant or inaccessible: %s\n" +#~ msgstr "不存在或不可访问:%s\n" + +#~ msgid "Unable to stat file %s - ignoring and continuing.\n" +#~ msgstr "无法获得文件 %s 的状态 - 忽略并继续。\n" + +#~ msgid "Symlink %s ignored - continuing.\n" +#~ msgstr "忽略符号链接 %s - 继续。\n" + +#~ msgid "Already cached directory seen (%s)\n" +#~ msgstr "发现已缓冲目录(%s)\n" + +#~ msgid "File %s is not readable (%s) - ignoring\n" +#~ msgstr "文件 %s 无法读取(%s) - 忽略\n" + +#~ msgid "Directory loop - fatal goof (%s %lx %lu).\n" +#~ msgstr "目录循环嵌套 - 致命错误(%s %lx %lu)。\n" + +#~ msgid "Unknown file type %s - ignoring and continuing.\n" +#~ msgstr "未知文件类型 %s - 忽略并继续。\n" + +#~ msgid "Hidden from ISO9660 tree: %s\n" +#~ msgstr "从 ISO9660 树隐藏:%s\n" + +#~ msgid "Hidden from Joliet tree: %s\n" +#~ msgstr "从 Joliet 树隐藏:%s\n" + +#~ msgid "Directories too deep %s\n" +#~ msgstr "目录层次太深 %s\n" + +#~ msgid "Unable to delete non-empty directory\n" +#~ msgstr "无法删除非空目录\n" + +#~ msgid "Unable to locate child directory in parent list\n" +#~ msgstr "在上级目录列表中无法定位子目\n" + +#~ msgid "call to search_tree_file with an absolute path, stripping\n" +#~ msgstr "search_tree_file 的调用使用了绝对路径,正在剥离\n" + +#~ msgid "initial path separator. Hope this was intended...\n" +#~ msgstr "初始路径分隔符。希望这是预期的结果...\n" + +#~ msgid "Cannot open '%s'" +#~ msgstr "无法打开“%s”" + +#~ msgid "cannot fwrite %llu*%llu\n" +#~ msgstr "无法 fwrite %llu*%llu\n" + +#~ msgid "cannot open %s\n" +#~ msgstr "无法打开 %s\n" + +#~ msgid "cannot read %llu bytes from %s" +#~ msgstr "无法从 %2$s 读取 %1$llu 字节" + +#~ msgid "%6.2f%% done, estimate finish %s" +#~ msgstr "已完成 %6.2f%%,估计 %s 完成" + +#~ msgid "Cache hit for %s%s%s\n" +#~ msgstr "命中缓存:%s%s%s\n" + +#~ msgid "Unexpected directory length %d %d %s\n" +#~ msgstr "未预料的目录长度 %d %d %s\n" + +#~ msgid "Continuation entry record length mismatch (%d %d).\n" +#~ msgstr "延续条目记录的长度不匹配(%d %d)。\n" + +#~ msgid "Path table lengths do not match %d %d\n" +#~ msgstr "路径表的长度不匹配 %d %d\n" + +#~ msgid "Total extents scheduled to be written = %llu\n" +#~ msgstr "预计要写入的扩展块总数 = %llu \n" + +#~ msgid "Total extents actually written = %llu\n" +#~ msgstr "实际写入的扩展块总数 = %llu\n" + +#~ msgid "" +#~ "Number of extents written different than what was predicted. Please " +#~ "fix.\n" +#~ msgstr "实际写入的扩展块数量和预计不同。请修正。\n" + +#~ msgid "Predicted = %d, written = %llu\n" +#~ msgstr "预计 = %d,已写入 = %llu\n" + +#~ msgid "Total translation table size: %d\n" +#~ msgstr "翻译表总大小:%d\n" + +#~ msgid "Total rockridge attributes bytes: %d\n" +#~ msgstr "Rock Ridge 属性总大小:%d\n" + +#~ msgid "Total directory bytes: %d\n" +#~ msgstr "目录总字节数:%d\n" + +#~ msgid "Path table size(bytes): %d\n" +#~ msgstr "路径表大小:%d 字节\n" + +#~ msgid "Unable to open %s" +#~ msgstr "无法打开 %s" + +#~ msgid "ESC to return previous menu." +#~ msgstr "按 ESC 返回上一菜单。" + +#~ msgid "Booting '%s'" +#~ msgstr "正在引导 %s" + +#~ msgid "Falling back to '%s'" +#~ msgstr "回滚至 %s" + +#~ msgid "Failed to boot default entries.\n" +#~ msgstr "引导默认启动项失败。\n" + +#~ 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 "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'" --- grub2-1.98+20100804.orig/po/pl.po +++ grub2-1.98+20100804/po/pl.po @@ -0,0 +1,1350 @@ +# Polish translation for grub. +# Copyright (C) 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the grub package. +# Piotr Drąg , 2010. +# Jakub Bogusz , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub-1.97+20100124\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-06-19 01:35+0100\n" +"PO-Revision-Date: 2010-04-04 11:28+0100\n" +"Last-Translator: Jakub Bogusz \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: commands/acpi.c:40 +msgid "Don't load host tables specified by comma-separated list." +msgstr "" +"Bez wczytywania tablic komputera podanych przez listę tablic oddzielonych " +"przecinkami." + +#: commands/acpi.c:43 +msgid "Load only tables specified by comma-separated list." +msgstr "" +"Wczytuje tylko tablice podane przez listę tablic oddzielonych przecinkami." + +#: commands/acpi.c:44 +msgid "Expose v1 tables." +msgstr "Używa tablic w wersji 1." + +#: commands/acpi.c:45 +msgid "Expose v2 and v3 tables." +msgstr "Używa tablic w wersjach 2 i 3." + +#: commands/acpi.c:46 +msgid "Set OEMID of RSDP, XSDT and RSDT." +msgstr "Ustawia OEMID z RSDP, XSDT i RSDT." + +#: commands/acpi.c:48 +msgid "Set OEMTABLE ID of RSDP, XSDT and RSDT." +msgstr "Ustawia identyfikator OEMTABLE z RSDP, XSDT i RSDT." + +#: commands/acpi.c:50 +msgid "Set OEMTABLE revision of RSDP, XSDT and RSDT." +msgstr "Ustawia wersję OEMTABLE z RSDP, XSDT i RSDT." + +#: commands/acpi.c:52 +msgid "Set creator field of RSDP, XSDT and RSDT." +msgstr "Ustawia pole twórcy z RSDP, XSDT i RSDT." + +#: commands/acpi.c:54 +msgid "Set creator revision of RSDP, XSDT and RSDT." +msgstr "Ustawia wersję twórcy z RSDP, XSDT i RSDT." + +#: commands/acpi.c:55 +msgid "" +"Don't update EBDA. May fix failures or hangs on some. BIOSes but makes it " +"ineffective with OS not receiving RSDP from GRUB." +msgstr "" +"Bez aktualizowania EBDA. Może naprawić niektóre błędy lub awarie w " +"niektórych BIOS-ach, ale jest bezużyteczne w systemach operacyjnych nie " +"pobierających RSDP z programu GRUB." + +#: commands/acpi.c:763 +msgid "" +"[-1|-2] [--exclude=TABLE1,TABLE2|--load-only=table1,table2] FILE1 [FILE2] " +"[...]" +msgstr "" +"[-1|-2] [--exclude=TABLICA1,TABLICA2|--load-only=tablica1,tablica2] PLIK1 " +"[PLIK2] [...]" + +#: commands/acpi.c:766 +msgid "Load host ACPI tables and tables specified by arguments." +msgstr "Wczytuje tablice ACPI komputera i tablice podane w parametrach." + +#: commands/blocklist.c:113 commands/cat.c:82 commands/configfile.c:57 +#: commands/configfile.c:60 commands/configfile.c:65 commands/crc.c:64 +#: commands/minicmd.c:353 loader/i386/bsd.c:1287 loader/i386/bsd.c:1291 +#: loader/i386/bsd.c:1295 +msgid "FILE" +msgstr "PLIK" + +#: commands/blocklist.c:113 +msgid "Print a block list." +msgstr "Wyświetla listę bloków." + +#: commands/boot.c:190 +msgid "Boot an operating system." +msgstr "Uruchamia system operacyjny." + +#: commands/cat.c:82 commands/minicmd.c:353 +msgid "Show the contents of a file." +msgstr "Wyświetla zawartość pliku." + +#: commands/cmp.c:113 +msgid "FILE1 FILE2" +msgstr "PLIK1 PLIK2" + +#: commands/cmp.c:113 +msgid "Compare two files." +msgstr "Porównuje dwa pliki." + +#: commands/configfile.c:57 +msgid "Load another config file." +msgstr "Wczytuje inny plik konfiguracji." + +#: commands/configfile.c:61 commands/configfile.c:66 +msgid "Load another config file without changing context." +msgstr "Wczytuje inny plik konfiguracji bez zmieniania kontekstu." + +#: commands/crc.c:65 +msgid "Calculate the crc32 checksum of a file." +msgstr "Oblicza sumę kontrolną CRC32 pliku." + +#: commands/date.c:139 +msgid "[[year-]month-day] [hour:minute[:second]]" +msgstr "[[rok-]miesiąc-dzień] [godzina:minuta[:sekunda]]" + +#: commands/date.c:140 +msgid "Command to display/set current datetime." +msgstr "Polecenie do wyświetlenia/ustawienia bieżącej daty i czasu." + +#: commands/echo.c:27 +msgid "Do not output the trailing newline." +msgstr "Bez wyświetlania końcowych znaków nowych wierszy." + +#: commands/echo.c:28 +msgid "Enable interpretation of backslash escapes." +msgstr "Włącza interpretowanie sekwencji sterujących lewego ukośnika." + +#: commands/echo.c:117 +msgid "[-e|-n] STRING" +msgstr "[-e|-n] CIĄG" + +#: commands/echo.c:117 +msgid "Display a line of text." +msgstr "Wyświetla wiersz tekstu." + +#: commands/efi/fixvideo.c:103 +msgid "Fix video problem." +msgstr "Naprawia problem obrazu." + +#: commands/efi/loadbios.c:207 +msgid "Fake BIOS." +msgstr "Fałszywy BIOS." + +#: commands/efi/loadbios.c:211 +msgid "Load BIOS dump." +msgstr "Wczytuje zrzut BIOS-u." + +#: commands/gptsync.c:244 +msgid "DEVICE [PARTITION[+/-[TYPE]]] ..." +msgstr "URZĄDZENIE [PARTYCJA[+/-[TYP]]]..." + +#: commands/gptsync.c:245 +#, fuzzy +msgid "" +"Fill hybrid MBR of GPT drive DEVICE. Specified partitions will be a part of " +"hybrid MBR. Up to 3 partitions are allowed. TYPE is an MBR type. + means " +"that partition is active. Only one partition can be active." +msgstr "" +"Wypełnia hybrydę MBR napędu GPT URZĄDZENIA. Podane partycje będą częścią " +"hybrydy MBR. Dozwolone jest do 3 partycji. TYP jest typem MBR. + oznacza, że " +"partycja jest aktywna. Tylko jedna partycja może być aktywna." + +#: commands/halt.c:39 +msgid "" +"Halts the computer. This command does not work on all firmware " +"implementations." +msgstr "" +"Wyłącza komputer. To polecenie nie działa ze wszystkimi implementacjami " +"oprogramowania sprzętu." + +#: commands/hdparm.c:30 +msgid "" +"Set Advanced Power Management\n" +"(1=low, ..., 254=high, 255=off)." +msgstr "" +"Ustawia APM (Zaawansowane zarządzanie zasilaniem)\n" +"(1=niskie, ..., 254=wysokie, 255=wyłączone)." + +#: commands/hdparm.c:33 +msgid "Check power mode." +msgstr "Sprawdza tryb zasilania." + +#: commands/hdparm.c:34 +msgid "Freeze ATA security settings until reset." +msgstr "Zatrzymuje ustawienia bezpieczeństwa ATA do czasu przywrócenia." + +#: commands/hdparm.c:36 +msgid "Check SMART health status." +msgstr "Sprawdza stan SMART." + +#: commands/hdparm.c:37 +msgid "" +"Set Automatic Acoustic Management\n" +"(0=off, 128=quiet, ..., 254=fast)." +msgstr "" +"Ustawia AAM (Automatyczne zarządzanie akustyką)\n" +"(0=wyłączone, 128=ciche, ..., 254=szybkie)." + +#: commands/hdparm.c:40 +msgid "" +"Set standby timeout\n" +"(0=off, 1=5s, 2=10s, ..., 240=20m, 241=30m, ...)." +msgstr "" +"Ustawia czas oczekiwania przed przejściem do stanu oczekiwania\n" +"(0=wyłączone, 1=5 sekund, 2=10 sekund, ..., 240=20 minut, 241=30 minut, ...)." + +#: commands/hdparm.c:43 +msgid "Set drive to standby mode." +msgstr "Ustawia napęd w trybie oczekiwania." + +#: commands/hdparm.c:44 +msgid "Set drive to sleep mode." +msgstr "Ustawia napęd w tryb uśpienia." + +#: commands/hdparm.c:45 +msgid "Print drive identity and settings." +msgstr "Wyświetla tożsamość i ustawienia napędu." + +#: commands/hdparm.c:47 +msgid "Dump contents of ATA IDENTIFY sector." +msgstr "Zrzuca zawartość sektora IDENTIFY ATA." + +#: commands/hdparm.c:49 +msgid "Disable/enable SMART (0/1)." +msgstr "Wyłącza/włącza SMART (0/1)." + +#: commands/hdparm.c:50 +msgid "Do not print messages." +msgstr "Bez wyświetlania komunikatów." + +#: commands/hdparm.c:414 +msgid "[OPTIONS] DISK" +msgstr "[OPCJE] DYSK" + +#: commands/hdparm.c:415 +msgid "Get/set ATA disk parameters." +msgstr "Uzyskuje/ustawia parametry dysku ATA." + +#: commands/help.c:112 lib/arg.c:110 +msgid "Usage:" +msgstr "Użycie:" + +#: commands/help.c:129 +msgid "[PATTERN ...]" +msgstr "[WZORZEC...]" + +#: commands/help.c:130 +msgid "Show a help message." +msgstr "Wyświetla komunikat pomocy." + +#: commands/hexdump.c:30 +msgid "Skip offset bytes from the beginning of file." +msgstr "Pomija bajty wyrównania z początku pliku." + +#: commands/hexdump.c:32 +msgid "Read only LENGTH bytes." +msgstr "Odczytuje tylko bajty DŁUGOŚCI." + +#: commands/hexdump.c:125 +msgid "[OPTIONS] FILE_OR_DEVICE" +msgstr "[OPCJE] PLIK_LUB_URZĄDZENIE" + +#: commands/hexdump.c:126 +msgid "Dump the contents of a file or memory." +msgstr "Zrzuca zawartość pliku lub pamięci." + +#: commands/i386/cpuid.c:37 +msgid "Check for long mode flag (default)." +msgstr "Sprawdza flagę długiego trybu (domyślnie)." + +#: commands/i386/cpuid.c:92 +msgid "Check for CPU features." +msgstr "Sprawdza funkcje procesora." + +#: commands/i386/pc/drivemap.c:37 +msgid "Show the current mappings." +msgstr "Wyświetla bieżące mapowania." + +#: commands/i386/pc/drivemap.c:38 +msgid "Reset all mappings to the default values." +msgstr "Przywraca wszystkie mapowania do domyślnych wartości." + +#: commands/i386/pc/drivemap.c:39 +msgid "Perform both direct and reverse mappings." +msgstr "Wykonuje bezpośrednie i odwrotne mapowania." + +#: commands/i386/pc/drivemap.c:406 +msgid "-l | -r | [-s] grubdev osdisk." +msgstr "-l | -r | [-s] urządzenie_gruba dysk_systemu_operacyjnego." + +#: commands/i386/pc/drivemap.c:407 +msgid "Manage the BIOS drive mappings." +msgstr "Zarządza mapowaniami napędów BIOS-u." + +#: commands/i386/pc/halt.c:27 +msgid "Do not use APM to halt the computer." +msgstr "Bez używania APM do wyłączania komputera." + +#: commands/i386/pc/halt.c:51 +msgid "Halt the system, if possible using APM." +msgstr "Wyłącza komputer, jeśli to możliwe używa APM." + +#: commands/i386/pc/play.c:266 +msgid "FILE | TEMPO [PITCH1 DURATION1] [PITCH2 DURATION2] ... " +msgstr "" + +#: commands/i386/pc/play.c:267 +msgid "Play a tune." +msgstr "Odtwarza dźwięk." + +#: commands/i386/pc/pxecmd.c:46 +msgid "Unload PXE environment." +msgstr "Usuwa środowisko PXE z pamięci." + +#: commands/i386/pc/vbeinfo.c:179 +msgid "List compatible VESA BIOS extension video modes." +msgstr "Wyświetla listę zgodnych trybów obrazu rozszerzenia VESA BIOS-u." + +#: commands/i386/pc/vbetest.c:173 +msgid "Test VESA BIOS Extension 2.0+ support." +msgstr "Testuje obsługę rozszerzenia VESA BIOS-u w wersji 2.0+." + +#: commands/ieee1275/suspend.c:43 +msgid "Return to Open Firmware prompt." +msgstr "Wraca do znaku zachęty Open Firmware." + +#: commands/keystatus.c:28 +msgid "Check Shift key." +msgstr "Sprawdza klawisz Shift." + +#: commands/keystatus.c:29 +msgid "Check Control key." +msgstr "Sprawdza klawisz Ctrl." + +#: commands/keystatus.c:30 +msgid "Check Alt key." +msgstr "Sprawdza klawisz Alt." + +#: commands/keystatus.c:85 +msgid "[--shift] [--ctrl] [--alt]" +msgstr "[--shift] [--ctrl] [--alt]" + +#: commands/keystatus.c:86 +msgid "Check key modifier status." +msgstr "Sprawdza stan klawisza modyfikacji." + +#: commands/loadenv.c:33 +msgid "Specify filename." +msgstr "Podaje nazwę pliku." + +#: commands/loadenv.c:378 commands/loadenv.c:384 +msgid "[-f FILE]" +msgstr "[-f PLIK]" + +#: commands/loadenv.c:379 +msgid "Load variables from environment block file." +msgstr "Wczytuje zmienne z pliku blokowego środowiska." + +#: commands/loadenv.c:385 +msgid "List variables from environment block file." +msgstr "Wyświetla listę zmiennych z pliku blokowego środowiska." + +#: commands/loadenv.c:390 +msgid "[-f FILE] variable_name [...]" +msgstr "[-f PLIK] nazwa_zmiennej [...]" + +#: commands/loadenv.c:391 +msgid "Save variables to environment block file." +msgstr "Zapisuje zmienne do pliku blokowego środowiska." + +#: commands/ls.c:37 +msgid "Show a long list with more detailed information." +msgstr "Wyświetla długą listę z bardziej szczegółowymi informacjami." + +#: commands/ls.c:38 +msgid "Print sizes in a human readable format." +msgstr "Wyświetla rozmiary w formacie czytelnym dla człowieka." + +#: commands/ls.c:39 +msgid "List all files." +msgstr "Wyświetla listę wszystkich plików." + +#: commands/ls.c:269 +msgid "[-l|-h|-a] [FILE]" +msgstr "[-l|-h|-a] [PLIK]" + +#: commands/ls.c:270 +msgid "List devices and files." +msgstr "Wyświetla listę urządzeń i plików." + +#: commands/lsmmap.c:51 +msgid "List memory map provided by firmware." +msgstr "" +"Wyświetla listę map pamięci dostarczanych przez oprogramowanie sprzętu." + +#: commands/lspci.c:228 +msgid "List PCI devices." +msgstr "Wyświetla listę urządzeń PCI." + +#: commands/memrw.c:31 +msgid "Save read value into variable VARNAME." +msgstr "Zapisuje odczytaną wartość do zmiennej NAZWA_ZMIENNEJ." + +#: commands/memrw.c:123 commands/memrw.c:126 commands/memrw.c:129 +#: commands/minicmd.c:362 +msgid "ADDR" +msgstr "ADRES" + +#: commands/memrw.c:123 +msgid "Read byte from ADDR." +msgstr "Odczytuje bajt z ADRESU." + +#: commands/memrw.c:126 +msgid "Read word from ADDR." +msgstr "Odczytuje słowo z ADRESU." + +#: commands/memrw.c:129 +msgid "Read dword from ADDR." +msgstr "Odczytuje słowo podwójne z ADRESU." + +#: commands/memrw.c:132 commands/memrw.c:135 commands/memrw.c:138 +msgid "ADDR VALUE [MASK]" +msgstr "ADRES WARTOŚĆ [MASKA]" + +#: commands/memrw.c:132 +msgid "Write byte VALUE to ADDR." +msgstr "Zapisuje WARTOŚĆ bajtową do ADRESU." + +#: commands/memrw.c:135 +msgid "Write word VALUE to ADDR." +msgstr "Zapisuje WARTOŚĆ słowa do adresu." + +#: commands/memrw.c:138 +msgid "Write dword VALUE to ADDR." +msgstr "Zapisuje WARTOŚĆ słowa podwójnego do ADRESU." + +#: commands/minicmd.c:356 +msgid "Show this message." +msgstr "Wyświetla ten komunikat." + +#: commands/minicmd.c:359 commands/probe.c:154 +msgid "[DEVICE]" +msgstr "[URZĄDZENIE]" + +#: commands/minicmd.c:359 +msgid "Set the root device." +msgstr "Ustawia urządzenie główne." + +#: commands/minicmd.c:362 +msgid "Dump memory." +msgstr "Zrzuca pamięć." + +#: commands/minicmd.c:365 +msgid "MODULE" +msgstr "MODUŁ" + +#: commands/minicmd.c:365 +msgid "Remove a module." +msgstr "Usuwa moduł." + +#: commands/minicmd.c:368 +msgid "Show loaded modules." +msgstr "Wyświetla wczytane moduły." + +#: commands/minicmd.c:371 +msgid "Exit from GRUB." +msgstr "Kończy działanie programu GRUB." + +#: commands/minicmd.c:374 +msgid "Clear the screen." +msgstr "Czyści ekran." + +#: commands/parttool.c:325 +msgid "PARTITION COMMANDS" +msgstr "PARTYCJA POLECENIA" + +#: commands/password.c:78 +msgid "USER PASSWORD" +msgstr "UŻYTKOWNIK HASŁO" + +#: commands/password.c:79 +msgid "Set user password (plaintext). Unrecommended and insecure." +msgstr "" +"Ustawia hasło użytkownika (w zwykłym tekście). Niezalecane i potencjalnie " +"niebezpieczne." + +#: commands/probe.c:38 +msgid "Set a variable to return value." +msgstr "Ustawia zmienną na wartość zwrotną." + +#: commands/probe.c:39 +msgid "Determine driver." +msgstr "Określa sterownik." + +#: commands/probe.c:40 +msgid "Determine partition map type." +msgstr "Określa typ mapy partycji." + +#: commands/probe.c:41 +msgid "Determine filesystem type." +msgstr "Określa typ systemu plików." + +#: commands/probe.c:42 +msgid "Determine filesystem UUID." +msgstr "Określa UUID systemu plików." + +#: commands/probe.c:43 +msgid "Determine filesystem label." +msgstr "Określa etykietę systemu plików." + +#: commands/probe.c:155 +msgid "Retrieve device info." +msgstr "Pobiera informacje o urządzeniu." + +#: commands/read.c:83 +msgid "[ENVVAR]" +msgstr "[ZMIENNA_ŚRODOWISKOWA]" + +#: commands/read.c:84 +msgid "Set variable with user input." +msgstr "Ustawia zmienną za pomocą danych wprowadzonych przez użytkownika." + +#: commands/reboot.c:39 +msgid "Reboot the computer." +msgstr "Ponownie uruchamia komputer." + +#: commands/search.c:161 +msgid "NAME [VARIABLE]" +msgstr "NAZWA [ZMIENNA]" + +#: commands/search_file.c:5 +msgid "" +"Search devices by file. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Wyszukuje urządzenia według pliku. Jeśli podano ZMIENNĄ, pierwsze " +"odnalezione urządzenie jest ustawiane na ZMIENNĄ." + +#: commands/search_label.c:5 +msgid "" +"Search devices by label. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Wyszukuje urządzenia według etykiety. Jeśli podano ZMIENNĄ, pierwsze " +"odnalezione urządzenie jest ustawiane na ZMIENNĄ." + +#: commands/search_uuid.c:5 +msgid "" +"Search devices by UUID. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Wyszukuje urządzenia według UUID. Jeśli podano ZMIENNĄ, pierwsze odnalezione " +"urządzenie jest ustawiane na ZMIENNĄ." + +#: commands/sleep.c:30 +msgid "Verbose countdown." +msgstr "Widoczne odliczanie." + +#: commands/sleep.c:31 +msgid "Interruptible with ESC." +msgstr "Można przerwać za pomocą klawisza Esc." + +#: commands/sleep.c:105 +msgid "NUMBER_OF_SECONDS" +msgstr "LICZBA_SEKUND" + +#: commands/sleep.c:106 +msgid "Wait for a specified number of seconds." +msgstr "Czeka przez podaną liczbę sekund." + +#: commands/test.c:424 +msgid "EXPRESSION ]" +msgstr "WYRAŻENIE ]" + +#: commands/test.c:424 commands/test.c:426 +msgid "Evaluate an expression." +msgstr "Oblicza wyrażenie." + +#: commands/test.c:426 +msgid "EXPRESSION" +msgstr "WYRAŻENIE" + +#: commands/true.c:47 +msgid "Do nothing, successfully." +msgstr "Nic nie robi, pomyślnie kończąc działanie." + +#: commands/true.c:50 +msgid "Do nothing, unsuccessfully." +msgstr "Nic nie robi, niepomyślnie kończąc działanie." + +#: commands/usbtest.c:208 +msgid "Test USB support." +msgstr "testuje obsługę USB." + +#: commands/videotest.c:180 +msgid "Test video subsystem." +msgstr "Testuje podsystem obrazu." + +#: commands/xnu_uuid.c:92 +msgid "GRUBUUID [VARNAME]" +msgstr "UUID_GRUB-A [NAZWA_ZMIENNEJ]" + +#: commands/xnu_uuid.c:93 +msgid "Transform 64-bit UUID to format suitable for XNU." +msgstr "Przekształca 64 bitowy UUID do formatu odpowiedniego dla XNU." + +#: disk/loopback.c:40 +msgid "Delete the loopback device entry." +msgstr "Usuwa wpis urządzenia loopback." + +#: disk/loopback.c:41 +msgid "Simulate a hard drive with partitions." +msgstr "Symuluje dysk twardy z partycjami." + +#: disk/loopback.c:249 +msgid "[-d|-p] DEVICENAME FILE." +msgstr "[-d|-p] NAZWA_URZĄDZENIA PLIK." + +#: disk/loopback.c:250 +msgid "Make a device of a file." +msgstr "Tworzy urządzenie z pliku." + +#: hello/hello.c:43 +msgid "Say \"Hello World\"." +msgstr "Wypisuje tekst \"Hello World\"." + +#: lib/arg.c:34 +msgid "Display this help and exit." +msgstr "Wyświetla tę pomoc i kończy działanie." + +#: lib/arg.c:36 +msgid "Display the usage of this command and exit." +msgstr "Wyświetla użycie tego polecenia i kończy działanie." + +#: loader/efi/appleloader.c:325 +msgid "Boot legacy system." +msgstr "Uruchamia przestarzały system." + +#: loader/efi/chainloader.c:340 loader/i386/pc/chainloader.c:166 +msgid "Load another boot loader." +msgstr "Wczytuje inny program startowy." + +#: loader/i386/bsd.c:65 +msgid "Display output on all consoles." +msgstr "Wyświetla wyjście na wszystkich konsolach." + +#: loader/i386/bsd.c:66 +msgid "Use serial console." +msgstr "Używa konsoli szeregowej." + +#: loader/i386/bsd.c:67 loader/i386/bsd.c:93 loader/i386/bsd.c:114 +msgid "Ask for file name to reboot from." +msgstr "Pyta, z jakiego pliku uruchomić." + +#: loader/i386/bsd.c:68 +msgid "Use CDROM as root." +msgstr "Używa napędu CD-ROM jako root." + +#: loader/i386/bsd.c:69 +msgid "Invoke user configuration routing." +msgstr "Wywołuje trasowanie konfiguracji użytkownika." + +#: loader/i386/bsd.c:70 loader/i386/bsd.c:97 loader/i386/bsd.c:117 +msgid "Enter in KDB on boot." +msgstr "Przechodzi do KDB podczas uruchamiania." + +#: loader/i386/bsd.c:71 +msgid "Use GDB remote debugger instead of DDB." +msgstr "Używa zdalnego debugera GDB zamiast DDB." + +#: loader/i386/bsd.c:72 +msgid "Disable all boot output." +msgstr "Wyłącza całe wyjście uruchamiania." + +#: loader/i386/bsd.c:74 +msgid "Wait for keypress after every line of output." +msgstr "Czeka na naciśnięcie klawisza po każdym wierszu wyjścia." + +#: loader/i386/bsd.c:76 +msgid "Use compiled-in rootdev." +msgstr "Używane wkompilowanego rootdev." + +#: loader/i386/bsd.c:77 loader/i386/bsd.c:96 loader/i386/bsd.c:120 +msgid "Boot into single mode." +msgstr "Uruchamia w trybie pojedynczego użytkownika." + +#: loader/i386/bsd.c:78 loader/i386/bsd.c:121 +msgid "Boot with verbose messages." +msgstr "Uruchamia z większą ilością komunikatów." + +#: loader/i386/bsd.c:94 loader/i386/bsd.c:115 +msgid "Don't reboot, just halt." +msgstr "Nie uruchamia ponownie, tylko wyłącza." + +#: loader/i386/bsd.c:95 loader/i386/bsd.c:116 +msgid "Change configured devices." +msgstr "Zmienia skonfigurowane urządzenia." + +#: loader/i386/bsd.c:98 loader/i386/bsd.c:124 +msgid "Set root device." +msgstr "Ustawia urządzenie główne." + +#: loader/i386/bsd.c:112 +msgid "Disable SMP." +msgstr "Wyłącza SMP." + +#: loader/i386/bsd.c:113 +msgid "Disable ACPI." +msgstr "Wyłącza ACPI." + +#: loader/i386/bsd.c:119 +msgid "Don't display boot diagnostic messages." +msgstr "Bez wyświetlania komunikatów diagnostycznych uruchamiania." + +#: loader/i386/bsd.c:122 +msgid "Boot with debug messages." +msgstr "Uruchamia z komunikatami debugowania." + +#: loader/i386/bsd.c:123 +msgid "Supress normal output (warnings remain)." +msgstr "Zmniejsza zwykłe wyjście (ostrzeżenia pozostają)." + +#: loader/i386/bsd.c:124 +msgid "DEVICE" +msgstr "URZĄDZENIE" + +#: loader/i386/bsd.c:1287 +msgid "Load kernel of FreeBSD." +msgstr "Wczytuje jądro systemu FreeBSD." + +#: loader/i386/bsd.c:1291 +msgid "Load kernel of OpenBSD." +msgstr "Wczytuje jądro systemu OpenBSD." + +#: loader/i386/bsd.c:1295 +msgid "Load kernel of NetBSD." +msgstr "Wczytuje jądro systemu NetBSD." + +#: loader/i386/bsd.c:1299 +msgid "Load FreeBSD env." +msgstr "Wczytuje środowisko systemu FreeBSD." + +#: loader/i386/bsd.c:1302 +msgid "Load FreeBSD kernel module." +msgstr "Wczytuje moduł jądra FreeBSD." + +#: loader/i386/bsd.c:1305 +msgid "Load FreeBSD kernel module (ELF)." +msgstr "Wczytuje moduł jądra FreeBSD (ELF)." + +#: loader/i386/efi/linux.c:1011 loader/i386/ieee1275/linux.c:301 +#: loader/i386/linux.c:1012 loader/i386/pc/linux.c:399 +#: loader/powerpc/ieee1275/linux.c:353 loader/sparc64/ieee1275/linux.c:519 +msgid "Load Linux." +msgstr "Wczytuje system Linux." + +#: loader/i386/efi/linux.c:1013 loader/i386/ieee1275/linux.c:303 +#: loader/i386/linux.c:1014 loader/i386/pc/linux.c:402 +#: loader/powerpc/ieee1275/linux.c:355 loader/sparc64/ieee1275/linux.c:521 +msgid "Load initrd." +msgstr "Wczytuje obraz initrd." + +#: loader/i386/xnu.c:1032 +msgid "Load device-properties dump." +msgstr "Wczytuje zrzut właściwości urządzenia." + +#: loader/multiboot.c:337 +msgid "Load a multiboot 2 kernel." +msgstr "Wczytuje jądro Multiboot 2." + +#: loader/multiboot.c:340 +#, fuzzy +msgid "Load a multiboot 2 module." +msgstr "Wczytuje moduł Multiboot." + +#: loader/multiboot.c:343 +msgid "Load a multiboot kernel." +msgstr "Wczytuje jądro Multiboot." + +#: loader/multiboot.c:346 +msgid "Load a multiboot module." +msgstr "Wczytuje moduł Multiboot." + +#: loader/xnu.c:1428 +msgid "Load XNU image." +msgstr "Wczytuje obraz systemu XNU." + +#: loader/xnu.c:1430 +msgid "Load 64-bit XNU image." +msgstr "Wczytuje 64 bitowy obraz systemu XNU." + +#: loader/xnu.c:1432 +msgid "Load XNU extension package." +msgstr "Wczytuje pakiet rozszerzeń systemu XNU." + +#: loader/xnu.c:1434 +msgid "Load XNU extension." +msgstr "Wczytuje rozszerzenie systemu XNU." + +#: loader/xnu.c:1436 +msgid "DIRECTORY [OSBundleRequired]" +msgstr "KATALOG [WymaganyJestWbudowanySystemOperacyjny]" + +#: loader/xnu.c:1437 +msgid "Load XNU extension directory." +msgstr "Wczytuje katalog rozszerzeń systemu XNU." + +#: loader/xnu.c:1444 +msgid "Load a splash image for XNU." +msgstr "Wczytuje obraz powitalny dla systemu XNU." + +#: loader/xnu.c:1449 +msgid "Load XNU hibernate image." +msgstr "Wczytuje obraz hibernacji systemu XNU." + +#: normal/auth.c:217 +msgid "Enter username: " +msgstr "Nazwa użytkownika: " + +#: normal/auth.c:222 +msgid "Enter password: " +msgstr "Hasło: " + +#: normal/color.c:80 +#, c-format +msgid "Warning: syntax error (missing slash) in `%s'\n" +msgstr "Ostrzeżenie: błąd składni (brak ukośnika) w \"%s\"\n" + +#: normal/color.c:89 +#, c-format +msgid "Warning: invalid foreground color `%s'\n" +msgstr "Ostrzeżenie: nieprawidłowy kolor tekstu \"%s\"\n" + +#: normal/color.c:95 +#, c-format +msgid "Warning: invalid background color `%s'\n" +msgstr "Ostrzeżenie: nieprawidłowy kolor tła \"%s\"\n" + +#: normal/dyncmd.c:144 +msgid "not loaded" +msgstr "nie wczytano" + +#: normal/main.c:415 +#, c-format +msgid "GNU GRUB version %s" +msgstr "GNU GRUB wersja %s" + +#: normal/main.c:552 +#, c-format +msgid "" +"Minimal BASH-like line editing is supported. For the first word, TAB lists " +"possible command completions. Anywhere else TAB lists possible device or " +"file completions. %s" +msgstr "" +"Obsługiwane jest minimalne modyfikowanie wierszy w stylu powłoki Bash. " +"Naciśnięcie klawisza Tab wyświetla listę możliwych uzupełnień polecenia po " +"wpisaniu pierwszego słowa. W innych miejscach naciśnięcie klawisza Tab " +"wyświetla listę możliwych uzupełnień urządzeń lub plików. %s" + +#: normal/main.c:555 +msgid "ESC at any time exits." +msgstr "Wciśnięcie klawisza Esc w każdej chwili powoduje zakończenie." + +#: normal/main.c:670 +msgid "Enter normal mode." +msgstr "" + +#: normal/main.c:672 +msgid "Exit from normal mode." +msgstr "" + +#: normal/menu_entry.c:1061 +msgid "Possible commands are:" +msgstr "Możliwe polecenia:" + +#: normal/menu_entry.c:1065 +msgid "Possible devices are:" +msgstr "Możliwe urządzenia:" + +#: normal/menu_entry.c:1069 +msgid "Possible files are:" +msgstr "Możliwe pliki:" + +#: normal/menu_entry.c:1073 +msgid "Possible partitions are:" +msgstr "Możliwe partycje:" + +#: normal/menu_entry.c:1077 +msgid "Possible arguments are:" +msgstr "Możliwe parametry:" + +#: normal/menu_entry.c:1081 +msgid "Possible things are:" +msgstr "Możliwe są:" + +#: normal/menu_entry.c:1185 +msgid "Booting a command list" +msgstr "Uruchamianie listy poleceń" + +#: normal/menu_entry.c:1398 +msgid "Press any key to continue..." +msgstr "Naciśnięcie dowolnego klawisza kontynuuje..." + +#: normal/menu_text.c:180 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"F1 to boot, F2=Ctrl-a, F3=Ctrl-e, F4 for a command-line or ESC to discard " +"edits and return to the GRUB menu." +msgstr "" +"Obsługiwane jest minimalne modyfikowanie ekrany w stylu programu Emacs. " +"Naciśnięcie klawisza Tab wyświetla uzupełnienia. Naciśnięcie Ctrl-X " +"uruchamia, Ctrl-C powoduje przejście do wiersza poleceń, a Esc powoduje " +"powrót do menu." + +#: normal/menu_text.c:185 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"Ctrl-x to boot, Ctrl-c for a command-line or ESC to discard edits and return " +"to the GRUB menu." +msgstr "" +"Obsługiwane jest minimalne modyfikowanie ekrany w stylu programu Emacs. " +"Naciśnięcie klawisza Tab wyświetla uzupełnienia. Naciśnięcie Ctrl-X " +"uruchamia, Ctrl-C powoduje przejście do wiersza poleceń, a Esc powoduje " +"powrót do menu." + +#: normal/menu_text.c:193 +#, c-format +msgid "Use the %C and %C keys to select which entry is highlighted.\n" +msgstr "Należy użyć klawiszy %C i %C, aby wybrać wyróżniony wpis.\n" + +#: normal/menu_text.c:210 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line. ESC to return previous menu.\n" +msgstr "" +"Naciśnięcie klawisza Enter uruchamia wybrany system operacyjny, \"E\" " +"modyfikuje polecenia przed uruchomieniem, a \"C\" przechodzi do wiersza " +"poleceń. Klawisz Esc powoduje przejście do poprzedniego menu.\n" + +#: normal/menu_text.c:218 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line.\n" +msgstr "" +"Naciśnięcie klawisza Enter uruchamia wybrany system operacyjny, \"E\" " +"modyfikuje polecenia przed uruchomieniem, a \"C\" przechodzi do wiersza " +"poleceń.\n" + +#: normal/menu_text.c:370 +#, c-format +msgid "The highlighted entry will be executed automatically in %ds." +msgstr "Wyróżniony wpis zostanie wykonany automatycznie za %ds." + +#: normal/misc.c:41 +#, c-format +msgid "Partition %s:" +msgstr "Partycja %s:" + +#: normal/misc.c:46 +#, c-format +msgid "Device %s:" +msgstr "Urządzenie %s:" + +#: normal/misc.c:52 +msgid "Filesystem cannot be accessed" +msgstr "Nie można uzyskać dostępu do systemu plików" + +#: normal/misc.c:63 +#, c-format +msgid "Filesystem type %s" +msgstr "Typ systemu plików %s" + +#: normal/misc.c:73 +#, c-format +msgid "- Label \"%s\"" +msgstr "- etykieta \"%s\"" + +#: normal/misc.c:88 +#, c-format +msgid "- Last modification time %d-%02d-%02d %02d:%02d:%02d %s" +msgstr "- czas ostatniej modyfikacji %d-%02d-%02d %02d:%02d:%02d %s" + +#: normal/misc.c:111 +msgid "Unknown filesystem" +msgstr "Nieznany system plików" + +#: normal/misc.c:113 +msgid "Partition table" +msgstr "Tablica partycji" + +#: term/serial.c:46 +msgid "Set the serial unit." +msgstr "Ustawia jednostkę szeregową." + +#: term/serial.c:47 +msgid "Set the serial port address." +msgstr "Ustawia adres portu szeregowego." + +#: term/serial.c:48 +msgid "Set the serial port speed." +msgstr "Ustawia prędkość portu szeregowego." + +#: term/serial.c:49 +msgid "Set the serial port word length." +msgstr "Ustawia długość słowa portu szeregowego." + +#: term/serial.c:50 +msgid "Set the serial port parity." +msgstr "Ustawia parzystość portu szeregowego." + +#: term/serial.c:51 +msgid "Set the serial port stop bits." +msgstr "Ustawia bity zatrzymania portu szeregowego." + +#: term/serial.c:619 +#, fuzzy +msgid "[OPTIONS...]" +msgstr "[OPCJE] DYSK" + +#: term/serial.c:620 +msgid "Configure serial port." +msgstr "" + +#: util/grub-mkimage.c:440 +msgid "the core image is too small" +msgstr "obraz core jest za mały" + +#: util/grub-mkimage.c:451 +msgid "cannot compress the kernel image" +msgstr "nie można skompresować obrazu jądra" + +#: util/grub-mkimage.c:548 +msgid "prefix is too long" +msgstr "przedrostek jest za długi" + +#: util/grub-mkimage.c:672 +#, c-format +msgid "core image is too big (%p > %p)" +msgstr "obraz core jest za duży (%p>%p)" + +#: util/grub-mkimage.c:678 +msgid "the core image is too big" +msgstr "obraz core jest za duży" + +#: util/grub-mkimage.c:683 +#, c-format +msgid "diskboot.img size must be %u bytes" +msgstr "rozmiar pliku diskboot.img musi wynosić %u bajtów" + +#: util/grub-mkimage.c:1168 util/i386/pc/grub-setup.c:619 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "\"%s --help\" wyświetla więcej informacji.\n" + +#: util/grub-mkimage.c:1187 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... [MODULES]\n" +"\n" +"Make a bootable image of GRUB.\n" +"\n" +" -d, --directory=DIR use images and modules under DIR [default=%s/" +"@platform@]\n" +" -p, --prefix=DIR set grub_prefix directory [default=%s]\n" +" -m, --memdisk=FILE embed FILE as a memdisk image\n" +" -f, --font=FILE embed FILE as a boot font\n" +" -c, --config=FILE embed FILE as boot config\n" +" -n, --note add NOTE segment for CHRP Open Firmware\n" +" -o, --output=FILE output a generated image to FILE [default=stdout]\n" +" -O, --format=FORMAT generate an image in format\n" +" available formats: %s\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 "" +"Użycie: %s [OPCJA]... [MODUŁY]\n" +"\n" +"Tworzy startowy obraz programu GRUB.\n" +"\n" +" -d, --directory=KAT używa obrazów i modułów Z KATALOGU [domyślnie=%s]\n" +" -p, --prefix=KAT ustawia katalog grub_prefix [domyślnie=%s]\n" +" -m, --memdisk=PLIK osadza PLIK jako obraz dysku pamięci\n" +" -f, --font=PLIK osadza PLIK jako czcionkę ekranu startowego\n" +" -c, --config=PLIK osadza PLIK jako konfigurację startową\n" +" -o, --output=PLIK zapisuje utworzony obraz do PLIKU\n" +" [domyślnie=standardowe wyjście]\n" +" -O, --format=FORMAT tworzy obraz w formacie [default=" + +#: util/grub-mkimage.c:1333 +#, c-format +msgid "cannot open %s" +msgstr "nie można otworzyć %s" + +#: util/i386/pc/grub-setup.c:164 +msgid "the first sector of the core file is not sector-aligned" +msgstr "pierwszy sektor pliku core nie jest wyrównany do sektora" + +#: util/i386/pc/grub-setup.c:178 +msgid "non-sector-aligned data is found in the core file" +msgstr "odnaleziono dane nie wyrównane do sektora w pliku core" + +#: util/i386/pc/grub-setup.c:192 +msgid "the sectors of the core file are too fragmented" +msgstr "sektory pliku core są zbyt pofragmentowane" + +#: util/i386/pc/grub-setup.c:203 +#, c-format +msgid "the size of `%s' is not %u" +msgstr "rozmiar \"%s\" nie wynosi %u" + +#: util/i386/pc/grub-setup.c:220 +#, c-format +msgid "the size of `%s' is too small" +msgstr "rozmiar \"%s\" jest za mały" + +#: util/i386/pc/grub-setup.c:222 +#, c-format +msgid "the size of `%s' is too large" +msgstr "rozmiar \"%s\" jest za duży" + +#: util/i386/pc/grub-setup.c:261 +#, c-format +msgid "unable to identify a filesystem in %s; safety check can't be performed" +msgstr "" +"nie można zidentyfikować systemu plików w %s; nie można wykonać sprawdzania " +"bezpieczeństwa" + +#: 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 zawiera system plików %s, który nie jest znany z rezerwowania miejsca na " +"uruchamianie w stylu systemu DOS. Instalowanie programu GRUB może spowodować " +"USZKODZENIE SYSTEMU PLIKÓW, jeśli ważne dane zostaną zastąpione przez " +"program grub-setup (parametr --skip-fs-probe wyłącza to sprawdzanie, co " +"należy używać na własne ryzyko)" + +#: util/i386/pc/grub-setup.c:339 util/i386/pc/grub-setup.c:366 +msgid "" +"Attempting to install GRUB to a partitionless disk. This is a BAD idea." +msgstr "" +"Próba zainstalowania programu GRUB na dysku bez partycji. To jest ZŁY pomysł." + +#: util/i386/pc/grub-setup.c:345 +msgid "" +"Attempting to install GRUB to a partition instead of the MBR. This is a BAD " +"idea." +msgstr "" +"Próba zainstalowania programu GRUB na partycji zamiast MBR. To jest ZŁY " +"pomysł." + +#: util/i386/pc/grub-setup.c:375 +msgid "No DOS-style partitions found" +msgstr "Nie odnaleziono partycji w stylu systemu DOS" + +#: util/i386/pc/grub-setup.c:380 +msgid "" +"This msdos-style partition label has no post-MBR gap; embedding won't be " +"possible!" +msgstr "" +"Ta etykieta partycji w stylu systemu MS-DOS nie posiada odstępu po MBR; " +"osadzanie nie będzie możliwe." + +#: util/i386/pc/grub-setup.c:382 +msgid "" +"This GPT partition label has no BIOS Boot Partition; embedding won't be " +"possible!" +msgstr "" +"Ta etykieta partycji GPT nie posiada partycji startowej BIOS-u; osadzanie " +"nie będzie możliwe." + +#: util/i386/pc/grub-setup.c:389 +msgid "Your core.img is unusually large. It won't fit in the embedding area." +msgstr "" +"Plik core.img jest niezwykle duży. Nie zmieści się w obszarze osadzania." + +#: util/i386/pc/grub-setup.c:391 +msgid "Your embedding area is unusually small. core.img won't fit in it." +msgstr "" +"Obszar osadzania jest niezwykle mały. Plik core.img nie zmieści się w nim." + +#: util/i386/pc/grub-setup.c:436 +msgid "" +"embedding is not possible, but this is required when the root device is on a " +"RAID array or LVM volume" +msgstr "" +"osadzanie nie jest możliwe, ale jest wymagane, kiedy urządzenie główne " +"znajduje się w macierzy RAID lub woluminie LVM" + +#: util/i386/pc/grub-setup.c:439 +#, fuzzy +msgid "" +"Embedding is not possible. GRUB can only be installed in this setup by " +"using blocklists. However, blocklists are UNRELIABLE and their use is " +"discouraged." +msgstr "" +"Osadzanie nie jest możliwe. Program GRUB może być instalowany z tymi " +"ustawieniami tylko używając list blokowania. Jednakże, listy blokowania są " +"NIEPEWNE, a ich używanie jest niezalecane." + +#: util/i386/pc/grub-setup.c:443 +msgid "if you really want blocklists, use --force" +msgstr "" +"jeśli na pewno wymagane są listy blokowania, należy użyć parametru --force" + +#: util/i386/pc/grub-setup.c:462 +#, c-format +msgid "attempting to read the core image `%s' from GRUB" +msgstr "próba odczytania obrazu core \"%s\" z programu GRUB" + +#: util/i386/pc/grub-setup.c:463 +#, c-format +msgid "attempting to read the core image `%s' from GRUB again" +msgstr "ponowna próba odczytania obrazu core \"%s\" z programu GRUB" + +#: util/i386/pc/grub-setup.c:530 +#, c-format +msgid "cannot read `%s' correctly" +msgstr "nie można poprawnie odczytać \"%s\"" + +#: util/i386/pc/grub-setup.c:543 +msgid "no terminator in the core image" +msgstr "brak odstępu w obrazie core" + +#: util/i386/pc/grub-setup.c:554 +msgid "failed to read the first sector of the core image" +msgstr "odczytanie pierwszego sektora obrazu core się nie powiodło" + +#: util/i386/pc/grub-setup.c:560 +msgid "failed to read the rest sectors of the core image" +msgstr "odczytanie pozostałych sektorów obrazu core się nie powiodło" + +#: util/i386/pc/grub-setup.c:579 +#, c-format +msgid "cannot open `%s'" +msgstr "nie można otworzyć \"%s\"" + +#: util/i386/pc/grub-setup.c:621 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... DEVICE\n" +"\n" +"Set up images to boot from DEVICE.\n" +"DEVICE must be a GRUB device (e.g. `(hd0,1)').\n" +"\n" +"You should not normally run %s directly. Use grub-install instead.\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 "" +"Użycie: %s [OPCJA]... URZĄDZENIE\n" +"\n" +"Ustawia obrazy do uruchomienia z URZĄDZENIA.\n" +"URZĄDZENIE musi być urządzeniem programu GRUB (np. \"(hd0,1)\").\n" +"\n" +" -b, --boot-image=PLIK używa PLIKU jako obraz startowy [domyślnie=%s]\n" +" -c, --core-image=PLIK używa PLIKU jako obrazu core [domyślnie=%s]\n" +" -d, --directory=KAT używa plików programu GRUB w KATALOGU\n" +" [domyślnie=%s]\n" +" -m, --device-map=PLIK używa PLIKU jako mapowanie urządzeń\n" +" [domyślnie=%s]\n" +" -r, --root-device=URZ używa URZĄDZENIA jako urządzenia głównego\n" +" [domyślnie=odgadywanie]\n" +" -f, --force instaluje nawet, jeśli wykryto problemy\n" +" -s, --skip-fs-probe nie wyszukuje systemów plików w URZĄDZENIU\n" +" -h, --help wyświetla ten komunikat i kończy działanie\n" +" -V, --version wyświetla informację o wersji i kończy działanie\n" +" -v, --verbose wyświetla więcej komunikatów\n" +"\n" +"Proszę zgłaszać błędy na adres <%s>.\n" + +#: util/i386/pc/grub-setup.c:753 +#, c-format +msgid "No device is specified.\n" +msgstr "Nie podano urządzenia.\n" + +#: util/i386/pc/grub-setup.c:759 +#, c-format +msgid "Unknown extra argument `%s'.\n" +msgstr "Nieznany dodatkowy parametr \"%s\".\n" + +#: util/i386/pc/grub-setup.c:776 +#, c-format +msgid "Invalid device `%s'.\n" +msgstr "Nieprawidłowe urządzenie \"%s\".\n" + +#: util/i386/pc/grub-setup.c:789 +#, c-format +msgid "invalid root device `%s'" +msgstr "nieprawidłowe urządzenie startowe \"%s\"" + +#: util/i386/pc/grub-setup.c:802 +msgid "cannot guess the root device. Specify the option `--root-device'" +msgstr "" +"nie można odgadnąć urządzenia głównego. Proszę podać opcję \"--root-device\"" + +#~ msgid "[class [handler]]" +#~ msgstr "[klasa [program obsługujący]]" + +#~ msgid "List or select a handler." +#~ msgstr "Wyświetla listę programów obsługujących lub wybiera jeden." + +#~ msgid "Load XNU ramdisk. It will be seen as md0." +#~ msgstr "Wczytuje dysk RAM systemu XNU. Będzie widziany jako urządzenie md0." + +#~ msgid "no DOS-style partitions found" +#~ msgstr "nie odnaleziono partycji w stylu systemu DOS" + +#~ msgid "%s, with kFreeBSD %s" +#~ msgstr "%s, za pomocą systemu kFreeBSD %s" + +#~ msgid "Loading kernel of FreeBSD %s ..." +#~ msgstr "Wczytywanie jądra systemu FreeBSD %s..." + +#~ msgid "%s, with Linux %s (recovery mode)" +#~ msgstr "%s, za pomocą systemu Linux %s (tryb ratunkowy)" + +#~ msgid "%s, with Linux %s" +#~ msgstr "%s, za pomocą systemu Linux %s" + +#~ msgid "Loading Linux %s ..." +#~ msgstr "Wczytywanie systemu Linux %s..." + +#~ msgid "Loading initial ramdisk ..." +#~ msgstr "Wczytywanie początkowego dysku RAM..." --- grub2-1.98+20100804.orig/po/ast.po +++ grub2-1.98+20100804/po/ast.po @@ -0,0 +1,1705 @@ +# Mensaxes n'asturianu pa Grub +# Copyright (C) 2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the grub package. +# Marquinos , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub-1.97+20100124\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-06-19 01:35+0100\n" +"PO-Revision-Date: 2010-04-05 16:04+0100\n" +"Last-Translator: Marquinos \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: asturian\n" + +#: commands/acpi.c:40 +msgid "Don't load host tables specified by comma-separated list." +msgstr "" +"Nun carga tables d'anfitrión especificaes na llista separtada por comes." + +#: commands/acpi.c:43 +msgid "Load only tables specified by comma-separated list." +msgstr "Cargar namái tables especificaes en llista dixebrada por comes." + +#: commands/acpi.c:44 +msgid "Expose v1 tables." +msgstr "Esponer tables v1" + +#: commands/acpi.c:45 +msgid "Expose v2 and v3 tables." +msgstr "Esponer tables v2 y v3" + +#: commands/acpi.c:46 +msgid "Set OEMID of RSDP, XSDT and RSDT." +msgstr "Afitar OEMID de RSDP, XSDT y RSDT." + +#: commands/acpi.c:48 +msgid "Set OEMTABLE ID of RSDP, XSDT and RSDT." +msgstr "Afitar OEMTABLE ID de RSDP, XSDT y RSDT." + +#: commands/acpi.c:50 +msgid "Set OEMTABLE revision of RSDP, XSDT and RSDT." +msgstr "Afitar revisión OEMTABLE de RSDP, XSDT y RSDT." + +#: commands/acpi.c:52 +msgid "Set creator field of RSDP, XSDT and RSDT." +msgstr "Afitar campu creador pa RSDP, CSDT y RSDT." + +#: commands/acpi.c:54 +msgid "Set creator revision of RSDP, XSDT and RSDT." +msgstr "Afitar revisión de creador de RSDP, CSDT y RSDT." + +#: commands/acpi.c:55 +msgid "" +"Don't update EBDA. May fix failures or hangs on some. BIOSes but makes it " +"ineffective with OS not receiving RSDP from GRUB." +msgstr "" +"Nun anovar EBDA. Podría correxir fallos o colingase en delles BIOS, pero " +"vuélvese ineficiente si'l SO nun recibi RSDP del GRUB." + +#: commands/acpi.c:763 +msgid "" +"[-1|-2] [--exclude=TABLE1,TABLE2|--load-only=table1,table2] FILE1 [FILE2] " +"[...]" +msgstr "" +"[-1|-2] [--exclude=TABLA1,TABLA2|--load-only=tabla1,tabla2] FICHERU1 " +"[FICHERU2] [...]" + +#: commands/acpi.c:766 +msgid "Load host ACPI tables and tables specified by arguments." +msgstr "Cargar tables ACPI del anfitrión y tables especificaes por argumentos." + +#: commands/blocklist.c:113 commands/cat.c:82 commands/configfile.c:57 +#: commands/configfile.c:60 commands/configfile.c:65 commands/crc.c:64 +#: commands/minicmd.c:353 loader/i386/bsd.c:1287 loader/i386/bsd.c:1291 +#: loader/i386/bsd.c:1295 +msgid "FILE" +msgstr "FICHERU" + +#: commands/blocklist.c:113 +msgid "Print a block list." +msgstr "Imprentar una llista de bloques." + +#: commands/boot.c:190 +msgid "Boot an operating system." +msgstr "Arrancar un sistema operativu." + +#: commands/cat.c:82 commands/minicmd.c:353 +msgid "Show the contents of a file." +msgstr "Amosar el conteníu d'un ficheru." + +#: commands/cmp.c:113 +msgid "FILE1 FILE2" +msgstr "FICHERU1 FICHERU2" + +#: commands/cmp.c:113 +msgid "Compare two files." +msgstr "Comparar dos ficheros." + +#: commands/configfile.c:57 +msgid "Load another config file." +msgstr "Cargar otru ficheru de configuración." + +#: commands/configfile.c:61 commands/configfile.c:66 +msgid "Load another config file without changing context." +msgstr "Cargar otru ficheru de configuración ensin camudar de contestu." + +#: commands/crc.c:65 +msgid "Calculate the crc32 checksum of a file." +msgstr "Calcular la suma de comprobación crc32 d'un ficheru." + +#: commands/date.c:139 +msgid "[[year-]month-day] [hour:minute[:second]]" +msgstr "[[añu-]mes-día] [hora:minutu[:segundu]]" + +#: commands/date.c:140 +msgid "Command to display/set current datetime." +msgstr "Orde p'amosar/camudar la data y hora actual." + +#: commands/echo.c:27 +msgid "Do not output the trailing newline." +msgstr "Nun amosar la llinia nueva al final." + +#: commands/echo.c:28 +msgid "Enable interpretation of backslash escapes." +msgstr "Activar la interpretación de los escapes de barra invertida." + +#: commands/echo.c:117 +msgid "[-e|-n] STRING" +msgstr "[-e|-n] CADENA" + +#: commands/echo.c:117 +msgid "Display a line of text." +msgstr "Amosar una llinia de testu." + +#: commands/efi/fixvideo.c:103 +msgid "Fix video problem." +msgstr "Correxir problema de vídeu." + +#: commands/efi/loadbios.c:207 +msgid "Fake BIOS." +msgstr "BIOS falsu." + +#: commands/efi/loadbios.c:211 +msgid "Load BIOS dump." +msgstr "Cargar volcáu de BIOS." + +#: commands/gptsync.c:244 +msgid "DEVICE [PARTITION[+/-[TYPE]]] ..." +msgstr "PRESÉU [PARTICIÓN[+/-[TIPU]]] ..." + +#: commands/gptsync.c:245 +#, fuzzy +msgid "" +"Fill hybrid MBR of GPT drive DEVICE. Specified partitions will be a part of " +"hybrid MBR. Up to 3 partitions are allowed. TYPE is an MBR type. + means " +"that partition is active. Only one partition can be active." +msgstr "" +"Relleno MBR híbridu de la unidá de GPT DEVICE. Les particiones especificaes " +"van formar parte d'un MBR híbridu. Déxense hasta trés particiones. TYPE ye " +"un tipu de MBR. + significa qu'esa partición ta activa. Namái pue haber una " +"partición activa." + +#: commands/halt.c:39 +msgid "" +"Halts the computer. This command does not work on all firmware " +"implementations." +msgstr "" +"Pa l'equipu. Esta orde nun funciona en toles implementaciones de firmware." + +#: commands/hdparm.c:30 +msgid "" +"Set Advanced Power Management\n" +"(1=low, ..., 254=high, 255=off)." +msgstr "" +"Afitar el xestor avanzáu d'enerxía\n" +"(1=baxu, ..., 254=altu, 255=apagáu)." + +#: commands/hdparm.c:33 +msgid "Check power mode." +msgstr "Comprobar el mou d'enerxía." + +#: commands/hdparm.c:34 +msgid "Freeze ATA security settings until reset." +msgstr "Conxelar les configuraciones de seguridá ATA hasta reaniciar" + +#: commands/hdparm.c:36 +msgid "Check SMART health status." +msgstr "Comprobar l'estáu de salú de SMART." + +#: commands/hdparm.c:37 +msgid "" +"Set Automatic Acoustic Management\n" +"(0=off, 128=quiet, ..., 254=fast)." +msgstr "" +"Afitar el xestor automáticu d'acústica\n" +"(0=apagáu, 128=silenciosu, ..., 254=rápidu)." + +#: commands/hdparm.c:40 +msgid "" +"Set standby timeout\n" +"(0=off, 1=5s, 2=10s, ..., 240=20m, 241=30m, ...)." +msgstr "" +"Afitar tiempu d'espera\n" +"(0=apagáu, 1=5s, 2=10s, ..., 240=20m, 241=30m, ...)." + +#: commands/hdparm.c:43 +msgid "Set drive to standby mode." +msgstr "Afitar el controlador pal mou n'espera" + +#: commands/hdparm.c:44 +msgid "Set drive to sleep mode." +msgstr "Afitar la unidá en mou dormir." + +#: commands/hdparm.c:45 +msgid "Print drive identity and settings." +msgstr "Imprenta la identidá del controlador y configuraciones." + +#: commands/hdparm.c:47 +msgid "Dump contents of ATA IDENTIFY sector." +msgstr "Volcar conteníos del seutor ATA IDENTIFY" + +#: commands/hdparm.c:49 +msgid "Disable/enable SMART (0/1)." +msgstr "Desactivar/activar SMART (0/1)." + +#: commands/hdparm.c:50 +msgid "Do not print messages." +msgstr "Nun imprentar mensaxes." + +#: commands/hdparm.c:414 +msgid "[OPTIONS] DISK" +msgstr "[OPCIONES] DISCU" + +#: commands/hdparm.c:415 +msgid "Get/set ATA disk parameters." +msgstr "Llograr/afitar parámetros ATA del discu" + +#: commands/help.c:112 lib/arg.c:110 +msgid "Usage:" +msgstr "Usu:" + +#: commands/help.c:129 +msgid "[PATTERN ...]" +msgstr "[PATRÓN ...]" + +#: commands/help.c:130 +msgid "Show a help message." +msgstr "Amuesa un mensaxe d'aida." + +#: commands/hexdump.c:30 +msgid "Skip offset bytes from the beginning of file." +msgstr "Saltar bytes de desplazamientu dende l'empiezu del ficheru." + +#: commands/hexdump.c:32 +msgid "Read only LENGTH bytes." +msgstr "Lleer namái LENGTH bytes." + +#: commands/hexdump.c:125 +msgid "[OPTIONS] FILE_OR_DEVICE" +msgstr "[OPCIONES] FICHERU_O_PRESÉU" + +#: commands/hexdump.c:126 +msgid "Dump the contents of a file or memory." +msgstr "Volcar los conteníos d'un ficheru o memoria." + +#: commands/i386/cpuid.c:37 +msgid "Check for long mode flag (default)." +msgstr "Comprobar l'indicador de mou llargu (predetermináu)." + +#: commands/i386/cpuid.c:92 +msgid "Check for CPU features." +msgstr "Comprobar les carauterístiques de la CPU." + +#: commands/i386/pc/drivemap.c:37 +msgid "Show the current mappings." +msgstr "Amosar asignaciones actuales." + +#: commands/i386/pc/drivemap.c:38 +msgid "Reset all mappings to the default values." +msgstr "Reaniciar toles asignaciones a valores predeterminados." + +#: commands/i386/pc/drivemap.c:39 +msgid "Perform both direct and reverse mappings." +msgstr "Realizar asignaciones direutes ya inverses" + +#: commands/i386/pc/drivemap.c:406 +msgid "-l | -r | [-s] grubdev osdisk." +msgstr "-l | -r | [-s] grubdev osdisk." + +#: commands/i386/pc/drivemap.c:407 +msgid "Manage the BIOS drive mappings." +msgstr "Xestiona les asignaciones del controlador de la BIOS." + +#: commands/i386/pc/halt.c:27 +msgid "Do not use APM to halt the computer." +msgstr "Nun usar APM pa parar l'equipu." + +#: commands/i386/pc/halt.c:51 +msgid "Halt the system, if possible using APM." +msgstr "Parar el sistema, si ye dable usar APM." + +#: commands/i386/pc/play.c:266 +msgid "FILE | TEMPO [PITCH1 DURATION1] [PITCH2 DURATION2] ... " +msgstr "" + +#: commands/i386/pc/play.c:267 +msgid "Play a tune." +msgstr "Afinar." + +#: commands/i386/pc/pxecmd.c:46 +msgid "Unload PXE environment." +msgstr "Descargar entornu PXE." + +#: commands/i386/pc/vbeinfo.c:179 +msgid "List compatible VESA BIOS extension video modes." +msgstr "Listar moos de vídeu compatibles de la estensión VESA BIOS." + +#: commands/i386/pc/vbetest.c:173 +msgid "Test VESA BIOS Extension 2.0+ support." +msgstr "Probar sofitu pa la estension VESA BIOS 2.0+." + +#: commands/ieee1275/suspend.c:43 +msgid "Return to Open Firmware prompt." +msgstr "Volver al cursor de Open Firmware." + +#: commands/keystatus.c:28 +msgid "Check Shift key." +msgstr "Comprobar tecla Mayús" + +#: commands/keystatus.c:29 +msgid "Check Control key." +msgstr "Comprobar tecla Ctrl" + +#: commands/keystatus.c:30 +msgid "Check Alt key." +msgstr "Comprobar tecla Alt" + +#: commands/keystatus.c:85 +msgid "[--shift] [--ctrl] [--alt]" +msgstr "[--shift] [--ctrl] [--alt]" + +#: commands/keystatus.c:86 +msgid "Check key modifier status." +msgstr "Comprobar l'estáu del modificador de tecla." + +#: commands/loadenv.c:33 +msgid "Specify filename." +msgstr "Especificar nome del ficheru." + +#: commands/loadenv.c:378 commands/loadenv.c:384 +msgid "[-f FILE]" +msgstr "[-f FICHERU]" + +#: commands/loadenv.c:379 +msgid "Load variables from environment block file." +msgstr "Cargar variables dende'l ficheru de bloque d'entornu." + +#: commands/loadenv.c:385 +msgid "List variables from environment block file." +msgstr "Llista de variables dende'l ficheru de bloque d'entornu." + +#: commands/loadenv.c:390 +msgid "[-f FILE] variable_name [...]" +msgstr "[-f FICHERU] nome_variable [...]" + +#: commands/loadenv.c:391 +msgid "Save variables to environment block file." +msgstr "Guardar variables nel ficheru de bloque d'entornu." + +#: commands/ls.c:37 +msgid "Show a long list with more detailed information." +msgstr "Amosar una llista llarga d'información con más detalles." + +#: commands/ls.c:38 +msgid "Print sizes in a human readable format." +msgstr "Imprentar tamaños nún formatu lleíble por humanos." + +#: commands/ls.c:39 +msgid "List all files." +msgstr "Llista de tolos ficheros." + +#: commands/ls.c:269 +msgid "[-l|-h|-a] [FILE]" +msgstr "[-l|-h|-a] [Ficheru]" + +#: commands/ls.c:270 +msgid "List devices and files." +msgstr "Llista de preseos y ficheros" + +#: commands/lsmmap.c:51 +msgid "List memory map provided by firmware." +msgstr "Llistar el mapa de memoria apurríu pol firmware." + +#: commands/lspci.c:228 +msgid "List PCI devices." +msgstr "Llista de preseos PCI." + +#: commands/memrw.c:31 +msgid "Save read value into variable VARNAME." +msgstr "Guardar el valor lleíu na variable VARNAME." + +#: commands/memrw.c:123 commands/memrw.c:126 commands/memrw.c:129 +#: commands/minicmd.c:362 +msgid "ADDR" +msgstr "DIREICIÓN" + +#: commands/memrw.c:123 +msgid "Read byte from ADDR." +msgstr "Lleer byte dende DIREICIÓN." + +#: commands/memrw.c:126 +msgid "Read word from ADDR." +msgstr "Lleer pallabra dende ADDR." + +#: commands/memrw.c:129 +msgid "Read dword from ADDR." +msgstr "Lleer duble pallabra dende ADDR." + +#: commands/memrw.c:132 commands/memrw.c:135 commands/memrw.c:138 +msgid "ADDR VALUE [MASK]" +msgstr "ADDR VALOR [mázcara]" + +#: commands/memrw.c:132 +msgid "Write byte VALUE to ADDR." +msgstr "Escribir el byte en VALOR a ADDR" + +#: commands/memrw.c:135 +msgid "Write word VALUE to ADDR." +msgstr "Escribir la pallabra en VALOR a ADDR" + +#: commands/memrw.c:138 +msgid "Write dword VALUE to ADDR." +msgstr "Escribir el valor DWORD a ADDR" + +#: commands/minicmd.c:356 +msgid "Show this message." +msgstr "Amosar esti mensax." + +#: commands/minicmd.c:359 commands/probe.c:154 +msgid "[DEVICE]" +msgstr "[PRESÉU]" + +#: commands/minicmd.c:359 +msgid "Set the root device." +msgstr "Afitar el preséu raigañu." + +#: commands/minicmd.c:362 +msgid "Dump memory." +msgstr "Entornáu de memoria." + +#: commands/minicmd.c:365 +msgid "MODULE" +msgstr "MÓDULU" + +#: commands/minicmd.c:365 +msgid "Remove a module." +msgstr "Desaniciar un módulu." + +#: commands/minicmd.c:368 +msgid "Show loaded modules." +msgstr "Amosar módulos cargaos." + +#: commands/minicmd.c:371 +msgid "Exit from GRUB." +msgstr "Colar del GRUB." + +#: commands/minicmd.c:374 +msgid "Clear the screen." +msgstr "Llimpiar la pantalla." + +#: commands/parttool.c:325 +msgid "PARTITION COMMANDS" +msgstr "ÓRDENES DE PARTICIÓN" + +#: commands/password.c:78 +msgid "USER PASSWORD" +msgstr "CONTRASEÑA D'USUARIU" + +#: commands/password.c:79 +msgid "Set user password (plaintext). Unrecommended and insecure." +msgstr "" +"Afitar la contraseña d'usuariu (testu planu). Non encamentáu ya inseguru." + +#: commands/probe.c:38 +msgid "Set a variable to return value." +msgstr "Afitar una variable pa devolver el valor." + +#: commands/probe.c:39 +msgid "Determine driver." +msgstr "Determinar controlador." + +#: commands/probe.c:40 +msgid "Determine partition map type." +msgstr "Determinar el tipu de mapa de particiones" + +#: commands/probe.c:41 +msgid "Determine filesystem type." +msgstr "Determinar tipu de sistema de ficheros." + +#: commands/probe.c:42 +msgid "Determine filesystem UUID." +msgstr "Determinar UUID de sistema de ficheros." + +#: commands/probe.c:43 +msgid "Determine filesystem label." +msgstr "Determinar etiqueta de sistema de ficheros." + +#: commands/probe.c:155 +msgid "Retrieve device info." +msgstr "Recuperar información del preséu." + +#: commands/read.c:83 +msgid "[ENVVAR]" +msgstr "[ENVVAR]" + +#: commands/read.c:84 +msgid "Set variable with user input." +msgstr "Afitar la variable cola entrada del usuariu." + +#: commands/reboot.c:39 +msgid "Reboot the computer." +msgstr "Reaniciar l'equipu." + +#: commands/search.c:161 +msgid "NAME [VARIABLE]" +msgstr "NOME [VARIABLE]" + +#: commands/search_file.c:5 +msgid "" +"Search devices by file. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Guetar preseos por ficheru. Si s'especificó VARIABLE, el primer preséu " +"atopáu guárdase nuna variable." + +#: commands/search_label.c:5 +msgid "" +"Search devices by label. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Guetar preseos por etiqueta. Si s'especificó VARIABLE, el primer preséu " +"atopáu guárdase nuna variable." + +#: commands/search_uuid.c:5 +msgid "" +"Search devices by UUID. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Guetar preseos por UUID. Si s'especificó VARIABLE, el primer preséu " +"alcontráu guárdase nuna variable." + +#: commands/sleep.c:30 +msgid "Verbose countdown." +msgstr "Cunta regresiva detallada." + +#: commands/sleep.c:31 +msgid "Interruptible with ESC." +msgstr "Interrumpible con ESC." + +#: commands/sleep.c:105 +msgid "NUMBER_OF_SECONDS" +msgstr "NÚMBERU_DE_SEGUNDOS" + +#: commands/sleep.c:106 +msgid "Wait for a specified number of seconds." +msgstr "Esperar un númberu específicu de segundos." + +#: commands/test.c:424 +msgid "EXPRESSION ]" +msgstr "ESPRESIÓN ]" + +#: commands/test.c:424 commands/test.c:426 +msgid "Evaluate an expression." +msgstr "Evaluar una espresión" + +#: commands/test.c:426 +msgid "EXPRESSION" +msgstr "ESPRESIÓN" + +#: commands/true.c:47 +msgid "Do nothing, successfully." +msgstr "Nun faer res, con ésitu." + +#: commands/true.c:50 +msgid "Do nothing, unsuccessfully." +msgstr "Nun faer res, ensin ésitu." + +#: commands/usbtest.c:208 +msgid "Test USB support." +msgstr "Comprobar sofitu USB." + +#: commands/videotest.c:180 +msgid "Test video subsystem." +msgstr "Comprobar subsistema de vídeu." + +#: commands/xnu_uuid.c:92 +msgid "GRUBUUID [VARNAME]" +msgstr "GRUBUUID [NOME_VAR]" + +#: commands/xnu_uuid.c:93 +msgid "Transform 64-bit UUID to format suitable for XNU." +msgstr "Tresformar 64-bit UUID al formatu afechu pa XNU." + +#: disk/loopback.c:40 +msgid "Delete the loopback device entry." +msgstr "Desaniciar la entrada del preséu loopback." + +#: disk/loopback.c:41 +msgid "Simulate a hard drive with partitions." +msgstr "Simular un discu duru con particiones." + +#: disk/loopback.c:249 +msgid "[-d|-p] DEVICENAME FILE." +msgstr "[-d|-p] FICHERU NOME_PRESÉU." + +#: disk/loopback.c:250 +msgid "Make a device of a file." +msgstr "Crear un preséu d'un ficheru." + +#: hello/hello.c:43 +msgid "Say \"Hello World\"." +msgstr "Dicir «Hola mundu»." + +#: lib/arg.c:34 +msgid "Display this help and exit." +msgstr "Amosar esta aida y colar." + +#: lib/arg.c:36 +msgid "Display the usage of this command and exit." +msgstr "Amosar l'usu d'esta orde y colar." + +#: loader/efi/appleloader.c:325 +msgid "Boot legacy system." +msgstr "Antiguu sistema d'arranque." + +#: loader/efi/chainloader.c:340 loader/i386/pc/chainloader.c:166 +msgid "Load another boot loader." +msgstr "Cargar otru cargador d'arranque." + +#: loader/i386/bsd.c:65 +msgid "Display output on all consoles." +msgstr "Amosar salida en toles consoles." + +#: loader/i386/bsd.c:66 +msgid "Use serial console." +msgstr "Usar consola serie." + +#: loader/i386/bsd.c:67 loader/i386/bsd.c:93 loader/i386/bsd.c:114 +msgid "Ask for file name to reboot from." +msgstr "Entrugar pol nome del ficheru pa reaniciar." + +#: loader/i386/bsd.c:68 +msgid "Use CDROM as root." +msgstr "Usa CDROM como raíz." + +#: loader/i386/bsd.c:69 +msgid "Invoke user configuration routing." +msgstr "Invocar configuración d'encaminamientu del usuariu." + +#: loader/i386/bsd.c:70 loader/i386/bsd.c:97 loader/i386/bsd.c:117 +msgid "Enter in KDB on boot." +msgstr "Entrar en KDB al bootear" + +#: loader/i386/bsd.c:71 +msgid "Use GDB remote debugger instead of DDB." +msgstr "Usar el depurador llonxanu GDB n'arróu de DDB." + +#: loader/i386/bsd.c:72 +msgid "Disable all boot output." +msgstr "Desactivar tola salida d'arranque." + +#: loader/i386/bsd.c:74 +msgid "Wait for keypress after every line of output." +msgstr "Esperar por cada tecla primida dempués de cada llinia de salida." + +#: loader/i386/bsd.c:76 +msgid "Use compiled-in rootdev." +msgstr "Usar preséu raigañu integráu." + +#: loader/i386/bsd.c:77 loader/i386/bsd.c:96 loader/i386/bsd.c:120 +msgid "Boot into single mode." +msgstr "Arrancar en mou únicu." + +#: loader/i386/bsd.c:78 loader/i386/bsd.c:121 +msgid "Boot with verbose messages." +msgstr "Arrancar con mensaxes detallaos." + +#: loader/i386/bsd.c:94 loader/i386/bsd.c:115 +msgid "Don't reboot, just halt." +msgstr "Nun reaniciar, namái parar." + +#: loader/i386/bsd.c:95 loader/i386/bsd.c:116 +msgid "Change configured devices." +msgstr "Camudar preseos configuraos." + +#: loader/i386/bsd.c:98 loader/i386/bsd.c:124 +msgid "Set root device." +msgstr "Afitar el preséu raigañu." + +#: loader/i386/bsd.c:112 +msgid "Disable SMP." +msgstr "Desactivar SMP." + +#: loader/i386/bsd.c:113 +msgid "Disable ACPI." +msgstr "Desactivar ACPI" + +#: loader/i386/bsd.c:119 +msgid "Don't display boot diagnostic messages." +msgstr "Nun amosar los mensaxes de diagnósticu d'arranque." + +#: loader/i386/bsd.c:122 +msgid "Boot with debug messages." +msgstr "Arrancar con mensaxes de depuración" + +#: loader/i386/bsd.c:123 +msgid "Supress normal output (warnings remain)." +msgstr "Suprimir salida normal (permanecen avisos)." + +#: loader/i386/bsd.c:124 +msgid "DEVICE" +msgstr "PRESÉU" + +#: loader/i386/bsd.c:1287 +msgid "Load kernel of FreeBSD." +msgstr "Cargar núcleu de FreeBSD." + +#: loader/i386/bsd.c:1291 +msgid "Load kernel of OpenBSD." +msgstr "Cargar núcleu de OpenBSD." + +#: loader/i386/bsd.c:1295 +msgid "Load kernel of NetBSD." +msgstr "Cargar núcleu de NetBSD." + +#: loader/i386/bsd.c:1299 +msgid "Load FreeBSD env." +msgstr "Cargar entornu FreeBSD." + +#: loader/i386/bsd.c:1302 +msgid "Load FreeBSD kernel module." +msgstr "Cargar módulu del núcleu FreeBSD." + +#: loader/i386/bsd.c:1305 +msgid "Load FreeBSD kernel module (ELF)." +msgstr "Cargar módulu (ELF) del núcleu FreeBSD." + +#: loader/i386/efi/linux.c:1011 loader/i386/ieee1275/linux.c:301 +#: loader/i386/linux.c:1012 loader/i386/pc/linux.c:399 +#: loader/powerpc/ieee1275/linux.c:353 loader/sparc64/ieee1275/linux.c:519 +msgid "Load Linux." +msgstr "Cargar Linux." + +#: loader/i386/efi/linux.c:1013 loader/i386/ieee1275/linux.c:303 +#: loader/i386/linux.c:1014 loader/i386/pc/linux.c:402 +#: loader/powerpc/ieee1275/linux.c:355 loader/sparc64/ieee1275/linux.c:521 +msgid "Load initrd." +msgstr "Cargar initrd." + +#: loader/i386/xnu.c:1032 +msgid "Load device-properties dump." +msgstr "Cargar volcáu de preséu-propiedaes." + +#: loader/multiboot.c:337 +msgid "Load a multiboot 2 kernel." +msgstr "Cargar núcleu de multiarranque 2." + +#: loader/multiboot.c:340 +#, fuzzy +msgid "Load a multiboot 2 module." +msgstr "Cargar un módulu d'arranque múltiple." + +#: loader/multiboot.c:343 +msgid "Load a multiboot kernel." +msgstr "Cargar un núcleu d'arranque múltiple." + +#: loader/multiboot.c:346 +msgid "Load a multiboot module." +msgstr "Cargar un módulu d'arranque múltiple." + +#: loader/xnu.c:1428 +msgid "Load XNU image." +msgstr "Cargar imaxe XNU." + +#: loader/xnu.c:1430 +msgid "Load 64-bit XNU image." +msgstr "Cargar imaxe XNU de 64-bit." + +#: loader/xnu.c:1432 +msgid "Load XNU extension package." +msgstr "Cargar paquete d'estensión XNU." + +#: loader/xnu.c:1434 +msgid "Load XNU extension." +msgstr "Cargar estensión XNU." + +#: loader/xnu.c:1436 +msgid "DIRECTORY [OSBundleRequired]" +msgstr "DIREUTORIU [OSBundleRequired]" + +#: loader/xnu.c:1437 +msgid "Load XNU extension directory." +msgstr "Cargar direutoriu d'estensión XNU." + +#: loader/xnu.c:1444 +msgid "Load a splash image for XNU." +msgstr "Cargar una imaxe de bienvinía pa XNU." + +#: loader/xnu.c:1449 +msgid "Load XNU hibernate image." +msgstr "Cargar imagen d'ivernación XNU." + +#: normal/auth.c:217 +msgid "Enter username: " +msgstr "Introduz nome d'usuariu: " + +#: normal/auth.c:222 +msgid "Enter password: " +msgstr "Introduz contraseña: " + +#: normal/color.c:80 +#, c-format +msgid "Warning: syntax error (missing slash) in `%s'\n" +msgstr "Avisu: fallu de sintasis (falta barra) en `%s'\n" + +#: normal/color.c:89 +#, c-format +msgid "Warning: invalid foreground color `%s'\n" +msgstr "Avisu: color de primer planu nun válidu `%s'\n" + +#: normal/color.c:95 +#, c-format +msgid "Warning: invalid background color `%s'\n" +msgstr "Avisu: color de fondu nun válidu `%s'\n" + +#: normal/dyncmd.c:144 +msgid "not loaded" +msgstr "non cargáu" + +#: normal/main.c:415 +#, c-format +msgid "GNU GRUB version %s" +msgstr "GNU GRUB version %s" + +#: normal/main.c:552 +#, c-format +msgid "" +"Minimal BASH-like line editing is supported. For the first word, TAB lists " +"possible command completions. Anywhere else TAB lists possible device or " +"file completions. %s" +msgstr "" +"Almítese una mínima edición de llinies al estilu BASH. Pa la primer " +"pallabra, TAB amuesa les posibles formes de completar comandos. En " +"cualesquier otru sitiu, TAB amuesa les posibles formes de completar preseos " +"o ficheros. %s" + +#: normal/main.c:555 +msgid "ESC at any time exits." +msgstr "Calcar ESC en cualisquier momentu pa colar." + +#: normal/main.c:670 +msgid "Enter normal mode." +msgstr "" + +#: normal/main.c:672 +msgid "Exit from normal mode." +msgstr "" + +#: normal/menu_entry.c:1061 +msgid "Possible commands are:" +msgstr "Les posibles ordes son:" + +#: normal/menu_entry.c:1065 +msgid "Possible devices are:" +msgstr "Los posibles preseos son:" + +#: normal/menu_entry.c:1069 +msgid "Possible files are:" +msgstr "Los ficheros posibles son:" + +#: normal/menu_entry.c:1073 +msgid "Possible partitions are:" +msgstr "Les posibles particiones son:" + +#: normal/menu_entry.c:1077 +msgid "Possible arguments are:" +msgstr "Los posibles argumentos son:" + +#: normal/menu_entry.c:1081 +msgid "Possible things are:" +msgstr "Les posibles coses son:" + +#: normal/menu_entry.c:1185 +msgid "Booting a command list" +msgstr "Arrancar una llista d'órdenes" + +#: normal/menu_entry.c:1398 +msgid "Press any key to continue..." +msgstr "Calca una tecla pa siguir..." + +#: normal/menu_text.c:180 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"F1 to boot, F2=Ctrl-a, F3=Ctrl-e, F4 for a command-line or ESC to discard " +"edits and return to the GRUB menu." +msgstr "" +"Permítese la edición mínima en pantalla tipu Emacs. TAB llista completaos. " +"Calca Ctrl-x pa empecipiar, Ctrl-c pa una llinia d'ordes o ESC pa tornar al " +"menú." + +#: normal/menu_text.c:185 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"Ctrl-x to boot, Ctrl-c for a command-line or ESC to discard edits and return " +"to the GRUB menu." +msgstr "" +"Permítese la edición mínima en pantalla tipu Emacs. TAB llista completaos. " +"Calca Ctrl-x pa empecipiar, Ctrl-c pa una llinia d'ordes o ESC pa tornar al " +"menú." + +#: normal/menu_text.c:193 +#, c-format +msgid "Use the %C and %C keys to select which entry is highlighted.\n" +msgstr "Usa les tecles %C y %C pa esbillar qué entrada prefieres.\n" + +#: normal/menu_text.c:210 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line. ESC to return previous menu.\n" +msgstr "" +"Calca intro p'arrancar el Sistema Operativu escoyíu, «e» pa editar los " +"comandos enantes d'arrancar o «c» pa una llinia d'ordes. ESC pa volver al " +"menú anterior.\n" + +#: normal/menu_text.c:218 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line.\n" +msgstr "" +"Calca intro p'arrancar el Sistema Operativu escoyíu, «e» pa editar los " +"comandos ordes enantes d'arrancar o «c» pa una llinia d'ordes.\n" + +#: normal/menu_text.c:370 +#, c-format +msgid "The highlighted entry will be executed automatically in %ds." +msgstr "La entrada resaltada va executase automáticamente en %ds." + +#: normal/misc.c:41 +#, c-format +msgid "Partition %s:" +msgstr "Partición %s:" + +#: normal/misc.c:46 +#, c-format +msgid "Device %s:" +msgstr "Preséu %s:" + +#: normal/misc.c:52 +msgid "Filesystem cannot be accessed" +msgstr "Nun puede accedese al sistema de ficheros" + +#: normal/misc.c:63 +#, c-format +msgid "Filesystem type %s" +msgstr "Sistema de ficheros triba %s" + +#: normal/misc.c:73 +#, c-format +msgid "- Label \"%s\"" +msgstr "- Etiqueta «%s»" + +#: normal/misc.c:88 +#, c-format +msgid "- Last modification time %d-%02d-%02d %02d:%02d:%02d %s" +msgstr "- Hora de cabera modificación %d-%02d-%02d %02d:%02d:%02d %s" + +#: normal/misc.c:111 +msgid "Unknown filesystem" +msgstr "Sistema de ficheros desconocíu" + +#: normal/misc.c:113 +msgid "Partition table" +msgstr "Tabla de partición" + +#: term/serial.c:46 +msgid "Set the serial unit." +msgstr "Afitar la unidá serie." + +#: term/serial.c:47 +msgid "Set the serial port address." +msgstr "Afitar la direición del puertu serie." + +#: term/serial.c:48 +msgid "Set the serial port speed." +msgstr "Afita la velocidá del puertu serie." + +#: term/serial.c:49 +msgid "Set the serial port word length." +msgstr "Afitar el llargor de la pallabra del puertu de serie." + +#: term/serial.c:50 +msgid "Set the serial port parity." +msgstr "Afitar la paridá del puertu serie." + +#: term/serial.c:51 +msgid "Set the serial port stop bits." +msgstr "Afitar el bit de posa del puertu serie." + +#: term/serial.c:619 +#, fuzzy +msgid "[OPTIONS...]" +msgstr "[OPCIONES] DISCU" + +#: term/serial.c:620 +msgid "Configure serial port." +msgstr "" + +#: util/grub-mkimage.c:440 +msgid "the core image is too small" +msgstr "la imaxe del nucleu ye enforma pequeña" + +#: util/grub-mkimage.c:451 +msgid "cannot compress the kernel image" +msgstr "nun puede comprimise la imaxe kernel" + +#: util/grub-mkimage.c:548 +msgid "prefix is too long" +msgstr "el prefixu ye enforma llargu" + +#: util/grub-mkimage.c:672 +#, c-format +msgid "core image is too big (%p > %p)" +msgstr "la imaxe del núcleu ye enforma grande (%p > %p)" + +#: util/grub-mkimage.c:678 +msgid "the core image is too big" +msgstr "la imaxe del nucleu ye enforma grande" + +#: util/grub-mkimage.c:683 +#, c-format +msgid "diskboot.img size must be %u bytes" +msgstr "el tamañu de diskboot.img tien de ser de %u bytes" + +#: util/grub-mkimage.c:1168 util/i386/pc/grub-setup.c:619 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "Executa `%s --help' pa más información.\n" + +#: util/grub-mkimage.c:1187 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... [MODULES]\n" +"\n" +"Make a bootable image of GRUB.\n" +"\n" +" -d, --directory=DIR use images and modules under DIR [default=%s/" +"@platform@]\n" +" -p, --prefix=DIR set grub_prefix directory [default=%s]\n" +" -m, --memdisk=FILE embed FILE as a memdisk image\n" +" -f, --font=FILE embed FILE as a boot font\n" +" -c, --config=FILE embed FILE as boot config\n" +" -n, --note add NOTE segment for CHRP Open Firmware\n" +" -o, --output=FILE output a generated image to FILE [default=stdout]\n" +" -O, --format=FORMAT generate an image in format\n" +" available formats: %s\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 "" +"Usu:% s [OPCIÓN] ... [MÓDULOS]\n" +"\n" +"Crea una imaxe d'arranque de GRUB.\n" +" -d, - directory=DIR usa les imaxes y módulos asitiaos en DIR [por omisión =" +"%s]\n" +" -p, - prefix=DIR asigna'l direutoriu grub_prefix [por omisión = %s]\n" +" -m, - memdisk=FICHERU incrusta FICHERU como imaxe memdisk\n" +" -F, - font=FICHERU incrusta FICHERU como tipografía d'arranque\n" +" -c, - config=FICHERU incrusta FICHERU como configuración d'arranque\n" +" -o, - output=FICHERU unvia la imaxe xenerada a FICHERU [por omisión = " +"stdout]\n" +" -O, - format=FORMATU xenera una imaxe en FORMATU [por omisión =" + +#: util/grub-mkimage.c:1333 +#, c-format +msgid "cannot open %s" +msgstr "nun puede abrise %s" + +#: util/i386/pc/grub-setup.c:164 +msgid "the first sector of the core file is not sector-aligned" +msgstr "el primer sector del ficheru principal nun ta alliniáu col sector" + +#: util/i386/pc/grub-setup.c:178 +msgid "non-sector-aligned data is found in the core file" +msgstr "atopáronse datos non alliniaos con un sector nel ficheru principal" + +#: util/i386/pc/grub-setup.c:192 +msgid "the sectors of the core file are too fragmented" +msgstr "los sectores del ficheru núcleu tán enforma estrizaos." + +#: util/i386/pc/grub-setup.c:203 +#, c-format +msgid "the size of `%s' is not %u" +msgstr "el tamañu de «%s» nun ye %u" + +#: util/i386/pc/grub-setup.c:220 +#, c-format +msgid "the size of `%s' is too small" +msgstr "el tamañu de «%s» ye enforma pequeñu" + +#: util/i386/pc/grub-setup.c:222 +#, c-format +msgid "the size of `%s' is too large" +msgstr "el tamañu de «%s» ye enforma grande" + +#: util/i386/pc/grub-setup.c:261 +#, c-format +msgid "unable to identify a filesystem in %s; safety check can't be performed" +msgstr "" +"nun ye dable identificar un sistema d'ficheros en %s; nun puede llevase a " +"cabu una comprobación de seguridá" + +#: 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 paez contener un sistema de ficheros %s que nun sabi cómo acutar espaciu " +"pa l'arranque estilu DOS. Instalar GRUB ehí podría probar una DESTRUCCIÓN " +"DEL SISTEMA DE FICHEROS si se sobreescriben datos pervalibles per aciu de " +"grub-setup (--skip-fs-probe desactiva esta comprobación; úsalu baxo la to " +"responsabilidá)" + +#: util/i386/pc/grub-setup.c:339 util/i386/pc/grub-setup.c:366 +msgid "" +"Attempting to install GRUB to a partitionless disk. This is a BAD idea." +msgstr "" +"Intentando instalar GRUB a un discu ensin partición. Esto ye una MALA idega." + +#: util/i386/pc/grub-setup.c:345 +msgid "" +"Attempting to install GRUB to a partition instead of the MBR. This is a BAD " +"idea." +msgstr "" +"Intentado instalar GRUB a una partición en llugar del MBR. Esto ye una MALA " +"idega." + +#: util/i386/pc/grub-setup.c:375 +msgid "No DOS-style partitions found" +msgstr "Nun s'alcontraron particiones DOS-style" + +#: util/i386/pc/grub-setup.c:380 +msgid "" +"This msdos-style partition label has no post-MBR gap; embedding won't be " +"possible!" +msgstr "" +"Esta etiqueta de partición tipu MS-DOS nun tien un buecu darrera del MBR; " +"nun ye dable incrustar" + +#: util/i386/pc/grub-setup.c:382 +msgid "" +"This GPT partition label has no BIOS Boot Partition; embedding won't be " +"possible!" +msgstr "" +"La etiqueta de partición GPT nun tien una Partición BIOS Boot; l'embebíu nun " +"ye posible!" + +#: util/i386/pc/grub-setup.c:389 +msgid "Your core.img is unusually large. It won't fit in the embedding area." +msgstr "" +"El core.img ye enforma grande. Nun va poder contenese nel area d'embebíu" + +#: util/i386/pc/grub-setup.c:391 +msgid "Your embedding area is unusually small. core.img won't fit in it." +msgstr "" +"La so área d'empotráu ye inusualmente pequeña. core.img nun va caber nella." + +#: util/i386/pc/grub-setup.c:436 +msgid "" +"embedding is not possible, but this is required when the root device is on a " +"RAID array or LVM volume" +msgstr "" +"nun ye posible incrusta, pero esto ye necesariu cuando'l preséu raigañu ta " +"nún array RAID o nún volume LVM." + +#: util/i386/pc/grub-setup.c:439 +#, fuzzy +msgid "" +"Embedding is not possible. GRUB can only be installed in this setup by " +"using blocklists. However, blocklists are UNRELIABLE and their use is " +"discouraged." +msgstr "" +"Nun ye dable incrustar. GRUB namái puede instalase nesta configuración " +"usando llistes de bloques. Sicasí, éstes NUN SON FIABLES y el so usu " +"desaconséyase." + +#: util/i386/pc/grub-setup.c:443 +msgid "if you really want blocklists, use --force" +msgstr "Si daveres quies usar llistes de bloques, usa --force" + +#: util/i386/pc/grub-setup.c:462 +#, c-format +msgid "attempting to read the core image `%s' from GRUB" +msgstr "intentando lleer la imaxe del nucleu `%s' dende'l GRUB" + +#: util/i386/pc/grub-setup.c:463 +#, c-format +msgid "attempting to read the core image `%s' from GRUB again" +msgstr "intentando lleer la imaxe del nucleu `%s' dende'l GRUB otra vegada" + +#: util/i386/pc/grub-setup.c:530 +#, c-format +msgid "cannot read `%s' correctly" +msgstr "nun puede lleese «%s» correchamente" + +#: util/i386/pc/grub-setup.c:543 +msgid "no terminator in the core image" +msgstr "nun hai terminador na imaxe principal" + +#: util/i386/pc/grub-setup.c:554 +msgid "failed to read the first sector of the core image" +msgstr "fallu al lleer el primer sector de la imaxe principal" + +#: util/i386/pc/grub-setup.c:560 +msgid "failed to read the rest sectors of the core image" +msgstr "fallu al lleer los restantes sectores de la imaxe principal" + +#: util/i386/pc/grub-setup.c:579 +#, c-format +msgid "cannot open `%s'" +msgstr "nun puede abrise «%s»" + +#: util/i386/pc/grub-setup.c:621 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... DEVICE\n" +"\n" +"Set up images to boot from DEVICE.\n" +"DEVICE must be a GRUB device (e.g. `(hd0,1)').\n" +"\n" +"You should not normally run %s directly. Use grub-install instead.\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 "" +"Usu: %s [OPCIÓN]... PRESÉU\n" +"\n" +"Configura una imaxe pal arranque d'un PRESÉU.\n" +"El PRESÉU tien de ser un preséu GRUB (por exemplu, «(hd0, 1) »).\n" +"\n" +" -b, --boot-image=FICHERU usa FICHERU como la imaxe d'arranque " +"[predetermináu=%s]\n" +" -c, --core-image=FICHERU usa FICHERU uso como la imaxe principal " +"[predetermináu=%s]\n" +" -d, --directory=DIR usu de los ficheros de GRUB nel direutoriu DIR " +"[predetermináu=%s]\n" +" -m, --device-map=FICHERU usa FICHERU como'l mapa de preséu [predetermináu=" +"%s]\n" +" -r, --root-device=DIS usa DIS como preséu raigañu " +"[predetermináu=aldovináu]\n" +" -f, --force fuercia la instalación anque se deteuten problemes\n" +" -s, --skip-fs-probe non prueba pa sistemes de ficheros en PRESÉU\n" +" -h, --help amuesa esti mensaxe y colar\n" +" -V, --version amuesa información sobro la versión y sal\n" +" -v, --verbose amuesa un mensaxe verbosu\n" +"\n" +"Informe de fallos a <%s>.\n" + +#: util/i386/pc/grub-setup.c:753 +#, c-format +msgid "No device is specified.\n" +msgstr "Nun s'especificó dengún preséu.\n" + +#: util/i386/pc/grub-setup.c:759 +#, c-format +msgid "Unknown extra argument `%s'.\n" +msgstr "Argumentu estra desconocíu `%s'.\n" + +#: util/i386/pc/grub-setup.c:776 +#, c-format +msgid "Invalid device `%s'.\n" +msgstr "Preséu inválidu `%s'.\n" + +#: util/i386/pc/grub-setup.c:789 +#, c-format +msgid "invalid root device `%s'" +msgstr "Preséu root invalidu «%s»" + +#: util/i386/pc/grub-setup.c:802 +msgid "cannot guess the root device. Specify the option `--root-device'" +msgstr "" +"nun puede determinase'l preséu raigañu. Especifique la opción `--root-device'" + +#~ msgid "[class [handler]]" +#~ msgstr "[clase [manexador]]" + +#~ msgid "List or select a handler." +#~ msgstr "Llista o escueyi un manexador." + +#~ msgid "Load XNU ramdisk. It will be seen as md0." +#~ msgstr "Carga XNU ramdisk. Va vese como md0" + +#~ msgid "no DOS-style partitions found" +#~ msgstr "nun s'atopó denguna partición tipu DOS" + +#~ msgid "%s, with kFreeBSD %s" +#~ msgstr "%s, con kFreeBSD %s" + +#~ msgid "Loading kernel of FreeBSD %s ..." +#~ msgstr "Cargando núcleu de FreeBSD %s ..." + +#~ msgid "%s, with Linux %s (recovery mode)" +#~ msgstr "%s, con Linux %s (mou recuperación)" + +#~ msgid "%s, with Linux %s" +#~ msgstr "%s, con Linux %s" + +#~ msgid "Loading Linux %s ..." +#~ msgstr "Cargando Linux %s ..." + +#~ msgid "Loading initial ramdisk ..." +#~ msgstr "Cargando discu RAM inicial..." + +#~ msgid "Please check the following file: %s.\n" +#~ msgstr "Por favor, comprueba'l siguiente ficheru: %s.\n" + +#~ msgid "This file must be removed before a bootable CD can be done.\n" +#~ msgstr "" +#~ "Esti ficheru ha desaniciase enantes de que pueda facese un CD " +#~ "autoarrancable.\n" + +#~ msgid "Error creating boot catalog (%s)" +#~ msgstr "Fallu creando catálogu de boot (%s)" + +#~ msgid "Error writing to boot catalog (%s)" +#~ msgstr "Fallu escribiendo al catálogu de boot (%s)" + +#~ msgid "Boot catalog cannot be found!\n" +#~ msgstr "Nun puede alcontrase catálogu de boot!\n" + +#~ msgid "Boot image cannot be found!\n" +#~ msgstr "Nun puede alcontrase imaxe de Boot!\n" + +#~ msgid "" +#~ "\n" +#~ "Size of boot image is %d sectors" +#~ msgstr "" +#~ "\n" +#~ "El tamañu de la imaxe del boot ye de %d sectores" + +#~ msgid "No emulation\n" +#~ msgstr "Denguna emulación\n" + +#~ msgid "Emulating a 1.44 meg floppy\n" +#~ msgstr "Emulando un 1.44 meg floppy\n" + +#~ msgid "Emulating a 2.88 meg floppy\n" +#~ msgstr "Emulando un 2.88 meg floppy\n" + +#~ msgid "Emulating a 1.2 meg floppy\n" +#~ msgstr "Emulando un 1.2 meg floppy\n" + +#~ msgid "" +#~ "\n" +#~ "Error - boot image is not the an allowable size.\n" +#~ msgstr "" +#~ "\n" +#~ "Fallu - la imaxe del boot nun ye una dimensión permitida.\n" + +#~ msgid "Error opening boot catalog for update" +#~ msgstr "Fallu abriendo catálogu de boot p'anovamientu" + +#~ msgid "Error writing to boot catalog" +#~ msgstr "Fallu escribiendo catálogu del boot" + +#~ msgid "Error opening boot image file '%s' for update" +#~ msgstr "Fallu abriendo ficheru d'imaxe del boot '%s' p'anovamientu" + +#~ msgid "Odd alignment at non-end-of-file in boot image '%s'" +#~ msgstr "" +#~ "Alliniamientu incorreutu nel non-fin-de-ficheru na imaxe del boot '%s'" + +#~ msgid "Boot image file '%s' changed unexpectedly" +#~ msgstr "El ficheru d'imaxe de Boot '%s' camudó inesperadamente" + +#~ msgid "Error writing to boot image (%s)" +#~ msgstr "Fallu escribiendo na imaxe del boot (%s)" + +#~ msgid "ID" +#~ msgstr "ID" + +#~ msgid "Set Application ID" +#~ msgstr "Afitar ID d'Aplicación" + +#~ msgid "Set Bibliographic filename" +#~ msgstr "Afitar nome de ficheru Bibliográficu" + +#~ msgid "Set embedded boot image name" +#~ msgstr "Afitar nome d'imaxe d'arranque embebida" + +#~ msgid "Set El Torito boot image name" +#~ msgstr "Afitar nome d'imaxe d'arranque El Torito" + +#~ msgid "Set El Torito boot catalog name" +#~ msgstr "Afitar el nome de catálogu d'arranque El Torito" + +#~ msgid "Enable floppy drive emulation for El Torito" +#~ msgstr "Activar emulación de preséu disquete pa El Torito" + +#~ msgid "PARAMS" +#~ msgstr "PARAMS" + +#~ msgid "Magic parameters from cdrecord" +#~ msgstr "Parámetros Magic pa cdrecord" + +#~ msgid "Follow symbolic links" +#~ msgstr "Siguir enllaces simbólicos" + +#~ msgid "Print option help" +#~ msgstr "Imprentar opción d'aida" + +#~ msgid "Print version information and exit" +#~ msgstr "Imprentar información de versión y colar" + +#~ msgid "GLOBFILE" +#~ msgstr "GLOBFILE" + +#~ msgid "Hide ISO9660/RR file" +#~ msgstr "Anubrir ficheru ISO9660/RR" + +#~ msgid "Hide Joliet file" +#~ msgstr "Anubrir ficheru Joliet" + +#~ msgid "ADD_FILES" +#~ msgstr "ADD_FILES" + +#~ msgid "Generate Joliet directory information" +#~ msgstr "Xenerar información de direutoriu Joliet" + +#~ msgid "Allow full 32 character filenames for iso9660 names" +#~ msgstr "" +#~ "Permitir nomes de ficheru de 32 carauteres de llargo pa nomes iso9660" + +#~ msgid "Allow iso9660 filenames to start with '.'" +#~ msgstr "Permitir nomes de ficheru iso9660 aniciar con '.'" + +#~ msgid "LOG_FILE" +#~ msgstr "LOG_FILE" + +#~ msgid "Re-direct messages to LOG_FILE" +#~ msgstr "Redireicionar mensaxes a LOG_FILE" + +#~ msgid "Exclude file name" +#~ msgstr "Escluyir nome de ficheru" + +#~ msgid "Set path to previous session to merge" +#~ msgstr "Afitar camín a sesión previa p'amestar" + +#~ msgid "Omit version number from iso9660 filename" +#~ msgstr "Omitir númberu de versión pa nome de ficheros iso9660" + +#~ msgid "Inhibit splitting symlink components" +#~ msgstr "Impedir cortar componentes d'enllaces simbólicos" + +#~ msgid "Inhibit splitting symlink fields" +#~ msgstr "Impedir cortar campos d'enllaces simbólicos" + +#~ msgid "Set output file name" +#~ msgstr "Afitar nome de ficheru de salida" + +#~ msgid "PREP" +#~ msgstr "PREP" + +#~ msgid "Print estimated filesystem size and exit" +#~ msgstr "Imprentar tamañu estimáu de sistema de ficheru y colar" + +#~ msgid "PUB" +#~ msgstr "PUB" + +#~ msgid "Split output into files of approx. 1GB size" +#~ msgstr "Cortar salida en ficheros d'aprosimadamente 1Gb de tamañu" + +#~ msgid "Set System ID" +#~ msgstr "Afitar ID Sistema" + +#~ msgid "" +#~ "Generate translation tables for systems that don't understand long " +#~ "filenames" +#~ msgstr "" +#~ "Xenerar tables de tornes pa sistemes que nun entienden nomes de ficheros " +#~ "llargos" + +#~ msgid "Verbose" +#~ msgstr "Detallao" + +#~ msgid "Set Volume ID" +#~ msgstr "Afitar ID Volume" + +#~ msgid "Set Volume set ID" +#~ msgstr "Afitar ID de Volume" + +#~ msgid "Set Volume set size" +#~ msgstr "Afitar tamañu de Volume" + +#~ msgid "Set Volume set sequence number" +#~ msgstr "Afitar númberu de secuencia a Volume" + +#~ msgid "Exclude file name (deprecated)" +#~ msgstr "Escleyir nome de ficheru (anticuao)" + +#~ msgid "Override creation date" +#~ msgstr "Sobroescribir data de criación" + +#~ msgid "Override modification date" +#~ msgstr "Sobroescribir data de modificación" + +#~ msgid "Override expiration date" +#~ msgstr "Sobroescribir data d'espiración" + +#~ msgid "Using \"%s\"\n" +#~ msgstr "Usando \"%s\"\n" + +#~ msgid "%s:%d: name required\n" +#~ msgstr "%s:%d: nome requeríu\n" + +#~ msgid "%s:%d: field name \"%s\" unknown\n" +#~ msgstr "%s:%d: nome de campu \"%s\" desconocíu\n" + +#~ msgid "Usage: %s [options] file...\n" +#~ msgstr "Usu: %s [opciones] ficheru...\n" + +#~ msgid "Options:\n" +#~ msgstr "Opciones:\n" + +#~ msgid "Required boot image pathname missing" +#~ msgstr "Falta camín pa la imaxe d'arranque" + +#~ msgid "Required boot catalog pathname missing\n" +#~ msgstr "Falta camín pal catálogu d'arranque\n" + +#~ msgid "Ignoring -no-emul-boot (no-emulation is the default behaviour)\n" +#~ msgstr "" +#~ "Ignorando -no-emul-boot (no-emulation ye'l comportamientu por defeutu)\n" + +#~ msgid "Application-id string too long\n" +#~ msgstr "Cadena Application-id demasiao llarga\n" + +#~ msgid "Copyright filename string too long\n" +#~ msgstr "Cadena del nome de ficheru Copyright demasiao llarga\n" + +#~ msgid "System ID string too long\n" +#~ msgstr "Cadena System ID demasiao llarga\n" + +#~ msgid "Volume ID string too long\n" +#~ msgstr "Cadena Volume ID demasiao llarga\n" + +#~ msgid "date string must be 16 characters.\n" +#~ msgstr "cadena data tien de ser 16 carauteres.\n" + +#~ msgid "Warning: getrlimit" +#~ msgstr "Avisu: getrlimit" + +#~ msgid "Warning: setrlimit" +#~ msgstr "Avisu: setrlimit" + +#~ msgid "Multisession usage bug: Must specify -C if -M is used.\n" +#~ msgstr "Fallu n'usu Multisesión: Tienes qu'especificar -C si -M ye usao.\n" + +#~ msgid "can't open logfile: %s" +#~ msgstr "Nun pudó abrise ficheru de rexistru: %s" + +#~ msgid "re-directing all messages to %s\n" +#~ msgstr "redireicionar tolos mensaxes a %s\n" + +#~ msgid "can't open logfile: %s\n" +#~ msgstr "nun pudó abrise ficheru de rexistru: %s\n" + +#~ msgid "Unable to open previous session image %s\n" +#~ msgstr "Nun pudó abrise imaxe de sesión previa %s\n" + +#~ msgid "Invalid node - %s\n" +#~ msgstr "nodu nun válidu - %s\n" + +#~ msgid "Unable to open /dev/null\n" +#~ msgstr "Nun pudó abrise /dev/null\n" + +#~ msgid "Unable to open disc image file\n" +#~ msgstr "Nun pudó abrise ficheru d'imaxe de discu\n" + +#~ msgid "Read error on old image %s\n" +#~ msgstr "Fallu lleendo imaxe vieya %s\n" + +#~ msgid "Special parameters for cdwrite not specified with -C\n" +#~ msgstr "Non especificaos parámetros especiales pa cdwrite con -C\n" + +#~ msgid "Malformed cdwrite parameters\n" +#~ msgstr "Parámetros pa cdwrite mal formaos\n" + +#~ msgid "Unable to generate unique name for file %s\n" +#~ msgstr "Nun pudó xenerase nome únicu pal ficheru %s\n" + +#~ msgid "Using %s for %s%s%s (%s)\n" +#~ msgstr "Usando %s pa %s%s%s (%s)\n" + +#~ msgid "Unable to sort directory %s\n" +#~ msgstr "Nun pudó ordenase'l direutoriu %s\n" + +#~ msgid "Unable to locate directory parent\n" +#~ msgstr "Nun pudó llocalizase direutoriu padre\n" + +#~ msgid "Scanning %s\n" +#~ msgstr "Escaneando %s\n" + +#~ msgid "Unable to open directory %s\n" +#~ msgstr "Imposible abrir direutoriu %s\n" + +#~ msgid "Ignoring file %s\n" +#~ msgstr "Inorando ficheru %s\n" + +#~ msgid "Excluded by match: %s\n" +#~ msgstr "Escluyíu por coincidencia: %s\n" + +#~ msgid "Excluded: %s\n" +#~ msgstr "Escluyíu: %s\n" + +#~ msgid "Non-existant or inaccessible: %s\n" +#~ msgstr "Non esiste o inacesible: %s\n" + +#~ msgid "Symlink %s ignored - continuing.\n" +#~ msgstr "Enllaz simbólicu %s ignoráu - siguiendo.\n" + +#~ msgid "File %s is not readable (%s) - ignoring\n" +#~ msgstr "El ficheru %s nun ye lleíble (%s) - inorando\n" + +#~ msgid "Unknown file type %s - ignoring and continuing.\n" +#~ msgstr "Triba de ficheru desconocíu %s - inorando y continuando.\n" + +#~ msgid "Hidden from ISO9660 tree: %s\n" +#~ msgstr "Anubríu pal árbol ISO9660: %s\n" + +#~ msgid "Hidden from Joliet tree: %s\n" +#~ msgstr "Anubríu pal árbol Joliet: %s\n" + +#~ msgid "Unable to delete non-empty directory\n" +#~ msgstr "Imposible desaniciar direutoriu non-ermu\n" + +#~ msgid "Unable to locate child directory in parent list\n" +#~ msgstr "Nun pudó llocalizase direutoriu fíyu na llista del padre\n" + +#~ msgid "Cannot open '%s'" +#~ msgstr "Nun puede abrise '%s'" + +#~ msgid "cannot open %s\n" +#~ msgstr "nun puede abrise %s\n" + +#~ msgid "cannot read %llu bytes from %s" +#~ msgstr "nun pueden lleese %llu bytes dende %s" + +#~ msgid "%6.2f%% done, estimate finish %s" +#~ msgstr "%6.2f%% fecho, estímase final %s" + +#~ msgid "Predicted = %d, written = %llu\n" +#~ msgstr "Predecíu = %d, escritu = %llu\n" + +#~ msgid "Total translation table size: %d\n" +#~ msgstr "Tamañu total de la tabla de torna: %d\n" + +#~ msgid "Total directory bytes: %d\n" +#~ msgstr "Total de bytes del direutoriu: %d\n" + +#~ msgid "Unable to open %s" +#~ msgstr "Nun puede abrise %s" + +#~ msgid "ESC to return previous menu." +#~ msgstr "ESC pa tornar al menú previu." + +#~ msgid "Booting '%s'" +#~ msgstr "Aniciando '%s'" + +#~ msgid "Falling back to '%s'" +#~ msgstr "Fallu tornando a '%s'" + +#~ msgid "Failed to boot default entries.\n" +#~ msgstr "Fallu al aniciar entraes por defeutu.\n" --- grub2-1.98+20100804.orig/po/hu.po +++ grub2-1.98+20100804/po/hu.po @@ -0,0 +1,1346 @@ +# Hungarian translation of grub +# Copyright (C) 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the grub package. +# +# Gabor Kelemen , 2010. +msgid "" +msgstr "" +"Project-Id-Version: grub 1.97+20100124\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-06-19 01:35+0100\n" +"PO-Revision-Date: 2010-04-13 13:15+0200\n" +"Last-Translator: Gabor Kelemen \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: commands/acpi.c:40 +msgid "Don't load host tables specified by comma-separated list." +msgstr "Ne töltse be a vesszőkkel elválasztott listán megadott gazdatáblákat." + +#: commands/acpi.c:43 +msgid "Load only tables specified by comma-separated list." +msgstr "Csak a vesszőkkel elválasztott listán megadott gazdatáblák betöltése." + +#: commands/acpi.c:44 +msgid "Expose v1 tables." +msgstr "v1 táblák megjelenítése." + +#: commands/acpi.c:45 +msgid "Expose v2 and v3 tables." +msgstr "v2 és v3 táblák megjelenítése." + +#: commands/acpi.c:46 +msgid "Set OEMID of RSDP, XSDT and RSDT." +msgstr "Az RSDP, XSDT és RSDT OEMID-jának beállítása." + +#: commands/acpi.c:48 +msgid "Set OEMTABLE ID of RSDP, XSDT and RSDT." +msgstr "Az RSDP, XSDT és RSDT OEMTABLE ID-jának beállítása." + +#: commands/acpi.c:50 +msgid "Set OEMTABLE revision of RSDP, XSDT and RSDT." +msgstr "Az RSDP, XSDT és RSDT OEMTABLE revíziójának beállítása." + +#: commands/acpi.c:52 +msgid "Set creator field of RSDP, XSDT and RSDT." +msgstr "Az RSDP, XSDT és RSDT létrehozó mezőjének beállítása." + +#: commands/acpi.c:54 +msgid "Set creator revision of RSDP, XSDT and RSDT." +msgstr "Az RSDP, XSDT és RSDT létrehozó revíziójának beállítása." + +#: commands/acpi.c:55 +msgid "" +"Don't update EBDA. May fix failures or hangs on some. BIOSes but makes it " +"ineffective with OS not receiving RSDP from GRUB." +msgstr "" +"Ne frissítse az EBDA-t. Egyes BIOS-ok esetén hibákat vagy fagyásokat " +"javíthat, de hatástalan, ha az OS nem fogadja az RSDP-t a GRUB-ból." + +#: commands/acpi.c:763 +msgid "" +"[-1|-2] [--exclude=TABLE1,TABLE2|--load-only=table1,table2] FILE1 [FILE2] " +"[...]" +msgstr "" +"[-1|-2] [--exclude=TÁBLA1,TÁBLA2|--load-only=tábla1,tábla2] FÁJL1 [FÁJL2] " +"[...]" + +#: commands/acpi.c:766 +msgid "Load host ACPI tables and tables specified by arguments." +msgstr "Gazda ACPI-táblák és a paraméterben megadott táblák betöltése." + +#: commands/blocklist.c:113 commands/cat.c:82 commands/configfile.c:57 +#: commands/configfile.c:60 commands/configfile.c:65 commands/crc.c:64 +#: commands/minicmd.c:353 loader/i386/bsd.c:1287 loader/i386/bsd.c:1291 +#: loader/i386/bsd.c:1295 +msgid "FILE" +msgstr "FÁJL" + +#: commands/blocklist.c:113 +msgid "Print a block list." +msgstr "Blokklista kiírása." + +#: commands/boot.c:190 +msgid "Boot an operating system." +msgstr "Operációs rendszer elindítása." + +#: commands/cat.c:82 commands/minicmd.c:353 +msgid "Show the contents of a file." +msgstr "Fájl tartalmának megjelenítése." + +#: commands/cmp.c:113 +msgid "FILE1 FILE2" +msgstr "FÁJL1 FÁJL2" + +#: commands/cmp.c:113 +msgid "Compare two files." +msgstr "Két fájl összehasonlítása." + +#: commands/configfile.c:57 +msgid "Load another config file." +msgstr "Másik konfigurációs fájl betöltése." + +#: commands/configfile.c:61 commands/configfile.c:66 +msgid "Load another config file without changing context." +msgstr "Másik konfigurációs fájl betöltése a kontextus módosítása nélkül." + +#: commands/crc.c:65 +msgid "Calculate the crc32 checksum of a file." +msgstr "Fájl crc32 ellenőrzőösszegének kiszámítása." + +#: commands/date.c:139 +msgid "[[year-]month-day] [hour:minute[:second]]" +msgstr "[[év-]hónap-nap] [óra:perc[:másodperc]]" + +#: commands/date.c:140 +msgid "Command to display/set current datetime." +msgstr "Aktuális dátum/idő megjelenítése/beállítása." + +#: commands/echo.c:27 +msgid "Do not output the trailing newline." +msgstr "Ne írja ki a záró új sort." + +#: commands/echo.c:28 +msgid "Enable interpretation of backslash escapes." +msgstr "Visszaper-escapek értelmezésének engedélyezése." + +#: commands/echo.c:117 +msgid "[-e|-n] STRING" +msgstr "[-e|-n] KARAKTERLÁNC" + +#: commands/echo.c:117 +msgid "Display a line of text." +msgstr "Egy sornyi szöveg megjelenítése." + +#: commands/efi/fixvideo.c:103 +msgid "Fix video problem." +msgstr "Videoprobléma javítása." + +#: commands/efi/loadbios.c:207 +msgid "Fake BIOS." +msgstr "BIOS hamisítása." + +#: commands/efi/loadbios.c:211 +msgid "Load BIOS dump." +msgstr "BIOS-kiíratás betöltése." + +#: commands/gptsync.c:244 +msgid "DEVICE [PARTITION[+/-[TYPE]]] ..." +msgstr "ESZKÖZ [PARTÍCIÓ[+/-[TÍPUS]]] …" + +#: commands/gptsync.c:245 +#, fuzzy +msgid "" +"Fill hybrid MBR of GPT drive DEVICE. Specified partitions will be a part of " +"hybrid MBR. Up to 3 partitions are allowed. TYPE is an MBR type. + means " +"that partition is active. Only one partition can be active." +msgstr "" +"Az ESZKÖZ GPT-meghajtó MBR-jének feltöltése. A megadott partíciók a hibrid " +"MBR részei lesznek. Legfeljebb 3 partíció engedélyezett. A TÍPUS egy MBR-" +"típus. A + az aktív partíciót jelöli. Csak egy partíció lehet aktív." + +#: commands/halt.c:39 +msgid "" +"Halts the computer. This command does not work on all firmware " +"implementations." +msgstr "" +"A számítógép leállítása. Ez a parancs nem működik minden firmware-" +"megvalósításon." + +#: commands/hdparm.c:30 +msgid "" +"Set Advanced Power Management\n" +"(1=low, ..., 254=high, 255=off)." +msgstr "" +"Az APM beállítása\n" +"(1=alacsony, …, 254=magas, 255=ki)." + +#: commands/hdparm.c:33 +msgid "Check power mode." +msgstr "Energiagazdálkodási mód ellenőrzése." + +#: commands/hdparm.c:34 +msgid "Freeze ATA security settings until reset." +msgstr "ATA biztonsági beállítások fagyasztása újraindításig." + +#: commands/hdparm.c:36 +msgid "Check SMART health status." +msgstr "SMART egészségi állapot ellenőrzése." + +#: commands/hdparm.c:37 +msgid "" +"Set Automatic Acoustic Management\n" +"(0=off, 128=quiet, ..., 254=fast)." +msgstr "" +"Automatikus zajkezelés (AAM) beállítása\n" +"(0=ki, 128=csendes, ..., 254=gyors)." + +#: commands/hdparm.c:40 +msgid "" +"Set standby timeout\n" +"(0=off, 1=5s, 2=10s, ..., 240=20m, 241=30m, ...)." +msgstr "" +"Készenléti időkorlát beállítása\n" +"(0=ki, 1=5mp, 2=10mp, …, 240=20p, 241=30p, …)." + +#: commands/hdparm.c:43 +msgid "Set drive to standby mode." +msgstr "Meghajtó készenléti módba kapcsolása." + +#: commands/hdparm.c:44 +msgid "Set drive to sleep mode." +msgstr "Meghajtó energiatakarékos módba kapcsolása." + +#: commands/hdparm.c:45 +msgid "Print drive identity and settings." +msgstr "Meghajtó azonosítójának és beállításainak kiírása." + +#: commands/hdparm.c:47 +msgid "Dump contents of ATA IDENTIFY sector." +msgstr "Az ATA IDENTIFY szektor tartalmának kiíratása." + +#: commands/hdparm.c:49 +msgid "Disable/enable SMART (0/1)." +msgstr "SMART letiltása/engedélyezése (0/1)." + +#: commands/hdparm.c:50 +msgid "Do not print messages." +msgstr "Ne írjon ki üzeneteket." + +#: commands/hdparm.c:414 +msgid "[OPTIONS] DISK" +msgstr "[KAPCSOLÓK] LEMEZ" + +#: commands/hdparm.c:415 +msgid "Get/set ATA disk parameters." +msgstr "ATA lemezparaméterek lekérése/beállítása." + +#: commands/help.c:112 lib/arg.c:110 +msgid "Usage:" +msgstr "Használat:" + +#: commands/help.c:129 +msgid "[PATTERN ...]" +msgstr "[MINTA…]" + +#: commands/help.c:130 +msgid "Show a help message." +msgstr "Súgóüzenet megjelenítése." + +#: commands/hexdump.c:30 +msgid "Skip offset bytes from the beginning of file." +msgstr "Eltolásbájtok kihagyása a fájl kezdetétől." + +#: commands/hexdump.c:32 +msgid "Read only LENGTH bytes." +msgstr "Csak HOSSZ bájt beolvasása." + +#: commands/hexdump.c:125 +msgid "[OPTIONS] FILE_OR_DEVICE" +msgstr "[KAPCSOLÓK] FÁJL_VAGY_ESZKÖZ" + +#: commands/hexdump.c:126 +msgid "Dump the contents of a file or memory." +msgstr "Fájl vagy a memória tartalmának kiíratása." + +#: commands/i386/cpuid.c:37 +msgid "Check for long mode flag (default)." +msgstr "Hosszú módjelző ellenőrzése (alapértelmezett)." + +#: commands/i386/cpuid.c:92 +msgid "Check for CPU features." +msgstr "CPU szolgáltatásainak ellenőrzése." + +#: commands/i386/pc/drivemap.c:37 +msgid "Show the current mappings." +msgstr "Az aktuális társítások megjelenítése." + +#: commands/i386/pc/drivemap.c:38 +msgid "Reset all mappings to the default values." +msgstr "Minden társítás visszaállítása az alapértelmezett értékre." + +#: commands/i386/pc/drivemap.c:39 +msgid "Perform both direct and reverse mappings." +msgstr "Közvetlen és fordított társítások végrehajtása egyaránt." + +#: commands/i386/pc/drivemap.c:406 +msgid "-l | -r | [-s] grubdev osdisk." +msgstr "-l | -r | [-s] grubeszköz oslemez." + +#: commands/i386/pc/drivemap.c:407 +msgid "Manage the BIOS drive mappings." +msgstr "A BIOS meghajtótársítások kezelése." + +#: commands/i386/pc/halt.c:27 +msgid "Do not use APM to halt the computer." +msgstr "Ne használja az APM-et a számítógép leállítására." + +#: commands/i386/pc/halt.c:51 +msgid "Halt the system, if possible using APM." +msgstr "A rendszer leállítása, ha lehet akkor APM használatával." + +#: commands/i386/pc/play.c:266 +msgid "FILE | TEMPO [PITCH1 DURATION1] [PITCH2 DURATION2] ... " +msgstr "" + +#: commands/i386/pc/play.c:267 +msgid "Play a tune." +msgstr "Dallam lejátszása." + +#: commands/i386/pc/pxecmd.c:46 +msgid "Unload PXE environment." +msgstr "PXE környezet eltávolítása." + +#: commands/i386/pc/vbeinfo.c:179 +msgid "List compatible VESA BIOS extension video modes." +msgstr "Kompatibilis VESA BIOS-kiterjesztés videomódok felsorolása." + +#: commands/i386/pc/vbetest.c:173 +msgid "Test VESA BIOS Extension 2.0+ support." +msgstr "VESA BIOS-kiterjesztés 2.0+ támogatásának tesztelése." + +#: commands/ieee1275/suspend.c:43 +msgid "Return to Open Firmware prompt." +msgstr "Visszatérés a firmware megnyitása prompthoz." + +#: commands/keystatus.c:28 +msgid "Check Shift key." +msgstr "Shift billentyű ellenőrzése." + +#: commands/keystatus.c:29 +msgid "Check Control key." +msgstr "Ctrl billentyű ellenőrzése." + +#: commands/keystatus.c:30 +msgid "Check Alt key." +msgstr "Alt billentyű ellenőrzése." + +#: commands/keystatus.c:85 +msgid "[--shift] [--ctrl] [--alt]" +msgstr "[--shift] [--ctrl] [--alt]" + +#: commands/keystatus.c:86 +msgid "Check key modifier status." +msgstr "Billentyűmódosító állapotának ellenőrzése." + +#: commands/loadenv.c:33 +msgid "Specify filename." +msgstr "Fájlnév megadása." + +#: commands/loadenv.c:378 commands/loadenv.c:384 +msgid "[-f FILE]" +msgstr "[-f FÁJL]" + +#: commands/loadenv.c:379 +msgid "Load variables from environment block file." +msgstr "Változók betöltése a környezeti blokkfájlból." + +#: commands/loadenv.c:385 +msgid "List variables from environment block file." +msgstr "Változók felsorolása a környezeti blokkfájlból." + +#: commands/loadenv.c:390 +msgid "[-f FILE] variable_name [...]" +msgstr "[-f FÁJL] változónév […]" + +#: commands/loadenv.c:391 +msgid "Save variables to environment block file." +msgstr "Változók mentése a környezeti blokkfájlba." + +#: commands/ls.c:37 +msgid "Show a long list with more detailed information." +msgstr "Hosszú lista megjelenítése részletesebb információkkal." + +#: commands/ls.c:38 +msgid "Print sizes in a human readable format." +msgstr "Méretek kiírása emberek által olvasható formátumban." + +#: commands/ls.c:39 +msgid "List all files." +msgstr "Minden fájl felsorolása." + +#: commands/ls.c:269 +msgid "[-l|-h|-a] [FILE]" +msgstr "[-l|-h|-a] [FÁJL]" + +#: commands/ls.c:270 +msgid "List devices and files." +msgstr "Eszközök és fájlok felsorolása." + +#: commands/lsmmap.c:51 +msgid "List memory map provided by firmware." +msgstr "A firmware által biztosított memóriatérkép kiírása." + +#: commands/lspci.c:228 +msgid "List PCI devices." +msgstr "PCI eszközök felsorolása." + +#: commands/memrw.c:31 +msgid "Save read value into variable VARNAME." +msgstr "Beolvasott érték mentése a VÁLTOZÓNÉV változóba," + +#: commands/memrw.c:123 commands/memrw.c:126 commands/memrw.c:129 +#: commands/minicmd.c:362 +msgid "ADDR" +msgstr "CÍM" + +#: commands/memrw.c:123 +msgid "Read byte from ADDR." +msgstr "Bájt olvasása a CÍMRŐL." + +#: commands/memrw.c:126 +msgid "Read word from ADDR." +msgstr "Szó olvasása a CÍMRŐL." + +#: commands/memrw.c:129 +msgid "Read dword from ADDR." +msgstr "Duplaszó olvasása a CÍMRŐL." + +#: commands/memrw.c:132 commands/memrw.c:135 commands/memrw.c:138 +msgid "ADDR VALUE [MASK]" +msgstr "CÍM ÉRTÉK [MASZK]" + +#: commands/memrw.c:132 +msgid "Write byte VALUE to ADDR." +msgstr "A bájt ÉRTÉK kiírása a CÍMRE." + +#: commands/memrw.c:135 +msgid "Write word VALUE to ADDR." +msgstr "A szó ÉRTÉK kiírása a CÍMRE." + +#: commands/memrw.c:138 +msgid "Write dword VALUE to ADDR." +msgstr "A duplaszó ÉRTÉK kiírása a CÍMRE." + +#: commands/minicmd.c:356 +msgid "Show this message." +msgstr "Ezen üzenet kiírása." + +#: commands/minicmd.c:359 commands/probe.c:154 +msgid "[DEVICE]" +msgstr "[ESZKÖZ]" + +#: commands/minicmd.c:359 +msgid "Set the root device." +msgstr "A gyökéreszköz beállítása." + +#: commands/minicmd.c:362 +msgid "Dump memory." +msgstr "Memória kiíratása." + +#: commands/minicmd.c:365 +msgid "MODULE" +msgstr "MODUL" + +#: commands/minicmd.c:365 +msgid "Remove a module." +msgstr "Modul eltávolítása." + +#: commands/minicmd.c:368 +msgid "Show loaded modules." +msgstr "Betöltött modulok megjelenítése." + +#: commands/minicmd.c:371 +msgid "Exit from GRUB." +msgstr "Kilépés a GRUB-ból." + +#: commands/minicmd.c:374 +msgid "Clear the screen." +msgstr "A képernyő törlése." + +#: commands/parttool.c:325 +msgid "PARTITION COMMANDS" +msgstr "PARTÍCIÓ PARANCSOK" + +#: commands/password.c:78 +msgid "USER PASSWORD" +msgstr "FELHASZNÁLÓ JELSZÓ" + +#: commands/password.c:79 +msgid "Set user password (plaintext). Unrecommended and insecure." +msgstr "" +"A felhasználói jelszó (egyszerű szöveg) beállítása. Nem biztonságos, így nem " +"ajánlott." + +#: commands/probe.c:38 +msgid "Set a variable to return value." +msgstr "Változó beállítása a visszatérési értékre." + +#: commands/probe.c:39 +msgid "Determine driver." +msgstr "Meghajtó meghatározása." + +#: commands/probe.c:40 +msgid "Determine partition map type." +msgstr "Partíciótérkép típusának meghatározása." + +#: commands/probe.c:41 +msgid "Determine filesystem type." +msgstr "Fájlrendszer típusának meghatározása." + +#: commands/probe.c:42 +msgid "Determine filesystem UUID." +msgstr "Fájlrendszer UUID meghatározása." + +#: commands/probe.c:43 +msgid "Determine filesystem label." +msgstr "Fájlrendszer címkéjének meghatározása." + +#: commands/probe.c:155 +msgid "Retrieve device info." +msgstr "Eszközinformációk lekérése." + +#: commands/read.c:83 +msgid "[ENVVAR]" +msgstr "[KÖRNYEZETI VÁLTOZÓ]" + +#: commands/read.c:84 +msgid "Set variable with user input." +msgstr "Változó beállítása a felhasználói bevitelre." + +#: commands/reboot.c:39 +msgid "Reboot the computer." +msgstr "Számítógép újraindítása." + +#: commands/search.c:161 +msgid "NAME [VARIABLE]" +msgstr "NÉV [VÁLTOZÓ]" + +#: commands/search_file.c:5 +msgid "" +"Search devices by file. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Eszközök keresése fájl alapján. Ha a VÁLTOZÓ meg van adva, akkor az elsőként " +"megtalált eszköz bekerül a változóba." + +#: commands/search_label.c:5 +msgid "" +"Search devices by label. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Eszközök keresése címke alapján. Ha a VÁLTOZÓ meg van adva, akkor az " +"elsőként megtalált eszköz bekerül a változóba." + +#: commands/search_uuid.c:5 +msgid "" +"Search devices by UUID. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Eszközök keresése UUID alapján. Ha a VÁLTOZÓ meg van adva, akkor az elsőként " +"megtalált eszköz bekerül a változóba." + +#: commands/sleep.c:30 +msgid "Verbose countdown." +msgstr "Részletes visszaszámlálás." + +#: commands/sleep.c:31 +msgid "Interruptible with ESC." +msgstr "Megszakítható az ESC-vel." + +#: commands/sleep.c:105 +msgid "NUMBER_OF_SECONDS" +msgstr "MÁSODPERC" + +#: commands/sleep.c:106 +msgid "Wait for a specified number of seconds." +msgstr "Várakozás a megadott másodpercig." + +#: commands/test.c:424 +msgid "EXPRESSION ]" +msgstr "KIFEJEZÉS ]" + +#: commands/test.c:424 commands/test.c:426 +msgid "Evaluate an expression." +msgstr "Kifejezés kiértékelése." + +#: commands/test.c:426 +msgid "EXPRESSION" +msgstr "KIFEJEZÉS" + +#: commands/true.c:47 +msgid "Do nothing, successfully." +msgstr "Nem csinál semmit, sikeresen." + +#: commands/true.c:50 +msgid "Do nothing, unsuccessfully." +msgstr "Nem csinál semmit, sikertelenül." + +#: commands/usbtest.c:208 +msgid "Test USB support." +msgstr "USB-támogatás tesztelése." + +#: commands/videotest.c:180 +msgid "Test video subsystem." +msgstr "Videoalrendszer tesztelése." + +#: commands/xnu_uuid.c:92 +msgid "GRUBUUID [VARNAME]" +msgstr "GRUBUUID [VÁLTOZÓ]" + +#: commands/xnu_uuid.c:93 +msgid "Transform 64-bit UUID to format suitable for XNU." +msgstr "64 bites UUID átalakítása XNU-hoz megfelelő formátumba." + +#: disk/loopback.c:40 +msgid "Delete the loopback device entry." +msgstr "A visszacsatolási eszköz bejegyzésének törlése." + +#: disk/loopback.c:41 +msgid "Simulate a hard drive with partitions." +msgstr "Partíciókat tartalmazó merevlemez szimulálása." + +#: disk/loopback.c:249 +msgid "[-d|-p] DEVICENAME FILE." +msgstr "[-d|-p] ESZKÖZNÉV FÁJL." + +#: disk/loopback.c:250 +msgid "Make a device of a file." +msgstr "Eszköz készítése fájlból." + +#: hello/hello.c:43 +msgid "Say \"Hello World\"." +msgstr "A világ üdvözlése." + +#: lib/arg.c:34 +msgid "Display this help and exit." +msgstr "Ezen súgó megjelenítése és kilépés." + +#: lib/arg.c:36 +msgid "Display the usage of this command and exit." +msgstr "A parancs használatának megjelenítése és kilépés." + +#: loader/efi/appleloader.c:325 +msgid "Boot legacy system." +msgstr "Örökölt rendszer indítása." + +#: loader/efi/chainloader.c:340 loader/i386/pc/chainloader.c:166 +msgid "Load another boot loader." +msgstr "Másik rendszerbetöltő betöltése." + +#: loader/i386/bsd.c:65 +msgid "Display output on all consoles." +msgstr "Kimenet megjelenítése minden konzolon." + +#: loader/i386/bsd.c:66 +msgid "Use serial console." +msgstr "Soros konzol használata." + +#: loader/i386/bsd.c:67 loader/i386/bsd.c:93 loader/i386/bsd.c:114 +msgid "Ask for file name to reboot from." +msgstr "Fájlnév bekérése, amelyből újra kell indulni." + +#: loader/i386/bsd.c:68 +msgid "Use CDROM as root." +msgstr "CDROM használata gyökérként." + +#: loader/i386/bsd.c:69 +msgid "Invoke user configuration routing." +msgstr "Felhasználói beállításirányítás hívása." + +#: loader/i386/bsd.c:70 loader/i386/bsd.c:97 loader/i386/bsd.c:117 +msgid "Enter in KDB on boot." +msgstr "Indításkor belépés a KDB-be." + +#: loader/i386/bsd.c:71 +msgid "Use GDB remote debugger instead of DDB." +msgstr "GDB távoli hibakereső használata DDB helyett." + +#: loader/i386/bsd.c:72 +msgid "Disable all boot output." +msgstr "Minden indítási kimenet letiltása." + +#: loader/i386/bsd.c:74 +msgid "Wait for keypress after every line of output." +msgstr "Várakozás billentyűnyomásra minden kimeneti sor után." + +#: loader/i386/bsd.c:76 +msgid "Use compiled-in rootdev." +msgstr "Befordított rootdev használata." + +#: loader/i386/bsd.c:77 loader/i386/bsd.c:96 loader/i386/bsd.c:120 +msgid "Boot into single mode." +msgstr "Indítás egy felhasználós módban." + +#: loader/i386/bsd.c:78 loader/i386/bsd.c:121 +msgid "Boot with verbose messages." +msgstr "Indítás részletes üzenetekkel." + +#: loader/i386/bsd.c:94 loader/i386/bsd.c:115 +msgid "Don't reboot, just halt." +msgstr "Ne induljon újra, csak álljon le." + +#: loader/i386/bsd.c:95 loader/i386/bsd.c:116 +msgid "Change configured devices." +msgstr "Beállított eszközök módosítása." + +#: loader/i386/bsd.c:98 loader/i386/bsd.c:124 +msgid "Set root device." +msgstr "Gyökéreszköz beállítása." + +#: loader/i386/bsd.c:112 +msgid "Disable SMP." +msgstr "SMP letiltása." + +#: loader/i386/bsd.c:113 +msgid "Disable ACPI." +msgstr "ACPI letiltása." + +#: loader/i386/bsd.c:119 +msgid "Don't display boot diagnostic messages." +msgstr "Ne jelenítsen meg rendszerindítási diagnosztikai üzeneteket." + +#: loader/i386/bsd.c:122 +msgid "Boot with debug messages." +msgstr "Indítás hibakeresési üzenetekkel." + +#: loader/i386/bsd.c:123 +msgid "Supress normal output (warnings remain)." +msgstr "Normál kimenet elnyomása (a figyelmeztetések maradnak)." + +#: loader/i386/bsd.c:124 +msgid "DEVICE" +msgstr "ESZKÖZ" + +#: loader/i386/bsd.c:1287 +msgid "Load kernel of FreeBSD." +msgstr "A FreeBSD kernel betöltése." + +#: loader/i386/bsd.c:1291 +msgid "Load kernel of OpenBSD." +msgstr "Az OpenBSD kernel betöltése." + +#: loader/i386/bsd.c:1295 +msgid "Load kernel of NetBSD." +msgstr "A NetBSD kernel betöltése." + +#: loader/i386/bsd.c:1299 +msgid "Load FreeBSD env." +msgstr "FreeBSD környezet betöltése." + +#: loader/i386/bsd.c:1302 +msgid "Load FreeBSD kernel module." +msgstr "FreeBSD kernelmodul betöltése." + +#: loader/i386/bsd.c:1305 +msgid "Load FreeBSD kernel module (ELF)." +msgstr "FreeBSD kernelmodul betöltése (ELF)." + +#: loader/i386/efi/linux.c:1011 loader/i386/ieee1275/linux.c:301 +#: loader/i386/linux.c:1012 loader/i386/pc/linux.c:399 +#: loader/powerpc/ieee1275/linux.c:353 loader/sparc64/ieee1275/linux.c:519 +msgid "Load Linux." +msgstr "Linux betöltése." + +#: loader/i386/efi/linux.c:1013 loader/i386/ieee1275/linux.c:303 +#: loader/i386/linux.c:1014 loader/i386/pc/linux.c:402 +#: loader/powerpc/ieee1275/linux.c:355 loader/sparc64/ieee1275/linux.c:521 +msgid "Load initrd." +msgstr "Initrd betöltése." + +#: loader/i386/xnu.c:1032 +msgid "Load device-properties dump." +msgstr "Eszköz-tulajdonság kiíratás betöltése." + +#: loader/multiboot.c:337 +msgid "Load a multiboot 2 kernel." +msgstr "Multiboot 2 kernel betöltése." + +#: loader/multiboot.c:340 +#, fuzzy +msgid "Load a multiboot 2 module." +msgstr "Multiboot modul betöltése." + +#: loader/multiboot.c:343 +msgid "Load a multiboot kernel." +msgstr "Multiboot kernel betöltése." + +#: loader/multiboot.c:346 +msgid "Load a multiboot module." +msgstr "Multiboot modul betöltése." + +#: loader/xnu.c:1428 +msgid "Load XNU image." +msgstr "XNU rendszerkép betöltése." + +#: loader/xnu.c:1430 +msgid "Load 64-bit XNU image." +msgstr "64 bites XNU rendszerkép betöltése." + +#: loader/xnu.c:1432 +msgid "Load XNU extension package." +msgstr "XNU kiterjesztéscsomag betöltése." + +#: loader/xnu.c:1434 +msgid "Load XNU extension." +msgstr "XNU kiterjesztés betöltése." + +#: loader/xnu.c:1436 +msgid "DIRECTORY [OSBundleRequired]" +msgstr "KÖNYVTÁR [OSCsomagSzükséges]" + +#: loader/xnu.c:1437 +msgid "Load XNU extension directory." +msgstr "XNU kiterjesztéskönyvtár betöltése." + +#: loader/xnu.c:1444 +msgid "Load a splash image for XNU." +msgstr "Indítókép betöltése az XNU-hoz." + +#: loader/xnu.c:1449 +msgid "Load XNU hibernate image." +msgstr "XNU hibernálási rendszerkép betöltése." + +#: normal/auth.c:217 +msgid "Enter username: " +msgstr "Adja meg a felhasználónevet: " + +#: normal/auth.c:222 +msgid "Enter password: " +msgstr "Adja meg a jelszót: " + +#: normal/color.c:80 +#, c-format +msgid "Warning: syntax error (missing slash) in `%s'\n" +msgstr "Figyelmeztetés: szintaktikai hiba (hiányzó perjel) itt: „%s”\n" + +#: normal/color.c:89 +#, c-format +msgid "Warning: invalid foreground color `%s'\n" +msgstr "Figyelmeztetés: érvénytelen előtérszín: „%s”\n" + +#: normal/color.c:95 +#, c-format +msgid "Warning: invalid background color `%s'\n" +msgstr "Figyelmeztetés: érvénytelen háttérszín: „%s”\n" + +#: normal/dyncmd.c:144 +msgid "not loaded" +msgstr "nincs betöltve" + +#: normal/main.c:415 +#, c-format +msgid "GNU GRUB version %s" +msgstr "GNU GRUB %s verzió" + +#: normal/main.c:552 +#, c-format +msgid "" +"Minimal BASH-like line editing is supported. For the first word, TAB lists " +"possible command completions. Anywhere else TAB lists possible device or " +"file completions. %s" +msgstr "" +"Minimális BASH-szerű szerkesztés támogatott. Az első szóhoz a TAB felsorolja " +"a lehetséges parancskiegészítéseket. Bárhol máshol a TAB felsorolja a " +"lehetséges eszköz- vagy fájlkiegészítéseket. %s" + +#: normal/main.c:555 +msgid "ESC at any time exits." +msgstr "Az ESC mindig kilép." + +#: normal/main.c:670 +msgid "Enter normal mode." +msgstr "" + +#: normal/main.c:672 +msgid "Exit from normal mode." +msgstr "" + +#: normal/menu_entry.c:1061 +msgid "Possible commands are:" +msgstr "A lehetséges parancsok:" + +#: normal/menu_entry.c:1065 +msgid "Possible devices are:" +msgstr "A lehetséges eszközök:" + +#: normal/menu_entry.c:1069 +msgid "Possible files are:" +msgstr "A lehetséges fájlok:" + +#: normal/menu_entry.c:1073 +msgid "Possible partitions are:" +msgstr "A lehetséges partíciók:" + +#: normal/menu_entry.c:1077 +msgid "Possible arguments are:" +msgstr "A lehetséges paraméterek:" + +#: normal/menu_entry.c:1081 +msgid "Possible things are:" +msgstr "A lehetséges dolgok:" + +#: normal/menu_entry.c:1185 +msgid "Booting a command list" +msgstr "Parancslista indítása" + +#: normal/menu_entry.c:1398 +msgid "Press any key to continue..." +msgstr "Nyomjon meg egy billentyűt a folytatáshoz…" + +#: normal/menu_text.c:180 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"F1 to boot, F2=Ctrl-a, F3=Ctrl-e, F4 for a command-line or ESC to discard " +"edits and return to the GRUB menu." +msgstr "" +"Minimális Emacs-szerű képernyőszerkesztés támogatott. A TAB felsorolja a " +"kiegészítési lehetőségeket. Nyomja meg a Ctrl-x kombinációt az indításhoz, a " +"Ctrl-c kombinációt a parancssorhoz, vagy az ESC-t a visszatéréshez a menübe." + +#: normal/menu_text.c:185 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"Ctrl-x to boot, Ctrl-c for a command-line or ESC to discard edits and return " +"to the GRUB menu." +msgstr "" +"Minimális Emacs-szerű képernyőszerkesztés támogatott. A TAB felsorolja a " +"kiegészítési lehetőségeket. Nyomja meg a Ctrl-x kombinációt az indításhoz, a " +"Ctrl-c kombinációt a parancssorhoz, vagy az ESC-t a visszatéréshez a menübe." + +#: normal/menu_text.c:193 +#, c-format +msgid "Use the %C and %C keys to select which entry is highlighted.\n" +msgstr "A kiemelt elem kijelöléséhez használja a %C és %C billentyűket.\n" + +#: normal/menu_text.c:210 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line. ESC to return previous menu.\n" +msgstr "" +"Nyomja meg az Enter billentyűt a kijelölt rendszer indításához, az „e” " +"billentyűt a parancsok szerkesztéséhez indítás előtt, vagy a „c” billentyűt " +"a parancssor eléréséhez. Az ESC visszaviszi az előző menübe.\n" + +#: normal/menu_text.c:218 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line.\n" +msgstr "" +"Nyomja meg az Enter billentyűt a kijelölt rendszer indításához, az „e” " +"billentyűt a parancsok szerkesztéséhez indítás előtt, vagy a „c” billentyűt " +"a parancssor eléréséhez.\n" + +#: normal/menu_text.c:370 +#, c-format +msgid "The highlighted entry will be executed automatically in %ds." +msgstr "A kijelölt bejegyzés automatikusan elindul %d másodperc múlva." + +#: normal/misc.c:41 +#, c-format +msgid "Partition %s:" +msgstr "%s partíció:" + +#: normal/misc.c:46 +#, c-format +msgid "Device %s:" +msgstr "%s eszköz:" + +#: normal/misc.c:52 +msgid "Filesystem cannot be accessed" +msgstr "A fájlrendszer nem érhető el" + +#: normal/misc.c:63 +#, c-format +msgid "Filesystem type %s" +msgstr "Fájlrendszer típusa: %s" + +#: normal/misc.c:73 +#, c-format +msgid "- Label \"%s\"" +msgstr "- Címke: „%s”" + +#: normal/misc.c:88 +#, c-format +msgid "- Last modification time %d-%02d-%02d %02d:%02d:%02d %s" +msgstr "- Utolsó módosítás ideje: %d. %02d. %02d. %02d:%02d:%02d %s" + +#: normal/misc.c:111 +msgid "Unknown filesystem" +msgstr "Ismeretlen fájlrendszer" + +#: normal/misc.c:113 +msgid "Partition table" +msgstr "Partíciós tábla" + +#: term/serial.c:46 +msgid "Set the serial unit." +msgstr "A soros egység beállítása." + +#: term/serial.c:47 +msgid "Set the serial port address." +msgstr "Soros port címének beállítása." + +#: term/serial.c:48 +msgid "Set the serial port speed." +msgstr "Soros port sebességének beállítása." + +#: term/serial.c:49 +msgid "Set the serial port word length." +msgstr "Soros port szóhosszának beállítása." + +#: term/serial.c:50 +msgid "Set the serial port parity." +msgstr "Soros port paritásának beállítása." + +#: term/serial.c:51 +msgid "Set the serial port stop bits." +msgstr "Soros port stop bitjeinek beállítása." + +#: term/serial.c:619 +#, fuzzy +msgid "[OPTIONS...]" +msgstr "[KAPCSOLÓK] LEMEZ" + +#: term/serial.c:620 +msgid "Configure serial port." +msgstr "" + +#: util/grub-mkimage.c:440 +msgid "the core image is too small" +msgstr "a magkép túl kicsi" + +#: util/grub-mkimage.c:451 +msgid "cannot compress the kernel image" +msgstr "a rendszermagkép nem tömöríthető" + +#: util/grub-mkimage.c:548 +msgid "prefix is too long" +msgstr "az előtag túl hosszú" + +#: util/grub-mkimage.c:672 +#, c-format +msgid "core image is too big (%p > %p)" +msgstr "a magkép túl nagy (%p > %p)" + +#: util/grub-mkimage.c:678 +msgid "the core image is too big" +msgstr "a magkép túl nagy" + +#: util/grub-mkimage.c:683 +#, c-format +msgid "diskboot.img size must be %u bytes" +msgstr "a diskboot.img mérete %u bájt kell legyen" + +#: util/grub-mkimage.c:1168 util/i386/pc/grub-setup.c:619 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "További információkért adja ki a „%s --help” parancsot.\n" + +#: util/grub-mkimage.c:1187 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... [MODULES]\n" +"\n" +"Make a bootable image of GRUB.\n" +"\n" +" -d, --directory=DIR use images and modules under DIR [default=%s/" +"@platform@]\n" +" -p, --prefix=DIR set grub_prefix directory [default=%s]\n" +" -m, --memdisk=FILE embed FILE as a memdisk image\n" +" -f, --font=FILE embed FILE as a boot font\n" +" -c, --config=FILE embed FILE as boot config\n" +" -n, --note add NOTE segment for CHRP Open Firmware\n" +" -o, --output=FILE output a generated image to FILE [default=stdout]\n" +" -O, --format=FORMAT generate an image in format\n" +" available formats: %s\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 "" +"Használat: %s [KAPCSOLÓ]… [MODULOK]\n" +"\n" +"Indítható memóriakép készítése a GRUB-ból.\n" +"\n" +" -d, --directory=KÖNYVTÁR a KÖNYVTÁR alatti memóriaképek és modulok\n" +" használata [alapértelmezett=%s]\n" +" -p, --prefix=KÖNYVTÁR a grub_prefix könyvtár beállítása [alapértelmezett=" +"%s]\n" +" -m, --memdisk=FÁJL a FÁJL beágyazása memórialemez-képként\n" +" -f, --font=FÁJL a FÁJL beágyazása rendszerindítási " +"betűkészletként\n" +" -c, --config=FÁJL a FÁJL beágyazása rendszerindítási " +"konfigurációként\n" +" -o, --output=FÁJL az előállított memóriaképfájl kiírása a FÁJLBA\n" +" [alapértelmezett=stdout]\n" +" -O, --format=FORMÁTUM memóriaképfájl előállítása a FORMTUMBA " +"[alapértelmezett=" + +#: util/grub-mkimage.c:1333 +#, c-format +msgid "cannot open %s" +msgstr "%s nem nyitható meg" + +#: util/i386/pc/grub-setup.c:164 +msgid "the first sector of the core file is not sector-aligned" +msgstr "a magfájl első szektora nincs szektorokhoz igazítva" + +#: util/i386/pc/grub-setup.c:178 +msgid "non-sector-aligned data is found in the core file" +msgstr "a magfájlban nem szektorokhoz igazított adatok találhatók" + +#: util/i386/pc/grub-setup.c:192 +msgid "the sectors of the core file are too fragmented" +msgstr "a magfájl szektorai túlzottan töredezettek" + +#: util/i386/pc/grub-setup.c:203 +#, c-format +msgid "the size of `%s' is not %u" +msgstr "„%s” mérete nem %u" + +#: util/i386/pc/grub-setup.c:220 +#, c-format +msgid "the size of `%s' is too small" +msgstr "„%s” mérete túl kicsi" + +#: util/i386/pc/grub-setup.c:222 +#, c-format +msgid "the size of `%s' is too large" +msgstr "„%s” mérete túl nagy" + +#: util/i386/pc/grub-setup.c:261 +#, c-format +msgid "unable to identify a filesystem in %s; safety check can't be performed" +msgstr "" +"nem azonosítható fájlrendszer ezen: %s, a biztonsági ellenőrzés nem hajtható " +"végre" + +#: 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 úgy tűnik, hogy %s fájlrendszert tartalmaz, amely nem tart fenn helyet a " +"DOS-stílusú rendszerindításnak. A GRUB oda telepítése a FÁJLRENDSZER " +"MEGSEMMISÜLÉSÉT okozhatja, ha a grub-setup értékes adatokat ír felül (a --" +"skip-fs-probe kihagyja ezt az ellenőrzést, saját felelősségre használja)." + +#: util/i386/pc/grub-setup.c:339 util/i386/pc/grub-setup.c:366 +msgid "" +"Attempting to install GRUB to a partitionless disk. This is a BAD idea." +msgstr "" +"Kísérlet a GRUB telepítésére partíciók nélküli lemezre. Ez egy ROSSZ ötlet." + +#: util/i386/pc/grub-setup.c:345 +msgid "" +"Attempting to install GRUB to a partition instead of the MBR. This is a BAD " +"idea." +msgstr "" +"Kísérlet a GRUB telepítésére partícióra az MBR helyett. Ez egy ROSSZ ötlet." + +#: util/i386/pc/grub-setup.c:375 +msgid "No DOS-style partitions found" +msgstr "Nem találhatók DOS-stílusú partíciók" + +#: util/i386/pc/grub-setup.c:380 +msgid "" +"This msdos-style partition label has no post-MBR gap; embedding won't be " +"possible!" +msgstr "" +"Az msdos-stílusú partíciócímke nem tartalmaz MBR utáni rést, a beágyazás nem " +"lesz lehetséges" + +#: util/i386/pc/grub-setup.c:382 +msgid "" +"This GPT partition label has no BIOS Boot Partition; embedding won't be " +"possible!" +msgstr "" +"A GPT partíciócímke nem tartalmaz BIOS indítópartíciót, a beágyazás nem lesz " +"lehetséges" + +#: util/i386/pc/grub-setup.c:389 +msgid "Your core.img is unusually large. It won't fit in the embedding area." +msgstr "A core.img szokatlanul nagy. Nem fog elférni a beágyazási területen." + +#: util/i386/pc/grub-setup.c:391 +msgid "Your embedding area is unusually small. core.img won't fit in it." +msgstr "" +"A beágyazási terület szokatlanul kicsi. A core.img nem fog elférni rajta." + +#: util/i386/pc/grub-setup.c:436 +msgid "" +"embedding is not possible, but this is required when the root device is on a " +"RAID array or LVM volume" +msgstr "" +"A beágyazás nem lehetséges, noha ez szükséges, ha a gyökéreszköz RAID tömbön " +"vagy LVM köteten van." + +#: util/i386/pc/grub-setup.c:439 +#, fuzzy +msgid "" +"Embedding is not possible. GRUB can only be installed in this setup by " +"using blocklists. However, blocklists are UNRELIABLE and their use is " +"discouraged." +msgstr "" +"A beágyazás nem lehetséges. A GRUB csak blokklisták használatával " +"telepíthető erre az eszközre. A blokklisták azonban NEM MEGBÍZHATÓK, és " +"használatuk nem ajánlott." + +#: util/i386/pc/grub-setup.c:443 +msgid "if you really want blocklists, use --force" +msgstr "" +"Ha valóban blokklistákat szeretne használni, a --force kapcsolóval megteheti" + +#: util/i386/pc/grub-setup.c:462 +#, c-format +msgid "attempting to read the core image `%s' from GRUB" +msgstr "kísérlet a(z) „%s” magkép beolvasására a GRUB-ból" + +#: util/i386/pc/grub-setup.c:463 +#, c-format +msgid "attempting to read the core image `%s' from GRUB again" +msgstr "kísérlet a(z) „%s” magkép beolvasására a GRUB-ból újra" + +#: util/i386/pc/grub-setup.c:530 +#, c-format +msgid "cannot read `%s' correctly" +msgstr "„%s” nem olvasható be megfelelően" + +#: util/i386/pc/grub-setup.c:543 +msgid "no terminator in the core image" +msgstr "nincs befejező a magképben" + +#: util/i386/pc/grub-setup.c:554 +msgid "failed to read the first sector of the core image" +msgstr "a magkép első szektorának beolvasása meghiúsult" + +#: util/i386/pc/grub-setup.c:560 +msgid "failed to read the rest sectors of the core image" +msgstr "a magkép további szektorainak beolvasása meghiúsult" + +#: util/i386/pc/grub-setup.c:579 +#, c-format +msgid "cannot open `%s'" +msgstr "„%s” nem nyitható meg" + +#: util/i386/pc/grub-setup.c:621 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... DEVICE\n" +"\n" +"Set up images to boot from DEVICE.\n" +"DEVICE must be a GRUB device (e.g. `(hd0,1)').\n" +"\n" +"You should not normally run %s directly. Use grub-install instead.\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 "" +"Használat: %s [KAPCSOLÓ]… ESZKÖZ\n" +"\n" +"Memóriaképek beállítása az ESZKÖZRŐL induláshoz.\n" +"Az ESZKÖZNEK GRUB eszköznek kell lennie (például: „(hd0,1)”).\n" +"\n" +" -b, --boot-image=FÁJL a FÁJL használata indítási képként\n" +" [alapértelmezett=%s]\n" +" -c, --core-image=FÁJL a FÁJL használata magképként\n" +" [alapértelmezett=%s]\n" +" -d, --directory=KÖNYVTÁR a KÖNYVTÁRBAN lévő GRUB fájlok használata\n" +" [alapértelmezett=%s]\n" +" -m, --device-map=FÁJL a FÁJL használata eszköztérképként\n" +" [alapértelmezett=%s]\n" +" -r, --root-device=ESZKÖZ az ESZKÖZ használata gyökéreszközként\n" +" [alapértelmezett=felismert]\n" +" -f, --force telepítés problémák észlelése esetén is\n" +" -s, --skip-fs-probe ne keressen fájlrendszereket az ESZKÖZÖN\n" +" -h, --help ezen üzenet kiírása és kilépés\n" +" -V, --version verzióinformációk kiírása és kilépés\n" +" -v, --verbose részletes üzenetek kiírása\n" +"\n" +"A hibákat itt jelentheti: <%s>.\n" + +#: util/i386/pc/grub-setup.c:753 +#, c-format +msgid "No device is specified.\n" +msgstr "Nincs megadva eszköz.\n" + +#: util/i386/pc/grub-setup.c:759 +#, c-format +msgid "Unknown extra argument `%s'.\n" +msgstr "Ismeretlen extra paraméter: „%s”.\n" + +#: util/i386/pc/grub-setup.c:776 +#, c-format +msgid "Invalid device `%s'.\n" +msgstr "Érvénytelen eszköz: „%s”.\n" + +#: util/i386/pc/grub-setup.c:789 +#, c-format +msgid "invalid root device `%s'" +msgstr "Érvénytelen gyökéreszköz: „%s”" + +#: util/i386/pc/grub-setup.c:802 +msgid "cannot guess the root device. Specify the option `--root-device'" +msgstr "" +"A gyökéreszköz nem határozható meg. Adja meg a „--root-device” kapcsolót." + +#~ msgid "[class [handler]]" +#~ msgstr "[osztály [kezelő]]" + +#~ msgid "List or select a handler." +#~ msgstr "Kezelő felsorolása vagy kiválasztása." + +#~ msgid "Load XNU ramdisk. It will be seen as md0." +#~ msgstr "XNU ramlemez betöltése. Ez md0 néven fog megjelenni." + +#~ msgid "no DOS-style partitions found" +#~ msgstr "nem találhatók DOS-stílusú partíciók" + +#~ msgid "%s, with kFreeBSD %s" +#~ msgstr "%s, kFreeBSD %s verzióval" + +#~ msgid "Loading kernel of FreeBSD %s ..." +#~ msgstr "FreeBSD %s kernelének betöltése…" + +#~ msgid "%s, with Linux %s (recovery mode)" +#~ msgstr "%s, Linux %s verzióval (helyreállítási mód)" + +#~ msgid "%s, with Linux %s" +#~ msgstr "%s, Linux %s verzióval" + +#~ msgid "Loading Linux %s ..." +#~ msgstr "Linux %s betöltése…" + +#~ msgid "Loading initial ramdisk ..." +#~ msgstr "Kiindulási RAM-lemez betöltése…" --- grub2-1.98+20100804.orig/po/fi.po +++ grub2-1.98+20100804/po/fi.po @@ -0,0 +1,1444 @@ +# Finnish messages for grub. +# Copyright © 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the grub package. +# Jorma Karvonen , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub 1.97+20100124\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-06-19 01:35+0100\n" +"PO-Revision-Date: 2010-01-25 21:51+0200\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: commands/acpi.c:40 +msgid "Don't load host tables specified by comma-separated list." +msgstr "" +"Älä lataa pilkulla erotetuilla luetteloilla määriteltyä verkkoasematauluja." + +#: commands/acpi.c:43 +msgid "Load only tables specified by comma-separated list." +msgstr "Lataa vain pilkulla erotetuilla luetteloilla määriteltyjä tauluja." + +#: commands/acpi.c:44 +msgid "Expose v1 tables." +msgstr "Paljasta v1-taulut." + +#: commands/acpi.c:45 +msgid "Expose v2 and v3 tables." +msgstr "Paljasta v2- ja v3-taulut." + +#: commands/acpi.c:46 +msgid "Set OEMID of RSDP, XSDT and RSDT." +msgstr "Aseta RSDP:n, XSDT:n ja RSDT:n OEMID." + +#: commands/acpi.c:48 +msgid "Set OEMTABLE ID of RSDP, XSDT and RSDT." +msgstr "Aseta RSDP:n, XSDT:n ja RSDT:n OEMTABLE-tunniste." + +#: commands/acpi.c:50 +msgid "Set OEMTABLE revision of RSDP, XSDT and RSDT." +msgstr "Aseta RSDP:n, XSDT:n ja RSDT:n OEMTABLE-versio." + +#: commands/acpi.c:52 +msgid "Set creator field of RSDP, XSDT and RSDT." +msgstr "Aseta RSDP:n, XSDT:n ja RSDT:n luojakenttä." + +#: commands/acpi.c:54 +msgid "Set creator revision of RSDP, XSDT and RSDT." +msgstr "Aseta RSDP:n, XSDT:n ja RSDT:n luojaversio." + +#: commands/acpi.c:55 +msgid "" +"Don't update EBDA. May fix failures or hangs on some. BIOSes but makes it " +"ineffective with OS not receiving RSDP from GRUB." +msgstr "" +"Älä päivitä EBDA:ta. Saattaa korjata virheet tai jää roikkumaan jonnekin. " +"Käyttää BIOS:ia, mutta on tehoton käyttöjärjestelmillä, jotka eivät " +"vastaanota RSDP:tä GRUB:sta." + +#: commands/acpi.c:763 +msgid "" +"[-1|-2] [--exclude=TABLE1,TABLE2|--load-only=table1,table2] FILE1 [FILE2] " +"[...]" +msgstr "" +"[-1|-2] [--exclude=TAULU1,TAULU2|--load-only=taulu1,taulu2] TIEDOSTO1 " +"[TIEDOSTO2] [...]" + +#: commands/acpi.c:766 +msgid "Load host ACPI tables and tables specified by arguments." +msgstr "Lataa verkkoaseman ACPI-taulut ja argumenttien määrittelemät taulut." + +# Parametri pitkille valitsimelle, esim.: --abstract=FILE Aseta abstrakti tiedostonimi +#: commands/blocklist.c:113 commands/cat.c:82 commands/configfile.c:57 +#: commands/configfile.c:60 commands/configfile.c:65 commands/crc.c:64 +#: commands/minicmd.c:353 loader/i386/bsd.c:1287 loader/i386/bsd.c:1291 +#: loader/i386/bsd.c:1295 +msgid "FILE" +msgstr "TIEDOSTO" + +#: commands/blocklist.c:113 +msgid "Print a block list." +msgstr "Tulosta lohkoluettelo." + +#: commands/boot.c:190 +msgid "Boot an operating system." +msgstr "Alkulataa käyttöjärjestelmä." + +#: commands/cat.c:82 commands/minicmd.c:353 +msgid "Show the contents of a file." +msgstr "Näytä tiedoston sisältö." + +#: commands/cmp.c:113 +msgid "FILE1 FILE2" +msgstr "TIEDOSTO1 TIEDOSTO2" + +#: commands/cmp.c:113 +msgid "Compare two files." +msgstr "Vertaa kahta tiedostoa." + +#: commands/configfile.c:57 +msgid "Load another config file." +msgstr "Lataa toinen config-tiedosto." + +#: commands/configfile.c:61 commands/configfile.c:66 +msgid "Load another config file without changing context." +msgstr "Lataa toinen config-tiedosto muuttamatta asiayhteyttä." + +#: commands/crc.c:65 +msgid "Calculate the crc32 checksum of a file." +msgstr "Laske tiedoston crc32-tarkistussumma." + +#: commands/date.c:139 +msgid "[[year-]month-day] [hour:minute[:second]]" +msgstr "[[vuosi-]kuukausi-päivä] [tunti:minuutti[:sekunti]]" + +#: commands/date.c:140 +msgid "Command to display/set current datetime." +msgstr "Komento nykyisen päivämääräajan näyttämiseksi tai asettamiseksi." + +#: commands/echo.c:27 +msgid "Do not output the trailing newline." +msgstr "Älä tulosta perässä olevia rivinvaihtoja." + +#: commands/echo.c:28 +msgid "Enable interpretation of backslash escapes." +msgstr "Ota käyttöön kenoviivakoodinvaihtomerkkien tulkinta." + +#: commands/echo.c:117 +msgid "[-e|-n] STRING" +msgstr "[-e|-n] MERKKIJONO" + +#: commands/echo.c:117 +msgid "Display a line of text." +msgstr "Näytä tekstirivi." + +#: commands/efi/fixvideo.c:103 +msgid "Fix video problem." +msgstr "Korjaa videopulma." + +#: commands/efi/loadbios.c:207 +msgid "Fake BIOS." +msgstr "Vale-BIOS." + +#: commands/efi/loadbios.c:211 +msgid "Load BIOS dump." +msgstr "Lataa BIOS-vedos." + +#: commands/gptsync.c:244 +msgid "DEVICE [PARTITION[+/-[TYPE]]] ..." +msgstr "LAITE [OSIO[+/-[TYYPPI]]] ..." + +# Hybridi MBR (Master Boot Record) voidaan luoda, jotta sellaiset (vanhat) käyttöjärjestelmät, jotka eivät ymmärrä GPT (GUID Partition Type)-standardia, voivat käyttää GPT-levyasemia. +#: commands/gptsync.c:245 +#, fuzzy +msgid "" +"Fill hybrid MBR of GPT drive DEVICE. Specified partitions will be a part of " +"hybrid MBR. Up to 3 partitions are allowed. TYPE is an MBR type. + means " +"that partition is active. Only one partition can be active." +msgstr "" +"Täytä GPT-aseman LAITE hybridi MBR. määritellyt osiot ovat osa hybridi-mbr:" +"ää. Korkeintaan 3 osiota sallitaan. TYYPPI on MBR-tyyppi. + tarkoittaa, että " +"osio on aktiivinen. Vain yksi osio voi olla aktiivinen." + +#: commands/halt.c:39 +msgid "" +"Halts the computer. This command does not work on all firmware " +"implementations." +msgstr "" +"Pysäyttää tietokoneen. Tämä komento ei toimi kaikissa mikro-" +"ohjelmistototeutuksissa." + +#: commands/hdparm.c:30 +msgid "" +"Set Advanced Power Management\n" +"(1=low, ..., 254=high, 255=off)." +msgstr "" +"Aseta kehittynyt virranhallinta (APM)\n" +"(1=matala, ..., 254=korkea, 255=pois käytöstä)." + +#: commands/hdparm.c:33 +msgid "Check power mode." +msgstr "Tarkista virtatila." + +#: commands/hdparm.c:34 +msgid "Freeze ATA security settings until reset." +msgstr "Jäädytä ATA-turvallisuusasetukset uudelleenkäynnistykseen asti." + +#: commands/hdparm.c:36 +msgid "Check SMART health status." +msgstr "Tarkista SMART-terveystila." + +#: commands/hdparm.c:37 +msgid "" +"Set Automatic Acoustic Management\n" +"(0=off, 128=quiet, ..., 254=fast)." +msgstr "" +"Aseta automaattinen akustinen hallinta (AAM)\n" +"(0=pois, 128=hiljaa, ..., 254=nopea)." + +#: commands/hdparm.c:40 +msgid "" +"Set standby timeout\n" +"(0=off, 1=5s, 2=10s, ..., 240=20m, 241=30m, ...)." +msgstr "" +"Aseta valmiustila-aikakatkaisu\n" +"(0=pois, 1=5 s, 2=10 s, ..., 240=20 min., 241=30 min., ...)." + +#: commands/hdparm.c:43 +msgid "Set drive to standby mode." +msgstr "Aseta asema valmiustilaan." + +#: commands/hdparm.c:44 +msgid "Set drive to sleep mode." +msgstr "Aseta asema lepotilaan." + +#: commands/hdparm.c:45 +msgid "Print drive identity and settings." +msgstr "Tulosta aseman identiteetti ja asetukset." + +#: commands/hdparm.c:47 +msgid "Dump contents of ATA IDENTIFY sector." +msgstr "Vedosta ATA IDENTIFY-sektorin sisältö." + +#: commands/hdparm.c:49 +msgid "Disable/enable SMART (0/1)." +msgstr "Ota pois käytöstä/ota käyttöön SMART (0/1)" + +#: commands/hdparm.c:50 +msgid "Do not print messages." +msgstr "Älä tulosta viestejä." + +#: commands/hdparm.c:414 +msgid "[OPTIONS] DISK" +msgstr "[VALITSIMET] LEVY" + +#: commands/hdparm.c:415 +msgid "Get/set ATA disk parameters." +msgstr "Hae/aseta ATA-levyparametrit." + +#: commands/help.c:112 lib/arg.c:110 +msgid "Usage:" +msgstr "Käyttö:" + +#: commands/help.c:129 +msgid "[PATTERN ...]" +msgstr "[MALLI ...]" + +#: commands/help.c:130 +msgid "Show a help message." +msgstr "Näytä opasteviesti." + +#: commands/hexdump.c:30 +msgid "Skip offset bytes from the beginning of file." +msgstr "Hyppää siirrostavujen yli tiedoston alusta." + +#: commands/hexdump.c:32 +msgid "Read only LENGTH bytes." +msgstr "Lue vain LENGTH-tavua." + +#: commands/hexdump.c:125 +msgid "[OPTIONS] FILE_OR_DEVICE" +msgstr "[VALITSIN] TIEDOSTO_TAI_LAITE" + +#: commands/hexdump.c:126 +msgid "Dump the contents of a file or memory." +msgstr "Vedosta tiedoston tai muistin sisältö." + +#: commands/i386/cpuid.c:37 +msgid "Check for long mode flag (default)." +msgstr "Tarkista pitkän tilan lippu (oletus)." + +#: commands/i386/cpuid.c:92 +msgid "Check for CPU features." +msgstr "Tarkista suoritinominaisuudet." + +#: commands/i386/pc/drivemap.c:37 +msgid "Show the current mappings." +msgstr "Näytä nykyiset kartoitukset." + +#: commands/i386/pc/drivemap.c:38 +msgid "Reset all mappings to the default values." +msgstr "Palauta kaikki kartoitukset oletusarvoihin." + +#: commands/i386/pc/drivemap.c:39 +msgid "Perform both direct and reverse mappings." +msgstr "Suorita sekä suorat että käänteiset kartoitukset." + +#: commands/i386/pc/drivemap.c:406 +msgid "-l | -r | [-s] grubdev osdisk." +msgstr "-l | -r | [-s] grub-laite käyttöjärjestelmälevy." + +#: commands/i386/pc/drivemap.c:407 +msgid "Manage the BIOS drive mappings." +msgstr "Hallinnoi BIOS-asemakartoituksia." + +#: commands/i386/pc/halt.c:27 +msgid "Do not use APM to halt the computer." +msgstr "Älä käytä APM:ia tietokoneen pysäyttämiseen." + +#: commands/i386/pc/halt.c:51 +msgid "Halt the system, if possible using APM." +msgstr "Pysäytä järjestelmä, jos mahdollista käyttäen APM:ia." + +#: commands/i386/pc/play.c:266 +msgid "FILE | TEMPO [PITCH1 DURATION1] [PITCH2 DURATION2] ... " +msgstr "" + +#: commands/i386/pc/play.c:267 +msgid "Play a tune." +msgstr "Soita sävelmä." + +#: commands/i386/pc/pxecmd.c:46 +msgid "Unload PXE environment." +msgstr "Pura PXE-ympäristö." + +#: commands/i386/pc/vbeinfo.c:179 +msgid "List compatible VESA BIOS extension video modes." +msgstr "Luettele yhteensopivat VESA BIOS-laajennusvideotilat." + +#: commands/i386/pc/vbetest.c:173 +msgid "Test VESA BIOS Extension 2.0+ support." +msgstr "Koesta VESA BIOS-laajennus 2.0+ -tuki." + +#: commands/ieee1275/suspend.c:43 +msgid "Return to Open Firmware prompt." +msgstr "Palaa Avoin Mikro-ohjelmisto-kehotteelle." + +#: commands/keystatus.c:28 +msgid "Check Shift key." +msgstr "Tarkista vaihtopainike." + +#: commands/keystatus.c:29 +msgid "Check Control key." +msgstr "Tarkista Control-painike." + +#: commands/keystatus.c:30 +msgid "Check Alt key." +msgstr "Tarkista Alt-painike." + +#: commands/keystatus.c:85 +msgid "[--shift] [--ctrl] [--alt]" +msgstr "[--shift] [--ctrl] [--alt]" + +#: commands/keystatus.c:86 +msgid "Check key modifier status." +msgstr "Tarkista näppäimen muokkaustila." + +#: commands/loadenv.c:33 +msgid "Specify filename." +msgstr "Määrittele tiedostonimi." + +#: commands/loadenv.c:378 commands/loadenv.c:384 +msgid "[-f FILE]" +msgstr "[-f TIEDOSTO]" + +#: commands/loadenv.c:379 +msgid "Load variables from environment block file." +msgstr "Lataa muuttujat ympäristölohkotiedostosta." + +#: commands/loadenv.c:385 +msgid "List variables from environment block file." +msgstr "Luettele muuttujat ympäristölohkotiedostosta." + +#: commands/loadenv.c:390 +msgid "[-f FILE] variable_name [...]" +msgstr "[-f TIEDOSTO] muuttuja_nimi [...]" + +#: commands/loadenv.c:391 +msgid "Save variables to environment block file." +msgstr "Tallenna muuttujat ympäristölohkotiedostoon." + +#: commands/ls.c:37 +msgid "Show a long list with more detailed information." +msgstr "Näytä pitkä luettelo yksityiskohtatiedoilla." + +#: commands/ls.c:38 +msgid "Print sizes in a human readable format." +msgstr "Tulosta koot ihmisen luettavassa muodossa." + +#: commands/ls.c:39 +msgid "List all files." +msgstr "Luettele kaikki tiedostot." + +#: commands/ls.c:269 +msgid "[-l|-h|-a] [FILE]" +msgstr "[-l|-h|-a] [TIEDOSTO]" + +#: commands/ls.c:270 +msgid "List devices and files." +msgstr "Luettele laitteet ja tiedostot." + +#: commands/lsmmap.c:51 +msgid "List memory map provided by firmware." +msgstr "Luettele mikro-ohjelmiston tarjoama muistikartta." + +#: commands/lspci.c:228 +msgid "List PCI devices." +msgstr "Luettele PCI-laitteet." + +#: commands/memrw.c:31 +msgid "Save read value into variable VARNAME." +msgstr "Tallenna luettu arvo muuttujaan VARNAME." + +#: commands/memrw.c:123 commands/memrw.c:126 commands/memrw.c:129 +#: commands/minicmd.c:362 +msgid "ADDR" +msgstr "OSOITE" + +#: commands/memrw.c:123 +msgid "Read byte from ADDR." +msgstr "Lue byte-data OSOITTEESTA." + +#: commands/memrw.c:126 +msgid "Read word from ADDR." +msgstr "Lue word-data OSOITTEESTA" + +#: commands/memrw.c:129 +msgid "Read dword from ADDR." +msgstr "Lue dword-data OSOITTEESTA." + +#: commands/memrw.c:132 commands/memrw.c:135 commands/memrw.c:138 +msgid "ADDR VALUE [MASK]" +msgstr "OSOITE ARVO [PEITE]" + +#: commands/memrw.c:132 +msgid "Write byte VALUE to ADDR." +msgstr "Kirjoita byte-data ARVO OSOITTEESEEN." + +#: commands/memrw.c:135 +msgid "Write word VALUE to ADDR." +msgstr "Kirjoita word-data ARVO OSOITTEESEEN." + +#: commands/memrw.c:138 +msgid "Write dword VALUE to ADDR." +msgstr "kirjoita dword-data ARVO OSOITTEESEEN." + +#: commands/minicmd.c:356 +msgid "Show this message." +msgstr "Näytä tämä viesti." + +#: commands/minicmd.c:359 commands/probe.c:154 +msgid "[DEVICE]" +msgstr "[LAITE]" + +#: commands/minicmd.c:359 +msgid "Set the root device." +msgstr "Aseta juurilaite." + +#: commands/minicmd.c:362 +msgid "Dump memory." +msgstr "Vedosta muisti." + +#: commands/minicmd.c:365 +msgid "MODULE" +msgstr "MODUULI" + +#: commands/minicmd.c:365 +msgid "Remove a module." +msgstr "Poista moduuli." + +#: commands/minicmd.c:368 +msgid "Show loaded modules." +msgstr "Näytä ladatut moduulit." + +#: commands/minicmd.c:371 +msgid "Exit from GRUB." +msgstr "Poistu GRUB:sta." + +#: commands/minicmd.c:374 +msgid "Clear the screen." +msgstr "Tyhjennä näyttö." + +#: commands/parttool.c:325 +msgid "PARTITION COMMANDS" +msgstr "OSIO KOMENNOT" + +#: commands/password.c:78 +msgid "USER PASSWORD" +msgstr "KÄYTTÄJÄ SALASANA" + +#: commands/password.c:79 +msgid "Set user password (plaintext). Unrecommended and insecure." +msgstr "" +"Aseta käyttäjän salasana (pelkkänä tekstinä). Ei suositella turvattomana." + +#: commands/probe.c:38 +msgid "Set a variable to return value." +msgstr "Aseta muuttuja paluuarvoon." + +#: commands/probe.c:39 +msgid "Determine driver." +msgstr "Määrittele ajuri." + +#: commands/probe.c:40 +msgid "Determine partition map type." +msgstr "Määrittele osiokarttatyyppi." + +#: commands/probe.c:41 +msgid "Determine filesystem type." +msgstr "Määrittele tiedostojärjestelmätyyppi." + +#: commands/probe.c:42 +msgid "Determine filesystem UUID." +msgstr "Määrittele tiedostojärjestelmän UUID." + +#: commands/probe.c:43 +msgid "Determine filesystem label." +msgstr "Määrittele tiedostojärjestelmänimiö." + +#: commands/probe.c:155 +msgid "Retrieve device info." +msgstr "Nouda laitetiedot." + +#: commands/read.c:83 +msgid "[ENVVAR]" +msgstr "[ENVVAR]" + +#: commands/read.c:84 +msgid "Set variable with user input." +msgstr "Aseta muuttuja käyttäjäsyötteellä." + +#: commands/reboot.c:39 +msgid "Reboot the computer." +msgstr "Alkulataa tietokone uudelleen." + +#: commands/search.c:161 +msgid "NAME [VARIABLE]" +msgstr "NIMI [MUUTTUJA]" + +#: commands/search_file.c:5 +msgid "" +"Search devices by file. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Etsi laitteita tiedoston avulla. Jos MUUTTUJA on määritelty, ensimmäinen " +"löydetty laite asetetaan muuttujaan." + +#: commands/search_label.c:5 +msgid "" +"Search devices by label. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Etsi laitteita nimiön avulla. Jos MUUTTUJA on määritelty, ensimmäinen " +"löydetty laite asetetaan muuttujaan." + +#: commands/search_uuid.c:5 +msgid "" +"Search devices by UUID. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Etsi laitteita UUID:n avulla. Jos MUUTTUJA on määritelty, ensimmäinen " +"löydetty laite asetetaan muuttujaan." + +#: commands/sleep.c:30 +msgid "Verbose countdown." +msgstr "Lavea loppulaskenta." + +#: commands/sleep.c:31 +msgid "Interruptible with ESC." +msgstr "Keskeytettävä ESC-painikkeella." + +#: commands/sleep.c:105 +msgid "NUMBER_OF_SECONDS" +msgstr "SEKUNTIEN_MÄÄRÄ" + +#: commands/sleep.c:106 +msgid "Wait for a specified number of seconds." +msgstr "Odota tietty sekuntimäärä." + +#: commands/test.c:424 +msgid "EXPRESSION ]" +msgstr "LAUSEKE ]" + +#: commands/test.c:424 commands/test.c:426 +msgid "Evaluate an expression." +msgstr "Arvioi lauseke." + +#: commands/test.c:426 +msgid "EXPRESSION" +msgstr "LAUSEKE" + +#: commands/true.c:47 +msgid "Do nothing, successfully." +msgstr "Älä tee mitään, onnistuneesti." + +#: commands/true.c:50 +msgid "Do nothing, unsuccessfully." +msgstr "Älä tee mitään, epäonnistuneesti." + +#: commands/usbtest.c:208 +msgid "Test USB support." +msgstr "Koesta USB-tuki." + +#: commands/videotest.c:180 +msgid "Test video subsystem." +msgstr "Koesta video-alijärjestelmä." + +#: commands/xnu_uuid.c:92 +msgid "GRUBUUID [VARNAME]" +msgstr "GRUBUUID [MUUTTUJANIMI]" + +#: commands/xnu_uuid.c:93 +msgid "Transform 64-bit UUID to format suitable for XNU." +msgstr "Muunna 64-bittiset UUID:t XNU:lle sopivaan muotoon." + +#: disk/loopback.c:40 +msgid "Delete the loopback device entry." +msgstr "Poista silmukkalaitesyöttö." + +#: disk/loopback.c:41 +msgid "Simulate a hard drive with partitions." +msgstr "Simuloi kiintolevyä osioilla." + +#: disk/loopback.c:249 +msgid "[-d|-p] DEVICENAME FILE." +msgstr "[-d|-p] LAITENIMI TIEDOSTO." + +#: disk/loopback.c:250 +msgid "Make a device of a file." +msgstr "Tee tiedostosta laite." + +#: hello/hello.c:43 +msgid "Say \"Hello World\"." +msgstr "Sano ”Hei Maailma”." + +#: lib/arg.c:34 +msgid "Display this help and exit." +msgstr "Näytä tämä opaste ja poistu." + +#: lib/arg.c:36 +msgid "Display the usage of this command and exit." +msgstr "Näytä tämän komennon käyttöopaste ja poistu." + +#: loader/efi/appleloader.c:325 +msgid "Boot legacy system." +msgstr "Alkulataa perinnejärjestelmä." + +#: loader/efi/chainloader.c:340 loader/i386/pc/chainloader.c:166 +msgid "Load another boot loader." +msgstr "Lataa toinen alkulatauslataaja." + +#: loader/i386/bsd.c:65 +msgid "Display output on all consoles." +msgstr "Näytä tuloste kaikissa konsoli-ikkunoissa." + +#: loader/i386/bsd.c:66 +msgid "Use serial console." +msgstr "Käytä sarjakonsoli-ikkunaa." + +#: loader/i386/bsd.c:67 loader/i386/bsd.c:93 loader/i386/bsd.c:114 +msgid "Ask for file name to reboot from." +msgstr "Kysy tiedostonimeä, josta alkuladataan." + +#: loader/i386/bsd.c:68 +msgid "Use CDROM as root." +msgstr "Käytä CDROM:ia juurena." + +#: loader/i386/bsd.c:69 +msgid "Invoke user configuration routing." +msgstr "Kutsu esiin käyttäjäasetusreititys." + +#: loader/i386/bsd.c:70 loader/i386/bsd.c:97 loader/i386/bsd.c:117 +msgid "Enter in KDB on boot." +msgstr "Siirry KDB:hen alkulautauksessa." + +#: loader/i386/bsd.c:71 +msgid "Use GDB remote debugger instead of DDB." +msgstr "Käytä GDB-etävianjäljitintä eikä DDB:tä." + +#: loader/i386/bsd.c:72 +msgid "Disable all boot output." +msgstr "Ota pois käytöstä kaikki alkulataustulosteet." + +#: loader/i386/bsd.c:74 +msgid "Wait for keypress after every line of output." +msgstr "Odota näppäimen painallusta jokaisen tulosterivin jälkeen." + +#: loader/i386/bsd.c:76 +msgid "Use compiled-in rootdev." +msgstr "Käytä sisäänkäännettyä juurilaitetta." + +#: loader/i386/bsd.c:77 loader/i386/bsd.c:96 loader/i386/bsd.c:120 +msgid "Boot into single mode." +msgstr "Alkulataa yhteen tilaan." + +#: loader/i386/bsd.c:78 loader/i386/bsd.c:121 +msgid "Boot with verbose messages." +msgstr "Alkulataa laveilla viesteillä." + +#: loader/i386/bsd.c:94 loader/i386/bsd.c:115 +msgid "Don't reboot, just halt." +msgstr "Älä alkulataa uudelleen, vain pysähdy." + +#: loader/i386/bsd.c:95 loader/i386/bsd.c:116 +msgid "Change configured devices." +msgstr "Vaihda asetettuja laitteita." + +#: loader/i386/bsd.c:98 loader/i386/bsd.c:124 +msgid "Set root device." +msgstr "Aseta juurilaite." + +#: loader/i386/bsd.c:112 +msgid "Disable SMP." +msgstr "Ota pois käytöstä SMP." + +#: loader/i386/bsd.c:113 +msgid "Disable ACPI." +msgstr "Ota pois käytöstä ACPI." + +#: loader/i386/bsd.c:119 +msgid "Don't display boot diagnostic messages." +msgstr "Älä näytä alkulatauksen diagnostiikkaviestejä." + +#: loader/i386/bsd.c:122 +msgid "Boot with debug messages." +msgstr "Alkulataa vianjäljitysviesteillä." + +#: loader/i386/bsd.c:123 +msgid "Supress normal output (warnings remain)." +msgstr "Vaienna normaalituloste (varoitukset jäävät)." + +#: loader/i386/bsd.c:124 +msgid "DEVICE" +msgstr "LAITE" + +#: loader/i386/bsd.c:1287 +msgid "Load kernel of FreeBSD." +msgstr "Lataa FreeBSD-käyttöjärjestelmäydin." + +#: loader/i386/bsd.c:1291 +msgid "Load kernel of OpenBSD." +msgstr "Lataa OpenBSD-käyttöjärjestelmäydin." + +#: loader/i386/bsd.c:1295 +msgid "Load kernel of NetBSD." +msgstr "Lataa NetBSD-käyttöjärjestelmäydin." + +#: loader/i386/bsd.c:1299 +msgid "Load FreeBSD env." +msgstr "Lataa FreeBSD-ymp." + +#: loader/i386/bsd.c:1302 +msgid "Load FreeBSD kernel module." +msgstr "Lataa FreeBSD-ydinmoduuli." + +#: loader/i386/bsd.c:1305 +msgid "Load FreeBSD kernel module (ELF)." +msgstr "Lataa FreeBSD-ydinmoduuli (ELF)." + +#: loader/i386/efi/linux.c:1011 loader/i386/ieee1275/linux.c:301 +#: loader/i386/linux.c:1012 loader/i386/pc/linux.c:399 +#: loader/powerpc/ieee1275/linux.c:353 loader/sparc64/ieee1275/linux.c:519 +msgid "Load Linux." +msgstr "Lataa Linux." + +#: loader/i386/efi/linux.c:1013 loader/i386/ieee1275/linux.c:303 +#: loader/i386/linux.c:1014 loader/i386/pc/linux.c:402 +#: loader/powerpc/ieee1275/linux.c:355 loader/sparc64/ieee1275/linux.c:521 +msgid "Load initrd." +msgstr "Lataa initrd-tiedosto." + +#: loader/i386/xnu.c:1032 +msgid "Load device-properties dump." +msgstr "Lataa laiteominaisuudet-vedos." + +#: loader/multiboot.c:337 +msgid "Load a multiboot 2 kernel." +msgstr "Lataa monialkulataus 2 -ydin." + +#: loader/multiboot.c:340 +#, fuzzy +msgid "Load a multiboot 2 module." +msgstr "Lataa monialkulatausmoduuli." + +#: loader/multiboot.c:343 +msgid "Load a multiboot kernel." +msgstr "Lataa monialkulatausydin." + +#: loader/multiboot.c:346 +msgid "Load a multiboot module." +msgstr "Lataa monialkulatausmoduuli." + +#: loader/xnu.c:1428 +msgid "Load XNU image." +msgstr "Lataa XNU-vedos." + +#: loader/xnu.c:1430 +msgid "Load 64-bit XNU image." +msgstr "Lataa 64-bittinen XNU-vedos." + +#: loader/xnu.c:1432 +msgid "Load XNU extension package." +msgstr "Lataa XNU-laajennuspakkaus." + +#: loader/xnu.c:1434 +msgid "Load XNU extension." +msgstr "Lataa XNU-laajennus." + +#: loader/xnu.c:1436 +msgid "DIRECTORY [OSBundleRequired]" +msgstr "HAKEMISTO [OSBundleRequired]" + +#: loader/xnu.c:1437 +msgid "Load XNU extension directory." +msgstr "Lataa XNU-laajennushakemisto." + +#: loader/xnu.c:1444 +msgid "Load a splash image for XNU." +msgstr "Lataa tervetulokuva XNU:lle." + +#: loader/xnu.c:1449 +msgid "Load XNU hibernate image." +msgstr "Lataa XNU-lepotilavedos." + +#: normal/auth.c:217 +msgid "Enter username: " +msgstr "Kirjoita käyttäjänimi: " + +#: normal/auth.c:222 +msgid "Enter password: " +msgstr "Kirjoita salasana: " + +# edustavärin ja taustavärin välissä kauttaviiva väriparissa +#: normal/color.c:80 +#, c-format +msgid "Warning: syntax error (missing slash) in `%s'\n" +msgstr "Varoitus: syntaksivirhe (puuttuu /-merkki) värinimiparissa ”%s”\n" + +#: normal/color.c:89 +#, c-format +msgid "Warning: invalid foreground color `%s'\n" +msgstr "Varoitus: virheellinen edustaväri ”%s”\n" + +#: normal/color.c:95 +#, c-format +msgid "Warning: invalid background color `%s'\n" +msgstr "Varoitus: virheellinen taustaväri ”%s”\n" + +#: normal/dyncmd.c:144 +msgid "not loaded" +msgstr "ei ladattu" + +#: normal/main.c:415 +#, c-format +msgid "GNU GRUB version %s" +msgstr "GNU GRUB -versio %s" + +#: normal/main.c:552 +#, c-format +msgid "" +"Minimal BASH-like line editing is supported. For the first word, TAB lists " +"possible command completions. Anywhere else TAB lists possible device or " +"file completions. %s" +msgstr "" +"Minimaalista BASH-kaltaista rivimuokkausta tuetaan. Hae ensimmäiselle " +"sanalle SARKAIN-painikkeella luettelot mahdollisista komentojen " +"täydennyksistä. Kaikkialla muualla SARKAIN-painike luettelee mahdolliset " +"laite- tai tiedostotäydennykset. %s" + +#: normal/main.c:555 +msgid "ESC at any time exits." +msgstr "Poistuu aina ESC-painikkeella." + +#: normal/main.c:670 +msgid "Enter normal mode." +msgstr "" + +#: normal/main.c:672 +msgid "Exit from normal mode." +msgstr "" + +#: normal/menu_entry.c:1061 +msgid "Possible commands are:" +msgstr "Mahdollisia komentoja ovat:" + +#: normal/menu_entry.c:1065 +msgid "Possible devices are:" +msgstr "Mahdollisia laitteita ovat:" + +#: normal/menu_entry.c:1069 +msgid "Possible files are:" +msgstr "Mahdollisia tiedostoja ovat:" + +#: normal/menu_entry.c:1073 +msgid "Possible partitions are:" +msgstr "Mahdollisia osioita ovat:" + +#: normal/menu_entry.c:1077 +msgid "Possible arguments are:" +msgstr "Mahdollisia argumentteja ovat:" + +#: normal/menu_entry.c:1081 +msgid "Possible things are:" +msgstr "Mahdollisia asioita ovat:" + +#: normal/menu_entry.c:1185 +msgid "Booting a command list" +msgstr "Alkuladataan komentoluettelo" + +#: normal/menu_entry.c:1398 +msgid "Press any key to continue..." +msgstr "Jatka painamalla mitä tahansa painiketta..." + +#: normal/menu_text.c:180 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"F1 to boot, F2=Ctrl-a, F3=Ctrl-e, F4 for a command-line or ESC to discard " +"edits and return to the GRUB menu." +msgstr "" +"Minimaalista Emacs-kaltaista näyttömuokkausta tuetaan. SARKAIN-painike " +"luettelee täydennykset. Alkulataa näppäimillä Ctrl-x, komentoriville " +"näppäimillä Ctrl-c tai palaa valikkoon ESC-painikkeella." + +#: normal/menu_text.c:185 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"Ctrl-x to boot, Ctrl-c for a command-line or ESC to discard edits and return " +"to the GRUB menu." +msgstr "" +"Minimaalista Emacs-kaltaista näyttömuokkausta tuetaan. SARKAIN-painike " +"luettelee täydennykset. Alkulataa näppäimillä Ctrl-x, komentoriville " +"näppäimillä Ctrl-c tai palaa valikkoon ESC-painikkeella." + +#: normal/menu_text.c:193 +#, c-format +msgid "Use the %C and %C keys to select which entry is highlighted.\n" +msgstr "Käytä näppäimiä %C ja %C valitsemaan korostettu valikkorivi.\n" + +#: normal/menu_text.c:210 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line. ESC to return previous menu.\n" +msgstr "" +"Paina enter-painiketta valitun käyttöjärjestelmä alkulataamiseksi, ”e” " +"komentojen muokkaukseen ennen alkulatausta ja ”c” komentoriville. Palaa " +"edelliseen valikkoon ESC-painikkeella.\n" + +#: normal/menu_text.c:218 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line.\n" +msgstr "" +"Paina enter-painiketta valitun käyttöjärjestelmä alkulataamiseksi, ”e” " +"komentojen muokkaukseen ennen alkulatausta ja ”c” komentoriville.\n" + +#: normal/menu_text.c:370 +#, c-format +msgid "The highlighted entry will be executed automatically in %ds." +msgstr "" +"Korostettu valikkorivi suoritetaan automaattisesti %d sekunnin kuluttua." + +#: normal/misc.c:41 +#, c-format +msgid "Partition %s:" +msgstr "Osio %s:" + +#: normal/misc.c:46 +#, c-format +msgid "Device %s:" +msgstr "Laite %s:" + +#: normal/misc.c:52 +msgid "Filesystem cannot be accessed" +msgstr "Tiedostojärjestelmään ei päästä" + +#: normal/misc.c:63 +#, c-format +msgid "Filesystem type %s" +msgstr "Tiedostojärjestelmätyyppi %s" + +#: normal/misc.c:73 +#, c-format +msgid "- Label \"%s\"" +msgstr "- Nimiö ”%s”" + +#: normal/misc.c:88 +#, c-format +msgid "- Last modification time %d-%02d-%02d %02d:%02d:%02d %s" +msgstr "- Viimeinen muokkausaika %3$d.%2$d.%1$d %4$d:%5$d:%6$d %7$s" + +#: normal/misc.c:111 +msgid "Unknown filesystem" +msgstr "Tuntematon tiedostojärjestelmä" + +#: normal/misc.c:113 +msgid "Partition table" +msgstr "Osiotaulu" + +#: term/serial.c:46 +msgid "Set the serial unit." +msgstr "Aseta sarjayksikkö." + +#: term/serial.c:47 +msgid "Set the serial port address." +msgstr "Aseta sarjaporttiosoite." + +#: term/serial.c:48 +msgid "Set the serial port speed." +msgstr "Aseta sarjaporttinopeus." + +#: term/serial.c:49 +msgid "Set the serial port word length." +msgstr "Aseta sarjaportin sanapituus." + +#: term/serial.c:50 +msgid "Set the serial port parity." +msgstr "Aseta sarjaportin pariteetti." + +#: term/serial.c:51 +msgid "Set the serial port stop bits." +msgstr "Aseta sarjaportin stop-bitit." + +#: term/serial.c:619 +#, fuzzy +msgid "[OPTIONS...]" +msgstr "[VALITSIMET] LEVY" + +#: term/serial.c:620 +msgid "Configure serial port." +msgstr "" + +#: util/grub-mkimage.c:440 +msgid "the core image is too small" +msgstr "ydinvedos on liian pieni" + +#: util/grub-mkimage.c:451 +msgid "cannot compress the kernel image" +msgstr "ei voi tiivistää käyttöjärjestelmäytimen vedosta" + +#: util/grub-mkimage.c:548 +msgid "prefix is too long" +msgstr "etuliite on liian pitkä" + +#: util/grub-mkimage.c:672 +#, c-format +msgid "core image is too big (%p > %p)" +msgstr "ydinvedos on liian iso (%p > %p)" + +#: util/grub-mkimage.c:678 +msgid "the core image is too big" +msgstr "ydinvedos on liian iso" + +#: util/grub-mkimage.c:683 +#, c-format +msgid "diskboot.img size must be %u bytes" +msgstr "diskboot.img:n koon on oltava %u tavua" + +#: util/grub-mkimage.c:1168 util/i386/pc/grub-setup.c:619 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "Lisätietoja komennolla ”%s --help”.\n" + +#: util/grub-mkimage.c:1187 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... [MODULES]\n" +"\n" +"Make a bootable image of GRUB.\n" +"\n" +" -d, --directory=DIR use images and modules under DIR [default=%s/" +"@platform@]\n" +" -p, --prefix=DIR set grub_prefix directory [default=%s]\n" +" -m, --memdisk=FILE embed FILE as a memdisk image\n" +" -f, --font=FILE embed FILE as a boot font\n" +" -c, --config=FILE embed FILE as boot config\n" +" -n, --note add NOTE segment for CHRP Open Firmware\n" +" -o, --output=FILE output a generated image to FILE [default=stdout]\n" +" -O, --format=FORMAT generate an image in format\n" +" available formats: %s\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 "" +"Käyttö: %s [VALITSIN]... [MODUULIT]\n" +"\n" +"Tee alkuladattava GRUB-vedos.\n" +"\n" +" -d, --directory=DIR käytä vedoksia ja moduuleja hakemiston DIR alla " +"[oletus=%s]\n" +" -p, --prefix=DIR aseta grub_prefix-hakemisto [oletus=%s]\n" +" -m, --memdisk=TIEDOSTO upota TIEDOSTO memdisk-vedoksena\n" +" -f, --font=TIEDOSTO upota TIEDOSTO alkulatauskirjasimena\n" +" -c, --config=TIEDOSTO upota TIEDOSTO alkulatausasetuksena\n" +" -o, --output=TIEDOSTO tulosta tuotettu vedos TIEDOSTOon " +"[oletus=vakiotuloste]\n" +" -O, --format=MUOTO tuota vedos muodossa [oletus=" + +# avattava kohden on parametrinä saatava tuloste(tiedosto) +#: util/grub-mkimage.c:1333 +#, c-format +msgid "cannot open %s" +msgstr "ei voi avata tulostekohdetta %s" + +# Tämä oli ilmeisesti merkitty fuzzyksi, koska sektoritasattu-sanasta puuttui väliviiva :( +#: util/i386/pc/grub-setup.c:164 +msgid "the first sector of the core file is not sector-aligned" +msgstr "ydintiedoston ensimmäinen sektori ei ole sektoritasattu" + +#: util/i386/pc/grub-setup.c:178 +msgid "non-sector-aligned data is found in the core file" +msgstr "ei-sektoritasattua dataa löytyi ydintiedostosta" + +#: util/i386/pc/grub-setup.c:192 +msgid "the sectors of the core file are too fragmented" +msgstr "ydintiedoston sektorit ovat liian hajallaan" + +# paikankorvaajasta tulee "boot_path" +#: util/i386/pc/grub-setup.c:203 +#, c-format +msgid "the size of `%s' is not %u" +msgstr "alkulatauspolun ”%s” koko ei ole %u" + +# paikankorvaajasta tulee "core_path" +#: util/i386/pc/grub-setup.c:220 +#, c-format +msgid "the size of `%s' is too small" +msgstr "ydinpolun ”%s” koko on liian pieni" + +# paikankorvaajasta tulee "core_path" +#: util/i386/pc/grub-setup.c:222 +#, c-format +msgid "the size of `%s' is too large" +msgstr "ydinpolun ”%s” koko on liian suuri" + +# dest_dev->disk->name eli kohdelevyaseman nimi +#: util/i386/pc/grub-setup.c:261 +#, c-format +msgid "unable to identify a filesystem in %s; safety check can't be performed" +msgstr "" +"ei kyetä tunnistamaan tiedostojärjestelmää levyasemassa %s; turvatarkistusta " +"ei voitu suorittaa" + +#: 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 vaikuttaa sisältävän %s-tiedostojärjestelmän, jonka tiedetään varaavan " +"tilaa DOS-tyyliselle alkulataukselle. GRUB-ohjelman asentaminen sinne voi " +"aiheuttaa TIEDOSTOJÄRJESTELMÄN TUHOUTUMISEN, jos grub-setup korvaa arvokasta " +"tietoa (valitsin --skip-fs-probe ottaa pois käytöstä tämän tarkistuksen, " +"käytä sitä omalla vastuullasi)" + +#: util/i386/pc/grub-setup.c:339 util/i386/pc/grub-setup.c:366 +msgid "" +"Attempting to install GRUB to a partitionless disk. This is a BAD idea." +msgstr "" +"Yritetään asentaa GRUB osioimattomalle levyasemalle. Tämä on HUONO ajatus." + +#: util/i386/pc/grub-setup.c:345 +msgid "" +"Attempting to install GRUB to a partition instead of the MBR. This is a BAD " +"idea." +msgstr "Yritetään asentaa GRUB osioon eikä MBR:ään. Tämä on HUONO ajatus." + +#: util/i386/pc/grub-setup.c:375 +msgid "No DOS-style partitions found" +msgstr "DOS-tyylisiä osioita ei löytynyt" + +#: util/i386/pc/grub-setup.c:380 +msgid "" +"This msdos-style partition label has no post-MBR gap; embedding won't be " +"possible!" +msgstr "" +"Tässä msdos-tyylisessä osionimiössä ei ole MBR:n jälkeistä aukkoa; " +"upottaminen ei ole mahdollista!" + +#: util/i386/pc/grub-setup.c:382 +msgid "" +"This GPT partition label has no BIOS Boot Partition; embedding won't be " +"possible!" +msgstr "" +"Tässä GPT-osionimiössä ei ole BIOS alkulatausosiota; upottaminen ei ole " +"mahdollista!" + +#: util/i386/pc/grub-setup.c:389 +msgid "Your core.img is unusually large. It won't fit in the embedding area." +msgstr "Tiedostosi core.img on epätavallisen iso. Se ei sovi upotusalueelle." + +#: util/i386/pc/grub-setup.c:391 +msgid "Your embedding area is unusually small. core.img won't fit in it." +msgstr "" +"Upotettava alueesi on epätavallisen pieni. Tiedosto core.img ei mahdu " +"siihen." + +#: util/i386/pc/grub-setup.c:436 +msgid "" +"embedding is not possible, but this is required when the root device is on a " +"RAID array or LVM volume" +msgstr "" +"upottaminen ei ole mahdollista, mutta sitä vaaditaan kun juurilaite on RAID-" +"taulukko tai LVM-taltio" + +#: util/i386/pc/grub-setup.c:439 +#, fuzzy +msgid "" +"Embedding is not possible. GRUB can only be installed in this setup by " +"using blocklists. However, blocklists are UNRELIABLE and their use is " +"discouraged." +msgstr "" +"Upottaminen ei ole mahdollista. GRUB voidaan asentaa tällä asetuksella vain " +"käyttäen lohkoluetteloja. Lohkoluettelot ovat kuitenkin EPÄLUOTETTAVIA ja " +"niiden käyttöä ei suositella." + +#: util/i386/pc/grub-setup.c:443 +msgid "if you really want blocklists, use --force" +msgstr "jos todella haluat käyttää lohkoluetteloja, käytä valitsinta --force." + +#: util/i386/pc/grub-setup.c:462 +#, c-format +msgid "attempting to read the core image `%s' from GRUB" +msgstr "yritetään lukea ydinvedosta ”%s” GRUB:sta" + +#: util/i386/pc/grub-setup.c:463 +#, c-format +msgid "attempting to read the core image `%s' from GRUB again" +msgstr "yritetään lukea ydinvedosta ”%s” GRUB:sta uudelleen" + +# Ydinvedoksen luku GRUBista epäonnistui maksimiyrityskertojen määrän +#: util/i386/pc/grub-setup.c:530 +#, c-format +msgid "cannot read `%s' correctly" +msgstr "ei voida lukea ydinvedosta ”%s” oikein" + +#: util/i386/pc/grub-setup.c:543 +msgid "no terminator in the core image" +msgstr "ei päätöslohkoa ydinvedoksessa" + +#: util/i386/pc/grub-setup.c:554 +msgid "failed to read the first sector of the core image" +msgstr "ydinvedoksen ensimmäisen sektorin lukeminen epäonnistui" + +#: util/i386/pc/grub-setup.c:560 +msgid "failed to read the rest sectors of the core image" +msgstr "ydinvedoksen loppujen sektoreiden lukeminen epäonnistui" + +# avattava kohde on "core_path" +#: util/i386/pc/grub-setup.c:579 +#, c-format +msgid "cannot open `%s'" +msgstr "ei voi avata ydintä ”%s”" + +#: util/i386/pc/grub-setup.c:621 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... DEVICE\n" +"\n" +"Set up images to boot from DEVICE.\n" +"DEVICE must be a GRUB device (e.g. `(hd0,1)').\n" +"\n" +"You should not normally run %s directly. Use grub-install instead.\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 "" +"Käyttö: %s [VALITSIN]... LAITE\n" +"\n" +"Aseta alkulatausvedokset laitteesta LAITE.\n" +"LAITE on GRUB-laite (esim. ”(hd0,1)”).\n" +"\n" +" -b, --boot-image=FILE käytä tiedostoa FILE alkulatausvedoksena [oletus=" +"%s]\n" +" -c, --core-image=FILE käytä tiedostoa FILE ydinvedoksena [oletus=%s]\n" +" -d, --directory=DIR käytä GRUB-tiedostoja hakemistossa DIR [oletus=" +"%s]\n" +" -m, --device-map=FILE käytä tiedostoa FILE laitekarttana [oletus=%s]\n" +" -r, --root-device=DEV käytä DEV root-laitteena [oletus=arvattu]\n" +" -f, --force asenna vielä silloin kun on kohdattu pulmia\n" +" -s, --skip-fs-probe älä koesta tiedostojärjestelmiä laitteessa LAITE\n" +" -h, --help näytä tämä sanoma ja poistu\n" +" -V, --version tulosta versiotiedot ja poistu\n" +" -v, --verbose tulosta sanomat laveasti\n" +"\n" +"Ilmoita virheistä (englanniksi) osoitteeseen <%s>.\n" +"Ilmoita käännösvirheistä osoitteeseen .\n" + +#: util/i386/pc/grub-setup.c:753 +#, c-format +msgid "No device is specified.\n" +msgstr "Laitetta ei ole annettu.\n" + +#: util/i386/pc/grub-setup.c:759 +#, c-format +msgid "Unknown extra argument `%s'.\n" +msgstr "Tuntematon ylimääräinen argumentti ”%s”.\n" + +#: util/i386/pc/grub-setup.c:776 +#, c-format +msgid "Invalid device `%s'.\n" +msgstr "Virheellinen laite ”%s”.\n" + +#: util/i386/pc/grub-setup.c:789 +#, c-format +msgid "invalid root device `%s'" +msgstr "virheellinen juurilaite ”%s”." + +#: util/i386/pc/grub-setup.c:802 +msgid "cannot guess the root device. Specify the option `--root-device'" +msgstr "ei kyetä arvaamaan juurilaitetta. Anna valitsin ”--root-device”." + +#~ msgid "[class [handler]]" +#~ msgstr "[luokka [käsittelijä]]" + +#~ msgid "List or select a handler." +#~ msgstr "Luettele tai valitse käsittelijä." + +#~ msgid "Load XNU ramdisk. It will be seen as md0." +#~ msgstr "Lataa XNU-ramlevy. Se nähdään nimellä md0." + +#~ msgid "no DOS-style partitions found" +#~ msgstr "ei löytynyt DOS-tyylisiä osioita" + +#~ msgid "%s, with kFreeBSD %s" +#~ msgstr "%s, jakeluversiolla kFreeBSD %s" + +#~ msgid "Loading kernel of FreeBSD %s ..." +#~ msgstr "Ladataan FreeBSD %s käyttöjärjestelmäydin ..." + +#~ msgid "%s, with Linux %s (recovery mode)" +#~ msgstr "%s, jakeluversiolla Linux %s (toipumistila)" + +#~ msgid "%s, with Linux %s" +#~ msgstr "%s, jakeluversiolla Linux %s" + +#~ msgid "Loading Linux %s ..." +#~ msgstr "Ladataan Linux %s käyttöjärjestelmäydin ..." + +#~ msgid "Loading initial ramdisk ..." +#~ msgstr "Ladataa alustava ram-levy ..." + +#~ msgid "A boot catalog exists and appears corrupted.\n" +#~ msgstr "Alkulatausluettelo on olemassa ja vaikuttaa rikkinäiseltä.\n" + +#~ msgid "Please check the following file: %s.\n" +#~ msgstr "Tarkista seuraava tiedosto: %s.\n" + +#~ msgid "This file must be removed before a bootable CD can be done.\n" +#~ msgstr "" +#~ "Tämä tiedosto on poistettava ennen kuin käynnistys-CD voidaan tehdä.\n" + +#~ msgid "Error creating boot catalog (%s)" +#~ msgstr "Virhe luotaessa alkulatausluetteloa (%s)" + +#~ msgid "Error writing to boot catalog (%s)" +#~ msgstr "Virhe kirjoitettaessa alkulatausluetteloa (%s)" + +#~ msgid "Boot catalog cannot be found!\n" +#~ msgstr "Alkulatausluetteloa ei voitu löytää!\n" + +#~ msgid "Boot image cannot be found!\n" +#~ msgstr "Alkulatausvedosta ei löytynyt!\n" + +#~ msgid "" +#~ "\n" +#~ "Size of boot image is %d sectors" +#~ msgstr "" +#~ "\n" +#~ "Alkulatausvedoksen koko on %d sektoria" + +#~ msgid "No emulation\n" +#~ msgstr "Ei emulointia\n" + +#~ msgid "Emulating a 1.44 meg floppy\n" +#~ msgstr "Emuloidaan 1,44 megatavun levykettä\n" + +#~ msgid "Emulating a 2.88 meg floppy\n" +#~ msgstr "Emuloidaan 2,88 megatavun levykettä\n" + +#~ msgid "Emulating a 1.2 meg floppy\n" +#~ msgstr "Emuloidaan 1,2 megatavun levykettä\n" + +#~ msgid "" +#~ "\n" +#~ "Error - boot image is not the an allowable size.\n" +#~ msgstr "" +#~ "\n" +#~ "Virhe - alkulatausvedos ei ole sallitun kokoinen.\n" + +#~ msgid "Error opening boot catalog for update" +#~ msgstr "Virhe avattaessa alkulatausluetteloa päivitystä varten" + +#~ msgid "Error writing to boot catalog" +#~ msgstr "Virhe kirjoitettaessa alkulatausluetteloa" + +#~ msgid "Error opening boot image file '%s' for update" +#~ msgstr "Virhe avattaessa alkulatausvedostiedostoa ”%s” päivitystä varten" + +#~ msgid "Odd alignment at non-end-of-file in boot image '%s'" +#~ msgstr "Outo tasaus ei-tiedoston-lopussa alkulatausvedoksessa ”%s”" + +#~ msgid "Boot image file '%s' changed unexpectedly" +#~ msgstr "Alkulatausvedostiedosto ”%s” muuttunut odottamattomasti" + +#~ msgid "Error writing to boot image (%s)" +#~ msgstr "Virhe kirjoitettaessa alkulatausvedosta (%s)" + +#~ msgid "Unable to generate sane path tables - too many directories (%d)\n" +#~ msgstr "" +#~ "Ei voi tuottaa järkeviä polkutauluja - liian monia hakemistoja (%d)\n" + +#~ msgid "Entry %d not in path tables\n" +#~ msgstr "Alkio %d ei ole polkutauluissa\n" + +#~ msgid "Fatal goof - directory has amnesia\n" +#~ msgstr "Vakava moka - hakemistolla on muistinmenetys\n" + +#~ msgid "Joliet path table lengths do not match %d %d\n" +#~ msgstr "Joliet-polkutaulupituudet eivät täsmää %d %d\n" + +#~ msgid "Unable to locate relocated directory\n" +#~ msgstr "Ei kyetä paikallistamaan uudelleensijoitushakemistoa\n" + +#~ msgid "Fatal goof - unable to find directory location\n" +#~ msgstr "Vakava moka - ei kyetä löytämään hakemistosijaintia\n" + +#~ msgid "Unexpected joliet directory length %d %d %s\n" +#~ msgstr "Odottamaton joliet-hakemistopituus %d %d %s\n" + +#~ msgid "Process all files (don't skip backup files)" +#~ msgstr "Käsittele kaikki tiedostot (älä jätä varmuuskopiotiedostoja väliin)" --- grub2-1.98+20100804.orig/po/id.po +++ grub2-1.98+20100804/po/id.po @@ -0,0 +1,1951 @@ +# Pesan Bahasa Indonesia untuk grub. +# Copyright (C) 2009, 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the grub package. +# Arif E. Nugroho , 2009, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub 1.97+20100124\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-06-19 01:35+0100\n" +"PO-Revision-Date: 2010-01-25 16:30+0700\n" +"Last-Translator: Arif E. Nugroho \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#: commands/acpi.c:40 +msgid "Don't load host tables specified by comma-separated list." +msgstr "" +"Jangan muat tabel komputer yang dispesifikasikan oleh daftar yang dipisahkan " +"dengan koma." + +#: commands/acpi.c:43 +msgid "Load only tables specified by comma-separated list." +msgstr "" +"Hanya muat tabel yang dispesifikasikan oleh daftar yang dipisahkan dengan " +"koma." + +#: commands/acpi.c:44 +msgid "Expose v1 tables." +msgstr "Tampilkan tabel v1." + +#: commands/acpi.c:45 +msgid "Expose v2 and v3 tables." +msgstr "Tampilkan tabel v2 dan v3." + +#: commands/acpi.c:46 +msgid "Set OEMID of RSDP, XSDT and RSDT." +msgstr "Set OEMID dari RSDP, XSDT dan RSDT." + +#: commands/acpi.c:48 +msgid "Set OEMTABLE ID of RSDP, XSDT and RSDT." +msgstr "Set OEMTABLE ID dari RSDP, XSDT dan RSDT." + +#: commands/acpi.c:50 +msgid "Set OEMTABLE revision of RSDP, XSDT and RSDT." +msgstr "Set revisi OEMTABLE dari RSDP, XSDT dan RSDT." + +#: commands/acpi.c:52 +msgid "Set creator field of RSDP, XSDT and RSDT." +msgstr "Set bagian pembuat dari RSDP, XSDT dan RSDT." + +#: commands/acpi.c:54 +msgid "Set creator revision of RSDP, XSDT and RSDT." +msgstr "Set revisi pembuat dari RSDP, XSDT dan RSDT." + +#: commands/acpi.c:55 +msgid "" +"Don't update EBDA. May fix failures or hangs on some. BIOSes but makes it " +"ineffective with OS not receiving RSDP from GRUB." +msgstr "" +"Jangan perbarui EBDA. Mungkin memperbaiki kegagalan atau berhenti di " +"beberapa BIOS tetapi membuat itu tidak efektif dengan OS mendapatkan RSDP " +"dari GRUB." + +#: commands/acpi.c:763 +msgid "" +"[-1|-2] [--exclude=TABLE1,TABLE2|--load-only=table1,table2] FILE1 [FILE2] " +"[...]" +msgstr "" +"[-1|-2] [--exclude=TABEL1,TABEL2|--load-only=tabel1,tabel2] BERKAS1 " +"[BERKAS2] [...]" + +#: commands/acpi.c:766 +msgid "Load host ACPI tables and tables specified by arguments." +msgstr "Muat tabel ACPI komputer dan tabel yang dispesifikasikan oleh argumen." + +#: commands/blocklist.c:113 commands/cat.c:82 commands/configfile.c:57 +#: commands/configfile.c:60 commands/configfile.c:65 commands/crc.c:64 +#: commands/minicmd.c:353 loader/i386/bsd.c:1287 loader/i386/bsd.c:1291 +#: loader/i386/bsd.c:1295 +msgid "FILE" +msgstr "BERKAS" + +#: commands/blocklist.c:113 +msgid "Print a block list." +msgstr "Tampilkan daftar blok." + +#: commands/boot.c:190 +msgid "Boot an operating system." +msgstr "Boot sistem operasi." + +#: commands/cat.c:82 commands/minicmd.c:353 +msgid "Show the contents of a file." +msgstr "Tampilkan isi dari berkas." + +#: commands/cmp.c:113 +msgid "FILE1 FILE2" +msgstr "BERKAS1 BERKAS2" + +#: commands/cmp.c:113 +msgid "Compare two files." +msgstr "Bandingkan dua berkas." + +#: commands/configfile.c:57 +msgid "Load another config file." +msgstr "Muat berkas konfigurasi lain." + +#: commands/configfile.c:61 commands/configfile.c:66 +msgid "Load another config file without changing context." +msgstr "Muat berkas konfigurasi lain tanpa mengubah konteks." + +#: commands/crc.c:65 +msgid "Calculate the crc32 checksum of a file." +msgstr "Hitung 'checksum' crc32 dari berkas." + +#: commands/date.c:139 +msgid "[[year-]month-day] [hour:minute[:second]]" +msgstr "[[tahun-]bulan-hari] [jam:menit[:detik]]" + +#: commands/date.c:140 +msgid "Command to display/set current datetime." +msgstr "Perintah untuk menampilkan/menset tanggal dan waktu saat ini." + +#: commands/echo.c:27 +msgid "Do not output the trailing newline." +msgstr "Jangan keluarkan akhiran baris baru." + +#: commands/echo.c:28 +msgid "Enable interpretation of backslash escapes." +msgstr "Aktifkan interpretasi 'escape backslash'." + +#: commands/echo.c:117 +msgid "[-e|-n] STRING" +msgstr "[-e|-n] KATA-KATA" + +#: commands/echo.c:117 +msgid "Display a line of text." +msgstr "Tampilkan baris dari teks." + +#: commands/efi/fixvideo.c:103 +msgid "Fix video problem." +msgstr "Perbaiki masalah video." + +#: commands/efi/loadbios.c:207 +msgid "Fake BIOS." +msgstr "Palsukan BIOS." + +#: commands/efi/loadbios.c:211 +msgid "Load BIOS dump." +msgstr "Muat BIOS 'dump'." + +#: commands/gptsync.c:244 +msgid "DEVICE [PARTITION[+/-[TYPE]]] ..." +msgstr "PERANGKAT [PARTISI[+/-[TIPE]]] ..." + +#: commands/gptsync.c:245 +#, fuzzy +msgid "" +"Fill hybrid MBR of GPT drive DEVICE. Specified partitions will be a part of " +"hybrid MBR. Up to 3 partitions are allowed. TYPE is an MBR type. + means " +"that partition is active. Only one partition can be active." +msgstr "" +"Isi hybrid MBR dari GPT drive PERANGKAT. partisi yang dispesifikasikan akan " +"menjadi bagian dari hybrid mbr. sampai 3 partisi diperbolehkan. TYPE dalah " +"sebuah tipe MBR. + berarti partisi itu aktif. Hanya satu partisi yang boleh " +"aktif." + +#: commands/halt.c:39 +msgid "" +"Halts the computer. This command does not work on all firmware " +"implementations." +msgstr "" +"Hentikan komputer. Perintah ini mungkin tidak bekerja di semua implementasi " +"'firmware'." + +#: commands/hdparm.c:30 +msgid "" +"Set Advanced Power Management\n" +"(1=low, ..., 254=high, 255=off)." +msgstr "" +"Set Advanced Power Management\n" +"(1=rendah, ..., 254=tinggi, 255=tidak nyala)." + +#: commands/hdparm.c:33 +msgid "Check power mode." +msgstr "Periksa mode power." + +#: commands/hdparm.c:34 +msgid "Freeze ATA security settings until reset." +msgstr "Hentikan konfigurasi keamanan ATA sampai reset." + +#: commands/hdparm.c:36 +msgid "Check SMART health status." +msgstr "Periksa keadaan kesehatan SMART." + +#: commands/hdparm.c:37 +msgid "" +"Set Automatic Acoustic Management\n" +"(0=off, 128=quiet, ..., 254=fast)." +msgstr "" +"Set Automatic Acoustic Management\n" +"(0=tidak nyala, 128=pelan, ..., 254=cepat)." + +#: commands/hdparm.c:40 +msgid "" +"Set standby timeout\n" +"(0=off, 1=5s, 2=10s, ..., 240=20m, 241=30m, ...)." +msgstr "" +"Set waktu habis standby\n" +"(0=tidak nyala, 1=5s, 2=10s, ..., 240=20m, 241=30m, ...)." + +#: commands/hdparm.c:43 +msgid "Set drive to standby mode." +msgstr "Set drive ke mode standby." + +#: commands/hdparm.c:44 +msgid "Set drive to sleep mode." +msgstr "Set drive ke mode tidur." + +#: commands/hdparm.c:45 +msgid "Print drive identity and settings." +msgstr "Tampilkan konfigurasi dan identitas drive." + +#: commands/hdparm.c:47 +msgid "Dump contents of ATA IDENTIFY sector." +msgstr "Tampilkan isi dari sektor IDENTIFIKASI ATA." + +#: commands/hdparm.c:49 +msgid "Disable/enable SMART (0/1)." +msgstr "Nonaktifkan/aktifkan SMART (0/1)." + +#: commands/hdparm.c:50 +msgid "Do not print messages." +msgstr "Jangan tampilkan pesan." + +#: commands/hdparm.c:414 +msgid "[OPTIONS] DISK" +msgstr "[PILIHAN] DISK" + +#: commands/hdparm.c:415 +msgid "Get/set ATA disk parameters." +msgstr "Get/set parameter disk ATA." + +#: commands/help.c:112 lib/arg.c:110 +msgid "Usage:" +msgstr "Penggunaan:" + +#: commands/help.c:129 +msgid "[PATTERN ...]" +msgstr "[POLA ...]" + +#: commands/help.c:130 +msgid "Show a help message." +msgstr "Tampilkan pesan bantuan." + +#: commands/hexdump.c:30 +msgid "Skip offset bytes from the beginning of file." +msgstr "Lewati byte ofset dari awal berkas." + +#: commands/hexdump.c:32 +msgid "Read only LENGTH bytes." +msgstr "Baca saja PANJANG bytes." + +#: commands/hexdump.c:125 +msgid "[OPTIONS] FILE_OR_DEVICE" +msgstr "[PILIHAN] BERKAS_ATAU_PERANGKAT" + +#: commands/hexdump.c:126 +msgid "Dump the contents of a file or memory." +msgstr "Tampilkan isi dari sebuah berkas atau memori." + +#: commands/i386/cpuid.c:37 +msgid "Check for long mode flag (default)." +msgstr "Periksa untuk tanda mode panjang (baku)." + +#: commands/i386/cpuid.c:92 +msgid "Check for CPU features." +msgstr "Periksa kapabilitas CPU." + +#: commands/i386/pc/drivemap.c:37 +msgid "Show the current mappings." +msgstr "Tampilkan pemetaan saat ini." + +#: commands/i386/pc/drivemap.c:38 +msgid "Reset all mappings to the default values." +msgstr "Reset seluruh pemetaan ke nilai baku." + +#: commands/i386/pc/drivemap.c:39 +msgid "Perform both direct and reverse mappings." +msgstr "Lakukan baik pemetaan secara langsung dan terbalik." + +#: commands/i386/pc/drivemap.c:406 +msgid "-l | -r | [-s] grubdev osdisk." +msgstr "-l | -r | [-s] grubdev osdisk." + +#: commands/i386/pc/drivemap.c:407 +msgid "Manage the BIOS drive mappings." +msgstr "Pelihara pemetaan drive BIOS." + +#: commands/i386/pc/halt.c:27 +msgid "Do not use APM to halt the computer." +msgstr "Jangan gunakan APM untuk menghentikan komputer." + +#: commands/i386/pc/halt.c:51 +msgid "Halt the system, if possible using APM." +msgstr "Hentikan sistem, jika memungkinkan gunakan APM." + +#: commands/i386/pc/play.c:266 +msgid "FILE | TEMPO [PITCH1 DURATION1] [PITCH2 DURATION2] ... " +msgstr "" + +#: commands/i386/pc/play.c:267 +msgid "Play a tune." +msgstr "Mainkan sebuah nada." + +#: commands/i386/pc/pxecmd.c:46 +msgid "Unload PXE environment." +msgstr "Bongkar-muat lingkungan PXE." + +#: commands/i386/pc/vbeinfo.c:179 +msgid "List compatible VESA BIOS extension video modes." +msgstr "Tampilkan ekstensi mode video yang kompatibel dengan VESA BIOS." + +#: commands/i386/pc/vbetest.c:173 +msgid "Test VESA BIOS Extension 2.0+ support." +msgstr "Coba dukungan ekstensi VESA BIOS 2.0+." + +#: commands/ieee1275/suspend.c:43 +msgid "Return to Open Firmware prompt." +msgstr "Kembalikan ke prompt Open Firmware." + +#: commands/keystatus.c:28 +msgid "Check Shift key." +msgstr "Periksa tombol Shift." + +#: commands/keystatus.c:29 +msgid "Check Control key." +msgstr "Periksa tombol Control." + +#: commands/keystatus.c:30 +msgid "Check Alt key." +msgstr "Periksa tombol Alt." + +#: commands/keystatus.c:85 +msgid "[--shift] [--ctrl] [--alt]" +msgstr "[--shift] [--ctrl] [--alt]" + +#: commands/keystatus.c:86 +msgid "Check key modifier status." +msgstr "Periksa keadaan tombol pemodifikasi." + +#: commands/loadenv.c:33 +msgid "Specify filename." +msgstr "Spesifikasikan nama berkas." + +#: commands/loadenv.c:378 commands/loadenv.c:384 +msgid "[-f FILE]" +msgstr "[-f BERKAS]" + +#: commands/loadenv.c:379 +msgid "Load variables from environment block file." +msgstr "Muat variabel dari berkas blok lingkungan." + +#: commands/loadenv.c:385 +msgid "List variables from environment block file." +msgstr "Tampilkan variabel dari berkas blok lingkungan." + +#: commands/loadenv.c:390 +msgid "[-f FILE] variable_name [...]" +msgstr "[-f BERKAS] nama_variabel [...]" + +#: commands/loadenv.c:391 +msgid "Save variables to environment block file." +msgstr "Simpan variabel ke berkas blok lingkungan." + +#: commands/ls.c:37 +msgid "Show a long list with more detailed information." +msgstr "Tampilkan sebuah daftar panjang dengan informasi yang lengkap." + +#: commands/ls.c:38 +msgid "Print sizes in a human readable format." +msgstr "Tampilkan ukuran dalam format yang mudah dibaca." + +#: commands/ls.c:39 +msgid "List all files." +msgstr "Tampilkan seluruh berkas." + +#: commands/ls.c:269 +msgid "[-l|-h|-a] [FILE]" +msgstr "[-l|-h|-a] [BERKAS]" + +#: commands/ls.c:270 +msgid "List devices and files." +msgstr "Tampilkan perangkat dan berkas." + +#: commands/lsmmap.c:51 +msgid "List memory map provided by firmware." +msgstr "Tampilkan peta memori yang disediakan oleh firmware." + +#: commands/lspci.c:228 +msgid "List PCI devices." +msgstr "Tampilkan perangkat PCI." + +#: commands/memrw.c:31 +msgid "Save read value into variable VARNAME." +msgstr "Simpan nilai terbaca kedalam variabel NAMAVAR." + +#: commands/memrw.c:123 commands/memrw.c:126 commands/memrw.c:129 +#: commands/minicmd.c:362 +msgid "ADDR" +msgstr "ALAMAT" + +#: commands/memrw.c:123 +msgid "Read byte from ADDR." +msgstr "Baca byte dari ALAMAT." + +#: commands/memrw.c:126 +msgid "Read word from ADDR." +msgstr "Baca word dari ALAMAT." + +#: commands/memrw.c:129 +msgid "Read dword from ADDR." +msgstr "Baca dword dari ALAMAT." + +#: commands/memrw.c:132 commands/memrw.c:135 commands/memrw.c:138 +msgid "ADDR VALUE [MASK]" +msgstr "ALAMAT NILAI [TOPENG]" + +#: commands/memrw.c:132 +msgid "Write byte VALUE to ADDR." +msgstr "Tulis NILAI byte ke ALAMAT." + +#: commands/memrw.c:135 +msgid "Write word VALUE to ADDR." +msgstr "Tulis NILAI word ke ALAMAT." + +#: commands/memrw.c:138 +msgid "Write dword VALUE to ADDR." +msgstr "Tulis NILAI dword ke ALAMAT." + +#: commands/minicmd.c:356 +msgid "Show this message." +msgstr "Tampilkan pesan ini." + +#: commands/minicmd.c:359 commands/probe.c:154 +msgid "[DEVICE]" +msgstr "[PERANGKAT]" + +#: commands/minicmd.c:359 +msgid "Set the root device." +msgstr "Set perangkat root." + +#: commands/minicmd.c:362 +msgid "Dump memory." +msgstr "Tampilkan memori." + +#: commands/minicmd.c:365 +msgid "MODULE" +msgstr "MODUL" + +#: commands/minicmd.c:365 +msgid "Remove a module." +msgstr "Hapus sebuah modul." + +#: commands/minicmd.c:368 +msgid "Show loaded modules." +msgstr "Tampilkan modul termuat." + +#: commands/minicmd.c:371 +msgid "Exit from GRUB." +msgstr "Keluar dari GRUB." + +#: commands/minicmd.c:374 +msgid "Clear the screen." +msgstr "Bersihkan layar." + +#: commands/parttool.c:325 +msgid "PARTITION COMMANDS" +msgstr "PERINTAH PARTISI" + +#: commands/password.c:78 +msgid "USER PASSWORD" +msgstr "KATA SANDI PENGGUNA" + +#: commands/password.c:79 +msgid "Set user password (plaintext). Unrecommended and insecure." +msgstr "" +"Set kata sandi pengguna (teks-terbuka). Tidak direkomendasikan dan tidak " +"aman." + +#: commands/probe.c:38 +msgid "Set a variable to return value." +msgstr "Set sebuah variabel ke nilai kembali." + +#: commands/probe.c:39 +msgid "Determine driver." +msgstr "Tentukan driver." + +#: commands/probe.c:40 +msgid "Determine partition map type." +msgstr "Tentukan tipe peta partisi." + +#: commands/probe.c:41 +msgid "Determine filesystem type." +msgstr "Tentukan tipe sistem berkas." + +#: commands/probe.c:42 +msgid "Determine filesystem UUID." +msgstr "Tentukan UUID sistem berkas." + +#: commands/probe.c:43 +msgid "Determine filesystem label." +msgstr "Tentukan nama sistem berkas." + +#: commands/probe.c:155 +msgid "Retrieve device info." +msgstr "Dapatkan informasi perangkat." + +#: commands/read.c:83 +msgid "[ENVVAR]" +msgstr "[ENVVAR]" + +#: commands/read.c:84 +msgid "Set variable with user input." +msgstr "Set variabel dengan masukan pengguna." + +#: commands/reboot.c:39 +msgid "Reboot the computer." +msgstr "Reboot komputer." + +#: commands/search.c:161 +msgid "NAME [VARIABLE]" +msgstr "NAMA [VARIABEL]" + +#: commands/search_file.c:5 +msgid "" +"Search devices by file. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Cari perangkat dengan berkas. Jika VARIABEL dispesifikasikan, perangkat " +"pertama yang ditemukan diset ke variabel." + +#: commands/search_label.c:5 +msgid "" +"Search devices by label. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Cari perangkat berdasarkan nama. Jika VARIABEL dispesifikasikan, perangkat " +"pertama yang ditemukan diset ke variabel." + +#: commands/search_uuid.c:5 +msgid "" +"Search devices by UUID. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" +"Cari perangkat dengan UUID. Jika VARIABEL dispesifikasikan, perangkat " +"pertama yang ditemukan diset ke sebuah variabel." + +#: commands/sleep.c:30 +msgid "Verbose countdown." +msgstr "Hitung mundur secara detail." + +#: commands/sleep.c:31 +msgid "Interruptible with ESC." +msgstr "Dapat diinterupsi dengan ESC." + +#: commands/sleep.c:105 +msgid "NUMBER_OF_SECONDS" +msgstr "JUMLAH_DARI_DETIK" + +#: commands/sleep.c:106 +msgid "Wait for a specified number of seconds." +msgstr "Tunggu selama jumlah dari detik yang dispesifikasikan." + +#: commands/test.c:424 +msgid "EXPRESSION ]" +msgstr "EKSPRESI ]" + +#: commands/test.c:424 commands/test.c:426 +msgid "Evaluate an expression." +msgstr "Evaluasi sebuah ekspresi." + +#: commands/test.c:426 +msgid "EXPRESSION" +msgstr "EKSPRESI" + +#: commands/true.c:47 +msgid "Do nothing, successfully." +msgstr "Tidak melakukan apapun, sukses." + +#: commands/true.c:50 +msgid "Do nothing, unsuccessfully." +msgstr "Tidak melakukan apapun, tidak sukses." + +#: commands/usbtest.c:208 +msgid "Test USB support." +msgstr "Coba dukungan USB." + +#: commands/videotest.c:180 +msgid "Test video subsystem." +msgstr "Coba subsistem video." + +#: commands/xnu_uuid.c:92 +msgid "GRUBUUID [VARNAME]" +msgstr "GRUBUUID [NAMAVAR]" + +#: commands/xnu_uuid.c:93 +msgid "Transform 64-bit UUID to format suitable for XNU." +msgstr "Transformasikan 64-bit UUID ke format yang sesuai untuk XNU." + +#: disk/loopback.c:40 +msgid "Delete the loopback device entry." +msgstr "Hapus masukan perangkat loopback." + +#: disk/loopback.c:41 +msgid "Simulate a hard drive with partitions." +msgstr "Simulasikan sebuah hard drive dengan partisi." + +#: disk/loopback.c:249 +msgid "[-d|-p] DEVICENAME FILE." +msgstr "[-d|-p] NAMAPERANGKAT BERKAS." + +#: disk/loopback.c:250 +msgid "Make a device of a file." +msgstr "Buat perangkat dari berkas." + +#: hello/hello.c:43 +msgid "Say \"Hello World\"." +msgstr "Katakan \"Hi Dunia\"." + +#: lib/arg.c:34 +msgid "Display this help and exit." +msgstr "Tampilkan bantuan ini dan keluar." + +#: lib/arg.c:36 +msgid "Display the usage of this command and exit." +msgstr "Tampilkan penggunaan dari perintah ini dan keluar." + +#: loader/efi/appleloader.c:325 +msgid "Boot legacy system." +msgstr "Boot sistem sesungguhnya." + +#: loader/efi/chainloader.c:340 loader/i386/pc/chainloader.c:166 +msgid "Load another boot loader." +msgstr "Muat 'boot loader' lain." + +#: loader/i386/bsd.c:65 +msgid "Display output on all consoles." +msgstr "Tampilkan keluaran di semua konsol." + +#: loader/i386/bsd.c:66 +msgid "Use serial console." +msgstr "Gunakan konsol serial." + +#: loader/i386/bsd.c:67 loader/i386/bsd.c:93 loader/i386/bsd.c:114 +msgid "Ask for file name to reboot from." +msgstr "Tanya untuk nama berkas untuk direboot dari." + +#: loader/i386/bsd.c:68 +msgid "Use CDROM as root." +msgstr "Gunakan CDROM sebagai root." + +#: loader/i386/bsd.c:69 +msgid "Invoke user configuration routing." +msgstr "Panggil konfigurasi routing pengguna." + +#: loader/i386/bsd.c:70 loader/i386/bsd.c:97 loader/i386/bsd.c:117 +msgid "Enter in KDB on boot." +msgstr "Masuk dalam KDB pada waktu boot." + +#: loader/i386/bsd.c:71 +msgid "Use GDB remote debugger instead of DDB." +msgstr "Gunakan GDB remote debugger daripada DDB." + +#: loader/i386/bsd.c:72 +msgid "Disable all boot output." +msgstr "Tampilkan seluruh keluaran boot." + +#: loader/i386/bsd.c:74 +msgid "Wait for keypress after every line of output." +msgstr "Tunggu untuk penekanan tombol setelah setiap baris dari keluaran." + +#: loader/i386/bsd.c:76 +msgid "Use compiled-in rootdev." +msgstr "Gunakan compiled-in rootdev." + +#: loader/i386/bsd.c:77 loader/i386/bsd.c:96 loader/i386/bsd.c:120 +msgid "Boot into single mode." +msgstr "Boot kedalam mode tunggal." + +#: loader/i386/bsd.c:78 loader/i386/bsd.c:121 +msgid "Boot with verbose messages." +msgstr "Boot dengan pesan detail." + +#: loader/i386/bsd.c:94 loader/i386/bsd.c:115 +msgid "Don't reboot, just halt." +msgstr "Jangan reboot, hanya hentikan." + +#: loader/i386/bsd.c:95 loader/i386/bsd.c:116 +msgid "Change configured devices." +msgstr "Ubah konfigurasi perangkat." + +#: loader/i386/bsd.c:98 loader/i386/bsd.c:124 +msgid "Set root device." +msgstr "Set perangkat root." + +#: loader/i386/bsd.c:112 +msgid "Disable SMP." +msgstr "Non-aktifkan SMP." + +#: loader/i386/bsd.c:113 +msgid "Disable ACPI." +msgstr "No-aktifkan ACPI." + +#: loader/i386/bsd.c:119 +msgid "Don't display boot diagnostic messages." +msgstr "Jangan tampilkan pesan diagnosa boot." + +#: loader/i386/bsd.c:122 +msgid "Boot with debug messages." +msgstr "Boot dengan pesan debug." + +#: loader/i386/bsd.c:123 +msgid "Supress normal output (warnings remain)." +msgstr "Tekan keluaran normal (peringatan tetap)." + +#: loader/i386/bsd.c:124 +msgid "DEVICE" +msgstr "PERANGKAT" + +#: loader/i386/bsd.c:1287 +msgid "Load kernel of FreeBSD." +msgstr "Muat kernel dari FreeBSD." + +#: loader/i386/bsd.c:1291 +msgid "Load kernel of OpenBSD." +msgstr "Muat kernal dari OpenBSD." + +#: loader/i386/bsd.c:1295 +msgid "Load kernel of NetBSD." +msgstr "Muat kernel dari NetBSD." + +#: loader/i386/bsd.c:1299 +msgid "Load FreeBSD env." +msgstr "Muat lingkungan FreeBSD." + +#: loader/i386/bsd.c:1302 +msgid "Load FreeBSD kernel module." +msgstr "Muat modul kernel FreeBSD." + +#: loader/i386/bsd.c:1305 +msgid "Load FreeBSD kernel module (ELF)." +msgstr "Muat modul kernel (ELF) FreeBSD." + +#: loader/i386/efi/linux.c:1011 loader/i386/ieee1275/linux.c:301 +#: loader/i386/linux.c:1012 loader/i386/pc/linux.c:399 +#: loader/powerpc/ieee1275/linux.c:353 loader/sparc64/ieee1275/linux.c:519 +msgid "Load Linux." +msgstr "Muat Linux." + +#: loader/i386/efi/linux.c:1013 loader/i386/ieee1275/linux.c:303 +#: loader/i386/linux.c:1014 loader/i386/pc/linux.c:402 +#: loader/powerpc/ieee1275/linux.c:355 loader/sparc64/ieee1275/linux.c:521 +msgid "Load initrd." +msgstr "Muat initrd." + +#: loader/i386/xnu.c:1032 +msgid "Load device-properties dump." +msgstr "Muat properti-perangkat dump." + +#: loader/multiboot.c:337 +msgid "Load a multiboot 2 kernel." +msgstr "Muat sebuah kernel multiboot 2." + +#: loader/multiboot.c:340 +#, fuzzy +msgid "Load a multiboot 2 module." +msgstr "Muat sebuah modul multiboot." + +#: loader/multiboot.c:343 +msgid "Load a multiboot kernel." +msgstr "Muat sebuah kernel multiboot." + +#: loader/multiboot.c:346 +msgid "Load a multiboot module." +msgstr "Muat sebuah modul multiboot." + +#: loader/xnu.c:1428 +msgid "Load XNU image." +msgstr "Muat image XNU." + +#: loader/xnu.c:1430 +msgid "Load 64-bit XNU image." +msgstr "Muat image 64-bit XNU." + +#: loader/xnu.c:1432 +msgid "Load XNU extension package." +msgstr "Muat paket ekstensi XNU." + +#: loader/xnu.c:1434 +msgid "Load XNU extension." +msgstr "Muat ekstensi XNU." + +#: loader/xnu.c:1436 +msgid "DIRECTORY [OSBundleRequired]" +msgstr "DIREKTORI [OSBundleRequired]" + +#: loader/xnu.c:1437 +msgid "Load XNU extension directory." +msgstr "Muat ekstensi direktori XNU." + +#: loader/xnu.c:1444 +msgid "Load a splash image for XNU." +msgstr "Muat sebuah gambar singkat untuk XNU." + +#: loader/xnu.c:1449 +msgid "Load XNU hibernate image." +msgstr "Muat berkas hibernate XNU." + +#: normal/auth.c:217 +msgid "Enter username: " +msgstr "Masukan nama pengguna: " + +#: normal/auth.c:222 +msgid "Enter password: " +msgstr "Masukan kata sandi : " + +#: normal/color.c:80 +#, c-format +msgid "Warning: syntax error (missing slash) in `%s'\n" +msgstr "Peringatan: kesalahan dalam sintaks (hilang slash) dalam `%s'\n" + +#: normal/color.c:89 +#, c-format +msgid "Warning: invalid foreground color `%s'\n" +msgstr "Peringatan: warna depan tidak valid `%s'\n" + +#: normal/color.c:95 +#, c-format +msgid "Warning: invalid background color `%s'\n" +msgstr "Peringatan: nama belakang tidak valid `%s'\n" + +#: normal/dyncmd.c:144 +msgid "not loaded" +msgstr "tidak termuat" + +#: normal/main.c:415 +#, c-format +msgid "GNU GRUB version %s" +msgstr "GNU GRUB versi %s" + +#: normal/main.c:552 +#, c-format +msgid "" +"Minimal BASH-like line editing is supported. For the first word, TAB lists " +"possible command completions. Anywhere else TAB lists possible device or " +"file completions. %s" +msgstr "" +"Penyuntingan minimal bergaya BASH didukung. Untuk kata pertama, TAB " +"menampilkan pelengkapan perintah yang memungkin. Dimanapun TAB menampilkan " +"perangkat yang memungkinkan atau pelengkapan berkas. %s" + +#: normal/main.c:555 +msgid "ESC at any time exits." +msgstr "ESC di waktu apapun keluar." + +#: normal/main.c:670 +msgid "Enter normal mode." +msgstr "" + +#: normal/main.c:672 +msgid "Exit from normal mode." +msgstr "" + +#: normal/menu_entry.c:1061 +msgid "Possible commands are:" +msgstr "Perintah yang memungkinkan adalah:" + +#: normal/menu_entry.c:1065 +msgid "Possible devices are:" +msgstr "Perangkat yang memungkinkan adalah:" + +#: normal/menu_entry.c:1069 +msgid "Possible files are:" +msgstr "Berkas yang memungkinkan adalah:" + +#: normal/menu_entry.c:1073 +msgid "Possible partitions are:" +msgstr "Partisi yang memungkinkan adalah:" + +#: normal/menu_entry.c:1077 +msgid "Possible arguments are:" +msgstr "Argumen yang memungkinkan adalah:" + +#: normal/menu_entry.c:1081 +msgid "Possible things are:" +msgstr "Hal yang memungkinkan adalah:" + +#: normal/menu_entry.c:1185 +msgid "Booting a command list" +msgstr "Mem-boot dari sebuah daftar perintah" + +#: normal/menu_entry.c:1398 +msgid "Press any key to continue..." +msgstr "Tekan tombol apapun untuk melanjutkan..." + +#: normal/menu_text.c:180 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"F1 to boot, F2=Ctrl-a, F3=Ctrl-e, F4 for a command-line or ESC to discard " +"edits and return to the GRUB menu." +msgstr "" +"Penyuntingan layar minimum bergaya Emacs didukung. TAB menampilkan " +"pelengkapan. Tekan Ctrl-x untuk boot, Ctrl-c untuk baris perintah atau ESC " +"untuk kembali ke menu." + +#: normal/menu_text.c:185 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"Ctrl-x to boot, Ctrl-c for a command-line or ESC to discard edits and return " +"to the GRUB menu." +msgstr "" +"Penyuntingan layar minimum bergaya Emacs didukung. TAB menampilkan " +"pelengkapan. Tekan Ctrl-x untuk boot, Ctrl-c untuk baris perintah atau ESC " +"untuk kembali ke menu." + +#: normal/menu_text.c:193 +#, c-format +msgid "Use the %C and %C keys to select which entry is highlighted.\n" +msgstr "" +"Gunakan tombol-tombol %C dan %C untuk memiliki masukan mana yang disoroti.\n" + +#: normal/menu_text.c:210 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line. ESC to return previous menu.\n" +msgstr "" +"Tekan enter untuk mem-boot OS yang dipilih, 'e' untuk mengubah perintah " +"sebelum booting atau 'c' untuk sebuah baris perintah. ESC kembali ke menu " +"sebelumnya.\n" + +#: normal/menu_text.c:218 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line.\n" +msgstr "" +"Tekan enter untuk mem-boot OS yang dipilih, 'e' untuk mengubah perintah " +"sebelum booting atau 'c' untuk sebuah baris perintah.\n" + +#: normal/menu_text.c:370 +#, c-format +msgid "The highlighted entry will be executed automatically in %ds." +msgstr "Masukan yang disoroti akan diboot secara otomatis dalam %ds." + +#: normal/misc.c:41 +#, c-format +msgid "Partition %s:" +msgstr "Partisi %s:" + +#: normal/misc.c:46 +#, c-format +msgid "Device %s:" +msgstr "Perankat %s:" + +#: normal/misc.c:52 +msgid "Filesystem cannot be accessed" +msgstr "Sistem berkas tidak dapat diakses" + +#: normal/misc.c:63 +#, c-format +msgid "Filesystem type %s" +msgstr "Tipe sistem berkas %s" + +#: normal/misc.c:73 +#, c-format +msgid "- Label \"%s\"" +msgstr "- Label \"%s\"" + +#: normal/misc.c:88 +#, c-format +msgid "- Last modification time %d-%02d-%02d %02d:%02d:%02d %s" +msgstr "- Waktu modifikasi terakhir %d-%02d-%02d %02d:%02d:%02d %s" + +#: normal/misc.c:111 +msgid "Unknown filesystem" +msgstr "Sistem berkas tidak diketahui" + +#: normal/misc.c:113 +msgid "Partition table" +msgstr "Tabel partisi" + +#: term/serial.c:46 +msgid "Set the serial unit." +msgstr "Set satuan serial." + +#: term/serial.c:47 +msgid "Set the serial port address." +msgstr "Set alamat port serial." + +#: term/serial.c:48 +msgid "Set the serial port speed." +msgstr "Set kecepatan port serial." + +#: term/serial.c:49 +msgid "Set the serial port word length." +msgstr "Set panjang kata port serial." + +#: term/serial.c:50 +msgid "Set the serial port parity." +msgstr "Set pariti dari port serial." + +#: term/serial.c:51 +msgid "Set the serial port stop bits." +msgstr "Set stop bit dari port serial." + +#: term/serial.c:619 +#, fuzzy +msgid "[OPTIONS...]" +msgstr "[PILIHAN] DISK" + +#: term/serial.c:620 +msgid "Configure serial port." +msgstr "" + +#: util/grub-mkimage.c:440 +msgid "the core image is too small" +msgstr "image core terlalu kecil" + +#: util/grub-mkimage.c:451 +msgid "cannot compress the kernel image" +msgstr "tidak dapat mengkompress image kernel" + +#: util/grub-mkimage.c:548 +msgid "prefix is too long" +msgstr "awalan terlalu panjang" + +#: util/grub-mkimage.c:672 +#, c-format +msgid "core image is too big (%p > %p)" +msgstr "Image core terlalu besar (%p >%p)" + +#: util/grub-mkimage.c:678 +msgid "the core image is too big" +msgstr "image core terlalu besar" + +#: util/grub-mkimage.c:683 +#, c-format +msgid "diskboot.img size must be %u bytes" +msgstr "besar diskboot.img seharusnya %u bytes" + +#: util/grub-mkimage.c:1168 util/i386/pc/grub-setup.c:619 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "Coba `%s --help' untuk informasi lebih lanjut.\n" + +#: util/grub-mkimage.c:1187 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... [MODULES]\n" +"\n" +"Make a bootable image of GRUB.\n" +"\n" +" -d, --directory=DIR use images and modules under DIR [default=%s/" +"@platform@]\n" +" -p, --prefix=DIR set grub_prefix directory [default=%s]\n" +" -m, --memdisk=FILE embed FILE as a memdisk image\n" +" -f, --font=FILE embed FILE as a boot font\n" +" -c, --config=FILE embed FILE as boot config\n" +" -n, --note add NOTE segment for CHRP Open Firmware\n" +" -o, --output=FILE output a generated image to FILE [default=stdout]\n" +" -O, --format=FORMAT generate an image in format\n" +" available formats: %s\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: %s [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" +" -f, --font=BERKAS tempatkan BERKAS sebagai font boot\n" +" -c, --config=BERKAS tempatkan BERKAS sebagai konfigurasi boot\n" +" -o, --output=BERKAS keluarkan sebuah image yang dihasilkan ke BERKAS " +"[baku=stdout]\n" +" -O, --format=FORMAT hasilkan sebuah image dalam format [baku=" + +#: util/grub-mkimage.c:1333 +#, c-format +msgid "cannot open %s" +msgstr "tidak dapat membuka %s" + +#: util/i386/pc/grub-setup.c:164 +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:178 +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:192 +msgid "the sectors of the core file are too fragmented" +msgstr "sektor dari berkas core terlalu terpotong potong" + +#: util/i386/pc/grub-setup.c:203 +#, c-format +msgid "the size of `%s' is not %u" +msgstr "ukuran dari `%s' bukan %u" + +#: util/i386/pc/grub-setup.c:220 +#, c-format +msgid "the size of `%s' is too small" +msgstr "ukuran dari `%s' terlalu kecil" + +#: util/i386/pc/grub-setup.c:222 +#, 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:339 util/i386/pc/grub-setup.c:366 +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:345 +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:375 +msgid "No DOS-style partitions found" +msgstr "Tidak ditemukan gaya partisi DOS" + +#: util/i386/pc/grub-setup.c:380 +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:382 +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:389 +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:391 +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:436 +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:439 +#, fuzzy +msgid "" +"Embedding is not possible. GRUB can only be installed in this setup by " +"using blocklists. However, blocklists are UNRELIABLE and their 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:443 +msgid "if you really want blocklists, use --force" +msgstr "jika anda benar benar menginginkan blocklists, gunakan --force." + +#: util/i386/pc/grub-setup.c:462 +#, 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:463 +#, 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:530 +#, c-format +msgid "cannot read `%s' correctly" +msgstr "tidak dapat membaca `%s' secara benar" + +#: util/i386/pc/grub-setup.c:543 +msgid "no terminator in the core image" +msgstr "tidak ada pengakhir dalam image core" + +#: util/i386/pc/grub-setup.c:554 +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:560 +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:579 +#, c-format +msgid "cannot open `%s'" +msgstr "tidak dapat membuka `%s'" + +#: util/i386/pc/grub-setup.c:621 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... DEVICE\n" +"\n" +"Set up images to boot from DEVICE.\n" +"DEVICE must be a GRUB device (e.g. `(hd0,1)').\n" +"\n" +"You should not normally run %s directly. Use grub-install instead.\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: %s [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:753 +#, c-format +msgid "No device is specified.\n" +msgstr "Perangkat tidak dispesifikasikan.\n" + +#: util/i386/pc/grub-setup.c:759 +#, c-format +msgid "Unknown extra argument `%s'.\n" +msgstr "Argumen ekstra `%s' tidak diketahui.\n" + +#: util/i386/pc/grub-setup.c:776 +#, c-format +msgid "Invalid device `%s'.\n" +msgstr "Perangkat `%s' tidak valid.\n" + +#: util/i386/pc/grub-setup.c:789 +#, c-format +msgid "invalid root device `%s'" +msgstr "perangkat root `%s' tidak valid" + +#: util/i386/pc/grub-setup.c:802 +msgid "cannot guess the root device. Specify the option `--root-device'" +msgstr "" +"tidak dapat menebak perangkat root. Spesifikasikan pilihan ``--root-device''." + +#~ msgid "[class [handler]]" +#~ msgstr "[kelas [pengendali]]" + +#~ msgid "List or select a handler." +#~ msgstr "Tampilkan atau pilih pengendali." + +#~ msgid "Load XNU ramdisk. It will be seen as md0." +#~ msgstr "Muat XNU ramdisk. Ini akan kelihatan seperti md0." + +#~ msgid "no DOS-style partitions found" +#~ msgstr "tidak ditemukan gaya partisi DOS" + +#~ msgid "%s, with kFreeBSD %s" +#~ msgstr "%s, dengan kFreeBSD %s" + +#~ msgid "Loading kernel of FreeBSD %s ..." +#~ msgstr "Memuat kernel dari FreeBSD %s ..." + +#~ msgid "%s, with Linux %s (recovery mode)" +#~ msgstr "%s, dengan Linux %s (mode penyembuhan)" + +#~ msgid "%s, with Linux %s" +#~ msgstr "%s, dengan Linux %s" + +#~ msgid "Loading Linux %s ..." +#~ msgstr "Memuat Linux %s ..." + +#~ msgid "Loading initial ramdisk ..." +#~ msgstr "Memuat inisial ramdisk ..." + +#~ msgid "A boot catalog exists and appears corrupted.\n" +#~ msgstr "Sebuah katalog boot ada dan mungkin terkorupsi.\n" + +#~ msgid "Please check the following file: %s.\n" +#~ msgstr "Mohon periksa berkas berikut: %s.\n" + +#~ 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" + +#~ msgid "Error creating boot catalog (%s)" +#~ msgstr "Error membuat katalog boot (%s)" + +#~ msgid "Error writing to boot catalog (%s)" +#~ msgstr "Error menulis katalog boot (%s)" + +#~ msgid "Boot catalog cannot be found!\n" +#~ msgstr "Katalog boot tidak dapat ditemukan!\n" + +#~ msgid "Boot image cannot be found!\n" +#~ msgstr "Image boot tidak dapat ditemukan!\n" + +#~ msgid "" +#~ "\n" +#~ "Size of boot image is %d sectors" +#~ msgstr "" +#~ "\n" +#~ "Ukuran dari boot image adalah %d sektor" + +#~ msgid "No emulation\n" +#~ msgstr "Tidak ada emulasi\n" + +#~ msgid "Emulating a 1.44 meg floppy\n" +#~ msgstr "Mengemulasikan sebuah 1.44 meg floppy\n" + +#~ msgid "Emulating a 2.88 meg floppy\n" +#~ msgstr "Mengemulasikan sebuah 2.88 meg floppy\n" + +#~ msgid "Emulating a 1.2 meg floppy\n" +#~ msgstr "Mengemulasikan sebuah 1.2 meg floppy\n" + +#~ msgid "" +#~ "\n" +#~ "Error - boot image is not the an allowable size.\n" +#~ msgstr "" +#~ "\n" +#~ "Error - image boot tidak berukuran yang diperbolehkan.\n" + +#~ msgid "Error opening boot catalog for update" +#~ msgstr "Error membuka katalog boot untuk diperbarui" + +#~ msgid "Error writing to boot catalog" +#~ msgstr "Error menulis ke katalog boot" + +#~ msgid "Error opening boot image file '%s' for update" +#~ msgstr "Error membuka berkas boot image '%s' untuk diperbarui" + +#~ msgid "Odd alignment at non-end-of-file in boot image '%s'" +#~ msgstr "Penyesuaian janggal di akhir-dari-berkas dalam image boot '%s'" + +#~ msgid "Boot image file '%s' changed unexpectedly" +#~ msgstr "Berkas image boot '%s' berubah secara tidak terduga" + +#~ msgid "Error writing to boot image (%s)" +#~ msgstr "Error menulis ke boot image (%s)" + +#~ 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" + +#~ msgid "Entry %d not in path tables\n" +#~ msgstr "Masukan %d tidak dalam tabel jalur\n" + +#~ msgid "Fatal goof - directory has amnesia\n" +#~ msgstr "Fatal goof - direktori memiliki amnesia\n" + +#~ msgid "Joliet path table lengths do not match %d %d\n" +#~ msgstr "Panjang tabel jalur joliet tidak cocok %d %d\n" + +#~ msgid "Unable to locate relocated directory\n" +#~ msgstr "Tidak dapat menempatkan direktori yang ditempatkan\n" + +#~ msgid "Fatal goof - unable to find directory location\n" +#~ msgstr "Fatal goof - tidak dapat menemukan lokasi direktori\n" + +#~ msgid "Unexpected joliet directory length %d %d %s\n" +#~ msgstr "Panjang direktori joliet tidak terduga %d %d %s\n" + +#~ msgid "Process all files (don't skip backup files)" +#~ msgstr "Proses seluruh berkas (jangan lewatkan berkas cadangan)" + +#~ msgid "ID" +#~ msgstr "ID" + +#~ msgid "Set Application ID" +#~ msgstr "Set ID Aplikasi" + +#~ msgid "Set Bibliographic filename" +#~ msgstr "Set nama berkas bibliographic" + +#~ msgid "Set Copyright filename" +#~ msgstr "Set nama berkas Hak Cipta" + +#~ msgid "Set embedded boot image name" +#~ msgstr "Set nama image embedded boot" + +#~ msgid "Patch a protective DOS-style label in the image" +#~ msgstr "Patch sebuah label proteksi bergaya DOS dalam image" + +#~ msgid "Set El Torito boot image name" +#~ msgstr "Set nama El Torito boot image" + +#~ msgid "Set El Torito boot catalog name" +#~ msgstr "Set nama katalog boot El Torito" + +#~ msgid "Patch Boot Info Table in El Torito boot image" +#~ msgstr "Patch Tabel Informasi boot dalam image boot El Torito" + +#~ msgid "Dummy option for backward compatibility" +#~ msgstr "Pilihan dummy untuk kompabilitas kebelakang" + +#~ msgid "Enable floppy drive emulation for El Torito" +#~ msgstr "Aktifkan emulasi drive floppy untuk El Torito" + +#~ msgid "PARAMS" +#~ msgstr "PARAMETER" + +#~ msgid "Magic parameters from cdrecord" +#~ msgstr "Majik parameter dari cdrecord" + +#~ msgid "Omit trailing periods from filenames" +#~ msgstr "Abaikan sisa titik dari nama berkas" + +#~ msgid "Disable deep directory relocation" +#~ msgstr "Non aktifkan relokasi dalam direktori" + +#~ msgid "Follow symbolic links" +#~ msgstr "Ikuti link simbolik" + +#~ msgid "Print option help" +#~ msgstr "Tampilkan pilihan bantuan" + +#~ msgid "Print version information and exit" +#~ msgstr "Tampilkan informasi versi dan keluar" + +#~ msgid "GLOBFILE" +#~ msgstr "GLOBFILE" + +#~ msgid "Hide ISO9660/RR file" +#~ msgstr "Sembunyikan berkas ISO9660/RR" + +#~ msgid "Hide Joliet file" +#~ msgstr "Sembunyikan berkas Joliet" + +#~ msgid "ADD_FILES" +#~ msgstr "ADD_FILES" + +#~ msgid "No longer supported" +#~ msgstr "Tidak lagi didukung" + +#~ msgid "Generate Joliet directory information" +#~ msgstr "Hasilkan informasi direktori Joliet" + +#~ msgid "Allow full 32 character filenames for iso9660 names" +#~ msgstr "Ijinkan panjang nama berkas 32 karakter untuk nama iso9660" + +#~ msgid "Allow iso9660 filenames to start with '.'" +#~ msgstr "Ijinkan nama berkas iso9660 dimulai dengan '.'" + +#~ msgid "LOG_FILE" +#~ msgstr "LOG_FILE" + +#~ msgid "Re-direct messages to LOG_FILE" +#~ msgstr "Alihkan pesan ke LOG_FILE" + +#~ msgid "Exclude file name" +#~ msgstr "Nama berkas yang diabaikan" + +#~ msgid "Set path to previous session to merge" +#~ msgstr "Set jalur untuk sesi sebelumnya untuk digabungkan" + +#~ msgid "Omit version number from iso9660 filename" +#~ msgstr "Abaikan nomor versi dari nama berkas iso9660" + +#~ msgid "Inhibit splitting symlink components" +#~ msgstr "Halangi pembagian komponen simlink" + +#~ msgid "Inhibit splitting symlink fields" +#~ msgstr "Halangi pembagian daerah simlink" + +#~ msgid "Set output file name" +#~ msgstr "Set nama berkas keluaran" + +#~ msgid "PREP" +#~ msgstr "PREP" + +#~ msgid "Set Volume preparer" +#~ msgstr "Set penyiap Volume" + +#~ msgid "Print estimated filesystem size and exit" +#~ msgstr "Tampilkan perkiraan besar sistem berkas dan keluar" + +#~ msgid "PUB" +#~ msgstr "PUB" + +#~ msgid "Set Volume publisher" +#~ msgstr "Set Volume penerbit" + +#~ msgid "Run quietly" +#~ msgstr "Jalankan dengan diam" + +#~ msgid "Generate rationalized Rock Ridge directory information" +#~ msgstr "Hasilkan informasi direktori Rock Ridge secara rasional" + +#~ msgid "Generate Rock Ridge directory information" +#~ msgstr "Hasilkan informasi direktori Rock Ridge" + +#~ msgid "Split output into files of approx. 1GB size" +#~ msgstr "Bagi keluaran kedalam berkas kira kira sebesar 1GB" + +#~ msgid "Set System ID" +#~ msgstr "Set ID Sistem" + +#~ msgid "" +#~ "Generate translation tables for systems that don't understand long " +#~ "filenames" +#~ msgstr "" +#~ "Hasilkan tabel terjemahan untuk sistem yang tidak mengerti nama berkas " +#~ "panjang" + +#~ msgid "Verbose" +#~ msgstr "Detail" + +#~ msgid "Set Volume ID" +#~ msgstr "Set ID Volume" + +#~ msgid "Set Volume set ID" +#~ msgstr "Set Volume ID set" + +#~ msgid "Set Volume set size" +#~ msgstr "Set Volume set ukuran" + +#~ msgid "Set Volume set sequence number" +#~ msgstr "Set Volume set nomor urutan" + +#~ msgid "Exclude file name (deprecated)" +#~ msgstr "Abaikan nama berkas (ditinggalkan)" + +#~ msgid "Override creation date" +#~ msgstr "Paksa tanggal pembuatan" + +#~ msgid "Override modification date" +#~ msgstr "Paksa tanggal modifikasi" + +#~ msgid "Override expiration date" +#~ msgstr "Paksa tanggal ekpirasi" + +#~ msgid "Override effective date" +#~ msgstr "Paksa tanggal efektif" + +#~ msgid "Using \"%s\"\n" +#~ msgstr "Menggunakan \"%s\"\n" + +#~ msgid "%s:%d: name required\n" +#~ msgstr "%s:%d: nama dibutuhkan\n" + +#~ msgid "%s:%d: equals sign required\n" +#~ msgstr "%s:%d: tanda sama dibutuhkan\n" + +#~ msgid "%s:%d: field name \"%s\" unknown\n" +#~ msgstr "%s:%d: nama daerah \"%s\" tidak diketahui\n" + +#~ msgid "Usage: %s [options] file...\n" +#~ msgstr "Penggunaan: %s [pilihan] berkas...\n" + +#~ msgid "Options:\n" +#~ msgstr "Pilihan:\n" + +#~ msgid "-i option no longer supported.\n" +#~ msgstr "pilihan -i tidak lagi didukung.\n" + +#~ msgid "Required boot image pathname missing" +#~ msgstr "Nama jalur boot image yang dibutuhkan hilang" + +#~ msgid "Required boot catalog pathname missing\n" +#~ msgstr "Nama jalur katalog boot yang dibutuhkan hilang\n" + +#~ msgid "Ignoring -no-emul-boot (no-emulation is the default behaviour)\n" +#~ msgstr "Mengabaikan -no-emul-boot (no-emulation adalah perilaku baku)\n" + +#~ msgid "Abstract filename string too long\n" +#~ msgstr "String nama berkas abstrak terlalu panjang\n" + +#~ msgid "Application-id string too long\n" +#~ msgstr "String ID-Aplikasi terlalu panjang\n" + +#~ msgid "Bibliographic filename string too long\n" +#~ msgstr "String nama berkas bibliographic terlalu panjang\n" + +#~ msgid "Copyright filename string too long\n" +#~ msgstr "String nama berkas Hak Cipta terlalu panjang\n" + +#~ msgid "Preparer string too long\n" +#~ msgstr "String penyiap terlalu panjang\n" + +#~ msgid "Publisher string too long\n" +#~ msgstr "String penerbit terlalu panjang\n" + +#~ msgid "System ID string too long\n" +#~ msgstr "String ID sistem terlalu panjang\n" + +#~ msgid "Volume ID string too long\n" +#~ msgstr "String ID volume terlalu penjang\n" + +#~ msgid "Volume set ID string too long\n" +#~ msgstr "String ID set volume terlalu panjang\n" + +#~ msgid "Volume set sequence number too big\n" +#~ msgstr "Set urutan nomor volume terlalu besar\n" + +#~ msgid "date string must be 16 characters.\n" +#~ msgstr "string tanggal harus berupa 16 karakter.\n" + +#~ msgid "Warning: getrlimit" +#~ msgstr "Peringatan: getrlimit" + +#~ msgid "Warning: setrlimit" +#~ msgstr "Peringatan: setrlimit" + +#~ msgid "Multisession usage bug: Must specify -C if -M is used.\n" +#~ msgstr "" +#~ "Bug penggunaan multi sesi: Harus menspesifikasikan -C jika -M digunakan.\n" + +#~ 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" + +#~ msgid "can't open logfile: %s" +#~ msgstr "tidak dapat membuka berkas log: %s" + +#~ msgid "re-directing all messages to %s\n" +#~ msgstr "menredireksikan seluruh pesan ke %s\n" + +#~ msgid "can't open logfile: %s\n" +#~ msgstr "tidak dapat membuka berkas log: %s\n" + +#~ msgid "Unable to open previous session image %s\n" +#~ msgstr "Tidak dapat membuka sesi image sebelumnya %s\n" + +#~ msgid "Invalid node - %s\n" +#~ msgstr "Node tidak valid -%s\n" + +#~ msgid "Joliet tree sort failed.\n" +#~ msgstr "Pengurutan pohon joliet gagal.\n" + +#~ msgid "Unable to open /dev/null\n" +#~ msgstr "Tidak dapat membuka /dev/null\n" + +#~ msgid "Unable to open disc image file\n" +#~ msgstr "Tidak dapat membuka berkas image disk\n" + +#~ msgid "Max brk space used %x\n" +#~ msgstr "Ruang maksimal brk yang digunakan %x\n" + +#~ msgid "%llu extents written (%llu MiB)\n" +#~ msgstr "%llu ekstensi ditulis (%llu MiB)\n" + +#~ msgid "Seek error on old image\n" +#~ msgstr "Error pencarian dalam image lama\n" + +#~ msgid "**Bad RR version attribute" +#~ msgstr "**Atribut versi RR buruk" + +#~ 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" + +#~ msgid "Read error on old image %s\n" +#~ msgstr "Error membaca dalam image lama %s\n" + +#~ msgid "Special parameters for cdwrite not specified with -C\n" +#~ msgstr "Parameter spesial untuk cdwrite tidak dispesifikasikan dengan -C\n" + +#~ msgid "Malformed cdwrite parameters\n" +#~ msgstr "Parameter cdwrite salah format\n" + +#~ 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" + +#~ msgid "Unable to insert transparent compressed file - name conflict\n" +#~ msgstr "" +#~ "Tidak dapat memasukan berkas terkompress secara transparan - konflik " +#~ "nama\n" + +#~ msgid "Extension record too long\n" +#~ msgstr "Rekaman ekstensi terlalu panjang\n" + +#~ msgid "Fatal goof\n" +#~ msgstr "Fatal goof\n" + +#~ msgid "Unable to generate unique name for file %s\n" +#~ msgstr "Tidak dapat menghasilkan nama unik untuk berkas %s\n" + +#~ msgid "Using %s for %s%s%s (%s)\n" +#~ msgstr "Menggunakan %s untuk %s%s%s (%s)\n" + +#~ msgid "Fatal error - RR overflow for file %s\n" +#~ msgstr "Fatal error -RR overflow untuk berkas %s\n" + +#~ msgid "Unable to sort directory %s\n" +#~ msgstr "Tidak dapat mengurutkan direktori %s\n" + +#~ msgid "Translation table size mismatch %d %d\n" +#~ msgstr "Besar tabel terjemahan tidak cocok %d %d\n" + +#~ msgid "Unable to locate directory parent\n" +#~ msgstr "Tidak dapat menempatkan direktori atasnya\n" + +#~ msgid "Scanning %s\n" +#~ msgstr "Memindai %s\n" + +#~ msgid "Unable to open directory %s\n" +#~ msgstr "Tidak dapat membuka direktori %s\n" + +#~ msgid "Ignoring file %s\n" +#~ msgstr "Mengabaikan berkas %s\n" + +#~ msgid "Overflow of stat buffer\n" +#~ msgstr "Overflow dari penyangga statistik\n" + +#~ msgid "Excluded by match: %s\n" +#~ msgstr "Diabaikan oleh kecocokan: %s\n" + +#~ msgid "Excluded: %s\n" +#~ msgstr "Diabaikan: %s\n" + +#~ msgid "Non-existant or inaccessible: %s\n" +#~ msgstr "Tidak ada atau tidak dapat diakses: %s\n" + +#~ msgid "Unable to stat file %s - ignoring and continuing.\n" +#~ msgstr "" +#~ "Tidak dapat memperoleh statistik berkas %s - mengabaikan dan " +#~ "melanjutkan.\n" + +#~ msgid "Symlink %s ignored - continuing.\n" +#~ msgstr "Link simbolik %s diabaikan - melanjutkan.\n" + +#~ msgid "Already cached directory seen (%s)\n" +#~ msgstr "Direktori yang telah dicache terlihat (%s)\n" + +#~ msgid "File %s is not readable (%s) - ignoring\n" +#~ msgstr "Berkas %s tidak dapat dibaca (%s) - mengabaikan\n" + +#~ msgid "Directory loop - fatal goof (%s %lx %lu).\n" +#~ msgstr "Loop direktori - fatal goof (%s %lx %lu).\n" + +#~ msgid "Unknown file type %s - ignoring and continuing.\n" +#~ msgstr "Tipe berkas %s tidak diketahui - mengabaikan dan melanjutkan.\n" + +#~ msgid "Hidden from ISO9660 tree: %s\n" +#~ msgstr "Tersembunyi dari pohon ISO9660: %s\n" + +#~ msgid "Hidden from Joliet tree: %s\n" +#~ msgstr "Tersembunyi dari pohon joliet: %s\n" + +#~ msgid "Directories too deep %s\n" +#~ msgstr "Direktori terlalu dalam %s\n" + +#~ msgid "Unable to delete non-empty directory\n" +#~ msgstr "Tidak dapat menghapus direktori yang tidak kosong\n" + +#~ msgid "Unable to locate child directory in parent list\n" +#~ msgstr "Tidak dapat menemukan direktori anak dalam daftar orang-tua\n" + +#~ msgid "call to search_tree_file with an absolute path, stripping\n" +#~ msgstr "" +#~ "memanggil ke search_tree_file dengan sebuah jalur absolut, dipotong\n" + +#~ msgid "initial path separator. Hope this was intended...\n" +#~ msgstr "jalur pemisah awal. Semoga ini yang diinginkan...\n" + +#~ msgid "Cannot open '%s'" +#~ msgstr "Tidak dapat membuka '%s'" + +#~ msgid "cannot fwrite %llu*%llu\n" +#~ msgstr "tidak dapat fwrite %llu*%llu\n" + +#~ msgid "cannot open %s\n" +#~ msgstr "tidak dapat membuka %s\n" + +#~ msgid "cannot read %llu bytes from %s" +#~ msgstr "tidak dapat membaca %llu bytes dari %s" + +#~ msgid "%6.2f%% done, estimate finish %s" +#~ msgstr "%6.2f%% selesai, kira kira selesai %s" + +#~ msgid "Cache hit for %s%s%s\n" +#~ msgstr "Cache kena untuk %s%s%s\n" + +#~ msgid "Unexpected directory length %d %d %s\n" +#~ msgstr "Panjang direktori tidak terduga %d %d %s\n" + +#~ msgid "Continuation entry record length mismatch (%d %d).\n" +#~ msgstr "Panjang masukan rekaman lanjutan tidak cocok (%d %d).\n" + +#~ msgid "Path table lengths do not match %d %d\n" +#~ msgstr "Panjang jalur tabel tidak cocok %d %d\n" + +#~ msgid "Total extents scheduled to be written = %llu\n" +#~ msgstr "Total ekstensi telah terjadwal untuk ditulis = %llu\n" + +#~ msgid "Total extents actually written = %llu\n" +#~ msgstr "Total ekstensi yang sebenarnya tertulis = %llu\n" + +#~ 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" + +#~ msgid "Predicted = %d, written = %llu\n" +#~ msgstr "Diperkirakan = %d, tertulis = %llu\n" + +#~ msgid "Total translation table size: %d\n" +#~ msgstr "Total besar tabel terjemahan: %d\n" + +#~ msgid "Total rockridge attributes bytes: %d\n" +#~ msgstr "Total atribut rockridge bytes: %d\n" + +#~ msgid "Total directory bytes: %d\n" +#~ msgstr "Total bytes direktori: %d\n" + +#~ msgid "Path table size(bytes): %d\n" +#~ msgstr "Ukuran tabel jalur(bytes): %d\n" + +#~ msgid "Unable to open %s" +#~ msgstr "Tidak dapat membuka %s" + +#~ msgid "ESC to return previous menu." +#~ msgstr "ESC kembali ke menu sebelumnya." + +#~ msgid "Booting '%s'" +#~ msgstr "Mem-boot '%s'" + +#~ msgid "Falling back to '%s'" +#~ msgstr "Kembali ke '%s'" + +#~ msgid "Failed to boot default entries.\n" +#~ msgstr "Gagal untuk mem-boot masukan baku.\n" + +#~ 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 "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'" --- grub2-1.98+20100804.orig/po/grub.pot +++ grub2-1.98+20100804/po/grub.pot @@ -0,0 +1,1213 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-06-19 01:35+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: commands/acpi.c:40 +msgid "Don't load host tables specified by comma-separated list." +msgstr "" + +#: commands/acpi.c:43 +msgid "Load only tables specified by comma-separated list." +msgstr "" + +#: commands/acpi.c:44 +msgid "Expose v1 tables." +msgstr "" + +#: commands/acpi.c:45 +msgid "Expose v2 and v3 tables." +msgstr "" + +#: commands/acpi.c:46 +msgid "Set OEMID of RSDP, XSDT and RSDT." +msgstr "" + +#: commands/acpi.c:48 +msgid "Set OEMTABLE ID of RSDP, XSDT and RSDT." +msgstr "" + +#: commands/acpi.c:50 +msgid "Set OEMTABLE revision of RSDP, XSDT and RSDT." +msgstr "" + +#: commands/acpi.c:52 +msgid "Set creator field of RSDP, XSDT and RSDT." +msgstr "" + +#: commands/acpi.c:54 +msgid "Set creator revision of RSDP, XSDT and RSDT." +msgstr "" + +#: commands/acpi.c:55 +msgid "" +"Don't update EBDA. May fix failures or hangs on some. BIOSes but makes it " +"ineffective with OS not receiving RSDP from GRUB." +msgstr "" + +#: commands/acpi.c:763 +msgid "" +"[-1|-2] [--exclude=TABLE1,TABLE2|--load-only=table1,table2] FILE1 [FILE2] " +"[...]" +msgstr "" + +#: commands/acpi.c:766 +msgid "Load host ACPI tables and tables specified by arguments." +msgstr "" + +#: commands/blocklist.c:113 commands/cat.c:82 commands/configfile.c:57 +#: commands/configfile.c:60 commands/configfile.c:65 commands/crc.c:64 +#: commands/minicmd.c:353 loader/i386/bsd.c:1287 loader/i386/bsd.c:1291 +#: loader/i386/bsd.c:1295 +msgid "FILE" +msgstr "" + +#: commands/blocklist.c:113 +msgid "Print a block list." +msgstr "" + +#: commands/boot.c:190 +msgid "Boot an operating system." +msgstr "" + +#: commands/cat.c:82 commands/minicmd.c:353 +msgid "Show the contents of a file." +msgstr "" + +#: commands/cmp.c:113 +msgid "FILE1 FILE2" +msgstr "" + +#: commands/cmp.c:113 +msgid "Compare two files." +msgstr "" + +#: commands/configfile.c:57 +msgid "Load another config file." +msgstr "" + +#: commands/configfile.c:61 commands/configfile.c:66 +msgid "Load another config file without changing context." +msgstr "" + +#: commands/crc.c:65 +msgid "Calculate the crc32 checksum of a file." +msgstr "" + +#: commands/date.c:139 +msgid "[[year-]month-day] [hour:minute[:second]]" +msgstr "" + +#: commands/date.c:140 +msgid "Command to display/set current datetime." +msgstr "" + +#: commands/echo.c:27 +msgid "Do not output the trailing newline." +msgstr "" + +#: commands/echo.c:28 +msgid "Enable interpretation of backslash escapes." +msgstr "" + +#: commands/echo.c:117 +msgid "[-e|-n] STRING" +msgstr "" + +#: commands/echo.c:117 +msgid "Display a line of text." +msgstr "" + +#: commands/efi/fixvideo.c:103 +msgid "Fix video problem." +msgstr "" + +#: commands/efi/loadbios.c:207 +msgid "Fake BIOS." +msgstr "" + +#: commands/efi/loadbios.c:211 +msgid "Load BIOS dump." +msgstr "" + +#: commands/gptsync.c:244 +msgid "DEVICE [PARTITION[+/-[TYPE]]] ..." +msgstr "" + +#: commands/gptsync.c:245 +msgid "" +"Fill hybrid MBR of GPT drive DEVICE. Specified partitions will be a part of " +"hybrid MBR. Up to 3 partitions are allowed. TYPE is an MBR type. + means " +"that partition is active. Only one partition can be active." +msgstr "" + +#: commands/halt.c:39 +msgid "" +"Halts the computer. This command does not work on all firmware " +"implementations." +msgstr "" + +#: commands/hdparm.c:30 +msgid "" +"Set Advanced Power Management\n" +"(1=low, ..., 254=high, 255=off)." +msgstr "" + +#: commands/hdparm.c:33 +msgid "Check power mode." +msgstr "" + +#: commands/hdparm.c:34 +msgid "Freeze ATA security settings until reset." +msgstr "" + +#: commands/hdparm.c:36 +msgid "Check SMART health status." +msgstr "" + +#: commands/hdparm.c:37 +msgid "" +"Set Automatic Acoustic Management\n" +"(0=off, 128=quiet, ..., 254=fast)." +msgstr "" + +#: commands/hdparm.c:40 +msgid "" +"Set standby timeout\n" +"(0=off, 1=5s, 2=10s, ..., 240=20m, 241=30m, ...)." +msgstr "" + +#: commands/hdparm.c:43 +msgid "Set drive to standby mode." +msgstr "" + +#: commands/hdparm.c:44 +msgid "Set drive to sleep mode." +msgstr "" + +#: commands/hdparm.c:45 +msgid "Print drive identity and settings." +msgstr "" + +#: commands/hdparm.c:47 +msgid "Dump contents of ATA IDENTIFY sector." +msgstr "" + +#: commands/hdparm.c:49 +msgid "Disable/enable SMART (0/1)." +msgstr "" + +#: commands/hdparm.c:50 +msgid "Do not print messages." +msgstr "" + +#: commands/hdparm.c:414 +msgid "[OPTIONS] DISK" +msgstr "" + +#: commands/hdparm.c:415 +msgid "Get/set ATA disk parameters." +msgstr "" + +#: commands/help.c:112 lib/arg.c:110 +msgid "Usage:" +msgstr "" + +#: commands/help.c:129 +msgid "[PATTERN ...]" +msgstr "" + +#: commands/help.c:130 +msgid "Show a help message." +msgstr "" + +#: commands/hexdump.c:30 +msgid "Skip offset bytes from the beginning of file." +msgstr "" + +#: commands/hexdump.c:32 +msgid "Read only LENGTH bytes." +msgstr "" + +#: commands/hexdump.c:125 +msgid "[OPTIONS] FILE_OR_DEVICE" +msgstr "" + +#: commands/hexdump.c:126 +msgid "Dump the contents of a file or memory." +msgstr "" + +#: commands/i386/cpuid.c:37 +msgid "Check for long mode flag (default)." +msgstr "" + +#: commands/i386/cpuid.c:92 +msgid "Check for CPU features." +msgstr "" + +#: commands/i386/pc/drivemap.c:37 +msgid "Show the current mappings." +msgstr "" + +#: commands/i386/pc/drivemap.c:38 +msgid "Reset all mappings to the default values." +msgstr "" + +#: commands/i386/pc/drivemap.c:39 +msgid "Perform both direct and reverse mappings." +msgstr "" + +#: commands/i386/pc/drivemap.c:406 +msgid "-l | -r | [-s] grubdev osdisk." +msgstr "" + +#: commands/i386/pc/drivemap.c:407 +msgid "Manage the BIOS drive mappings." +msgstr "" + +#: commands/i386/pc/halt.c:27 +msgid "Do not use APM to halt the computer." +msgstr "" + +#: commands/i386/pc/halt.c:51 +msgid "Halt the system, if possible using APM." +msgstr "" + +#: commands/i386/pc/play.c:266 +msgid "FILE | TEMPO [PITCH1 DURATION1] [PITCH2 DURATION2] ... " +msgstr "" + +#: commands/i386/pc/play.c:267 +msgid "Play a tune." +msgstr "" + +#: commands/i386/pc/pxecmd.c:46 +msgid "Unload PXE environment." +msgstr "" + +#: commands/i386/pc/vbeinfo.c:179 +msgid "List compatible VESA BIOS extension video modes." +msgstr "" + +#: commands/i386/pc/vbetest.c:173 +msgid "Test VESA BIOS Extension 2.0+ support." +msgstr "" + +#: commands/ieee1275/suspend.c:43 +msgid "Return to Open Firmware prompt." +msgstr "" + +#: commands/keystatus.c:28 +msgid "Check Shift key." +msgstr "" + +#: commands/keystatus.c:29 +msgid "Check Control key." +msgstr "" + +#: commands/keystatus.c:30 +msgid "Check Alt key." +msgstr "" + +#: commands/keystatus.c:85 +msgid "[--shift] [--ctrl] [--alt]" +msgstr "" + +#: commands/keystatus.c:86 +msgid "Check key modifier status." +msgstr "" + +#: commands/loadenv.c:33 +msgid "Specify filename." +msgstr "" + +#: commands/loadenv.c:378 commands/loadenv.c:384 +msgid "[-f FILE]" +msgstr "" + +#: commands/loadenv.c:379 +msgid "Load variables from environment block file." +msgstr "" + +#: commands/loadenv.c:385 +msgid "List variables from environment block file." +msgstr "" + +#: commands/loadenv.c:390 +msgid "[-f FILE] variable_name [...]" +msgstr "" + +#: commands/loadenv.c:391 +msgid "Save variables to environment block file." +msgstr "" + +#: commands/ls.c:37 +msgid "Show a long list with more detailed information." +msgstr "" + +#: commands/ls.c:38 +msgid "Print sizes in a human readable format." +msgstr "" + +#: commands/ls.c:39 +msgid "List all files." +msgstr "" + +#: commands/ls.c:269 +msgid "[-l|-h|-a] [FILE]" +msgstr "" + +#: commands/ls.c:270 +msgid "List devices and files." +msgstr "" + +#: commands/lsmmap.c:51 +msgid "List memory map provided by firmware." +msgstr "" + +#: commands/lspci.c:228 +msgid "List PCI devices." +msgstr "" + +#: commands/memrw.c:31 +msgid "Save read value into variable VARNAME." +msgstr "" + +#: commands/memrw.c:123 commands/memrw.c:126 commands/memrw.c:129 +#: commands/minicmd.c:362 +msgid "ADDR" +msgstr "" + +#: commands/memrw.c:123 +msgid "Read byte from ADDR." +msgstr "" + +#: commands/memrw.c:126 +msgid "Read word from ADDR." +msgstr "" + +#: commands/memrw.c:129 +msgid "Read dword from ADDR." +msgstr "" + +#: commands/memrw.c:132 commands/memrw.c:135 commands/memrw.c:138 +msgid "ADDR VALUE [MASK]" +msgstr "" + +#: commands/memrw.c:132 +msgid "Write byte VALUE to ADDR." +msgstr "" + +#: commands/memrw.c:135 +msgid "Write word VALUE to ADDR." +msgstr "" + +#: commands/memrw.c:138 +msgid "Write dword VALUE to ADDR." +msgstr "" + +#: commands/minicmd.c:356 +msgid "Show this message." +msgstr "" + +#: commands/minicmd.c:359 commands/probe.c:154 +msgid "[DEVICE]" +msgstr "" + +#: commands/minicmd.c:359 +msgid "Set the root device." +msgstr "" + +#: commands/minicmd.c:362 +msgid "Dump memory." +msgstr "" + +#: commands/minicmd.c:365 +msgid "MODULE" +msgstr "" + +#: commands/minicmd.c:365 +msgid "Remove a module." +msgstr "" + +#: commands/minicmd.c:368 +msgid "Show loaded modules." +msgstr "" + +#: commands/minicmd.c:371 +msgid "Exit from GRUB." +msgstr "" + +#: commands/minicmd.c:374 +msgid "Clear the screen." +msgstr "" + +#: commands/parttool.c:325 +msgid "PARTITION COMMANDS" +msgstr "" + +#: commands/password.c:78 +msgid "USER PASSWORD" +msgstr "" + +#: commands/password.c:79 +msgid "Set user password (plaintext). Unrecommended and insecure." +msgstr "" + +#: commands/probe.c:38 +msgid "Set a variable to return value." +msgstr "" + +#: commands/probe.c:39 +msgid "Determine driver." +msgstr "" + +#: commands/probe.c:40 +msgid "Determine partition map type." +msgstr "" + +#: commands/probe.c:41 +msgid "Determine filesystem type." +msgstr "" + +#: commands/probe.c:42 +msgid "Determine filesystem UUID." +msgstr "" + +#: commands/probe.c:43 +msgid "Determine filesystem label." +msgstr "" + +#: commands/probe.c:155 +msgid "Retrieve device info." +msgstr "" + +#: commands/read.c:83 +msgid "[ENVVAR]" +msgstr "" + +#: commands/read.c:84 +msgid "Set variable with user input." +msgstr "" + +#: commands/reboot.c:39 +msgid "Reboot the computer." +msgstr "" + +#: commands/search.c:161 +msgid "NAME [VARIABLE]" +msgstr "" + +#: commands/search_file.c:5 +msgid "" +"Search devices by file. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" + +#: commands/search_label.c:5 +msgid "" +"Search devices by label. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" + +#: commands/search_uuid.c:5 +msgid "" +"Search devices by UUID. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" + +#: commands/sleep.c:30 +msgid "Verbose countdown." +msgstr "" + +#: commands/sleep.c:31 +msgid "Interruptible with ESC." +msgstr "" + +#: commands/sleep.c:105 +msgid "NUMBER_OF_SECONDS" +msgstr "" + +#: commands/sleep.c:106 +msgid "Wait for a specified number of seconds." +msgstr "" + +#: commands/test.c:424 +msgid "EXPRESSION ]" +msgstr "" + +#: commands/test.c:424 commands/test.c:426 +msgid "Evaluate an expression." +msgstr "" + +#: commands/test.c:426 +msgid "EXPRESSION" +msgstr "" + +#: commands/true.c:47 +msgid "Do nothing, successfully." +msgstr "" + +#: commands/true.c:50 +msgid "Do nothing, unsuccessfully." +msgstr "" + +#: commands/usbtest.c:208 +msgid "Test USB support." +msgstr "" + +#: commands/videotest.c:180 +msgid "Test video subsystem." +msgstr "" + +#: commands/xnu_uuid.c:92 +msgid "GRUBUUID [VARNAME]" +msgstr "" + +#: commands/xnu_uuid.c:93 +msgid "Transform 64-bit UUID to format suitable for XNU." +msgstr "" + +#: disk/loopback.c:40 +msgid "Delete the loopback device entry." +msgstr "" + +#: disk/loopback.c:41 +msgid "Simulate a hard drive with partitions." +msgstr "" + +#: disk/loopback.c:249 +msgid "[-d|-p] DEVICENAME FILE." +msgstr "" + +#: disk/loopback.c:250 +msgid "Make a device of a file." +msgstr "" + +#: hello/hello.c:43 +msgid "Say \"Hello World\"." +msgstr "" + +#: lib/arg.c:34 +msgid "Display this help and exit." +msgstr "" + +#: lib/arg.c:36 +msgid "Display the usage of this command and exit." +msgstr "" + +#: loader/efi/appleloader.c:325 +msgid "Boot legacy system." +msgstr "" + +#: loader/efi/chainloader.c:340 loader/i386/pc/chainloader.c:166 +msgid "Load another boot loader." +msgstr "" + +#: loader/i386/bsd.c:65 +msgid "Display output on all consoles." +msgstr "" + +#: loader/i386/bsd.c:66 +msgid "Use serial console." +msgstr "" + +#: loader/i386/bsd.c:67 loader/i386/bsd.c:93 loader/i386/bsd.c:114 +msgid "Ask for file name to reboot from." +msgstr "" + +#: loader/i386/bsd.c:68 +msgid "Use CDROM as root." +msgstr "" + +#: loader/i386/bsd.c:69 +msgid "Invoke user configuration routing." +msgstr "" + +#: loader/i386/bsd.c:70 loader/i386/bsd.c:97 loader/i386/bsd.c:117 +msgid "Enter in KDB on boot." +msgstr "" + +#: loader/i386/bsd.c:71 +msgid "Use GDB remote debugger instead of DDB." +msgstr "" + +#: loader/i386/bsd.c:72 +msgid "Disable all boot output." +msgstr "" + +#: loader/i386/bsd.c:74 +msgid "Wait for keypress after every line of output." +msgstr "" + +#: loader/i386/bsd.c:76 +msgid "Use compiled-in rootdev." +msgstr "" + +#: loader/i386/bsd.c:77 loader/i386/bsd.c:96 loader/i386/bsd.c:120 +msgid "Boot into single mode." +msgstr "" + +#: loader/i386/bsd.c:78 loader/i386/bsd.c:121 +msgid "Boot with verbose messages." +msgstr "" + +#: loader/i386/bsd.c:94 loader/i386/bsd.c:115 +msgid "Don't reboot, just halt." +msgstr "" + +#: loader/i386/bsd.c:95 loader/i386/bsd.c:116 +msgid "Change configured devices." +msgstr "" + +#: loader/i386/bsd.c:98 loader/i386/bsd.c:124 +msgid "Set root device." +msgstr "" + +#: loader/i386/bsd.c:112 +msgid "Disable SMP." +msgstr "" + +#: loader/i386/bsd.c:113 +msgid "Disable ACPI." +msgstr "" + +#: loader/i386/bsd.c:119 +msgid "Don't display boot diagnostic messages." +msgstr "" + +#: loader/i386/bsd.c:122 +msgid "Boot with debug messages." +msgstr "" + +#: loader/i386/bsd.c:123 +msgid "Supress normal output (warnings remain)." +msgstr "" + +#: loader/i386/bsd.c:124 +msgid "DEVICE" +msgstr "" + +#: loader/i386/bsd.c:1287 +msgid "Load kernel of FreeBSD." +msgstr "" + +#: loader/i386/bsd.c:1291 +msgid "Load kernel of OpenBSD." +msgstr "" + +#: loader/i386/bsd.c:1295 +msgid "Load kernel of NetBSD." +msgstr "" + +#: loader/i386/bsd.c:1299 +msgid "Load FreeBSD env." +msgstr "" + +#: loader/i386/bsd.c:1302 +msgid "Load FreeBSD kernel module." +msgstr "" + +#: loader/i386/bsd.c:1305 +msgid "Load FreeBSD kernel module (ELF)." +msgstr "" + +#: loader/i386/efi/linux.c:1011 loader/i386/ieee1275/linux.c:301 +#: loader/i386/linux.c:1012 loader/i386/pc/linux.c:399 +#: loader/powerpc/ieee1275/linux.c:353 loader/sparc64/ieee1275/linux.c:519 +msgid "Load Linux." +msgstr "" + +#: loader/i386/efi/linux.c:1013 loader/i386/ieee1275/linux.c:303 +#: loader/i386/linux.c:1014 loader/i386/pc/linux.c:402 +#: loader/powerpc/ieee1275/linux.c:355 loader/sparc64/ieee1275/linux.c:521 +msgid "Load initrd." +msgstr "" + +#: loader/i386/xnu.c:1032 +msgid "Load device-properties dump." +msgstr "" + +#: loader/multiboot.c:337 +msgid "Load a multiboot 2 kernel." +msgstr "" + +#: loader/multiboot.c:340 +msgid "Load a multiboot 2 module." +msgstr "" + +#: loader/multiboot.c:343 +msgid "Load a multiboot kernel." +msgstr "" + +#: loader/multiboot.c:346 +msgid "Load a multiboot module." +msgstr "" + +#: loader/xnu.c:1428 +msgid "Load XNU image." +msgstr "" + +#: loader/xnu.c:1430 +msgid "Load 64-bit XNU image." +msgstr "" + +#: loader/xnu.c:1432 +msgid "Load XNU extension package." +msgstr "" + +#: loader/xnu.c:1434 +msgid "Load XNU extension." +msgstr "" + +#: loader/xnu.c:1436 +msgid "DIRECTORY [OSBundleRequired]" +msgstr "" + +#: loader/xnu.c:1437 +msgid "Load XNU extension directory." +msgstr "" + +#: loader/xnu.c:1444 +msgid "Load a splash image for XNU." +msgstr "" + +#: loader/xnu.c:1449 +msgid "Load XNU hibernate image." +msgstr "" + +#: normal/auth.c:217 +msgid "Enter username: " +msgstr "" + +#: normal/auth.c:222 +msgid "Enter password: " +msgstr "" + +#: normal/color.c:80 +#, c-format +msgid "Warning: syntax error (missing slash) in `%s'\n" +msgstr "" + +#: normal/color.c:89 +#, c-format +msgid "Warning: invalid foreground color `%s'\n" +msgstr "" + +#: normal/color.c:95 +#, c-format +msgid "Warning: invalid background color `%s'\n" +msgstr "" + +#: normal/dyncmd.c:144 +msgid "not loaded" +msgstr "" + +#: normal/main.c:415 +#, c-format +msgid "GNU GRUB version %s" +msgstr "" + +#: normal/main.c:552 +#, c-format +msgid "" +"Minimal BASH-like line editing is supported. For the first word, TAB lists " +"possible command completions. Anywhere else TAB lists possible device or " +"file completions. %s" +msgstr "" + +#: normal/main.c:555 +msgid "ESC at any time exits." +msgstr "" + +#: normal/main.c:670 +msgid "Enter normal mode." +msgstr "" + +#: normal/main.c:672 +msgid "Exit from normal mode." +msgstr "" + +#: normal/menu_entry.c:1061 +msgid "Possible commands are:" +msgstr "" + +#: normal/menu_entry.c:1065 +msgid "Possible devices are:" +msgstr "" + +#: normal/menu_entry.c:1069 +msgid "Possible files are:" +msgstr "" + +#: normal/menu_entry.c:1073 +msgid "Possible partitions are:" +msgstr "" + +#: normal/menu_entry.c:1077 +msgid "Possible arguments are:" +msgstr "" + +#: normal/menu_entry.c:1081 +msgid "Possible things are:" +msgstr "" + +#: normal/menu_entry.c:1185 +msgid "Booting a command list" +msgstr "" + +#: normal/menu_entry.c:1398 +msgid "Press any key to continue..." +msgstr "" + +#: normal/menu_text.c:180 +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"F1 to boot, F2=Ctrl-a, F3=Ctrl-e, F4 for a command-line or ESC to discard " +"edits and return to the GRUB menu." +msgstr "" + +#: normal/menu_text.c:185 +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"Ctrl-x to boot, Ctrl-c for a command-line or ESC to discard edits and return " +"to the GRUB menu." +msgstr "" + +#: normal/menu_text.c:193 +#, c-format +msgid "Use the %C and %C keys to select which entry is highlighted.\n" +msgstr "" + +#: normal/menu_text.c:210 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line. ESC to return previous menu.\n" +msgstr "" + +#: normal/menu_text.c:218 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line.\n" +msgstr "" + +#: normal/menu_text.c:370 +#, c-format +msgid "The highlighted entry will be executed automatically in %ds." +msgstr "" + +#: normal/misc.c:41 +#, c-format +msgid "Partition %s:" +msgstr "" + +#: normal/misc.c:46 +#, c-format +msgid "Device %s:" +msgstr "" + +#: normal/misc.c:52 +msgid "Filesystem cannot be accessed" +msgstr "" + +#: normal/misc.c:63 +#, c-format +msgid "Filesystem type %s" +msgstr "" + +#: normal/misc.c:73 +#, c-format +msgid "- Label \"%s\"" +msgstr "" + +#: normal/misc.c:88 +#, c-format +msgid "- Last modification time %d-%02d-%02d %02d:%02d:%02d %s" +msgstr "" + +#: normal/misc.c:111 +msgid "Unknown filesystem" +msgstr "" + +#: normal/misc.c:113 +msgid "Partition table" +msgstr "" + +#: term/serial.c:46 +msgid "Set the serial unit." +msgstr "" + +#: term/serial.c:47 +msgid "Set the serial port address." +msgstr "" + +#: term/serial.c:48 +msgid "Set the serial port speed." +msgstr "" + +#: term/serial.c:49 +msgid "Set the serial port word length." +msgstr "" + +#: term/serial.c:50 +msgid "Set the serial port parity." +msgstr "" + +#: term/serial.c:51 +msgid "Set the serial port stop bits." +msgstr "" + +#: term/serial.c:619 +msgid "[OPTIONS...]" +msgstr "" + +#: term/serial.c:620 +msgid "Configure serial port." +msgstr "" + +#: util/grub-mkimage.c:440 +msgid "the core image is too small" +msgstr "" + +#: util/grub-mkimage.c:451 +msgid "cannot compress the kernel image" +msgstr "" + +#: util/grub-mkimage.c:548 +msgid "prefix is too long" +msgstr "" + +#: util/grub-mkimage.c:672 +#, c-format +msgid "core image is too big (%p > %p)" +msgstr "" + +#: util/grub-mkimage.c:678 +msgid "the core image is too big" +msgstr "" + +#: util/grub-mkimage.c:683 +#, c-format +msgid "diskboot.img size must be %u bytes" +msgstr "" + +#: util/grub-mkimage.c:1168 util/i386/pc/grub-setup.c:619 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "" + +#: util/grub-mkimage.c:1187 +#, c-format +msgid "" +"Usage: %s [OPTION]... [MODULES]\n" +"\n" +"Make a bootable image of GRUB.\n" +"\n" +" -d, --directory=DIR use images and modules under DIR [default=%s/" +"@platform@]\n" +" -p, --prefix=DIR set grub_prefix directory [default=%s]\n" +" -m, --memdisk=FILE embed FILE as a memdisk image\n" +" -f, --font=FILE embed FILE as a boot font\n" +" -c, --config=FILE embed FILE as boot config\n" +" -n, --note add NOTE segment for CHRP Open Firmware\n" +" -o, --output=FILE output a generated image to FILE [default=stdout]\n" +" -O, --format=FORMAT generate an image in format\n" +" available formats: %s\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/grub-mkimage.c:1333 +#, c-format +msgid "cannot open %s" +msgstr "" + +#: util/i386/pc/grub-setup.c:164 +msgid "the first sector of the core file is not sector-aligned" +msgstr "" + +#: util/i386/pc/grub-setup.c:178 +msgid "non-sector-aligned data is found in the core file" +msgstr "" + +#: util/i386/pc/grub-setup.c:192 +msgid "the sectors of the core file are too fragmented" +msgstr "" + +#: util/i386/pc/grub-setup.c:203 +#, c-format +msgid "the size of `%s' is not %u" +msgstr "" + +#: util/i386/pc/grub-setup.c:220 +#, c-format +msgid "the size of `%s' is too small" +msgstr "" + +#: util/i386/pc/grub-setup.c:222 +#, c-format +msgid "the size of `%s' is too large" +msgstr "" + +#: 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:339 util/i386/pc/grub-setup.c:366 +msgid "" +"Attempting to install GRUB to a partitionless disk. This is a BAD idea." +msgstr "" + +#: util/i386/pc/grub-setup.c:345 +msgid "" +"Attempting to install GRUB to a partition instead of the MBR. This is a BAD " +"idea." +msgstr "" + +#: util/i386/pc/grub-setup.c:375 +msgid "No DOS-style partitions found" +msgstr "" + +#: util/i386/pc/grub-setup.c:380 +msgid "" +"This msdos-style partition label has no post-MBR gap; embedding won't be " +"possible!" +msgstr "" + +#: util/i386/pc/grub-setup.c:382 +msgid "" +"This GPT partition label has no BIOS Boot Partition; embedding won't be " +"possible!" +msgstr "" + +#: util/i386/pc/grub-setup.c:389 +msgid "Your core.img is unusually large. It won't fit in the embedding area." +msgstr "" + +#: util/i386/pc/grub-setup.c:391 +msgid "Your embedding area is unusually small. core.img won't fit in it." +msgstr "" + +#: util/i386/pc/grub-setup.c:436 +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:439 +msgid "" +"Embedding is not possible. GRUB can only be installed in this setup by " +"using blocklists. However, blocklists are UNRELIABLE and their use is " +"discouraged." +msgstr "" + +#: util/i386/pc/grub-setup.c:443 +msgid "if you really want blocklists, use --force" +msgstr "" + +#: util/i386/pc/grub-setup.c:462 +#, c-format +msgid "attempting to read the core image `%s' from GRUB" +msgstr "" + +#: util/i386/pc/grub-setup.c:463 +#, c-format +msgid "attempting to read the core image `%s' from GRUB again" +msgstr "" + +#: util/i386/pc/grub-setup.c:530 +#, c-format +msgid "cannot read `%s' correctly" +msgstr "" + +#: util/i386/pc/grub-setup.c:543 +msgid "no terminator in the core image" +msgstr "" + +#: util/i386/pc/grub-setup.c:554 +msgid "failed to read the first sector of the core image" +msgstr "" + +#: util/i386/pc/grub-setup.c:560 +msgid "failed to read the rest sectors of the core image" +msgstr "" + +#: util/i386/pc/grub-setup.c:579 +#, c-format +msgid "cannot open `%s'" +msgstr "" + +#: util/i386/pc/grub-setup.c:621 +#, c-format +msgid "" +"Usage: %s [OPTION]... DEVICE\n" +"\n" +"Set up images to boot from DEVICE.\n" +"DEVICE must be a GRUB device (e.g. `(hd0,1)').\n" +"\n" +"You should not normally run %s directly. Use grub-install instead.\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:753 +#, c-format +msgid "No device is specified.\n" +msgstr "" + +#: util/i386/pc/grub-setup.c:759 +#, c-format +msgid "Unknown extra argument `%s'.\n" +msgstr "" + +#: util/i386/pc/grub-setup.c:776 +#, c-format +msgid "Invalid device `%s'.\n" +msgstr "" + +#: util/i386/pc/grub-setup.c:789 +#, c-format +msgid "invalid root device `%s'" +msgstr "" + +#: util/i386/pc/grub-setup.c:802 +msgid "cannot guess the root device. Specify the option `--root-device'" +msgstr "" --- grub2-1.98+20100804.orig/po/sv.po +++ grub2-1.98+20100804/po/sv.po @@ -0,0 +1,1831 @@ +# Swedish strings for grub +# Copyright (C) 2009, 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the grub package. +# Martin Bagge , 2009. +# Daniel Nylander , 2009, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub 1.97+20100124\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-06-19 01:35+0100\n" +"PO-Revision-Date: 2010-02-01 22:15+0100\n" +"Last-Translator: Daniel Nylander \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: commands/acpi.c:40 +msgid "Don't load host tables specified by comma-separated list." +msgstr "" + +#: commands/acpi.c:43 +msgid "Load only tables specified by comma-separated list." +msgstr "" + +#: commands/acpi.c:44 +msgid "Expose v1 tables." +msgstr "" + +#: commands/acpi.c:45 +msgid "Expose v2 and v3 tables." +msgstr "" + +#: commands/acpi.c:46 +msgid "Set OEMID of RSDP, XSDT and RSDT." +msgstr "" + +#: commands/acpi.c:48 +msgid "Set OEMTABLE ID of RSDP, XSDT and RSDT." +msgstr "" + +#: commands/acpi.c:50 +msgid "Set OEMTABLE revision of RSDP, XSDT and RSDT." +msgstr "" + +#: commands/acpi.c:52 +msgid "Set creator field of RSDP, XSDT and RSDT." +msgstr "" + +#: commands/acpi.c:54 +msgid "Set creator revision of RSDP, XSDT and RSDT." +msgstr "" + +#: commands/acpi.c:55 +msgid "" +"Don't update EBDA. May fix failures or hangs on some. BIOSes but makes it " +"ineffective with OS not receiving RSDP from GRUB." +msgstr "" + +#: commands/acpi.c:763 +msgid "" +"[-1|-2] [--exclude=TABLE1,TABLE2|--load-only=table1,table2] FILE1 [FILE2] " +"[...]" +msgstr "" + +#: commands/acpi.c:766 +msgid "Load host ACPI tables and tables specified by arguments." +msgstr "" + +#: commands/blocklist.c:113 commands/cat.c:82 commands/configfile.c:57 +#: commands/configfile.c:60 commands/configfile.c:65 commands/crc.c:64 +#: commands/minicmd.c:353 loader/i386/bsd.c:1287 loader/i386/bsd.c:1291 +#: loader/i386/bsd.c:1295 +msgid "FILE" +msgstr "FIL" + +#: commands/blocklist.c:113 +msgid "Print a block list." +msgstr "Skriv ut en blocklista." + +#: commands/boot.c:190 +msgid "Boot an operating system." +msgstr "Starta upp ett operativsystem." + +#: commands/cat.c:82 commands/minicmd.c:353 +msgid "Show the contents of a file." +msgstr "Visa innehållet av en fil." + +#: commands/cmp.c:113 +msgid "FILE1 FILE2" +msgstr "FIL1 FIL2" + +#: commands/cmp.c:113 +msgid "Compare two files." +msgstr "Jämför två filer." + +#: commands/configfile.c:57 +msgid "Load another config file." +msgstr "Läs in en annan konfigurationsfil." + +#: commands/configfile.c:61 commands/configfile.c:66 +msgid "Load another config file without changing context." +msgstr "" + +#: commands/crc.c:65 +msgid "Calculate the crc32 checksum of a file." +msgstr "" + +#: commands/date.c:139 +msgid "[[year-]month-day] [hour:minute[:second]]" +msgstr "" + +#: commands/date.c:140 +msgid "Command to display/set current datetime." +msgstr "" + +#: commands/echo.c:27 +msgid "Do not output the trailing newline." +msgstr "" + +#: commands/echo.c:28 +msgid "Enable interpretation of backslash escapes." +msgstr "" + +#: commands/echo.c:117 +msgid "[-e|-n] STRING" +msgstr "[-e|-n] STRÄNG" + +#: commands/echo.c:117 +msgid "Display a line of text." +msgstr "Visa en rad text." + +#: commands/efi/fixvideo.c:103 +msgid "Fix video problem." +msgstr "" + +#: commands/efi/loadbios.c:207 +msgid "Fake BIOS." +msgstr "" + +#: commands/efi/loadbios.c:211 +msgid "Load BIOS dump." +msgstr "" + +#: commands/gptsync.c:244 +msgid "DEVICE [PARTITION[+/-[TYPE]]] ..." +msgstr "ENHET [PARTITION[+/-[TYP]]] ..." + +#: commands/gptsync.c:245 +msgid "" +"Fill hybrid MBR of GPT drive DEVICE. Specified partitions will be a part of " +"hybrid MBR. Up to 3 partitions are allowed. TYPE is an MBR type. + means " +"that partition is active. Only one partition can be active." +msgstr "" + +#: commands/halt.c:39 +msgid "" +"Halts the computer. This command does not work on all firmware " +"implementations." +msgstr "" + +#: commands/hdparm.c:30 +msgid "" +"Set Advanced Power Management\n" +"(1=low, ..., 254=high, 255=off)." +msgstr "" + +#: commands/hdparm.c:33 +msgid "Check power mode." +msgstr "" + +#: commands/hdparm.c:34 +msgid "Freeze ATA security settings until reset." +msgstr "" + +#: commands/hdparm.c:36 +msgid "Check SMART health status." +msgstr "" + +#: commands/hdparm.c:37 +msgid "" +"Set Automatic Acoustic Management\n" +"(0=off, 128=quiet, ..., 254=fast)." +msgstr "" + +#: commands/hdparm.c:40 +msgid "" +"Set standby timeout\n" +"(0=off, 1=5s, 2=10s, ..., 240=20m, 241=30m, ...)." +msgstr "" + +#: commands/hdparm.c:43 +msgid "Set drive to standby mode." +msgstr "" + +#: commands/hdparm.c:44 +msgid "Set drive to sleep mode." +msgstr "" + +#: commands/hdparm.c:45 +msgid "Print drive identity and settings." +msgstr "" + +#: commands/hdparm.c:47 +msgid "Dump contents of ATA IDENTIFY sector." +msgstr "" + +#: commands/hdparm.c:49 +msgid "Disable/enable SMART (0/1)." +msgstr "Inaktivera/aktivera SMART (0/1)." + +#: commands/hdparm.c:50 +msgid "Do not print messages." +msgstr "Skriv inte ut meddelanden." + +#: commands/hdparm.c:414 +msgid "[OPTIONS] DISK" +msgstr "[FLAGGOR] DISK" + +#: commands/hdparm.c:415 +msgid "Get/set ATA disk parameters." +msgstr "" + +#: commands/help.c:112 lib/arg.c:110 +msgid "Usage:" +msgstr "Användning:" + +#: commands/help.c:129 +msgid "[PATTERN ...]" +msgstr "[MÖNSTER ...]" + +#: commands/help.c:130 +msgid "Show a help message." +msgstr "Visa ett hjälpmeddelande." + +#: commands/hexdump.c:30 +msgid "Skip offset bytes from the beginning of file." +msgstr "" + +#: commands/hexdump.c:32 +msgid "Read only LENGTH bytes." +msgstr "" + +#: commands/hexdump.c:125 +msgid "[OPTIONS] FILE_OR_DEVICE" +msgstr "[FLAGGOR] FIL_ELLER_ENHET" + +#: commands/hexdump.c:126 +msgid "Dump the contents of a file or memory." +msgstr "" + +#: commands/i386/cpuid.c:37 +msgid "Check for long mode flag (default)." +msgstr "" + +#: commands/i386/cpuid.c:92 +msgid "Check for CPU features." +msgstr "" + +#: commands/i386/pc/drivemap.c:37 +msgid "Show the current mappings." +msgstr "" + +#: commands/i386/pc/drivemap.c:38 +msgid "Reset all mappings to the default values." +msgstr "" + +#: commands/i386/pc/drivemap.c:39 +msgid "Perform both direct and reverse mappings." +msgstr "" + +#: commands/i386/pc/drivemap.c:406 +msgid "-l | -r | [-s] grubdev osdisk." +msgstr "" + +#: commands/i386/pc/drivemap.c:407 +msgid "Manage the BIOS drive mappings." +msgstr "" + +#: commands/i386/pc/halt.c:27 +msgid "Do not use APM to halt the computer." +msgstr "" + +#: commands/i386/pc/halt.c:51 +msgid "Halt the system, if possible using APM." +msgstr "" + +#: commands/i386/pc/play.c:266 +msgid "FILE | TEMPO [PITCH1 DURATION1] [PITCH2 DURATION2] ... " +msgstr "" + +#: commands/i386/pc/play.c:267 +msgid "Play a tune." +msgstr "" + +#: commands/i386/pc/pxecmd.c:46 +msgid "Unload PXE environment." +msgstr "" + +#: commands/i386/pc/vbeinfo.c:179 +msgid "List compatible VESA BIOS extension video modes." +msgstr "" + +#: commands/i386/pc/vbetest.c:173 +msgid "Test VESA BIOS Extension 2.0+ support." +msgstr "" + +#: commands/ieee1275/suspend.c:43 +msgid "Return to Open Firmware prompt." +msgstr "" + +#: commands/keystatus.c:28 +msgid "Check Shift key." +msgstr "" + +#: commands/keystatus.c:29 +msgid "Check Control key." +msgstr "" + +#: commands/keystatus.c:30 +msgid "Check Alt key." +msgstr "" + +#: commands/keystatus.c:85 +msgid "[--shift] [--ctrl] [--alt]" +msgstr "[--shift] [--ctrl] [--alt]" + +#: commands/keystatus.c:86 +msgid "Check key modifier status." +msgstr "" + +#: commands/loadenv.c:33 +msgid "Specify filename." +msgstr "Ange filnamn." + +#: commands/loadenv.c:378 commands/loadenv.c:384 +msgid "[-f FILE]" +msgstr "[-f FIL]" + +#: commands/loadenv.c:379 +msgid "Load variables from environment block file." +msgstr "" + +#: commands/loadenv.c:385 +msgid "List variables from environment block file." +msgstr "" + +#: commands/loadenv.c:390 +msgid "[-f FILE] variable_name [...]" +msgstr "[-f FIL] variabelnamn [...]" + +#: commands/loadenv.c:391 +msgid "Save variables to environment block file." +msgstr "" + +#: commands/ls.c:37 +msgid "Show a long list with more detailed information." +msgstr "" + +#: commands/ls.c:38 +msgid "Print sizes in a human readable format." +msgstr "" + +#: commands/ls.c:39 +msgid "List all files." +msgstr "Lista alla filer." + +#: commands/ls.c:269 +msgid "[-l|-h|-a] [FILE]" +msgstr "[-l|-h|-a] [FIL]" + +#: commands/ls.c:270 +msgid "List devices and files." +msgstr "Lista enheter och filer." + +#: commands/lsmmap.c:51 +msgid "List memory map provided by firmware." +msgstr "" + +#: commands/lspci.c:228 +msgid "List PCI devices." +msgstr "Lista PCI-enheter." + +#: commands/memrw.c:31 +msgid "Save read value into variable VARNAME." +msgstr "" + +#: commands/memrw.c:123 commands/memrw.c:126 commands/memrw.c:129 +#: commands/minicmd.c:362 +msgid "ADDR" +msgstr "ADR" + +#: commands/memrw.c:123 +msgid "Read byte from ADDR." +msgstr "Läs byte från ADR." + +#: commands/memrw.c:126 +msgid "Read word from ADDR." +msgstr "Läs word från ADR." + +#: commands/memrw.c:129 +msgid "Read dword from ADDR." +msgstr "Läs dword från ADR." + +#: commands/memrw.c:132 commands/memrw.c:135 commands/memrw.c:138 +msgid "ADDR VALUE [MASK]" +msgstr "" + +#: commands/memrw.c:132 +msgid "Write byte VALUE to ADDR." +msgstr "" + +#: commands/memrw.c:135 +msgid "Write word VALUE to ADDR." +msgstr "" + +#: commands/memrw.c:138 +msgid "Write dword VALUE to ADDR." +msgstr "" + +#: commands/minicmd.c:356 +msgid "Show this message." +msgstr "Visa detta meddelande." + +#: commands/minicmd.c:359 commands/probe.c:154 +msgid "[DEVICE]" +msgstr "[ENHET]" + +#: commands/minicmd.c:359 +msgid "Set the root device." +msgstr "" + +#: commands/minicmd.c:362 +msgid "Dump memory." +msgstr "" + +#: commands/minicmd.c:365 +msgid "MODULE" +msgstr "MODUL" + +#: commands/minicmd.c:365 +msgid "Remove a module." +msgstr "Ta bort en modul." + +#: commands/minicmd.c:368 +msgid "Show loaded modules." +msgstr "Visa inlästa moduler." + +#: commands/minicmd.c:371 +msgid "Exit from GRUB." +msgstr "Avsluta GRUB." + +#: commands/minicmd.c:374 +msgid "Clear the screen." +msgstr "Töm skärmen." + +#: commands/parttool.c:325 +msgid "PARTITION COMMANDS" +msgstr "" + +#: commands/password.c:78 +msgid "USER PASSWORD" +msgstr "" + +#: commands/password.c:79 +msgid "Set user password (plaintext). Unrecommended and insecure." +msgstr "" + +#: commands/probe.c:38 +msgid "Set a variable to return value." +msgstr "" + +#: commands/probe.c:39 +msgid "Determine driver." +msgstr "Fastställ drivrutin." + +#: commands/probe.c:40 +msgid "Determine partition map type." +msgstr "" + +#: commands/probe.c:41 +msgid "Determine filesystem type." +msgstr "Fastställ filsystemstyp." + +#: commands/probe.c:42 +msgid "Determine filesystem UUID." +msgstr "" + +#: commands/probe.c:43 +msgid "Determine filesystem label." +msgstr "" + +#: commands/probe.c:155 +msgid "Retrieve device info." +msgstr "" + +#: commands/read.c:83 +msgid "[ENVVAR]" +msgstr "" + +#: commands/read.c:84 +msgid "Set variable with user input." +msgstr "" + +#: commands/reboot.c:39 +msgid "Reboot the computer." +msgstr "Starta om datorn." + +#: commands/search.c:161 +msgid "NAME [VARIABLE]" +msgstr "NAMN [VARIABEL]" + +#: commands/search_file.c:5 +msgid "" +"Search devices by file. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" + +#: commands/search_label.c:5 +msgid "" +"Search devices by label. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" + +#: commands/search_uuid.c:5 +msgid "" +"Search devices by UUID. If VARIABLE is specified, the first device found is " +"set to a variable." +msgstr "" + +#: commands/sleep.c:30 +msgid "Verbose countdown." +msgstr "" + +#: commands/sleep.c:31 +msgid "Interruptible with ESC." +msgstr "" + +#: commands/sleep.c:105 +msgid "NUMBER_OF_SECONDS" +msgstr "ANTAL_SEKUNDER" + +#: commands/sleep.c:106 +msgid "Wait for a specified number of seconds." +msgstr "Vänta ett angivet antal sekunder." + +#: commands/test.c:424 +msgid "EXPRESSION ]" +msgstr "UTTRYCK ]" + +#: commands/test.c:424 commands/test.c:426 +msgid "Evaluate an expression." +msgstr "Evaluera ett uttryck." + +#: commands/test.c:426 +msgid "EXPRESSION" +msgstr "UTTRYCK" + +#: commands/true.c:47 +msgid "Do nothing, successfully." +msgstr "Gör ingenting, lyckas." + +#: commands/true.c:50 +msgid "Do nothing, unsuccessfully." +msgstr "Gör ingenting, misslyckas." + +#: commands/usbtest.c:208 +msgid "Test USB support." +msgstr "Testa USB-stöd." + +#: commands/videotest.c:180 +msgid "Test video subsystem." +msgstr "" + +#: commands/xnu_uuid.c:92 +msgid "GRUBUUID [VARNAME]" +msgstr "" + +#: commands/xnu_uuid.c:93 +msgid "Transform 64-bit UUID to format suitable for XNU." +msgstr "" + +#: disk/loopback.c:40 +msgid "Delete the loopback device entry." +msgstr "" + +#: disk/loopback.c:41 +msgid "Simulate a hard drive with partitions." +msgstr "Simulera en hårddisk med partitioner." + +#: disk/loopback.c:249 +msgid "[-d|-p] DEVICENAME FILE." +msgstr "[-d|-p] ENHETSNAMN FIL." + +#: disk/loopback.c:250 +msgid "Make a device of a file." +msgstr "Gör en enhet av en fil." + +#: hello/hello.c:43 +msgid "Say \"Hello World\"." +msgstr "Säg \"Hello World\"." + +#: lib/arg.c:34 +msgid "Display this help and exit." +msgstr "Visa denna hjälp och avsluta." + +#: lib/arg.c:36 +msgid "Display the usage of this command and exit." +msgstr "" + +#: loader/efi/appleloader.c:325 +msgid "Boot legacy system." +msgstr "" + +#: loader/efi/chainloader.c:340 loader/i386/pc/chainloader.c:166 +msgid "Load another boot loader." +msgstr "Läs in en annan starthanterare." + +#: loader/i386/bsd.c:65 +msgid "Display output on all consoles." +msgstr "Visa utskrift på alla konsoller." + +#: loader/i386/bsd.c:66 +msgid "Use serial console." +msgstr "Använd seriekonsoll." + +#: loader/i386/bsd.c:67 loader/i386/bsd.c:93 loader/i386/bsd.c:114 +msgid "Ask for file name to reboot from." +msgstr "Fråga efter filnamn att starta upp från." + +#: loader/i386/bsd.c:68 +msgid "Use CDROM as root." +msgstr "Använd CDROM som rot." + +#: loader/i386/bsd.c:69 +msgid "Invoke user configuration routing." +msgstr "" + +#: loader/i386/bsd.c:70 loader/i386/bsd.c:97 loader/i386/bsd.c:117 +msgid "Enter in KDB on boot." +msgstr "Ange i KDB vid uppstart." + +#: loader/i386/bsd.c:71 +msgid "Use GDB remote debugger instead of DDB." +msgstr "Använd fjärrfelsökaren GDB istället för DDB." + +#: loader/i386/bsd.c:72 +msgid "Disable all boot output." +msgstr "Inaktivera all utskrift under uppstart." + +#: loader/i386/bsd.c:74 +msgid "Wait for keypress after every line of output." +msgstr "Vänta på tangenttryckning efter varje utskriftsrad." + +#: loader/i386/bsd.c:76 +msgid "Use compiled-in rootdev." +msgstr "Använd inkompilerad rootdev." + +#: loader/i386/bsd.c:77 loader/i386/bsd.c:96 loader/i386/bsd.c:120 +msgid "Boot into single mode." +msgstr "Starta upp i enanvändarläge." + +#: loader/i386/bsd.c:78 loader/i386/bsd.c:121 +msgid "Boot with verbose messages." +msgstr "Starta upp med informativa meddelanden." + +#: loader/i386/bsd.c:94 loader/i386/bsd.c:115 +msgid "Don't reboot, just halt." +msgstr "Starta inte om, stanna bara." + +#: loader/i386/bsd.c:95 loader/i386/bsd.c:116 +msgid "Change configured devices." +msgstr "Ändra konfigurerade enheter." + +#: loader/i386/bsd.c:98 loader/i386/bsd.c:124 +msgid "Set root device." +msgstr "Ange rotenhet." + +#: loader/i386/bsd.c:112 +msgid "Disable SMP." +msgstr "Inaktivera SMP." + +#: loader/i386/bsd.c:113 +msgid "Disable ACPI." +msgstr "Inaktivera ACPI." + +#: loader/i386/bsd.c:119 +msgid "Don't display boot diagnostic messages." +msgstr "Visa inte uppstartsmeddelanden för diagnostik." + +#: loader/i386/bsd.c:122 +msgid "Boot with debug messages." +msgstr "Starta upp med felsökningsmeddelanden." + +#: loader/i386/bsd.c:123 +msgid "Supress normal output (warnings remain)." +msgstr "" + +#: loader/i386/bsd.c:124 +msgid "DEVICE" +msgstr "ENHET" + +#: loader/i386/bsd.c:1287 +msgid "Load kernel of FreeBSD." +msgstr "Läs in kärna för FreeBSD." + +#: loader/i386/bsd.c:1291 +msgid "Load kernel of OpenBSD." +msgstr "Läs in kärna för OpenBSD." + +#: loader/i386/bsd.c:1295 +msgid "Load kernel of NetBSD." +msgstr "Läs in kärna för NetBSD." + +#: loader/i386/bsd.c:1299 +msgid "Load FreeBSD env." +msgstr "" + +#: loader/i386/bsd.c:1302 +msgid "Load FreeBSD kernel module." +msgstr "Läs in kärnmodul för FreeBSD." + +#: loader/i386/bsd.c:1305 +msgid "Load FreeBSD kernel module (ELF)." +msgstr "Läs in kärnmodul för FreeBSD (ELF)." + +#: loader/i386/efi/linux.c:1011 loader/i386/ieee1275/linux.c:301 +#: loader/i386/linux.c:1012 loader/i386/pc/linux.c:399 +#: loader/powerpc/ieee1275/linux.c:353 loader/sparc64/ieee1275/linux.c:519 +msgid "Load Linux." +msgstr "Läs in Linux." + +#: loader/i386/efi/linux.c:1013 loader/i386/ieee1275/linux.c:303 +#: loader/i386/linux.c:1014 loader/i386/pc/linux.c:402 +#: loader/powerpc/ieee1275/linux.c:355 loader/sparc64/ieee1275/linux.c:521 +msgid "Load initrd." +msgstr "Läs in initrd." + +#: loader/i386/xnu.c:1032 +msgid "Load device-properties dump." +msgstr "" + +#: loader/multiboot.c:337 +msgid "Load a multiboot 2 kernel." +msgstr "" + +#: loader/multiboot.c:340 +#, fuzzy +msgid "Load a multiboot 2 module." +msgstr "Läs in en annan starthanterare." + +#: loader/multiboot.c:343 +msgid "Load a multiboot kernel." +msgstr "" + +#: loader/multiboot.c:346 +msgid "Load a multiboot module." +msgstr "" + +#: loader/xnu.c:1428 +msgid "Load XNU image." +msgstr "Läs in XNU-avbildning." + +#: loader/xnu.c:1430 +msgid "Load 64-bit XNU image." +msgstr "Läs in 64-bitars XNU-avbildning." + +#: loader/xnu.c:1432 +msgid "Load XNU extension package." +msgstr "" + +#: loader/xnu.c:1434 +msgid "Load XNU extension." +msgstr "Läs in XNU-utökning." + +#: loader/xnu.c:1436 +msgid "DIRECTORY [OSBundleRequired]" +msgstr "KATALOG [OSBundleRequired]" + +#: loader/xnu.c:1437 +msgid "Load XNU extension directory." +msgstr "" + +#: loader/xnu.c:1444 +msgid "Load a splash image for XNU." +msgstr "Läs in en startbild för XNU." + +#: loader/xnu.c:1449 +msgid "Load XNU hibernate image." +msgstr "Läs in XNU-avbildning för viloläge." + +#: normal/auth.c:217 +msgid "Enter username: " +msgstr "Ange användarnamn: " + +#: normal/auth.c:222 +msgid "Enter password: " +msgstr "Ange lösenord: " + +#: normal/color.c:80 +#, c-format +msgid "Warning: syntax error (missing slash) in `%s'\n" +msgstr "Varning: syntaxfel (saknar snedstreck) i \"%s\"\n" + +#: normal/color.c:89 +#, c-format +msgid "Warning: invalid foreground color `%s'\n" +msgstr "Varning: ogiltig förgrundsfärg \"%s\"\n" + +#: normal/color.c:95 +#, c-format +msgid "Warning: invalid background color `%s'\n" +msgstr "Varning: ogiltig bakgrundsfärg \"%s\"\n" + +#: normal/dyncmd.c:144 +msgid "not loaded" +msgstr "inte inläst" + +#: normal/main.c:415 +#, c-format +msgid "GNU GRUB version %s" +msgstr "GNU GRUB version %s" + +#: normal/main.c:552 +#, c-format +msgid "" +"Minimal BASH-like line editing is supported. For the first word, TAB lists " +"possible command completions. Anywhere else TAB lists possible device or " +"file completions. %s" +msgstr "" +"Minimal Bash-liknande radeditering stöds. För det första ordet kan tabulator-" +"tangenteten användas för att visa kompletteringsalternativ. I övriga fall " +"visa tabulator-tangenten möjliga enheter eller filnamn för komplettering. %s" + +#: normal/main.c:555 +msgid "ESC at any time exits." +msgstr "ESC när som helst avslutar." + +#: normal/main.c:670 +msgid "Enter normal mode." +msgstr "" + +#: normal/main.c:672 +msgid "Exit from normal mode." +msgstr "" + +#: normal/menu_entry.c:1061 +msgid "Possible commands are:" +msgstr "Möjliga kommandon är:" + +#: normal/menu_entry.c:1065 +msgid "Possible devices are:" +msgstr "Möjliga enheter är:" + +#: normal/menu_entry.c:1069 +msgid "Possible files are:" +msgstr "Möjliga filer är:" + +#: normal/menu_entry.c:1073 +msgid "Possible partitions are:" +msgstr "Möjliga partitioner är:" + +#: normal/menu_entry.c:1077 +msgid "Possible arguments are:" +msgstr "Möjliga argument är:" + +#: normal/menu_entry.c:1081 +msgid "Possible things are:" +msgstr "Möjliga saker är:" + +#: normal/menu_entry.c:1185 +msgid "Booting a command list" +msgstr "Starta en kommandolista" + +#: normal/menu_entry.c:1398 +msgid "Press any key to continue..." +msgstr "Tryck på en tangent för att fortsätta..." + +#: normal/menu_text.c:180 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"F1 to boot, F2=Ctrl-a, F3=Ctrl-e, F4 for a command-line or ESC to discard " +"edits and return to the GRUB menu." +msgstr "" +"Minimal Emacs-liknande skärmeditering stöds. Tabulator-tangenten används för " +"att visa kompletteringsalternativ. Ange Ctrl-x för att starta, Ctrl-c för " +"kommandorad eller ESC för att återgå till menyn." + +#: normal/menu_text.c:185 +#, fuzzy +msgid "" +"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +"Ctrl-x to boot, Ctrl-c for a command-line or ESC to discard edits and return " +"to the GRUB menu." +msgstr "" +"Minimal Emacs-liknande skärmeditering stöds. Tabulator-tangenten används för " +"att visa kompletteringsalternativ. Ange Ctrl-x för att starta, Ctrl-c för " +"kommandorad eller ESC för att återgå till menyn." + +#: normal/menu_text.c:193 +#, c-format +msgid "Use the %C and %C keys to select which entry is highlighted.\n" +msgstr "Använd tangenterna %C och %C för att navigera bland valen.\n" + +#: normal/menu_text.c:210 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line. ESC to return previous menu.\n" +msgstr "" +"Tryck Enter för att starta upp markerat val, \"e\" för att redigera " +"kommandon innan uppstart eller \"c\" för kommandorad. ESC för att återgå " +"till föregående meny.\n" + +#: normal/menu_text.c:218 +msgid "" +"Press enter to boot the selected OS, 'e' to edit the commands before booting " +"or 'c' for a command-line.\n" +msgstr "" +"Tryck Enter för att starta upp markerat val, \"e\" för att redigera " +"kommandon innan uppstart eller \"c\" för kommandorad.\n" + +#: normal/menu_text.c:370 +#, c-format +msgid "The highlighted entry will be executed automatically in %ds." +msgstr "Markerat val kommer att startas upp automatiskt om %d sekunder." + +#: normal/misc.c:41 +#, c-format +msgid "Partition %s:" +msgstr "Partition %s:" + +#: normal/misc.c:46 +#, c-format +msgid "Device %s:" +msgstr "Enhet %s:" + +#: normal/misc.c:52 +msgid "Filesystem cannot be accessed" +msgstr "Filsystemet går inte att komma åt" + +#: normal/misc.c:63 +#, c-format +msgid "Filesystem type %s" +msgstr "Filsystemstyp %s" + +#: normal/misc.c:73 +#, c-format +msgid "- Label \"%s\"" +msgstr "- Etikett \"%s\"" + +#: normal/misc.c:88 +#, c-format +msgid "- Last modification time %d-%02d-%02d %02d:%02d:%02d %s" +msgstr "- Senaste ändringsdatum %d-%02d-%02d %02d.%02d.%02d %s" + +#: normal/misc.c:111 +msgid "Unknown filesystem" +msgstr "Okänt filsystem" + +#: normal/misc.c:113 +msgid "Partition table" +msgstr "Partitionstabell" + +#: term/serial.c:46 +msgid "Set the serial unit." +msgstr "Ställ in serieenhet." + +#: term/serial.c:47 +msgid "Set the serial port address." +msgstr "Ställ in adress för serieporten." + +#: term/serial.c:48 +msgid "Set the serial port speed." +msgstr "Ställ in hastighet för serieporten." + +#: term/serial.c:49 +msgid "Set the serial port word length." +msgstr "Ställ in ordlängd för serieporten." + +#: term/serial.c:50 +msgid "Set the serial port parity." +msgstr "Ställ in paritet för serieporten." + +#: term/serial.c:51 +msgid "Set the serial port stop bits." +msgstr "Ställ in stoppbitar för serieporten." + +#: term/serial.c:619 +#, fuzzy +msgid "[OPTIONS...]" +msgstr "[FLAGGOR] DISK" + +#: term/serial.c:620 +msgid "Configure serial port." +msgstr "" + +#: util/grub-mkimage.c:440 +msgid "the core image is too small" +msgstr "kärnavbildningen är för liten" + +#: util/grub-mkimage.c:451 +msgid "cannot compress the kernel image" +msgstr "kan inte komprimera kärnavbildningen" + +#: util/grub-mkimage.c:548 +msgid "prefix is too long" +msgstr "för långt prefix" + +#: util/grub-mkimage.c:672 +#, c-format +msgid "core image is too big (%p > %p)" +msgstr "kärnavbildningen är för stor (%p > %p)" + +#: util/grub-mkimage.c:678 +msgid "the core image is too big" +msgstr "kärnavbildningen är för stor" + +#: util/grub-mkimage.c:683 +#, c-format +msgid "diskboot.img size must be %u bytes" +msgstr "storleken på diskboot.img måste vara %u byte" + +#: util/grub-mkimage.c:1168 util/i386/pc/grub-setup.c:619 +#, c-format +msgid "Try `%s --help' for more information.\n" +msgstr "Prova \"%s --help\" för mer information.\n" + +#: util/grub-mkimage.c:1187 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... [MODULES]\n" +"\n" +"Make a bootable image of GRUB.\n" +"\n" +" -d, --directory=DIR use images and modules under DIR [default=%s/" +"@platform@]\n" +" -p, --prefix=DIR set grub_prefix directory [default=%s]\n" +" -m, --memdisk=FILE embed FILE as a memdisk image\n" +" -f, --font=FILE embed FILE as a boot font\n" +" -c, --config=FILE embed FILE as boot config\n" +" -n, --note add NOTE segment for CHRP Open Firmware\n" +" -o, --output=FILE output a generated image to FILE [default=stdout]\n" +" -O, --format=FORMAT generate an image in format\n" +" available formats: %s\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 "" +"Användning: %s [FLAGGA]... [MODULER]\n" +"\n" +"Gör en startbar avbildning av GRUB.\n" +"\n" +" -d, --directory=KAT använd avbildningar och moduler i katalog KAT " +"[standard=%s]\n" +" -p, --prefix=KAT ange katalog för grub_prefix [standard=%s]\n" +" -m, --memdisk=FIL bädda in FIL som en memdisk-avbildning\n" +" -f, --font=FIL bädda in FIL som ett uppstartstypsnitt\n" +" -c, --config=FIL bädda in FIL som uppstartskonfiguration\n" +" -o, --output=FIL skriv avbildning till FIL [standard=stdout]\n" +" -O, --format=FORMAT generera en avbildning i formatet [standard=" + +#: util/grub-mkimage.c:1333 +#, c-format +msgid "cannot open %s" +msgstr "kan inte öppna %s" + +#: util/i386/pc/grub-setup.c:164 +msgid "the first sector of the core file is not sector-aligned" +msgstr "första sektorn i kärnfilen är inte sektorjusterad" + +#: util/i386/pc/grub-setup.c:178 +msgid "non-sector-aligned data is found in the core file" +msgstr "data som inte är sektorjusterad hittades i kärnfilen" + +#: util/i386/pc/grub-setup.c:192 +msgid "the sectors of the core file are too fragmented" +msgstr "sektorerna för kärnfilen är för fragmenterade" + +#: util/i386/pc/grub-setup.c:203 +#, c-format +msgid "the size of `%s' is not %u" +msgstr "storleken för \"%s\" är inte %u" + +#: util/i386/pc/grub-setup.c:220 +#, c-format +msgid "the size of `%s' is too small" +msgstr "storleken på \"%s\" är för liten" + +#: util/i386/pc/grub-setup.c:222 +#, c-format +msgid "the size of `%s' is too large" +msgstr "storleken på \"%s\" är för stor" + +#: util/i386/pc/grub-setup.c:261 +#, c-format +msgid "unable to identify a filesystem in %s; safety check can't be performed" +msgstr "" +"kunde inte identifiera ett filsystem på %s; säkerhetskontroll kan inte " +"genomföras" + +#: 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 verkar innehålla ett %s filsystem som inte kan reservera plats för DOS-" +"liknande uppstart. Installeras GRUB där kan det innebära att FILSYSTEMET " +"FÖRSTÖRS om viktiga data skrivs över av grub-setup (flaggan --skip-fs-probe " +"avaktivera denna kontroll, använd den på egen risk)." + +#: util/i386/pc/grub-setup.c:339 util/i386/pc/grub-setup.c:366 +msgid "" +"Attempting to install GRUB to a partitionless disk. This is a BAD idea." +msgstr "" +"Försöker installera GRUB på en opartitionerad disk. Detta är en DÅLIG idé." + +#: util/i386/pc/grub-setup.c:345 +msgid "" +"Attempting to install GRUB to a partition instead of the MBR. This is a BAD " +"idea." +msgstr "" +"Försöker installera GRUB på en partition instället för i MBR. Detta är en " +"DÅLIG idé." + +#: util/i386/pc/grub-setup.c:375 +msgid "No DOS-style partitions found" +msgstr "Inga DOS-liknande partitioner hittades" + +#: util/i386/pc/grub-setup.c:380 +msgid "" +"This msdos-style partition label has no post-MBR gap; embedding won't be " +"possible!" +msgstr "" +"Denna msdos-liknande partitionsettikett har inget utrymme efter MBR, " +"inbäddning kommer inte att fungera!" + +#: util/i386/pc/grub-setup.c:382 +msgid "" +"This GPT partition label has no BIOS Boot Partition; embedding won't be " +"possible!" +msgstr "" +"Denna GPT-partitions-ettikett har ingen BIOS-partition för uppstart, " +"inbäddning kommer inte att fungera!" + +#: util/i386/pc/grub-setup.c:389 +msgid "Your core.img is unusually large. It won't fit in the embedding area." +msgstr "" +"Din fil core.img är ovanligt stor. Den kommer inte att få plats i utrymmet " +"avsett för inbäddning." + +#: util/i386/pc/grub-setup.c:391 +msgid "Your embedding area is unusually small. core.img won't fit in it." +msgstr "" +"Ditt utrymme för inbäddning är ovanligt litet. core.img kommer inte att få " +"plats." + +#: util/i386/pc/grub-setup.c:436 +msgid "" +"embedding is not possible, but this is required when the root device is on a " +"RAID array or LVM volume" +msgstr "" +"inbäddning är inte möjligt, detta krävs dock när rotenheten finns på en RAID-" +"kedja eller LVM-volym" + +#: util/i386/pc/grub-setup.c:439 +#, fuzzy +msgid "" +"Embedding is not possible. GRUB can only be installed in this setup by " +"using blocklists. However, blocklists are UNRELIABLE and their use is " +"discouraged." +msgstr "" +"Inbäddning är inte möjlig. GRUB kan bara bli installerad i denna form genom " +"att anvnda blocklistor. Blocklistor är tyvärr OPÅLITLIGA och användandet av " +"dem är inte uppmuntrat." + +#: util/i386/pc/grub-setup.c:443 +msgid "if you really want blocklists, use --force" +msgstr "om du verkligen vill använda blocklistor, använd --force" + +#: util/i386/pc/grub-setup.c:462 +#, c-format +msgid "attempting to read the core image `%s' from GRUB" +msgstr "försöker läsa kärnavbildningen \"%s\" från GRUB" + +#: util/i386/pc/grub-setup.c:463 +#, c-format +msgid "attempting to read the core image `%s' from GRUB again" +msgstr "försöker läsa kärnavbildningen \"%s\" från GRUB igen" + +#: util/i386/pc/grub-setup.c:530 +#, c-format +msgid "cannot read `%s' correctly" +msgstr "kan inte läsa \"%s\" korrekt" + +#: util/i386/pc/grub-setup.c:543 +msgid "no terminator in the core image" +msgstr "ingen terminering i kärnavbildningen" + +#: util/i386/pc/grub-setup.c:554 +msgid "failed to read the first sector of the core image" +msgstr "misslyckades med att läsa första sektorn av kärnavbildningen" + +#: util/i386/pc/grub-setup.c:560 +msgid "failed to read the rest sectors of the core image" +msgstr "mIsslyckades med att läsa restsektorerna i kärnavbildningen" + +#: util/i386/pc/grub-setup.c:579 +#, c-format +msgid "cannot open `%s'" +msgstr "kan inte öppna \"%s\"" + +#: util/i386/pc/grub-setup.c:621 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTION]... DEVICE\n" +"\n" +"Set up images to boot from DEVICE.\n" +"DEVICE must be a GRUB device (e.g. `(hd0,1)').\n" +"\n" +"You should not normally run %s directly. Use grub-install instead.\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 "" +"Användning: %s [FLAGGA]... ENHET\n" +"\n" +"Konfigurera avbildningar för uppstart från ENHET.\n" +"ENHET måste vara en GRUB-enhet (t.ex. \"(hd0,1)\").\n" +"\n" +" -b, --boot-image=FIL använd FIL som uppstartsavbildning [standard=%s]\n" +" -c, --core-image=FIL använd FIL som kärnavbildning [standard=%s]\n" +" -d, --directory=KAT använd GRUB-filer i katalogen KAT [standard=%s]\n" +" -m, --device-map=FIL använd FIL som enhetskarta [standard=%s]\n" +" -r, --root-device=ENHET använd ENHET som rotenhet [standard=gissad]\n" +" -f, --force installera även om fel upptäcks\n" +" -s, --skip-fs-probe leta inte efter filsystem i ENHET\n" +" -h, --help visa detta meddelande och avsluta\n" +" -V, --version visa versionsinformation och avsluta\n" +" -v, --verbose visa informativa meddelanden\n" +"\n" +"Rapportera fel till <%s>.\n" +"Rapportera kommentarer om översättningen till .\n" + +#: util/i386/pc/grub-setup.c:753 +#, c-format +msgid "No device is specified.\n" +msgstr "Ingen enhet har angivits.\n" + +#: util/i386/pc/grub-setup.c:759 +#, c-format +msgid "Unknown extra argument `%s'.\n" +msgstr "Okänt extra argument \"%s\".\n" + +#: util/i386/pc/grub-setup.c:776 +#, c-format +msgid "Invalid device `%s'.\n" +msgstr "Ogiltig enhet \"%s\".\n" + +#: util/i386/pc/grub-setup.c:789 +#, c-format +msgid "invalid root device `%s'" +msgstr "ogiltig rotenhet \"%s\"" + +#: util/i386/pc/grub-setup.c:802 +msgid "cannot guess the root device. Specify the option `--root-device'" +msgstr "kan inte gissa rotenhet. Ange flaggan \"--root-device\"" + +#~ msgid "no DOS-style partitions found" +#~ msgstr "inga DOS-liknande partitioner hittades" + +#~ msgid "%s, with kFreeBSD %s" +#~ msgstr "%s, med kFreeBSD %s" + +#~ msgid "Loading kernel of FreeBSD %s ..." +#~ msgstr "Läser in kärna för FreeBSD %s ..." + +#~ msgid "%s, with Linux %s (recovery mode)" +#~ msgstr "%s, med Linux %s (återställningsläge)" + +#~ msgid "%s, with Linux %s" +#~ msgstr "%s, med Linux %s" + +#~ msgid "Loading Linux %s ..." +#~ msgstr "Läser in Linux %s ..." + +#~ msgid "Loading initial ramdisk ..." +#~ msgstr "Läser in initial ramdisk ..." + +#~ msgid "A boot catalog exists and appears corrupted.\n" +#~ msgstr "En uppstartskatalog existerar och verkar vara trasig.\n" + +#~ msgid "Please check the following file: %s.\n" +#~ msgstr "Kontrollera följande fil: %s.\n" + +#~ msgid "This file must be removed before a bootable CD can be done.\n" +#~ msgstr "Denna fil måste tas bort innan en startbar CD kan göras.\n" + +#~ msgid "Error creating boot catalog (%s)" +#~ msgstr "Fel vid skapande av uppstartskatalog (%s)" + +#~ msgid "Error writing to boot catalog (%s)" +#~ msgstr "Fel vid skrivning till uppstartskatalog (%s)" + +#~ msgid "Boot catalog cannot be found!\n" +#~ msgstr "Uppstartskatalog kan inte hittas!\n" + +#~ msgid "Boot image cannot be found!\n" +#~ msgstr "Uppstartsavbildning kan inte hittas!\n" + +#~ msgid "" +#~ "\n" +#~ "Size of boot image is %d sectors" +#~ msgstr "" +#~ "\n" +#~ "Storleken på uppstartsavbildningen är %d sektorer" + +#~ msgid "No emulation\n" +#~ msgstr "Ingen emulering\n" + +#~ msgid "Emulating a 1.44 meg floppy\n" +#~ msgstr "Emulerar en 1,44 megabyte diskett\n" + +#~ msgid "Emulating a 2.88 meg floppy\n" +#~ msgstr "Emulerar en 2,88 megabyte diskett\n" + +#~ msgid "Emulating a 1.2 meg floppy\n" +#~ msgstr "Emulerar en 1,2 megabyte diskett\n" + +#~ msgid "" +#~ "\n" +#~ "Error - boot image is not the an allowable size.\n" +#~ msgstr "" +#~ "\n" +#~ "Fel - uppstartsavbildningen har inte tillåten storlek.\n" + +#~ msgid "Error opening boot catalog for update" +#~ msgstr "Fel vid öppning av uppstartskatalog för uppdatering" + +#~ msgid "Error writing to boot catalog" +#~ msgstr "Fel vid skrivning till uppstartskatalog" + +#~ msgid "Error opening boot image file '%s' for update" +#~ msgstr "Fel vid öppning av uppstartsavbildning \"%s\" för uppdatering" + +#~ msgid "Odd alignment at non-end-of-file in boot image '%s'" +#~ msgstr "Märklig justering vid icke-slut i uppstartsavbildning \"%s\"" + +#~ msgid "Boot image file '%s' changed unexpectedly" +#~ msgstr "Uppstartsavbildningen \"%s\" ändrades oväntat" + +#~ msgid "Error writing to boot image (%s)" +#~ msgstr "Fel vid skrivning till uppstartsavbildning (%s)" + +#~ msgid "Unable to generate sane path tables - too many directories (%d)\n" +#~ msgstr "Kan inte skapa vettiga sökvägstabeller - för många kataloger (%d)\n" + +#~ msgid "Entry %d not in path tables\n" +#~ msgstr "%d finns inte i sökvägstabell\n" + +#~ msgid "Fatal goof - directory has amnesia\n" +#~ msgstr "Allvarligt misstag - katalog har amnesi\n" + +#~ msgid "Joliet path table lengths do not match %d %d\n" +#~ msgstr "Sökvägstabellernas längd för joilet stämmer inte %d %d\n" + +#~ msgid "Unable to locate relocated directory\n" +#~ msgstr "Kan inte hitta flyttad katalog\n" + +#~ msgid "Fatal goof - unable to find directory location\n" +#~ msgstr "Allvarligt misstag - kan inte hitta position för katalog\n" + +#~ msgid "Unexpected joliet directory length %d %d %s\n" +#~ msgstr "Oväntad längd på joiletkatalog %d %d %s\n" + +#~ msgid "Process all files (don't skip backup files)" +#~ msgstr "Processa alla filer (hoppa inte över backupfiler)" + +#~ msgid "ID" +#~ msgstr "ID" + +#~ msgid "Set Application ID" +#~ msgstr "Ange ID för applikation" + +#~ msgid "Set Bibliographic filename" +#~ msgstr "Ange bibliografiskt filnamn" + +#~ msgid "Set Copyright filename" +#~ msgstr "Ange filnamn för upphovsrätt" + +#~ msgid "Set embedded boot image name" +#~ msgstr "Ange namn för inbäddad uppstartsavbildning" + +#~ msgid "Patch a protective DOS-style label in the image" +#~ msgstr "" +#~ "Laga eventuell protektionistisk DOS-liknande ettikettering i avbildning" + +#~ msgid "Set El Torito boot image name" +#~ msgstr "Ange namn för El Torito uppstartsavbildning" + +#~ msgid "Set El Torito boot catalog name" +#~ msgstr "Ange namn för El Torito katalog" + +#~ msgid "Patch Boot Info Table in El Torito boot image" +#~ msgstr "" +#~ "Laga tabell med uppstartsinformation i El Torito uppstartsavbildning" + +#~ msgid "Dummy option for backward compatibility" +#~ msgstr "Låtsas alternativ för bakåtkompabilitet" + +#~ msgid "Enable floppy drive emulation for El Torito" +#~ msgstr "Aktivera emulering av diskettstation för El Torito" + +#~ msgid "PARAMS" +#~ msgstr "PARAMS" + +#~ msgid "Magic parameters from cdrecord" +#~ msgstr "Magiska parametrar från cdrecord" + +#~ msgid "Omit trailing periods from filenames" +#~ msgstr "Uteslut punkter i slutet på filnamn" + +#~ msgid "Disable deep directory relocation" +#~ msgstr "Avaktivera djup omstrukturering av kataloger" + +#~ msgid "Follow symbolic links" +#~ msgstr "Följ symboliska länkar" + +#~ msgid "Print option help" +#~ msgstr "Skriv ut hjälp för flaggor" + +#~ msgid "Print version information and exit" +#~ msgstr "Skriv ut versionsinformation och avsluta" + +#~ msgid "GLOBFILE" +#~ msgstr "GLOBFILE" + +#~ msgid "Hide ISO9660/RR file" +#~ msgstr "Dölj ISO9660/RR-fil" + +#~ msgid "Hide Joliet file" +#~ msgstr "Dölj Joliet-fil" + +#~ msgid "ADD_FILES" +#~ msgstr "ADD_FILES" + +#~ msgid "No longer supported" +#~ msgstr "Stöds inte längre" + +#~ msgid "Generate Joliet directory information" +#~ msgstr "Skapa kataloginformation för joilet" + +#~ msgid "Allow full 32 character filenames for iso9660 names" +#~ msgstr "Tillåt 32 tecken långa filnamn för iso9660-namn" + +#~ msgid "Allow iso9660 filenames to start with '.'" +#~ msgstr "Tillåt att iso9660-filnamn börjar med \".\"" + +#~ msgid "LOG_FILE" +#~ msgstr "LOGGFIL" + +#~ msgid "Re-direct messages to LOG_FILE" +#~ msgstr "Dirigera om meddelanden till LOGGFIL" + +#~ msgid "Exclude file name" +#~ msgstr "Exkludera filnamn" + +#~ msgid "Set path to previous session to merge" +#~ msgstr "Ange sökväg för föregående session att slå ihop" + +#~ msgid "Omit version number from iso9660 filename" +#~ msgstr "Utelämna versionsnummer från iso9660-filnamn" + +#~ msgid "Inhibit splitting symlink components" +#~ msgstr "Förhindra uppdelning av symboliska länkars komponenter" + +#~ msgid "Inhibit splitting symlink fields" +#~ msgstr "Förhindra uppdelning av fält för symboliska länkar" + +#~ msgid "Set output file name" +#~ msgstr "Ange filnamn för utdata" + +#~ msgid "PREP" +#~ msgstr "PREP" + +#~ msgid "Set Volume preparer" +#~ msgstr "Ange volymtillredare" + +#~ msgid "Print estimated filesystem size and exit" +#~ msgstr "Skriv uppskattad storlek på filsystem och avsluta" + +#~ msgid "PUB" +#~ msgstr "PUB" + +#~ msgid "Set Volume publisher" +#~ msgstr "Ange publicerare av volym" + +#~ msgid "Run quietly" +#~ msgstr "Kör tyst" + +#~ msgid "Generate rationalized Rock Ridge directory information" +#~ msgstr "Skapa rationell Rock Ridge kataloginformation" + +#~ msgid "Generate Rock Ridge directory information" +#~ msgstr "Skapa Rock Ridge kataloginformation" + +#~ msgid "Split output into files of approx. 1GB size" +#~ msgstr "Splittra utdata i filer om ungefär 1GB i storlek" + +#~ msgid "Set System ID" +#~ msgstr "Ange system ID" + +#~ msgid "" +#~ "Generate translation tables for systems that don't understand long " +#~ "filenames" +#~ msgstr "" +#~ "Skapa översättningstabeller för system som inte hanterar långa filnamn" + +#~ msgid "Verbose" +#~ msgstr "Informativ" + +#~ msgid "Set Volume ID" +#~ msgstr "Ange ID för volym" + +#~ msgid "Set Volume set ID" +#~ msgstr "Ange set ID för volym" + +#~ msgid "Set Volume set size" +#~ msgstr "Ange storlek för volym" + +#~ msgid "Set Volume set sequence number" +#~ msgstr "Ange sekvensnummer för volym" + +#~ msgid "Exclude file name (deprecated)" +#~ msgstr "Exkludera filnamn (funktionen fasas ut)" + +#~ msgid "Override creation date" +#~ msgstr "Åsidosätt datum för skapande" + +#~ msgid "Override modification date" +#~ msgstr "Åsidosätt datum för modifiering" + +#~ msgid "Override expiration date" +#~ msgstr "Åsidosätt utgångsdatum" + +#~ msgid "Override effective date" +#~ msgstr "Åsidosätt faktiskt datum" + +#~ msgid "Using \"%s\"\n" +#~ msgstr "Använder \"%s\"\n" + +#~ msgid "%s:%d: name required\n" +#~ msgstr "%s:%d: namn krävs\n" + +#~ msgid "%s:%d: equals sign required\n" +#~ msgstr "%s:%d: likamedtecken krävs\n" + +#~ msgid "%s:%d: field name \"%s\" unknown\n" +#~ msgstr "%s:%d: fältnamnet \"%s\" är okänt\n" + +#~ msgid "Usage: %s [options] file...\n" +#~ msgstr "Användning: %s [flaggor] fil...\n" + +#~ msgid "Options:\n" +#~ msgstr "Flaggor:\n" + +#~ msgid "-i option no longer supported.\n" +#~ msgstr "flaggan -i stöds inte längre.\n" + +#~ msgid "Required boot image pathname missing" +#~ msgstr "Sökväg för uppstartsavbildning saknas" + +#~ msgid "Required boot catalog pathname missing\n" +#~ msgstr "Sökväg för uppstartskatalogen saknas\n" + +#~ msgid "Ignoring -no-emul-boot (no-emulation is the default behaviour)\n" +#~ msgstr "Ignorera -no-emul-boot (no-emulation är standardförfarande)\n" + +#~ msgid "Abstract filename string too long\n" +#~ msgstr "Sträng för abstrakt filnamn är för lång\n" + +#~ msgid "Application-id string too long\n" +#~ msgstr "Sträng för applikations ID för lång\n" + +#~ msgid "Bibliographic filename string too long\n" +#~ msgstr "Sträng för bibliografiskt filnamn för lång\n" + +#~ msgid "Copyright filename string too long\n" +#~ msgstr "Sträng med filnamn för upphovsrätt för lång\n" + +#~ msgid "Preparer string too long\n" +#~ msgstr "Sträng för tillredare är för lång\n" + +#~ msgid "Publisher string too long\n" +#~ msgstr "Sträng för publiceraren är för lång\n" + +#~ msgid "System ID string too long\n" +#~ msgstr "Sträng för system ID är för lång\n" + +#~ msgid "Volume ID string too long\n" +#~ msgstr "Sträng för volym ID är för lång\n" + +#~ msgid "Volume set ID string too long\n" +#~ msgstr "Sträng för set ID för volymen är för lång\n" + +#~ msgid "Volume set sequence number too big\n" +#~ msgstr "Volymens sekvensnummer är för stort\n" + +#~ msgid "date string must be 16 characters.\n" +#~ msgstr "datumsträngen måste vara 16 tecken.\n" + +#~ msgid "Warning: getrlimit" +#~ msgstr "Varning: getrlimit" + +#~ msgid "Warning: setrlimit" +#~ msgstr "Varning: setrlimit" + +#~ msgid "Multisession usage bug: Must specify -C if -M is used.\n" +#~ msgstr "" +#~ "Felaktig hantering av multisession: Flagga -C måste anges om flagga -M " +#~ "används.\n" + +#~ msgid "" +#~ "Warning: -C specified without -M: old session data will not be merged.\n" +#~ msgstr "" +#~ "Varning: Flagga -C angiven utan att flagga -M används: gammal " +#~ "sessionsdata kommer inte att samköras.\n" + +#~ msgid "can't open logfile: %s" +#~ msgstr "kan inte öppna loggfilen: %s" + +#~ msgid "re-directing all messages to %s\n" +#~ msgstr "dirigerar om alla meddelanden till %s\n" + +#~ msgid "can't open logfile: %s\n" +#~ msgstr "kan inte öppna loggfil: %s\n" + +#~ msgid "Unable to open previous session image %s\n" +#~ msgstr "Kan inte öppna avbildning för föregående session %s\n" + +#~ msgid "Invalid node - %s\n" +#~ msgstr "Ogiltig nod - %s\n" + +#~ msgid "Joliet tree sort failed.\n" +#~ msgstr "Trädsortering för joilet misslyckades.\n" + +#~ msgid "Unable to open /dev/null\n" +#~ msgstr "Kan inte öppna /dev/null\n" + +#~ msgid "Unable to open disc image file\n" +#~ msgstr "Kan inte öppna fil med diskavbildning\n" + +#~ msgid "Seek error on old image\n" +#~ msgstr "Sökfel på äldre avbildning\n" + +#~ msgid "**Bad RR version attribute" +#~ msgstr "**Trasigt attribut för RR-version" + +#~ 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 "" +#~ "Varning: Varken Rock Ridge (-R) eller TRANS.TBL (-T) namnöversättningar " +#~ "hittades i föregående session. ISO (8.3) filnamn används istället.\n" + +#~ msgid "Read error on old image %s\n" +#~ msgstr "Läsfel på äldre avbildning %s\n" + +#~ msgid "Special parameters for cdwrite not specified with -C\n" +#~ msgstr "Specialparametrar för cdwrite inte specificerade med -C\n" + +#~ msgid "Malformed cdwrite parameters\n" +#~ msgstr "Felaktigt formaterade cdwrite-parametrar\n" + +#~ msgid "symbolic link ``%s'' to long for one SL System Use Field, splitting" +#~ msgstr "" +#~ "den symboliska länken \"%s\" är för lång för ett SL " +#~ "systemanvändningsfält, delar upp" + +#~ msgid "Unable to insert transparent compressed file - name conflict\n" +#~ msgstr "Kan inte applicera transparent komprimerad fil - namnkonflikt\n" + +#~ msgid "Extension record too long\n" +#~ msgstr "Utökningsregister för långt\n" + +#~ msgid "Fatal goof\n" +#~ msgstr "Allvarligt misstag\n" + +#~ msgid "Unable to generate unique name for file %s\n" +#~ msgstr "Kan inte skapa unikt filnamn för filen %s\n" + +#~ msgid "Using %s for %s%s%s (%s)\n" +#~ msgstr "Använder %s för %s%s%s (%s)\n" + +#~ msgid "Fatal error - RR overflow for file %s\n" +#~ msgstr "Allvarligt fel - RR överskrivning för fil %s\n" + +#~ msgid "Unable to sort directory %s\n" +#~ msgstr "Kan inte sortera katalog %s\n" + +#~ msgid "Translation table size mismatch %d %d\n" +#~ msgstr "Översättningstabellens storlek stämmer inte %d %d\n" + +#~ msgid "Unable to locate directory parent\n" +#~ msgstr "Kan inte hitta katalogens förälder\n" + +#~ msgid "Scanning %s\n" +#~ msgstr "Läser av %s\n" + +#~ msgid "Unable to open directory %s\n" +#~ msgstr "Kunde inte öppna katalogen %s\n" + +#~ msgid "Ignoring file %s\n" +#~ msgstr "Ignorerar fil %s\n" + +#~ msgid "Excluded by match: %s\n" +#~ msgstr "Exkluderad vid träff: %s\n" + +#~ msgid "Excluded: %s\n" +#~ msgstr "Exkluderade: %s\n" + +#~ msgid "Non-existant or inaccessible: %s\n" +#~ msgstr "Existerar ej eller kan inte läsas: %s\n" + +#~ msgid "Symlink %s ignored - continuing.\n" +#~ msgstr "Symboliska länken %s ignoreras - fortsätter.\n" + +#~ msgid "Already cached directory seen (%s)\n" +#~ msgstr "Katalog som redan finns i cache hittades (%s)\n" + +#~ msgid "File %s is not readable (%s) - ignoring\n" +#~ msgstr "Filen %s är inte läsbar (%s) - ignorerar\n" + +#~ msgid "Directory loop - fatal goof (%s %lx %lu).\n" +#~ msgstr "Loop i katalog - allvarligt misstag (%s %lx %lu).\n" + +#~ msgid "Unknown file type %s - ignoring and continuing.\n" +#~ msgstr "Okänd filtyp %s - ignorerar och fortsätter.\n" + +#~ msgid "Hidden from ISO9660 tree: %s\n" +#~ msgstr "Gömt från ISO9660-träd: %s\n" + +#~ msgid "Hidden from Joliet tree: %s\n" +#~ msgstr "Gömt från joilet-träd: %s\n" + +#~ msgid "Directories too deep %s\n" +#~ msgstr "Kataloger för djup %s\n" + +#~ msgid "Unable to delete non-empty directory\n" +#~ msgstr "Kan inte radera katalog som inte är tom\n" + +#~ msgid "Unable to locate child directory in parent list\n" +#~ msgstr "Kan inte hitta underkatalog i huvudlista\n" + +#~ msgid "call to search_tree_file with an absolute path, stripping\n" +#~ msgstr "anrop till search_tree_file med en absolut sökväg, rensar\n" + +#~ msgid "initial path separator. Hope this was intended...\n" +#~ msgstr "inledande sökvägsseparator. Förhoppningsvis var detta medvetet...\n" + +#~ msgid "Cannot open '%s'" +#~ msgstr "Kan inte öppna \"%s\"" + +#~ msgid "cannot fwrite %llu*%llu\n" +#~ msgstr "kan inte fwrite %llu*%llu\n" + +#~ msgid "cannot open %s\n" +#~ msgstr "kan inte öppna %s\n" + +#~ msgid "cannot read %llu bytes from %s" +#~ msgstr "kan inte läsa %llu byte från %s" + +#~ msgid "%6.2f%% done, estimate finish %s" +#~ msgstr "%6.2f%% klart, beräknat klart %s" + +#~ msgid "Cache hit for %s%s%s\n" +#~ msgstr "Träff i cache för %s%s%s\n" + +#~ msgid "Unexpected directory length %d %d %s\n" +#~ msgstr "Oväntad kataloglängd %d %d %s\n" + +#~ msgid "Path table lengths do not match %d %d\n" +#~ msgstr "Längd på sökvägstabellerna stämmer inte %d %d\n" + +#~ msgid "Predicted = %d, written = %llu\n" +#~ msgstr "Uppskattat = %d, skrivit = %llu\n" + +#~ msgid "Total translation table size: %d\n" +#~ msgstr "Översättningstabellens totalstorlek: %d\n" + +#~ msgid "Total rockridge attributes bytes: %d\n" +#~ msgstr "Rockridge-attribut, totalt antal byte: %d\n" + +#~ msgid "Total directory bytes: %d\n" +#~ msgstr "Antal byte katalog: %d\n" + +#~ msgid "Path table size(bytes): %d\n" +#~ msgstr "Sökvägstabellens storlek (byte): %d\n" + +#~ msgid "Unable to open %s" +#~ msgstr "Kunde inte öppna %s" + +#~ msgid "ESC to return previous menu." +#~ msgstr "ESC för att återgå till föregående meny." + +#~ msgid "Booting '%s'" +#~ msgstr "Starta upp \"%s\"" + +#~ msgid "Falling back to '%s'" +#~ msgstr "Faller tillbaka på \"%s\"" + +#~ msgid "Failed to boot default entries.\n" +#~ msgstr "MIsslyckades med att starta standardvalen.\n" --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/rijndael.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/rijndael.c @@ -0,0 +1,765 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* Rijndael (AES) for GnuPG + * Copyright (C) 2000, 2001, 2002, 2003, 2007, + * 2008 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, see . + ******************************************************************* + * The code here is based on the optimized implementation taken from + * http://www.esat.kuleuven.ac.be/~rijmen/rijndael/ on Oct 2, 2000, + * which carries this notice: + *------------------------------------------ + * rijndael-alg-fst.c v2.3 April '2000 + * + * Optimised ANSI C code + * + * authors: v1.0: Antoon Bosselaers + * v2.0: Vincent Rijmen + * v2.3: Paulo Barreto + * + * This code is placed in the public domain. + *------------------------------------------ + * + * The SP800-38a document is available at: + * http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf + * + */ + + +#include "types.h" /* for byte and u32 typedefs */ +#include "g10lib.h" +#include "cipher.h" + +#define MAXKC (256/32) +#define MAXROUNDS 14 +#define BLOCKSIZE (128/8) + + +/* USE_PADLOCK indicates whether to compile the padlock specific + code. */ +#undef USE_PADLOCK +#ifdef ENABLE_PADLOCK_SUPPORT +# if defined (__i386__) && SIZEOF_UNSIGNED_LONG == 4 && defined (__GNUC__) +# define USE_PADLOCK +# endif +#endif /*ENABLE_PADLOCK_SUPPORT*/ + + +typedef struct +{ + int ROUNDS; /* Key-length-dependent number of rounds. */ + int decryption_prepared; /* The decryption key schedule is available. */ +#ifdef USE_PADLOCK + int use_padlock; /* Padlock shall be used. */ + /* The key as passed to the padlock engine. */ + unsigned char padlock_key[16] __attribute__ ((aligned (16))); +#endif + union + { + PROPERLY_ALIGNED_TYPE dummy; + byte keyschedule[MAXROUNDS+1][4][4]; + } u1; + union + { + PROPERLY_ALIGNED_TYPE dummy; + byte keyschedule[MAXROUNDS+1][4][4]; + } u2; +} RIJNDAEL_context; + +#define keySched u1.keyschedule +#define keySched2 u2.keyschedule + +/* All the numbers. */ +#include "rijndael-tables.h" + + +/* Perform the key setup. */ +static gcry_err_code_t +do_setkey (RIJNDAEL_context *ctx, const byte *key, const unsigned keylen) +{ + static int initialized = 0; + static const char *selftest_failed=0; + int ROUNDS; + int i,j, r, t, rconpointer = 0; + int KC; + union + { + PROPERLY_ALIGNED_TYPE dummy; + byte k[MAXKC][4]; + } k; +#define k k.k + union + { + PROPERLY_ALIGNED_TYPE dummy; + byte tk[MAXKC][4]; + } tk; +#define tk tk.tk + + /* The on-the-fly self tests are only run in non-fips mode. In fips + mode explicit self-tests are required. Actually the on-the-fly + self-tests are not fully thread-safe and it might happen that a + failed self-test won't get noticed in another thread. + + FIXME: We might want to have a central registry of succeeded + self-tests. */ + if (!fips_mode () && !initialized) + { + initialized = 1; + selftest_failed = selftest (); + if (selftest_failed) + log_error ("%s\n", selftest_failed ); + } + if (selftest_failed) + return GPG_ERR_SELFTEST_FAILED; + + ctx->decryption_prepared = 0; +#ifdef USE_PADLOCK + ctx->use_padlock = 0; +#endif + + if( keylen == 128/8 ) + { + ROUNDS = 10; + KC = 4; +#ifdef USE_PADLOCK + if ((_gcry_get_hw_features () & HWF_PADLOCK_AES)) + { + ctx->use_padlock = 1; + memcpy (ctx->padlock_key, key, keylen); + } +#endif + } + else if ( keylen == 192/8 ) + { + ROUNDS = 12; + KC = 6; + } + else if ( keylen == 256/8 ) + { + ROUNDS = 14; + KC = 8; + } + else + return GPG_ERR_INV_KEYLEN; + + ctx->ROUNDS = ROUNDS; + +#ifdef USE_PADLOCK + if (ctx->use_padlock) + { + /* Nothing to do as we support only hardware key generation for + now. */ + } + else +#endif /*USE_PADLOCK*/ + { +#define W (ctx->keySched) + for (i = 0; i < keylen; i++) + { + k[i >> 2][i & 3] = key[i]; + } + + for (j = KC-1; j >= 0; j--) + { + *((u32*)tk[j]) = *((u32*)k[j]); + } + r = 0; + t = 0; + /* Copy values into round key array. */ + for (j = 0; (j < KC) && (r < ROUNDS + 1); ) + { + for (; (j < KC) && (t < 4); j++, t++) + { + *((u32*)W[r][t]) = *((u32*)tk[j]); + } + if (t == 4) + { + r++; + t = 0; + } + } + + while (r < ROUNDS + 1) + { + /* While not enough round key material calculated calculate + new values. */ + tk[0][0] ^= S[tk[KC-1][1]]; + tk[0][1] ^= S[tk[KC-1][2]]; + tk[0][2] ^= S[tk[KC-1][3]]; + tk[0][3] ^= S[tk[KC-1][0]]; + tk[0][0] ^= rcon[rconpointer++]; + + if (KC != 8) + { + for (j = 1; j < KC; j++) + { + *((u32*)tk[j]) ^= *((u32*)tk[j-1]); + } + } + else + { + for (j = 1; j < KC/2; j++) + { + *((u32*)tk[j]) ^= *((u32*)tk[j-1]); + } + tk[KC/2][0] ^= S[tk[KC/2 - 1][0]]; + tk[KC/2][1] ^= S[tk[KC/2 - 1][1]]; + tk[KC/2][2] ^= S[tk[KC/2 - 1][2]]; + tk[KC/2][3] ^= S[tk[KC/2 - 1][3]]; + for (j = KC/2 + 1; j < KC; j++) + { + *((u32*)tk[j]) ^= *((u32*)tk[j-1]); + } + } + + /* Copy values into round key array. */ + for (j = 0; (j < KC) && (r < ROUNDS + 1); ) + { + for (; (j < KC) && (t < 4); j++, t++) + { + *((u32*)W[r][t]) = *((u32*)tk[j]); + } + if (t == 4) + { + r++; + t = 0; + } + } + } +#undef W + } + + return 0; +#undef tk +#undef k +} + + +static gcry_err_code_t +rijndael_setkey (void *context, const byte *key, const unsigned keylen) +{ + RIJNDAEL_context *ctx = context; + + int rc = do_setkey (ctx, key, keylen); + _gcry_burn_stack ( 100 + 16*sizeof(int)); + return rc; +} + + +/* Make a decryption key from an encryption key. */ +static void +prepare_decryption( RIJNDAEL_context *ctx ) +{ + int r; + union + { + PROPERLY_ALIGNED_TYPE dummy; + byte *w; + } w; +#define w w.w + + for (r=0; r < MAXROUNDS+1; r++ ) + { + *((u32*)ctx->keySched2[r][0]) = *((u32*)ctx->keySched[r][0]); + *((u32*)ctx->keySched2[r][1]) = *((u32*)ctx->keySched[r][1]); + *((u32*)ctx->keySched2[r][2]) = *((u32*)ctx->keySched[r][2]); + *((u32*)ctx->keySched2[r][3]) = *((u32*)ctx->keySched[r][3]); + } +#define W (ctx->keySched2) + for (r = 1; r < ctx->ROUNDS; r++) + { + w = W[r][0]; + *((u32*)w) = *((u32*)U1[w[0]]) ^ *((u32*)U2[w[1]]) + ^ *((u32*)U3[w[2]]) ^ *((u32*)U4[w[3]]); + + w = W[r][1]; + *((u32*)w) = *((u32*)U1[w[0]]) ^ *((u32*)U2[w[1]]) + ^ *((u32*)U3[w[2]]) ^ *((u32*)U4[w[3]]); + + w = W[r][2]; + *((u32*)w) = *((u32*)U1[w[0]]) ^ *((u32*)U2[w[1]]) + ^ *((u32*)U3[w[2]]) ^ *((u32*)U4[w[3]]); + + w = W[r][3]; + *((u32*)w) = *((u32*)U1[w[0]]) ^ *((u32*)U2[w[1]]) + ^ *((u32*)U3[w[2]]) ^ *((u32*)U4[w[3]]); + } +#undef W +#undef w +} + + + +/* Encrypt one block. A and B need to be aligned on a 4 byte + boundary. A and B may be the same. */ +static void +do_encrypt_aligned (const RIJNDAEL_context *ctx, + unsigned char *b, const unsigned char *a) +{ +#define rk (ctx->keySched) + int ROUNDS = ctx->ROUNDS; + int r; + union + { + u32 tempu32[4]; /* Force correct alignment. */ + byte temp[4][4]; + } u; + + *((u32*)u.temp[0]) = *((u32*)(a )) ^ *((u32*)rk[0][0]); + *((u32*)u.temp[1]) = *((u32*)(a+ 4)) ^ *((u32*)rk[0][1]); + *((u32*)u.temp[2]) = *((u32*)(a+ 8)) ^ *((u32*)rk[0][2]); + *((u32*)u.temp[3]) = *((u32*)(a+12)) ^ *((u32*)rk[0][3]); + *((u32*)(b )) = (*((u32*)T1[u.temp[0][0]]) + ^ *((u32*)T2[u.temp[1][1]]) + ^ *((u32*)T3[u.temp[2][2]]) + ^ *((u32*)T4[u.temp[3][3]])); + *((u32*)(b + 4)) = (*((u32*)T1[u.temp[1][0]]) + ^ *((u32*)T2[u.temp[2][1]]) + ^ *((u32*)T3[u.temp[3][2]]) + ^ *((u32*)T4[u.temp[0][3]])); + *((u32*)(b + 8)) = (*((u32*)T1[u.temp[2][0]]) + ^ *((u32*)T2[u.temp[3][1]]) + ^ *((u32*)T3[u.temp[0][2]]) + ^ *((u32*)T4[u.temp[1][3]])); + *((u32*)(b +12)) = (*((u32*)T1[u.temp[3][0]]) + ^ *((u32*)T2[u.temp[0][1]]) + ^ *((u32*)T3[u.temp[1][2]]) + ^ *((u32*)T4[u.temp[2][3]])); + + for (r = 1; r < ROUNDS-1; r++) + { + *((u32*)u.temp[0]) = *((u32*)(b )) ^ *((u32*)rk[r][0]); + *((u32*)u.temp[1]) = *((u32*)(b+ 4)) ^ *((u32*)rk[r][1]); + *((u32*)u.temp[2]) = *((u32*)(b+ 8)) ^ *((u32*)rk[r][2]); + *((u32*)u.temp[3]) = *((u32*)(b+12)) ^ *((u32*)rk[r][3]); + + *((u32*)(b )) = (*((u32*)T1[u.temp[0][0]]) + ^ *((u32*)T2[u.temp[1][1]]) + ^ *((u32*)T3[u.temp[2][2]]) + ^ *((u32*)T4[u.temp[3][3]])); + *((u32*)(b + 4)) = (*((u32*)T1[u.temp[1][0]]) + ^ *((u32*)T2[u.temp[2][1]]) + ^ *((u32*)T3[u.temp[3][2]]) + ^ *((u32*)T4[u.temp[0][3]])); + *((u32*)(b + 8)) = (*((u32*)T1[u.temp[2][0]]) + ^ *((u32*)T2[u.temp[3][1]]) + ^ *((u32*)T3[u.temp[0][2]]) + ^ *((u32*)T4[u.temp[1][3]])); + *((u32*)(b +12)) = (*((u32*)T1[u.temp[3][0]]) + ^ *((u32*)T2[u.temp[0][1]]) + ^ *((u32*)T3[u.temp[1][2]]) + ^ *((u32*)T4[u.temp[2][3]])); + } + + /* Last round is special. */ + *((u32*)u.temp[0]) = *((u32*)(b )) ^ *((u32*)rk[ROUNDS-1][0]); + *((u32*)u.temp[1]) = *((u32*)(b+ 4)) ^ *((u32*)rk[ROUNDS-1][1]); + *((u32*)u.temp[2]) = *((u32*)(b+ 8)) ^ *((u32*)rk[ROUNDS-1][2]); + *((u32*)u.temp[3]) = *((u32*)(b+12)) ^ *((u32*)rk[ROUNDS-1][3]); + b[ 0] = T1[u.temp[0][0]][1]; + b[ 1] = T1[u.temp[1][1]][1]; + b[ 2] = T1[u.temp[2][2]][1]; + b[ 3] = T1[u.temp[3][3]][1]; + b[ 4] = T1[u.temp[1][0]][1]; + b[ 5] = T1[u.temp[2][1]][1]; + b[ 6] = T1[u.temp[3][2]][1]; + b[ 7] = T1[u.temp[0][3]][1]; + b[ 8] = T1[u.temp[2][0]][1]; + b[ 9] = T1[u.temp[3][1]][1]; + b[10] = T1[u.temp[0][2]][1]; + b[11] = T1[u.temp[1][3]][1]; + b[12] = T1[u.temp[3][0]][1]; + b[13] = T1[u.temp[0][1]][1]; + b[14] = T1[u.temp[1][2]][1]; + b[15] = T1[u.temp[2][3]][1]; + *((u32*)(b )) ^= *((u32*)rk[ROUNDS][0]); + *((u32*)(b+ 4)) ^= *((u32*)rk[ROUNDS][1]); + *((u32*)(b+ 8)) ^= *((u32*)rk[ROUNDS][2]); + *((u32*)(b+12)) ^= *((u32*)rk[ROUNDS][3]); +#undef rk +} + + +static void +do_encrypt (const RIJNDAEL_context *ctx, + unsigned char *bx, const unsigned char *ax) +{ + /* BX and AX are not necessary correctly aligned. Thus we need to + copy them here. */ + union + { + u32 dummy[4]; + byte a[16]; + } a; + union + { + u32 dummy[4]; + byte b[16]; + } b; + + memcpy (a.a, ax, 16); + do_encrypt_aligned (ctx, b.b, a.a); + memcpy (bx, b.b, 16); +} + + +/* Encrypt or decrypt one block using the padlock engine. A and B may + be the same. */ +#ifdef USE_PADLOCK +static void +do_padlock (const RIJNDAEL_context *ctx, int decrypt_flag, + unsigned char *bx, const unsigned char *ax) +{ + /* BX and AX are not necessary correctly aligned. Thus we need to + copy them here. */ + unsigned char a[16] __attribute__ ((aligned (16))); + unsigned char b[16] __attribute__ ((aligned (16))); + unsigned int cword[4] __attribute__ ((aligned (16))); + + /* The control word fields are: + 127:12 11:10 9 8 7 6 5 4 3:0 + RESERVED KSIZE CRYPT INTER KEYGN CIPHR ALIGN DGEST ROUND */ + cword[0] = (ctx->ROUNDS & 15); /* (The mask is just a safeguard.) */ + cword[1] = 0; + cword[2] = 0; + cword[3] = 0; + if (decrypt_flag) + cword[0] |= 0x00000200; + + memcpy (a, ax, 16); + + asm volatile + ("pushfl\n\t" /* Force key reload. */ + "popfl\n\t" + "xchg %3, %%ebx\n\t" /* Load key. */ + "movl $1, %%ecx\n\t" /* Init counter for just one block. */ + ".byte 0xf3, 0x0f, 0xa7, 0xc8\n\t" /* REP XSTORE ECB. */ + "xchg %3, %%ebx\n" /* Restore GOT register. */ + : /* No output */ + : "S" (a), "D" (b), "d" (cword), "r" (ctx->padlock_key) + : "%ecx", "cc", "memory" + ); + + memcpy (bx, b, 16); + +} +#endif /*USE_PADLOCK*/ + + +static void +rijndael_encrypt (void *context, byte *b, const byte *a) +{ + RIJNDAEL_context *ctx = context; + +#ifdef USE_PADLOCK + if (ctx->use_padlock) + { + do_padlock (ctx, 0, b, a); + _gcry_burn_stack (48 + 15 /* possible padding for alignment */); + } + else +#endif /*USE_PADLOCK*/ + { + do_encrypt (ctx, b, a); + _gcry_burn_stack (48 + 2*sizeof(int)); + } +} + + +/* Bulk encryption of complete blocks in CFB mode. Caller needs to + make sure that IV is aligned on an unsigned long boundary. This + function is only intended for the bulk encryption feature of + cipher.c. */ + + +/* Bulk encryption of complete blocks in CBC mode. Caller needs to + make sure that IV is aligned on an unsigned long boundary. This + function is only intended for the bulk encryption feature of + cipher.c. */ + + + +/* Decrypt one block. A and B need to be aligned on a 4 byte boundary + and the decryption must have been prepared. A and B may be the + same. */ +static void +do_decrypt_aligned (RIJNDAEL_context *ctx, + unsigned char *b, const unsigned char *a) +{ +#define rk (ctx->keySched2) + int ROUNDS = ctx->ROUNDS; + int r; + union + { + u32 tempu32[4]; /* Force correct alignment. */ + byte temp[4][4]; + } u; + + + *((u32*)u.temp[0]) = *((u32*)(a )) ^ *((u32*)rk[ROUNDS][0]); + *((u32*)u.temp[1]) = *((u32*)(a+ 4)) ^ *((u32*)rk[ROUNDS][1]); + *((u32*)u.temp[2]) = *((u32*)(a+ 8)) ^ *((u32*)rk[ROUNDS][2]); + *((u32*)u.temp[3]) = *((u32*)(a+12)) ^ *((u32*)rk[ROUNDS][3]); + + *((u32*)(b )) = (*((u32*)T5[u.temp[0][0]]) + ^ *((u32*)T6[u.temp[3][1]]) + ^ *((u32*)T7[u.temp[2][2]]) + ^ *((u32*)T8[u.temp[1][3]])); + *((u32*)(b+ 4)) = (*((u32*)T5[u.temp[1][0]]) + ^ *((u32*)T6[u.temp[0][1]]) + ^ *((u32*)T7[u.temp[3][2]]) + ^ *((u32*)T8[u.temp[2][3]])); + *((u32*)(b+ 8)) = (*((u32*)T5[u.temp[2][0]]) + ^ *((u32*)T6[u.temp[1][1]]) + ^ *((u32*)T7[u.temp[0][2]]) + ^ *((u32*)T8[u.temp[3][3]])); + *((u32*)(b+12)) = (*((u32*)T5[u.temp[3][0]]) + ^ *((u32*)T6[u.temp[2][1]]) + ^ *((u32*)T7[u.temp[1][2]]) + ^ *((u32*)T8[u.temp[0][3]])); + + for (r = ROUNDS-1; r > 1; r--) + { + *((u32*)u.temp[0]) = *((u32*)(b )) ^ *((u32*)rk[r][0]); + *((u32*)u.temp[1]) = *((u32*)(b+ 4)) ^ *((u32*)rk[r][1]); + *((u32*)u.temp[2]) = *((u32*)(b+ 8)) ^ *((u32*)rk[r][2]); + *((u32*)u.temp[3]) = *((u32*)(b+12)) ^ *((u32*)rk[r][3]); + *((u32*)(b )) = (*((u32*)T5[u.temp[0][0]]) + ^ *((u32*)T6[u.temp[3][1]]) + ^ *((u32*)T7[u.temp[2][2]]) + ^ *((u32*)T8[u.temp[1][3]])); + *((u32*)(b+ 4)) = (*((u32*)T5[u.temp[1][0]]) + ^ *((u32*)T6[u.temp[0][1]]) + ^ *((u32*)T7[u.temp[3][2]]) + ^ *((u32*)T8[u.temp[2][3]])); + *((u32*)(b+ 8)) = (*((u32*)T5[u.temp[2][0]]) + ^ *((u32*)T6[u.temp[1][1]]) + ^ *((u32*)T7[u.temp[0][2]]) + ^ *((u32*)T8[u.temp[3][3]])); + *((u32*)(b+12)) = (*((u32*)T5[u.temp[3][0]]) + ^ *((u32*)T6[u.temp[2][1]]) + ^ *((u32*)T7[u.temp[1][2]]) + ^ *((u32*)T8[u.temp[0][3]])); + } + + /* Last round is special. */ + *((u32*)u.temp[0]) = *((u32*)(b )) ^ *((u32*)rk[1][0]); + *((u32*)u.temp[1]) = *((u32*)(b+ 4)) ^ *((u32*)rk[1][1]); + *((u32*)u.temp[2]) = *((u32*)(b+ 8)) ^ *((u32*)rk[1][2]); + *((u32*)u.temp[3]) = *((u32*)(b+12)) ^ *((u32*)rk[1][3]); + b[ 0] = S5[u.temp[0][0]]; + b[ 1] = S5[u.temp[3][1]]; + b[ 2] = S5[u.temp[2][2]]; + b[ 3] = S5[u.temp[1][3]]; + b[ 4] = S5[u.temp[1][0]]; + b[ 5] = S5[u.temp[0][1]]; + b[ 6] = S5[u.temp[3][2]]; + b[ 7] = S5[u.temp[2][3]]; + b[ 8] = S5[u.temp[2][0]]; + b[ 9] = S5[u.temp[1][1]]; + b[10] = S5[u.temp[0][2]]; + b[11] = S5[u.temp[3][3]]; + b[12] = S5[u.temp[3][0]]; + b[13] = S5[u.temp[2][1]]; + b[14] = S5[u.temp[1][2]]; + b[15] = S5[u.temp[0][3]]; + *((u32*)(b )) ^= *((u32*)rk[0][0]); + *((u32*)(b+ 4)) ^= *((u32*)rk[0][1]); + *((u32*)(b+ 8)) ^= *((u32*)rk[0][2]); + *((u32*)(b+12)) ^= *((u32*)rk[0][3]); +#undef rk +} + + +/* Decrypt one block. AX and BX may be the same. */ +static void +do_decrypt (RIJNDAEL_context *ctx, byte *bx, const byte *ax) +{ + /* BX and AX are not necessary correctly aligned. Thus we need to + copy them here. */ + union + { + u32 dummy[4]; + byte a[16]; + } a; + union + { + u32 dummy[4]; + byte b[16]; + } b; + + if ( !ctx->decryption_prepared ) + { + prepare_decryption ( ctx ); + _gcry_burn_stack (64); + ctx->decryption_prepared = 1; + } + + memcpy (a.a, ax, 16); + do_decrypt_aligned (ctx, b.b, a.a); + memcpy (bx, b.b, 16); +#undef rk +} + + + + +static void +rijndael_decrypt (void *context, byte *b, const byte *a) +{ + RIJNDAEL_context *ctx = context; + +#ifdef USE_PADLOCK + if (ctx->use_padlock) + { + do_padlock (ctx, 1, b, a); + _gcry_burn_stack (48 + 2*sizeof(int) /* FIXME */); + } + else +#endif /*USE_PADLOCK*/ + { + do_decrypt (ctx, b, a); + _gcry_burn_stack (48+2*sizeof(int)); + } +} + + +/* Bulk decryption of complete blocks in CFB mode. Caller needs to + make sure that IV is aligned on an unisgned lonhg boundary. This + function is only intended for the bulk encryption feature of + cipher.c. */ + + +/* Bulk decryption of complete blocks in CBC mode. Caller needs to + make sure that IV is aligned on an unsigned long boundary. This + function is only intended for the bulk encryption feature of + cipher.c. */ + + + + +/* Run the self-tests for AES 128. Returns NULL on success. */ + +/* Run the self-tests for AES 192. Returns NULL on success. */ + + +/* Run the self-tests for AES 256. Returns NULL on success. */ + +/* Run all the self-tests and return NULL on success. This function + is used for the on-the-fly self-tests. */ + + +/* SP800-38a.pdf for AES-128. */ + + +/* Complete selftest for AES-128 with all modes and driver code. */ + +/* Complete selftest for AES-192. */ + + +/* Complete selftest for AES-256. */ + + + +/* Run a full self-test for ALGO and return 0 on success. */ + + + + +static const char *rijndael_names[] = + { + "RIJNDAEL", + "AES128", + "AES-128", + NULL + }; + +static gcry_cipher_oid_spec_t rijndael_oids[] = + { + { "2.16.840.1.101.3.4.1.1", GCRY_CIPHER_MODE_ECB }, + { "2.16.840.1.101.3.4.1.2", GCRY_CIPHER_MODE_CBC }, + { "2.16.840.1.101.3.4.1.3", GCRY_CIPHER_MODE_OFB }, + { "2.16.840.1.101.3.4.1.4", GCRY_CIPHER_MODE_CFB }, + { NULL } + }; + +gcry_cipher_spec_t _gcry_cipher_spec_aes = + { + "AES", rijndael_names, rijndael_oids, 16, 128, sizeof (RIJNDAEL_context), + rijndael_setkey, rijndael_encrypt, rijndael_decrypt + }; + +static const char *rijndael192_names[] = + { + "RIJNDAEL192", + "AES-192", + NULL + }; + +static gcry_cipher_oid_spec_t rijndael192_oids[] = + { + { "2.16.840.1.101.3.4.1.21", GCRY_CIPHER_MODE_ECB }, + { "2.16.840.1.101.3.4.1.22", GCRY_CIPHER_MODE_CBC }, + { "2.16.840.1.101.3.4.1.23", GCRY_CIPHER_MODE_OFB }, + { "2.16.840.1.101.3.4.1.24", GCRY_CIPHER_MODE_CFB }, + { NULL } + }; + +gcry_cipher_spec_t _gcry_cipher_spec_aes192 = + { + "AES192", rijndael192_names, rijndael192_oids, 16, 192, sizeof (RIJNDAEL_context), + rijndael_setkey, rijndael_encrypt, rijndael_decrypt + }; + +static const char *rijndael256_names[] = + { + "RIJNDAEL256", + "AES-256", + NULL + }; + +static gcry_cipher_oid_spec_t rijndael256_oids[] = + { + { "2.16.840.1.101.3.4.1.41", GCRY_CIPHER_MODE_ECB }, + { "2.16.840.1.101.3.4.1.42", GCRY_CIPHER_MODE_CBC }, + { "2.16.840.1.101.3.4.1.43", GCRY_CIPHER_MODE_OFB }, + { "2.16.840.1.101.3.4.1.44", GCRY_CIPHER_MODE_CFB }, + { NULL } + }; + +gcry_cipher_spec_t _gcry_cipher_spec_aes256 = + { + "AES256", rijndael256_names, rijndael256_oids, 16, 256, + sizeof (RIJNDAEL_context), + rijndael_setkey, rijndael_encrypt, rijndael_decrypt + }; + + + +GRUB_MOD_INIT(gcry_rijndael) +{ + grub_cipher_register (&_gcry_cipher_spec_aes); + grub_cipher_register (&_gcry_cipher_spec_aes192); + grub_cipher_register (&_gcry_cipher_spec_aes256); +} + +GRUB_MOD_FINI(gcry_rijndael) +{ + grub_cipher_unregister (&_gcry_cipher_spec_aes); + grub_cipher_unregister (&_gcry_cipher_spec_aes192); + grub_cipher_unregister (&_gcry_cipher_spec_aes256); +} --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/arcfour.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/arcfour.c @@ -0,0 +1,139 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* arcfour.c - The arcfour stream cipher + * Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser general Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + * + * For a description of the algorithm, see: + * Bruce Schneier: Applied Cryptography. John Wiley & Sons, 1996. + * ISBN 0-471-11709-9. Pages 397 ff. + */ + + +#include "types.h" +#include "g10lib.h" +#include "cipher.h" + + +typedef struct { + int idx_i, idx_j; + byte sbox[256]; +} ARCFOUR_context; + +static void +do_encrypt_stream( ARCFOUR_context *ctx, + byte *outbuf, const byte *inbuf, unsigned int length ) +{ + register int i = ctx->idx_i; + register int j = ctx->idx_j; + register byte *sbox = ctx->sbox; + register int t; + + while ( length-- ) + { + i++; + i = i & 255; /* The and-op seems to be faster than the mod-op. */ + j += sbox[i]; + j &= 255; + t = sbox[i]; sbox[i] = sbox[j]; sbox[j] = t; + *outbuf++ = *inbuf++ ^ sbox[(sbox[i] + sbox[j]) & 255]; + } + + ctx->idx_i = i; + ctx->idx_j = j; +} + +static void +encrypt_stream (void *context, + byte *outbuf, const byte *inbuf, unsigned int length) +{ + ARCFOUR_context *ctx = (ARCFOUR_context *) context; + do_encrypt_stream (ctx, outbuf, inbuf, length ); + _gcry_burn_stack (64); +} + + +static gcry_err_code_t +do_arcfour_setkey (void *context, const byte *key, unsigned int keylen) +{ + static int initialized; + static const char* selftest_failed; + int i, j; + byte karr[256]; + ARCFOUR_context *ctx = (ARCFOUR_context *) context; + + if (!initialized ) + { + initialized = 1; + selftest_failed = selftest(); + if( selftest_failed ) + log_error ("ARCFOUR selftest failed (%s)\n", selftest_failed ); + } + if( selftest_failed ) + return GPG_ERR_SELFTEST_FAILED; + + if( keylen < 40/8 ) /* we want at least 40 bits */ + return GPG_ERR_INV_KEYLEN; + + ctx->idx_i = ctx->idx_j = 0; + for (i=0; i < 256; i++ ) + ctx->sbox[i] = i; + for (i=0; i < 256; i++ ) + karr[i] = key[i%keylen]; + for (i=j=0; i < 256; i++ ) + { + int t; + j = (j + ctx->sbox[i] + karr[i]) % 256; + t = ctx->sbox[i]; + ctx->sbox[i] = ctx->sbox[j]; + ctx->sbox[j] = t; + } + memset( karr, 0, 256 ); + + return GPG_ERR_NO_ERROR; +} + +static gcry_err_code_t +arcfour_setkey ( void *context, const byte *key, unsigned int keylen ) +{ + ARCFOUR_context *ctx = (ARCFOUR_context *) context; + gcry_err_code_t rc = do_arcfour_setkey (ctx, key, keylen ); + _gcry_burn_stack (300); + return rc; +} + + + + +gcry_cipher_spec_t _gcry_cipher_spec_arcfour = + { + "ARCFOUR", NULL, NULL, 1, 128, sizeof (ARCFOUR_context), + arcfour_setkey, NULL, NULL, encrypt_stream, encrypt_stream, + }; + + + +GRUB_MOD_INIT(gcry_arcfour) +{ + grub_cipher_register (&_gcry_cipher_spec_arcfour); +} + +GRUB_MOD_FINI(gcry_arcfour) +{ + grub_cipher_unregister (&_gcry_cipher_spec_arcfour); +} --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/rsa.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/rsa.c @@ -0,0 +1,1158 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* rsa.c - RSA implementation + * Copyright (C) 1997, 1998, 1999 by Werner Koch (dd9jn) + * Copyright (C) 2000, 2001, 2002, 2003, 2008 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, see . + */ + +/* This code uses an algorithm protected by U.S. Patent #4,405,829 + which expired on September 20, 2000. The patent holder placed that + patent into the public domain on Sep 6th, 2000. +*/ + + +#include "g10lib.h" +#include "mpi.h" +#include "cipher.h" + + +typedef struct +{ + gcry_mpi_t n; /* modulus */ + gcry_mpi_t e; /* exponent */ +} RSA_public_key; + + +typedef struct +{ + gcry_mpi_t n; /* public modulus */ + gcry_mpi_t e; /* public exponent */ + gcry_mpi_t d; /* exponent */ + gcry_mpi_t p; /* prime p. */ + gcry_mpi_t q; /* prime q. */ + gcry_mpi_t u; /* inverse of p mod q. */ +} RSA_secret_key; + + +/* A sample 1024 bit RSA key used for the selftests. */ +static const char sample_secret_key[] = +"(private-key" +" (rsa" +" (n #00e0ce96f90b6c9e02f3922beada93fe50a875eac6bcc18bb9a9cf2e84965caa" +" 2d1ff95a7f542465c6c0c19d276e4526ce048868a7a914fd343cc3a87dd74291" +" ffc565506d5bbb25cbac6a0e2dd1f8bcaab0d4a29c2f37c950f363484bf269f7" +" 891440464baf79827e03a36e70b814938eebdc63e964247be75dc58b014b7ea251#)" +" (e #010001#)" +" (d #046129f2489d71579be0a75fe029bd6cdb574ebf57ea8a5b0fda942cab943b11" +" 7d7bb95e5d28875e0f9fc5fcc06a72f6d502464dabded78ef6b716177b83d5bd" +" c543dc5d3fed932e59f5897e92e6f58a0f33424106a3b6fa2cbf877510e4ac21" +" c3ee47851e97d12996222ac3566d4ccb0b83d164074abf7de655fc2446da1781#)" +" (p #00e861b700e17e8afe6837e7512e35b6ca11d0ae47d8b85161c67baf64377213" +" fe52d772f2035b3ca830af41d8a4120e1c1c70d12cc22f00d28d31dd48a8d424f1#)" +" (q #00f7a7ca5367c661f8e62df34f0d05c10c88e5492348dd7bddc942c9a8f369f9" +" 35a07785d2db805215ed786e4285df1658eed3ce84f469b81b50d358407b4ad361#)" +" (u #304559a9ead56d2309d203811a641bb1a09626bc8eb36fffa23c968ec5bd891e" +" ebbafc73ae666e01ba7c8990bae06cc2bbe10b75e69fcacb353a6473079d8e9b#)))"; +/* A sample 1024 bit RSA key used for the selftests (public only). */ +static const char sample_public_key[] = +"(public-key" +" (rsa" +" (n #00e0ce96f90b6c9e02f3922beada93fe50a875eac6bcc18bb9a9cf2e84965caa" +" 2d1ff95a7f542465c6c0c19d276e4526ce048868a7a914fd343cc3a87dd74291" +" ffc565506d5bbb25cbac6a0e2dd1f8bcaab0d4a29c2f37c950f363484bf269f7" +" 891440464baf79827e03a36e70b814938eebdc63e964247be75dc58b014b7ea251#)" +" (e #010001#)))"; + + + + +static int test_keys (RSA_secret_key *sk, unsigned nbits); +static int check_secret_key (RSA_secret_key *sk); +static void public (gcry_mpi_t output, gcry_mpi_t input, RSA_public_key *skey); +static void secret (gcry_mpi_t output, gcry_mpi_t input, RSA_secret_key *skey); + + +/* Check that a freshly generated key actually works. Returns 0 on success. */ +static int +test_keys (RSA_secret_key *sk, unsigned int nbits) +{ + int result = -1; /* Default to failure. */ + RSA_public_key pk; + gcry_mpi_t plaintext = gcry_mpi_new (nbits); + gcry_mpi_t ciphertext = gcry_mpi_new (nbits); + gcry_mpi_t decr_plaintext = gcry_mpi_new (nbits); + gcry_mpi_t signature = gcry_mpi_new (nbits); + + /* Put the relevant parameters into a public key structure. */ + pk.n = sk->n; + pk.e = sk->e; + + /* Create a random plaintext. */ + gcry_mpi_randomize (plaintext, nbits, GCRY_WEAK_RANDOM); + + /* Encrypt using the public key. */ + public (ciphertext, plaintext, &pk); + + /* Check that the cipher text does not match the plaintext. */ + if (!gcry_mpi_cmp (ciphertext, plaintext)) + goto leave; /* Ciphertext is identical to the plaintext. */ + + /* Decrypt using the secret key. */ + secret (decr_plaintext, ciphertext, sk); + + /* Check that the decrypted plaintext matches the original plaintext. */ + if (gcry_mpi_cmp (decr_plaintext, plaintext)) + goto leave; /* Plaintext does not match. */ + + /* Create another random plaintext as data for signature checking. */ + gcry_mpi_randomize (plaintext, nbits, GCRY_WEAK_RANDOM); + + /* Use the RSA secret function to create a signature of the plaintext. */ + secret (signature, plaintext, sk); + + /* Use the RSA public function to verify this signature. */ + public (decr_plaintext, signature, &pk); + if (gcry_mpi_cmp (decr_plaintext, plaintext)) + goto leave; /* Signature does not match. */ + + /* Modify the signature and check that the signing fails. */ + gcry_mpi_add_ui (signature, signature, 1); + public (decr_plaintext, signature, &pk); + if (!gcry_mpi_cmp (decr_plaintext, plaintext)) + goto leave; /* Signature matches but should not. */ + + result = 0; /* All tests succeeded. */ + + leave: + gcry_mpi_release (signature); + gcry_mpi_release (decr_plaintext); + gcry_mpi_release (ciphertext); + gcry_mpi_release (plaintext); + return result; +} + + +/* Callback used by the prime generation to test whether the exponent + is suitable. Returns 0 if the test has been passed. */ +static int +check_exponent (void *arg, gcry_mpi_t a) +{ + gcry_mpi_t e = arg; + gcry_mpi_t tmp; + int result; + + mpi_sub_ui (a, a, 1); + tmp = _gcry_mpi_alloc_like (a); + result = !gcry_mpi_gcd(tmp, e, a); /* GCD is not 1. */ + gcry_mpi_release (tmp); + mpi_add_ui (a, a, 1); + return result; +} + +/**************** + * Generate a key pair with a key of size NBITS. + * USE_E = 0 let Libcgrypt decide what exponent to use. + * = 1 request the use of a "secure" exponent; this is required by some + * specification to be 65537. + * > 2 Use this public exponent. If the given exponent + * is not odd one is internally added to it. + * TRANSIENT_KEY: If true, generate the primes using the standard RNG. + * Returns: 2 structures filled with all needed values + */ +static gpg_err_code_t +generate_std (RSA_secret_key *sk, unsigned int nbits, unsigned long use_e, + int transient_key) +{ + gcry_mpi_t p, q; /* the two primes */ + gcry_mpi_t d; /* the private key */ + gcry_mpi_t u; + gcry_mpi_t t1, t2; + gcry_mpi_t n; /* the public key */ + gcry_mpi_t e; /* the exponent */ + gcry_mpi_t phi; /* helper: (p-1)(q-1) */ + gcry_mpi_t g; + gcry_mpi_t f; + gcry_random_level_t random_level; + + if (fips_mode ()) + { + if (nbits < 1024) + return GPG_ERR_INV_VALUE; + if (transient_key) + return GPG_ERR_INV_VALUE; + } + + /* The random quality depends on the transient_key flag. */ + random_level = transient_key ? GCRY_STRONG_RANDOM : GCRY_VERY_STRONG_RANDOM; + + /* Make sure that nbits is even so that we generate p, q of equal size. */ + if ( (nbits&1) ) + nbits++; + + if (use_e == 1) /* Alias for a secure value */ + use_e = 65537; /* as demanded by Sphinx. */ + + /* Public exponent: + In general we use 41 as this is quite fast and more secure than the + commonly used 17. Benchmarking the RSA verify function + with a 1024 bit key yields (2001-11-08): + e=17 0.54 ms + e=41 0.75 ms + e=257 0.95 ms + e=65537 1.80 ms + */ + e = mpi_alloc( (32+BITS_PER_MPI_LIMB-1)/BITS_PER_MPI_LIMB ); + if (!use_e) + mpi_set_ui (e, 41); /* This is a reasonable secure and fast value */ + else + { + use_e |= 1; /* make sure this is odd */ + mpi_set_ui (e, use_e); + } + + n = gcry_mpi_new (nbits); + + p = q = NULL; + do + { + /* select two (very secret) primes */ + if (p) + gcry_mpi_release (p); + if (q) + gcry_mpi_release (q); + if (use_e) + { /* Do an extra test to ensure that the given exponent is + suitable. */ + p = _gcry_generate_secret_prime (nbits/2, random_level, + check_exponent, e); + q = _gcry_generate_secret_prime (nbits/2, random_level, + check_exponent, e); + } + else + { /* We check the exponent later. */ + p = _gcry_generate_secret_prime (nbits/2, random_level, NULL, NULL); + q = _gcry_generate_secret_prime (nbits/2, random_level, NULL, NULL); + } + if (mpi_cmp (p, q) > 0 ) /* p shall be smaller than q (for calc of u)*/ + mpi_swap(p,q); + /* calculate the modulus */ + mpi_mul( n, p, q ); + } + while ( mpi_get_nbits(n) != nbits ); + + /* calculate Euler totient: phi = (p-1)(q-1) */ + t1 = mpi_alloc_secure( mpi_get_nlimbs(p) ); + t2 = mpi_alloc_secure( mpi_get_nlimbs(p) ); + phi = gcry_mpi_snew ( nbits ); + g = gcry_mpi_snew ( nbits ); + f = gcry_mpi_snew ( nbits ); + mpi_sub_ui( t1, p, 1 ); + mpi_sub_ui( t2, q, 1 ); + mpi_mul( phi, t1, t2 ); + gcry_mpi_gcd(g, t1, t2); + mpi_fdiv_q(f, phi, g); + + while (!gcry_mpi_gcd(t1, e, phi)) /* (while gcd is not 1) */ + { + if (use_e) + BUG (); /* The prime generator already made sure that we + never can get to here. */ + mpi_add_ui (e, e, 2); + } + + /* calculate the secret key d = e^1 mod phi */ + d = gcry_mpi_snew ( nbits ); + mpi_invm(d, e, f ); + /* calculate the inverse of p and q (used for chinese remainder theorem)*/ + u = gcry_mpi_snew ( nbits ); + mpi_invm(u, p, q ); + + if( DBG_CIPHER ) + { + log_mpidump(" p= ", p ); + log_mpidump(" q= ", q ); + log_mpidump("phi= ", phi ); + log_mpidump(" g= ", g ); + log_mpidump(" f= ", f ); + log_mpidump(" n= ", n ); + log_mpidump(" e= ", e ); + log_mpidump(" d= ", d ); + log_mpidump(" u= ", u ); + } + + gcry_mpi_release (t1); + gcry_mpi_release (t2); + gcry_mpi_release (phi); + gcry_mpi_release (f); + gcry_mpi_release (g); + + sk->n = n; + sk->e = e; + sk->p = p; + sk->q = q; + sk->d = d; + sk->u = u; + + /* Now we can test our keys. */ + if (test_keys (sk, nbits - 64)) + { + gcry_mpi_release (sk->n); sk->n = NULL; + gcry_mpi_release (sk->e); sk->e = NULL; + gcry_mpi_release (sk->p); sk->p = NULL; + gcry_mpi_release (sk->q); sk->q = NULL; + gcry_mpi_release (sk->d); sk->d = NULL; + gcry_mpi_release (sk->u); sk->u = NULL; + fips_signal_error ("self-test after key generation failed"); + return GPG_ERR_SELFTEST_FAILED; + } + + return 0; +} + + +/* Helper for generate_x931. */ +static gcry_mpi_t +gen_x931_parm_xp (unsigned int nbits) +{ + gcry_mpi_t xp; + + xp = gcry_mpi_snew (nbits); + gcry_mpi_randomize (xp, nbits, GCRY_VERY_STRONG_RANDOM); + + /* The requirement for Xp is: + + sqrt{2}*2^{nbits-1} <= xp <= 2^{nbits} - 1 + + We set the two high order bits to 1 to satisfy the lower bound. + By using mpi_set_highbit we make sure that the upper bound is + satisfied as well. */ + mpi_set_highbit (xp, nbits-1); + mpi_set_bit (xp, nbits-2); + gcry_assert ( mpi_get_nbits (xp) == nbits ); + + return xp; +} + + +/* Helper for generate_x931. */ +static gcry_mpi_t +gen_x931_parm_xi (void) +{ + gcry_mpi_t xi; + + xi = gcry_mpi_snew (101); + gcry_mpi_randomize (xi, 101, GCRY_VERY_STRONG_RANDOM); + mpi_set_highbit (xi, 100); + gcry_assert ( mpi_get_nbits (xi) == 101 ); + + return xi; +} + + + +/* Variant of the standard key generation code using the algorithm + from X9.31. Using this algorithm has the advantage that the + generation can be made deterministic which is required for CAVS + testing. */ +static gpg_err_code_t +generate_x931 (RSA_secret_key *sk, unsigned int nbits, unsigned long e_value, + gcry_sexp_t deriveparms, int *swapped) +{ + gcry_mpi_t p, q; /* The two primes. */ + gcry_mpi_t e; /* The public exponent. */ + gcry_mpi_t n; /* The public key. */ + gcry_mpi_t d; /* The private key */ + gcry_mpi_t u; /* The inverse of p and q. */ + gcry_mpi_t pm1; /* p - 1 */ + gcry_mpi_t qm1; /* q - 1 */ + gcry_mpi_t phi; /* Euler totient. */ + gcry_mpi_t f, g; /* Helper. */ + + *swapped = 0; + + if (e_value == 1) /* Alias for a secure value. */ + e_value = 65537; + + /* Point 1 of section 4.1: k = 1024 + 256s with S >= 0 */ + if (nbits < 1024 || (nbits % 256)) + return GPG_ERR_INV_VALUE; + + /* Point 2: 2 <= bitlength(e) < 2^{k-2} + Note that we do not need to check the upper bound because we use + an unsigned long for E and thus there is no way for E to reach + that limit. */ + if (e_value < 3) + return GPG_ERR_INV_VALUE; + + /* Our implementaion requires E to be odd. */ + if (!(e_value & 1)) + return GPG_ERR_INV_VALUE; + + /* Point 3: e > 0 or e 0 if it is to be randomly generated. + We support only a fixed E and thus there is no need for an extra test. */ + + + /* Compute or extract the derive parameters. */ + { + gcry_mpi_t xp1 = NULL; + gcry_mpi_t xp2 = NULL; + gcry_mpi_t xp = NULL; + gcry_mpi_t xq1 = NULL; + gcry_mpi_t xq2 = NULL; + gcry_mpi_t xq = NULL; + gcry_mpi_t tmpval; + + if (!deriveparms) + { + /* Not given: Generate them. */ + xp = gen_x931_parm_xp (nbits/2); + /* Make sure that |xp - xq| > 2^{nbits - 100} holds. */ + tmpval = gcry_mpi_snew (nbits/2); + do + { + gcry_mpi_release (xq); + xq = gen_x931_parm_xp (nbits/2); + mpi_sub (tmpval, xp, xq); + } + while (mpi_get_nbits (tmpval) <= (nbits/2 - 100)); + gcry_mpi_release (tmpval); + + xp1 = gen_x931_parm_xi (); + xp2 = gen_x931_parm_xi (); + xq1 = gen_x931_parm_xi (); + xq2 = gen_x931_parm_xi (); + + } + else + { + /* Parameters to derive the key are given. */ + struct { const char *name; gcry_mpi_t *value; } tbl[] = { + { "Xp1", &xp1 }, + { "Xp2", &xp2 }, + { "Xp", &xp }, + { "Xq1", &xq1 }, + { "Xq2", &xq2 }, + { "Xq", &xq }, + { NULL, NULL } + }; + int idx; + gcry_sexp_t oneparm; + + for (idx=0; tbl[idx].name; idx++) + { + oneparm = gcry_sexp_find_token (deriveparms, tbl[idx].name, 0); + if (oneparm) + { + *tbl[idx].value = gcry_sexp_nth_mpi (oneparm, 1, + GCRYMPI_FMT_USG); + gcry_sexp_release (oneparm); + } + } + for (idx=0; tbl[idx].name; idx++) + if (!*tbl[idx].value) + break; + if (tbl[idx].name) + { + /* At least one parameter is missing. */ + for (idx=0; tbl[idx].name; idx++) + gcry_mpi_release (*tbl[idx].value); + return GPG_ERR_MISSING_VALUE; + } + } + + e = mpi_alloc_set_ui (e_value); + + /* Find two prime numbers. */ + p = _gcry_derive_x931_prime (xp, xp1, xp2, e, NULL, NULL); + q = _gcry_derive_x931_prime (xq, xq1, xq2, e, NULL, NULL); + gcry_mpi_release (xp); xp = NULL; + gcry_mpi_release (xp1); xp1 = NULL; + gcry_mpi_release (xp2); xp2 = NULL; + gcry_mpi_release (xq); xq = NULL; + gcry_mpi_release (xq1); xq1 = NULL; + gcry_mpi_release (xq2); xq2 = NULL; + if (!p || !q) + { + gcry_mpi_release (p); + gcry_mpi_release (q); + gcry_mpi_release (e); + return GPG_ERR_NO_PRIME; + } + } + + + /* Compute the public modulus. We make sure that p is smaller than + q to allow the use of the CRT. */ + if (mpi_cmp (p, q) > 0 ) + { + mpi_swap (p, q); + *swapped = 1; + } + n = gcry_mpi_new (nbits); + mpi_mul (n, p, q); + + /* Compute the Euler totient: phi = (p-1)(q-1) */ + pm1 = gcry_mpi_snew (nbits/2); + qm1 = gcry_mpi_snew (nbits/2); + phi = gcry_mpi_snew (nbits); + mpi_sub_ui (pm1, p, 1); + mpi_sub_ui (qm1, q, 1); + mpi_mul (phi, pm1, qm1); + + g = gcry_mpi_snew (nbits); + gcry_assert (gcry_mpi_gcd (g, e, phi)); + + /* Compute: f = lcm(p-1,q-1) = phi / gcd(p-1,q-1) */ + gcry_mpi_gcd (g, pm1, qm1); + f = pm1; pm1 = NULL; + gcry_mpi_release (qm1); qm1 = NULL; + mpi_fdiv_q (f, phi, g); + gcry_mpi_release (phi); phi = NULL; + d = g; g = NULL; + /* Compute the secret key: d = e^{-1} mod lcm(p-1,q-1) */ + mpi_invm (d, e, f); + + /* Compute the inverse of p and q. */ + u = f; f = NULL; + mpi_invm (u, p, q ); + + if( DBG_CIPHER ) + { + if (*swapped) + log_debug ("p and q are swapped\n"); + log_mpidump(" p", p ); + log_mpidump(" q", q ); + log_mpidump(" n", n ); + log_mpidump(" e", e ); + log_mpidump(" d", d ); + log_mpidump(" u", u ); + } + + + sk->n = n; + sk->e = e; + sk->p = p; + sk->q = q; + sk->d = d; + sk->u = u; + + /* Now we can test our keys. */ + if (test_keys (sk, nbits - 64)) + { + gcry_mpi_release (sk->n); sk->n = NULL; + gcry_mpi_release (sk->e); sk->e = NULL; + gcry_mpi_release (sk->p); sk->p = NULL; + gcry_mpi_release (sk->q); sk->q = NULL; + gcry_mpi_release (sk->d); sk->d = NULL; + gcry_mpi_release (sk->u); sk->u = NULL; + fips_signal_error ("self-test after key generation failed"); + return GPG_ERR_SELFTEST_FAILED; + } + + return 0; +} + + +/**************** + * Test wether the secret key is valid. + * Returns: true if this is a valid key. + */ +static int +check_secret_key( RSA_secret_key *sk ) +{ + int rc; + gcry_mpi_t temp = mpi_alloc( mpi_get_nlimbs(sk->p)*2 ); + + mpi_mul(temp, sk->p, sk->q ); + rc = mpi_cmp( temp, sk->n ); + mpi_free(temp); + return !rc; +} + + + +/**************** + * Public key operation. Encrypt INPUT with PKEY and put result into OUTPUT. + * + * c = m^e mod n + * + * Where c is OUTPUT, m is INPUT and e,n are elements of PKEY. + */ +static void +public(gcry_mpi_t output, gcry_mpi_t input, RSA_public_key *pkey ) +{ + if( output == input ) /* powm doesn't like output and input the same */ + { + gcry_mpi_t x = mpi_alloc( mpi_get_nlimbs(input)*2 ); + mpi_powm( x, input, pkey->e, pkey->n ); + mpi_set(output, x); + mpi_free(x); + } + else + mpi_powm( output, input, pkey->e, pkey->n ); +} + +#if 0 +static void +stronger_key_check ( RSA_secret_key *skey ) +{ + gcry_mpi_t t = mpi_alloc_secure ( 0 ); + gcry_mpi_t t1 = mpi_alloc_secure ( 0 ); + gcry_mpi_t t2 = mpi_alloc_secure ( 0 ); + gcry_mpi_t phi = mpi_alloc_secure ( 0 ); + + /* check that n == p * q */ + mpi_mul( t, skey->p, skey->q); + if (mpi_cmp( t, skey->n) ) + log_info ( "RSA Oops: n != p * q\n" ); + + /* check that p is less than q */ + if( mpi_cmp( skey->p, skey->q ) > 0 ) + { + log_info ("RSA Oops: p >= q - fixed\n"); + _gcry_mpi_swap ( skey->p, skey->q); + } + + /* check that e divides neither p-1 nor q-1 */ + mpi_sub_ui(t, skey->p, 1 ); + mpi_fdiv_r(t, t, skey->e ); + if ( !mpi_cmp_ui( t, 0) ) + log_info ( "RSA Oops: e divides p-1\n" ); + mpi_sub_ui(t, skey->q, 1 ); + mpi_fdiv_r(t, t, skey->e ); + if ( !mpi_cmp_ui( t, 0) ) + log_info ( "RSA Oops: e divides q-1\n" ); + + /* check that d is correct */ + mpi_sub_ui( t1, skey->p, 1 ); + mpi_sub_ui( t2, skey->q, 1 ); + mpi_mul( phi, t1, t2 ); + gcry_mpi_gcd(t, t1, t2); + mpi_fdiv_q(t, phi, t); + mpi_invm(t, skey->e, t ); + if ( mpi_cmp(t, skey->d ) ) + { + log_info ( "RSA Oops: d is wrong - fixed\n"); + mpi_set (skey->d, t); + _gcry_log_mpidump (" fixed d", skey->d); + } + + /* check for correctness of u */ + mpi_invm(t, skey->p, skey->q ); + if ( mpi_cmp(t, skey->u ) ) + { + log_info ( "RSA Oops: u is wrong - fixed\n"); + mpi_set (skey->u, t); + _gcry_log_mpidump (" fixed u", skey->u); + } + + log_info ( "RSA secret key check finished\n"); + + mpi_free (t); + mpi_free (t1); + mpi_free (t2); + mpi_free (phi); +} +#endif + + + +/**************** + * Secret key operation. Encrypt INPUT with SKEY and put result into OUTPUT. + * + * m = c^d mod n + * + * Or faster: + * + * m1 = c ^ (d mod (p-1)) mod p + * m2 = c ^ (d mod (q-1)) mod q + * h = u * (m2 - m1) mod q + * m = m1 + h * p + * + * Where m is OUTPUT, c is INPUT and d,n,p,q,u are elements of SKEY. + */ +static void +secret(gcry_mpi_t output, gcry_mpi_t input, RSA_secret_key *skey ) +{ + if (!skey->p || !skey->q || !skey->u) + { + mpi_powm (output, input, skey->d, skey->n); + } + else + { + gcry_mpi_t m1 = mpi_alloc_secure( mpi_get_nlimbs(skey->n)+1 ); + gcry_mpi_t m2 = mpi_alloc_secure( mpi_get_nlimbs(skey->n)+1 ); + gcry_mpi_t h = mpi_alloc_secure( mpi_get_nlimbs(skey->n)+1 ); + + /* m1 = c ^ (d mod (p-1)) mod p */ + mpi_sub_ui( h, skey->p, 1 ); + mpi_fdiv_r( h, skey->d, h ); + mpi_powm( m1, input, h, skey->p ); + /* m2 = c ^ (d mod (q-1)) mod q */ + mpi_sub_ui( h, skey->q, 1 ); + mpi_fdiv_r( h, skey->d, h ); + mpi_powm( m2, input, h, skey->q ); + /* h = u * ( m2 - m1 ) mod q */ + mpi_sub( h, m2, m1 ); + if ( mpi_is_neg( h ) ) + mpi_add ( h, h, skey->q ); + mpi_mulm( h, skey->u, h, skey->q ); + /* m = m2 + h * p */ + mpi_mul ( h, h, skey->p ); + mpi_add ( output, m1, h ); + + mpi_free ( h ); + mpi_free ( m1 ); + mpi_free ( m2 ); + } +} + + + +/* Perform RSA blinding. */ +static gcry_mpi_t +rsa_blind (gcry_mpi_t x, gcry_mpi_t r, gcry_mpi_t e, gcry_mpi_t n) +{ + /* A helper. */ + gcry_mpi_t a; + + /* Result. */ + gcry_mpi_t y; + + a = gcry_mpi_snew (gcry_mpi_get_nbits (n)); + y = gcry_mpi_snew (gcry_mpi_get_nbits (n)); + + /* Now we calculate: y = (x * r^e) mod n, where r is the random + number, e is the public exponent, x is the non-blinded data and n + is the RSA modulus. */ + gcry_mpi_powm (a, r, e, n); + gcry_mpi_mulm (y, a, x, n); + + gcry_mpi_release (a); + + return y; +} + +/* Undo RSA blinding. */ +static gcry_mpi_t +rsa_unblind (gcry_mpi_t x, gcry_mpi_t ri, gcry_mpi_t n) +{ + gcry_mpi_t y; + + y = gcry_mpi_snew (gcry_mpi_get_nbits (n)); + + /* Here we calculate: y = (x * r^-1) mod n, where x is the blinded + decrypted data, ri is the modular multiplicative inverse of r and + n is the RSA modulus. */ + + gcry_mpi_mulm (y, ri, x, n); + + return y; +} + +/********************************************* + ************** interface ****************** + *********************************************/ + +static gcry_err_code_t +rsa_generate_ext (int algo, unsigned int nbits, unsigned long evalue, + const gcry_sexp_t genparms, + gcry_mpi_t *skey, gcry_mpi_t **retfactors, + gcry_sexp_t *r_extrainfo) +{ + RSA_secret_key sk; + gpg_err_code_t ec; + gcry_sexp_t deriveparms; + int transient_key = 0; + int use_x931 = 0; + gcry_sexp_t l1; + + (void)algo; + + *retfactors = NULL; /* We don't return them. */ + + deriveparms = (genparms? + gcry_sexp_find_token (genparms, "derive-parms", 0) : NULL); + if (!deriveparms) + { + /* Parse the optional "use-x931" flag. */ + l1 = gcry_sexp_find_token (genparms, "use-x931", 0); + if (l1) + { + use_x931 = 1; + gcry_sexp_release (l1); + } + } + + if (deriveparms || use_x931 || fips_mode ()) + { + int swapped; + ec = generate_x931 (&sk, nbits, evalue, deriveparms, &swapped); + gcry_sexp_release (deriveparms); + if (!ec && r_extrainfo && swapped) + { + ec = gcry_sexp_new (r_extrainfo, + "(misc-key-info(p-q-swapped))", 0, 1); + if (ec) + { + gcry_mpi_release (sk.n); sk.n = NULL; + gcry_mpi_release (sk.e); sk.e = NULL; + gcry_mpi_release (sk.p); sk.p = NULL; + gcry_mpi_release (sk.q); sk.q = NULL; + gcry_mpi_release (sk.d); sk.d = NULL; + gcry_mpi_release (sk.u); sk.u = NULL; + } + } + } + else + { + /* Parse the optional "transient-key" flag. */ + l1 = gcry_sexp_find_token (genparms, "transient-key", 0); + if (l1) + { + transient_key = 1; + gcry_sexp_release (l1); + } + /* Generate. */ + ec = generate_std (&sk, nbits, evalue, transient_key); + } + + if (!ec) + { + skey[0] = sk.n; + skey[1] = sk.e; + skey[2] = sk.d; + skey[3] = sk.p; + skey[4] = sk.q; + skey[5] = sk.u; + } + + return ec; +} + + +static gcry_err_code_t +rsa_generate (int algo, unsigned int nbits, unsigned long evalue, + gcry_mpi_t *skey, gcry_mpi_t **retfactors) +{ + return rsa_generate_ext (algo, nbits, evalue, NULL, skey, retfactors, NULL); +} + + +static gcry_err_code_t +rsa_check_secret_key (int algo, gcry_mpi_t *skey) +{ + gcry_err_code_t err = GPG_ERR_NO_ERROR; + RSA_secret_key sk; + + (void)algo; + + sk.n = skey[0]; + sk.e = skey[1]; + sk.d = skey[2]; + sk.p = skey[3]; + sk.q = skey[4]; + sk.u = skey[5]; + + if (!sk.p || !sk.q || !sk.u) + err = GPG_ERR_NO_OBJ; /* To check the key we need the optional + parameters. */ + else if (!check_secret_key (&sk)) + err = GPG_ERR_PUBKEY_ALGO; + + return err; +} + + +static gcry_err_code_t +rsa_encrypt (int algo, gcry_mpi_t *resarr, gcry_mpi_t data, + gcry_mpi_t *pkey, int flags) +{ + RSA_public_key pk; + + (void)algo; + (void)flags; + + pk.n = pkey[0]; + pk.e = pkey[1]; + resarr[0] = mpi_alloc (mpi_get_nlimbs (pk.n)); + public (resarr[0], data, &pk); + + return GPG_ERR_NO_ERROR; +} + + +static gcry_err_code_t +rsa_decrypt (int algo, gcry_mpi_t *result, gcry_mpi_t *data, + gcry_mpi_t *skey, int flags) +{ + RSA_secret_key sk; + gcry_mpi_t r = MPI_NULL; /* Random number needed for blinding. */ + gcry_mpi_t ri = MPI_NULL; /* Modular multiplicative inverse of + r. */ + gcry_mpi_t x = MPI_NULL; /* Data to decrypt. */ + gcry_mpi_t y; /* Result. */ + + (void)algo; + + /* Extract private key. */ + sk.n = skey[0]; + sk.e = skey[1]; + sk.d = skey[2]; + sk.p = skey[3]; /* Optional. */ + sk.q = skey[4]; /* Optional. */ + sk.u = skey[5]; /* Optional. */ + + y = gcry_mpi_snew (gcry_mpi_get_nbits (sk.n)); + + /* We use blinding by default to mitigate timing attacks which can + be practically mounted over the network as shown by Brumley and + Boney in 2003. */ + if (! (flags & PUBKEY_FLAG_NO_BLINDING)) + { + /* Initialize blinding. */ + + /* First, we need a random number r between 0 and n - 1, which + is relatively prime to n (i.e. it is neither p nor q). The + random number needs to be only unpredictable, thus we employ + the gcry_create_nonce function by using GCRY_WEAK_RANDOM with + gcry_mpi_randomize. */ + r = gcry_mpi_snew (gcry_mpi_get_nbits (sk.n)); + ri = gcry_mpi_snew (gcry_mpi_get_nbits (sk.n)); + + gcry_mpi_randomize (r, gcry_mpi_get_nbits (sk.n), GCRY_WEAK_RANDOM); + gcry_mpi_mod (r, r, sk.n); + + /* Calculate inverse of r. It practically impossible that the + follwing test fails, thus we do not add code to release + allocated resources. */ + if (!gcry_mpi_invm (ri, r, sk.n)) + return GPG_ERR_INTERNAL; + } + + if (! (flags & PUBKEY_FLAG_NO_BLINDING)) + x = rsa_blind (data[0], r, sk.e, sk.n); + else + x = data[0]; + + /* Do the encryption. */ + secret (y, x, &sk); + + if (! (flags & PUBKEY_FLAG_NO_BLINDING)) + { + /* Undo blinding. */ + gcry_mpi_t a = gcry_mpi_copy (y); + + gcry_mpi_release (y); + y = rsa_unblind (a, ri, sk.n); + + gcry_mpi_release (a); + } + + if (! (flags & PUBKEY_FLAG_NO_BLINDING)) + { + /* Deallocate resources needed for blinding. */ + gcry_mpi_release (x); + gcry_mpi_release (r); + gcry_mpi_release (ri); + } + + /* Copy out result. */ + *result = y; + + return GPG_ERR_NO_ERROR; +} + + +static gcry_err_code_t +rsa_sign (int algo, gcry_mpi_t *resarr, gcry_mpi_t data, gcry_mpi_t *skey) +{ + RSA_secret_key sk; + + (void)algo; + + sk.n = skey[0]; + sk.e = skey[1]; + sk.d = skey[2]; + sk.p = skey[3]; + sk.q = skey[4]; + sk.u = skey[5]; + resarr[0] = mpi_alloc( mpi_get_nlimbs (sk.n)); + secret (resarr[0], data, &sk); + + return GPG_ERR_NO_ERROR; +} + + +static gcry_err_code_t +rsa_verify (int algo, gcry_mpi_t hash, gcry_mpi_t *data, gcry_mpi_t *pkey, + int (*cmp) (void *opaque, gcry_mpi_t tmp), + void *opaquev) +{ + RSA_public_key pk; + gcry_mpi_t result; + gcry_err_code_t rc; + + (void)algo; + (void)cmp; + (void)opaquev; + + pk.n = pkey[0]; + pk.e = pkey[1]; + result = gcry_mpi_new ( 160 ); + public( result, data[0], &pk ); +#ifdef IS_DEVELOPMENT_VERSION + if (DBG_CIPHER) + { + log_mpidump ("rsa verify result:", result ); + log_mpidump (" hash:", hash ); + } +#endif /*IS_DEVELOPMENT_VERSION*/ + /*rc = (*cmp)( opaquev, result );*/ + rc = mpi_cmp (result, hash) ? GPG_ERR_BAD_SIGNATURE : GPG_ERR_NO_ERROR; + gcry_mpi_release (result); + + return rc; +} + + +static unsigned int +rsa_get_nbits (int algo, gcry_mpi_t *pkey) +{ + (void)algo; + + return mpi_get_nbits (pkey[0]); +} + + +/* Compute a keygrip. MD is the hash context which we are going to + update. KEYPARAM is an S-expression with the key parameters, this + is usually a public key but may also be a secret key. An example + of such an S-expression is: + + (rsa + (n #00B...#) + (e #010001#)) + + PKCS-15 says that for RSA only the modulus should be hashed - + however, it is not clear wether this is meant to use the raw bytes + (assuming this is an unsigned integer) or whether the DER required + 0 should be prefixed. We hash the raw bytes. */ +static gpg_err_code_t +compute_keygrip (gcry_md_hd_t md, gcry_sexp_t keyparam) +{ + gcry_sexp_t l1; + const char *data; + size_t datalen; + + l1 = gcry_sexp_find_token (keyparam, "n", 1); + if (!l1) + return GPG_ERR_NO_OBJ; + + data = gcry_sexp_nth_data (l1, 1, &datalen); + if (!data) + { + gcry_sexp_release (l1); + return GPG_ERR_NO_OBJ; + } + + gcry_md_write (md, data, datalen); + gcry_sexp_release (l1); + + return 0; +} + + + + +/* + Self-test section. + */ + + + + +/* Given an S-expression ENCR_DATA of the form: + + (enc-val + (rsa + (a a-value))) + + as returned by gcry_pk_decrypt, return the the A-VALUE. On error, + return NULL. */ +static gcry_mpi_t +extract_a_from_sexp (gcry_sexp_t encr_data) +{ + gcry_sexp_t l1, l2, l3; + gcry_mpi_t a_value; + + l1 = gcry_sexp_find_token (encr_data, "enc-val", 0); + if (!l1) + return NULL; + l2 = gcry_sexp_find_token (l1, "rsa", 0); + gcry_sexp_release (l1); + if (!l2) + return NULL; + l3 = gcry_sexp_find_token (l2, "a", 0); + gcry_sexp_release (l2); + if (!l3) + return NULL; + a_value = gcry_sexp_nth_mpi (l3, 1, 0); + gcry_sexp_release (l3); + + return a_value; +} + + + + + + +/* Run a full self-test for ALGO and return 0 on success. */ + + + + +static const char *rsa_names[] = + { + "rsa", + "openpgp-rsa", + "oid.1.2.840.113549.1.1.1", + NULL, + }; + +gcry_pk_spec_t _gcry_pubkey_spec_rsa = + { + "RSA", rsa_names, + "ne", "nedpqu", "a", "s", "n", + GCRY_PK_USAGE_SIGN | GCRY_PK_USAGE_ENCR, + rsa_generate, + rsa_check_secret_key, + rsa_encrypt, + rsa_decrypt, + rsa_sign, + rsa_verify, + rsa_get_nbits, + }; +pk_extra_spec_t _gcry_pubkey_extraspec_rsa = + { + run_selftests, + rsa_generate_ext, + compute_keygrip + }; + --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/g10lib.h +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/g10lib.h @@ -0,0 +1 @@ +#include --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/sha1.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/sha1.c @@ -0,0 +1,416 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* sha1.c - SHA1 hash function + * Copyright (C) 1998, 2001, 2002, 2003, 2008 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, see . + */ + + +/* Test vectors: + * + * "abc" + * A999 3E36 4706 816A BA3E 2571 7850 C26C 9CD0 D89D + * + * "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" + * 8498 3E44 1C3B D26E BAAE 4AA1 F951 29E5 E546 70F1 + */ + + +#ifdef HAVE_STDINT_H +# include +#endif + +#include "g10lib.h" +#include "memory.h" +#include "bithelp.h" +#include "cipher.h" +#include "hash-common.h" + + +/* A macro to test whether P is properly aligned for an u32 type. + Note that config.h provides a suitable replacement for uintptr_t if + it does not exist in stdint.h. */ +/* #if __GNUC__ >= 2 */ +/* # define U32_ALIGNED_P(p) (!(((uintptr_t)p) % __alignof__ (u32))) */ +/* #else */ +/* # define U32_ALIGNED_P(p) (!(((uintptr_t)p) % sizeof (u32))) */ +/* #endif */ + +#define TRANSFORM(x,d,n) transform ((x), (d), (n)) + + +typedef struct +{ + u32 h0,h1,h2,h3,h4; + u32 nblocks; + unsigned char buf[64]; + int count; +} SHA1_CONTEXT; + + + +static void +sha1_init (void *context) +{ + SHA1_CONTEXT *hd = context; + + hd->h0 = 0x67452301; + hd->h1 = 0xefcdab89; + hd->h2 = 0x98badcfe; + hd->h3 = 0x10325476; + hd->h4 = 0xc3d2e1f0; + hd->nblocks = 0; + hd->count = 0; +} + + +/* Round function macros. */ +#define K1 0x5A827999L +#define K2 0x6ED9EBA1L +#define K3 0x8F1BBCDCL +#define K4 0xCA62C1D6L +#define F1(x,y,z) ( z ^ ( x & ( y ^ z ) ) ) +#define F2(x,y,z) ( x ^ y ^ z ) +#define F3(x,y,z) ( ( x & y ) | ( z & ( x | y ) ) ) +#define F4(x,y,z) ( x ^ y ^ z ) +#define M(i) ( tm = x[ i &0x0f] \ + ^ x[(i-14)&0x0f] \ + ^ x[(i-8) &0x0f] \ + ^ x[(i-3) &0x0f], \ + (x[i&0x0f] = rol(tm, 1))) +#define R(a,b,c,d,e,f,k,m) do { e += rol( a, 5 ) \ + + f( b, c, d ) \ + + k \ + + m; \ + b = rol( b, 30 ); \ + } while(0) + + +/* + * Transform NBLOCKS of each 64 bytes (16 32-bit words) at DATA. + */ +static void +transform (SHA1_CONTEXT *hd, const unsigned char *data, size_t nblocks) +{ + register u32 a, b, c, d, e; /* Local copies of the chaining variables. */ + register u32 tm; /* Helper. */ + u32 x[16]; /* The array we work on. */ + + /* Loop over all blocks. */ + for ( ;nblocks; nblocks--) + { +#ifdef WORDS_BIGENDIAN + memcpy (x, data, 64); + data += 64; +#else + { + int i; + unsigned char *p; + + for(i=0, p=(unsigned char*)x; i < 16; i++, p += 4 ) + { + p[3] = *data++; + p[2] = *data++; + p[1] = *data++; + p[0] = *data++; + } + } +#endif + /* Get the values of the chaining variables. */ + a = hd->h0; + b = hd->h1; + c = hd->h2; + d = hd->h3; + e = hd->h4; + + /* Transform. */ + R( a, b, c, d, e, F1, K1, x[ 0] ); + R( e, a, b, c, d, F1, K1, x[ 1] ); + R( d, e, a, b, c, F1, K1, x[ 2] ); + R( c, d, e, a, b, F1, K1, x[ 3] ); + R( b, c, d, e, a, F1, K1, x[ 4] ); + R( a, b, c, d, e, F1, K1, x[ 5] ); + R( e, a, b, c, d, F1, K1, x[ 6] ); + R( d, e, a, b, c, F1, K1, x[ 7] ); + R( c, d, e, a, b, F1, K1, x[ 8] ); + R( b, c, d, e, a, F1, K1, x[ 9] ); + R( a, b, c, d, e, F1, K1, x[10] ); + R( e, a, b, c, d, F1, K1, x[11] ); + R( d, e, a, b, c, F1, K1, x[12] ); + R( c, d, e, a, b, F1, K1, x[13] ); + R( b, c, d, e, a, F1, K1, x[14] ); + R( a, b, c, d, e, F1, K1, x[15] ); + R( e, a, b, c, d, F1, K1, M(16) ); + R( d, e, a, b, c, F1, K1, M(17) ); + R( c, d, e, a, b, F1, K1, M(18) ); + R( b, c, d, e, a, F1, K1, M(19) ); + R( a, b, c, d, e, F2, K2, M(20) ); + R( e, a, b, c, d, F2, K2, M(21) ); + R( d, e, a, b, c, F2, K2, M(22) ); + R( c, d, e, a, b, F2, K2, M(23) ); + R( b, c, d, e, a, F2, K2, M(24) ); + R( a, b, c, d, e, F2, K2, M(25) ); + R( e, a, b, c, d, F2, K2, M(26) ); + R( d, e, a, b, c, F2, K2, M(27) ); + R( c, d, e, a, b, F2, K2, M(28) ); + R( b, c, d, e, a, F2, K2, M(29) ); + R( a, b, c, d, e, F2, K2, M(30) ); + R( e, a, b, c, d, F2, K2, M(31) ); + R( d, e, a, b, c, F2, K2, M(32) ); + R( c, d, e, a, b, F2, K2, M(33) ); + R( b, c, d, e, a, F2, K2, M(34) ); + R( a, b, c, d, e, F2, K2, M(35) ); + R( e, a, b, c, d, F2, K2, M(36) ); + R( d, e, a, b, c, F2, K2, M(37) ); + R( c, d, e, a, b, F2, K2, M(38) ); + R( b, c, d, e, a, F2, K2, M(39) ); + R( a, b, c, d, e, F3, K3, M(40) ); + R( e, a, b, c, d, F3, K3, M(41) ); + R( d, e, a, b, c, F3, K3, M(42) ); + R( c, d, e, a, b, F3, K3, M(43) ); + R( b, c, d, e, a, F3, K3, M(44) ); + R( a, b, c, d, e, F3, K3, M(45) ); + R( e, a, b, c, d, F3, K3, M(46) ); + R( d, e, a, b, c, F3, K3, M(47) ); + R( c, d, e, a, b, F3, K3, M(48) ); + R( b, c, d, e, a, F3, K3, M(49) ); + R( a, b, c, d, e, F3, K3, M(50) ); + R( e, a, b, c, d, F3, K3, M(51) ); + R( d, e, a, b, c, F3, K3, M(52) ); + R( c, d, e, a, b, F3, K3, M(53) ); + R( b, c, d, e, a, F3, K3, M(54) ); + R( a, b, c, d, e, F3, K3, M(55) ); + R( e, a, b, c, d, F3, K3, M(56) ); + R( d, e, a, b, c, F3, K3, M(57) ); + R( c, d, e, a, b, F3, K3, M(58) ); + R( b, c, d, e, a, F3, K3, M(59) ); + R( a, b, c, d, e, F4, K4, M(60) ); + R( e, a, b, c, d, F4, K4, M(61) ); + R( d, e, a, b, c, F4, K4, M(62) ); + R( c, d, e, a, b, F4, K4, M(63) ); + R( b, c, d, e, a, F4, K4, M(64) ); + R( a, b, c, d, e, F4, K4, M(65) ); + R( e, a, b, c, d, F4, K4, M(66) ); + R( d, e, a, b, c, F4, K4, M(67) ); + R( c, d, e, a, b, F4, K4, M(68) ); + R( b, c, d, e, a, F4, K4, M(69) ); + R( a, b, c, d, e, F4, K4, M(70) ); + R( e, a, b, c, d, F4, K4, M(71) ); + R( d, e, a, b, c, F4, K4, M(72) ); + R( c, d, e, a, b, F4, K4, M(73) ); + R( b, c, d, e, a, F4, K4, M(74) ); + R( a, b, c, d, e, F4, K4, M(75) ); + R( e, a, b, c, d, F4, K4, M(76) ); + R( d, e, a, b, c, F4, K4, M(77) ); + R( c, d, e, a, b, F4, K4, M(78) ); + R( b, c, d, e, a, F4, K4, M(79) ); + + /* Update the chaining variables. */ + hd->h0 += a; + hd->h1 += b; + hd->h2 += c; + hd->h3 += d; + hd->h4 += e; + } +} + + +/* Update the message digest with the contents + * of INBUF with length INLEN. + */ +static void +sha1_write( void *context, const void *inbuf_arg, size_t inlen) +{ + const unsigned char *inbuf = inbuf_arg; + SHA1_CONTEXT *hd = context; + size_t nblocks; + + if (hd->count == 64) /* Flush the buffer. */ + { + TRANSFORM( hd, hd->buf, 1 ); + _gcry_burn_stack (88+4*sizeof(void*)); + hd->count = 0; + hd->nblocks++; + } + if (!inbuf) + return; + + if (hd->count) + { + for (; inlen && hd->count < 64; inlen--) + hd->buf[hd->count++] = *inbuf++; + sha1_write (hd, NULL, 0); + if (!inlen) + return; + } + + nblocks = inlen / 64; + if (nblocks) + { + TRANSFORM (hd, inbuf, nblocks); + hd->count = 0; + hd->nblocks += nblocks; + inlen -= nblocks * 64; + inbuf += nblocks * 64; + } + _gcry_burn_stack (88+4*sizeof(void*)); + + /* Save remaining bytes. */ + for (; inlen && hd->count < 64; inlen--) + hd->buf[hd->count++] = *inbuf++; +} + + +/* The routine final terminates the computation and + * returns the digest. + * The handle is prepared for a new cycle, but adding bytes to the + * handle will the destroy the returned buffer. + * Returns: 20 bytes representing the digest. + */ + +static void +sha1_final(void *context) +{ + SHA1_CONTEXT *hd = context; + + u32 t, msb, lsb; + unsigned char *p; + + sha1_write(hd, NULL, 0); /* flush */; + + t = hd->nblocks; + /* multiply by 64 to make a byte count */ + lsb = t << 6; + msb = t >> 26; + /* add the count */ + t = lsb; + if( (lsb += hd->count) < t ) + msb++; + /* multiply by 8 to make a bit count */ + t = lsb; + lsb <<= 3; + msb <<= 3; + msb |= t >> 29; + + if( hd->count < 56 ) /* enough room */ + { + hd->buf[hd->count++] = 0x80; /* pad */ + while( hd->count < 56 ) + hd->buf[hd->count++] = 0; /* pad */ + } + else /* need one extra block */ + { + hd->buf[hd->count++] = 0x80; /* pad character */ + while( hd->count < 64 ) + hd->buf[hd->count++] = 0; + sha1_write(hd, NULL, 0); /* flush */; + memset(hd->buf, 0, 56 ); /* fill next block with zeroes */ + } + /* append the 64 bit count */ + hd->buf[56] = msb >> 24; + hd->buf[57] = msb >> 16; + hd->buf[58] = msb >> 8; + hd->buf[59] = msb ; + hd->buf[60] = lsb >> 24; + hd->buf[61] = lsb >> 16; + hd->buf[62] = lsb >> 8; + hd->buf[63] = lsb ; + TRANSFORM( hd, hd->buf, 1 ); + _gcry_burn_stack (88+4*sizeof(void*)); + + p = hd->buf; +#ifdef WORDS_BIGENDIAN +#define X(a) do { *(u32*)p = hd->h##a ; p += 4; } while(0) +#else /* little endian */ +#define X(a) do { *p++ = hd->h##a >> 24; *p++ = hd->h##a >> 16; \ + *p++ = hd->h##a >> 8; *p++ = hd->h##a; } while(0) +#endif + X(0); + X(1); + X(2); + X(3); + X(4); +#undef X + +} + +static unsigned char * +sha1_read( void *context ) +{ + SHA1_CONTEXT *hd = context; + + return hd->buf; +} + +/**************** + * Shortcut functions which puts the hash value of the supplied buffer + * into outbuf which must have a size of 20 bytes. + */ + + + +/* + Self-test section. + */ + + + + +/* Run a full self-test for ALGO and return 0 on success. */ + + + + +static unsigned char asn[15] = /* Object ID is 1.3.14.3.2.26 */ + { 0x30, 0x21, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, + 0x02, 0x1a, 0x05, 0x00, 0x04, 0x14 }; + +static gcry_md_oid_spec_t oid_spec_sha1[] = + { + /* iso.member-body.us.rsadsi.pkcs.pkcs-1.5 (sha1WithRSAEncryption) */ + { "1.2.840.113549.1.1.5" }, + /* iso.member-body.us.x9-57.x9cm.3 (dsaWithSha1)*/ + { "1.2.840.10040.4.3" }, + /* from NIST's OIW (sha1) */ + { "1.3.14.3.2.26" }, + /* from NIST OIW (sha-1WithRSAEncryption) */ + { "1.3.14.3.2.29" }, + /* iso.member-body.us.ansi-x9-62.signatures.ecdsa-with-sha1 */ + { "1.2.840.10045.4.1" }, + { NULL }, + }; + +gcry_md_spec_t _gcry_digest_spec_sha1 = + { + "SHA1", asn, DIM (asn), oid_spec_sha1, 20, + sha1_init, sha1_write, sha1_final, sha1_read, + sizeof (SHA1_CONTEXT) + , + .blocksize = 64 + }; + + + +GRUB_MOD_INIT(gcry_sha1) +{ + grub_md_register (&_gcry_digest_spec_sha1); +} + +GRUB_MOD_FINI(gcry_sha1) +{ + grub_md_unregister (&_gcry_digest_spec_sha1); +} --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/camellia-glue.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/camellia-glue.c @@ -0,0 +1,197 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* camellia-glue.c - Glue for the Camellia cipher + * Copyright (C) 2007 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser 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. + */ + +/* I put all the libgcrypt-specific stuff in this file to keep the + camellia.c/camellia.h files exactly as provided by NTT. If they + update their code, this should make it easier to bring the changes + in. - dshaw + + There is one small change which needs to be done: Include the + following code at the top of camellia.h: */ +#if 0 + +/* To use Camellia with libraries it is often useful to keep the name + * space of the library clean. The following macro is thus useful: + * + * #define CAMELLIA_EXT_SYM_PREFIX foo_ + * + * This prefixes all external symbols with "foo_". + */ +#ifdef HAVE_CONFIG_H +#endif +#ifdef CAMELLIA_EXT_SYM_PREFIX +#define CAMELLIA_PREFIX1(x,y) x ## y +#define CAMELLIA_PREFIX2(x,y) CAMELLIA_PREFIX1(x,y) +#define CAMELLIA_PREFIX(x) CAMELLIA_PREFIX2(CAMELLIA_EXT_SYM_PREFIX,x) +#define Camellia_Ekeygen CAMELLIA_PREFIX(Camellia_Ekeygen) +#define Camellia_EncryptBlock CAMELLIA_PREFIX(Camellia_EncryptBlock) +#define Camellia_DecryptBlock CAMELLIA_PREFIX(Camellia_DecryptBlock) +#define camellia_decrypt128 CAMELLIA_PREFIX(camellia_decrypt128) +#define camellia_decrypt256 CAMELLIA_PREFIX(camellia_decrypt256) +#define camellia_encrypt128 CAMELLIA_PREFIX(camellia_encrypt128) +#define camellia_encrypt256 CAMELLIA_PREFIX(camellia_encrypt256) +#define camellia_setup128 CAMELLIA_PREFIX(camellia_setup128) +#define camellia_setup192 CAMELLIA_PREFIX(camellia_setup192) +#define camellia_setup256 CAMELLIA_PREFIX(camellia_setup256) +#endif /*CAMELLIA_EXT_SYM_PREFIX*/ + +#endif /* Code sample. */ + + +#include "types.h" +#include "g10lib.h" +#include "cipher.h" +#include "camellia.h" + +typedef struct +{ + int keybitlength; + KEY_TABLE_TYPE keytable; +} CAMELLIA_context; + + +static gcry_err_code_t +camellia_setkey(void *c, const byte *key, unsigned keylen) +{ + CAMELLIA_context *ctx=c; + static int initialized=0; + static const char *selftest_failed=NULL; + + if(keylen!=16 && keylen!=24 && keylen!=32) + return GPG_ERR_INV_KEYLEN; + + if(!initialized) + { + initialized=1; + selftest_failed=selftest(); + if(selftest_failed) + log_error("%s\n",selftest_failed); + } + + if(selftest_failed) + return GPG_ERR_SELFTEST_FAILED; + + ctx->keybitlength=keylen*8; + Camellia_Ekeygen(ctx->keybitlength,key,ctx->keytable); + _gcry_burn_stack + ((19+34+34)*sizeof(u32)+2*sizeof(void*) /* camellia_setup256 */ + +(4+32)*sizeof(u32)+2*sizeof(void*) /* camellia_setup192 */ + +0+sizeof(int)+2*sizeof(void*) /* Camellia_Ekeygen */ + +3*2*sizeof(void*) /* Function calls. */ + ); + + return 0; +} + +static void +camellia_encrypt(void *c, byte *outbuf, const byte *inbuf) +{ + CAMELLIA_context *ctx=c; + + Camellia_EncryptBlock(ctx->keybitlength,inbuf,ctx->keytable,outbuf); + _gcry_burn_stack + (sizeof(int)+2*sizeof(unsigned char *)+sizeof(KEY_TABLE_TYPE) + +4*sizeof(u32) + +2*sizeof(u32*)+4*sizeof(u32) + +2*2*sizeof(void*) /* Function calls. */ + ); +} + +static void +camellia_decrypt(void *c, byte *outbuf, const byte *inbuf) +{ + CAMELLIA_context *ctx=c; + + Camellia_DecryptBlock(ctx->keybitlength,inbuf,ctx->keytable,outbuf); + _gcry_burn_stack + (sizeof(int)+2*sizeof(unsigned char *)+sizeof(KEY_TABLE_TYPE) + +4*sizeof(u32) + +2*sizeof(u32*)+4*sizeof(u32) + +2*2*sizeof(void*) /* Function calls. */ + ); +} + + +/* These oids are from + , + retrieved May 1, 2007. */ + +static gcry_cipher_oid_spec_t camellia128_oids[] = + { + {"1.2.392.200011.61.1.1.1.2", GCRY_CIPHER_MODE_CBC}, + {"0.3.4401.5.3.1.9.1", GCRY_CIPHER_MODE_ECB}, + {"0.3.4401.5.3.1.9.3", GCRY_CIPHER_MODE_OFB}, + {"0.3.4401.5.3.1.9.4", GCRY_CIPHER_MODE_CFB}, + { NULL } + }; + +static gcry_cipher_oid_spec_t camellia192_oids[] = + { + {"1.2.392.200011.61.1.1.1.3", GCRY_CIPHER_MODE_CBC}, + {"0.3.4401.5.3.1.9.21", GCRY_CIPHER_MODE_ECB}, + {"0.3.4401.5.3.1.9.23", GCRY_CIPHER_MODE_OFB}, + {"0.3.4401.5.3.1.9.24", GCRY_CIPHER_MODE_CFB}, + { NULL } + }; + +static gcry_cipher_oid_spec_t camellia256_oids[] = + { + {"1.2.392.200011.61.1.1.1.4", GCRY_CIPHER_MODE_CBC}, + {"0.3.4401.5.3.1.9.41", GCRY_CIPHER_MODE_ECB}, + {"0.3.4401.5.3.1.9.43", GCRY_CIPHER_MODE_OFB}, + {"0.3.4401.5.3.1.9.44", GCRY_CIPHER_MODE_CFB}, + { NULL } + }; + +gcry_cipher_spec_t _gcry_cipher_spec_camellia128 = + { + "CAMELLIA128",NULL,camellia128_oids,CAMELLIA_BLOCK_SIZE,128, + sizeof(CAMELLIA_context),camellia_setkey,camellia_encrypt,camellia_decrypt + }; + +gcry_cipher_spec_t _gcry_cipher_spec_camellia192 = + { + "CAMELLIA192",NULL,camellia192_oids,CAMELLIA_BLOCK_SIZE,192, + sizeof(CAMELLIA_context),camellia_setkey,camellia_encrypt,camellia_decrypt + }; + +gcry_cipher_spec_t _gcry_cipher_spec_camellia256 = + { + "CAMELLIA256",NULL,camellia256_oids,CAMELLIA_BLOCK_SIZE,256, + sizeof(CAMELLIA_context),camellia_setkey,camellia_encrypt,camellia_decrypt + }; + + +GRUB_MOD_INIT(gcry_camellia) +{ + grub_cipher_register (&_gcry_cipher_spec_camellia128); + grub_cipher_register (&_gcry_cipher_spec_camellia192); + grub_cipher_register (&_gcry_cipher_spec_camellia256); +} + +GRUB_MOD_FINI(gcry_camellia) +{ + grub_cipher_unregister (&_gcry_cipher_spec_camellia128); + grub_cipher_unregister (&_gcry_cipher_spec_camellia192); + grub_cipher_unregister (&_gcry_cipher_spec_camellia256); +} --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/sha256.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/sha256.c @@ -0,0 +1,386 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* sha256.c - SHA256 hash function + * Copyright (C) 2003, 2006, 2008 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, see . + */ + + +/* Test vectors: + + "abc" + SHA224: 23097d22 3405d822 8642a477 bda255b3 2aadbce4 bda0b3f7 e36c9da7 + SHA256: ba7816bf 8f01cfea 414140de 5dae2223 b00361a3 96177a9c b410ff61 f20015ad + + "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" + SHA224: 75388b16 512776cc 5dba5da1 fd890150 b0c6455c b4f58b19 52522525 + SHA256: 248d6a61 d20638b8 e5c02693 0c3e6039 a33ce459 64ff2167 f6ecedd4 19db06c1 + + "a" one million times + SHA224: 20794655 980c91d8 bbb4c1ea 97618a4b f03f4258 1948b2ee 4ee7ad67 + SHA256: cdc76e5c 9914fb92 81a1c7e2 84d73e67 f1809a48 a497200e 046d39cc c7112cd0 + + */ + + + +#include "g10lib.h" +#include "memory.h" +#include "bithelp.h" +#include "cipher.h" +#include "hash-common.h" + +typedef struct { + u32 h0,h1,h2,h3,h4,h5,h6,h7; + u32 nblocks; + byte buf[64]; + int count; +} SHA256_CONTEXT; + + +static void +sha256_init (void *context) +{ + SHA256_CONTEXT *hd = context; + + hd->h0 = 0x6a09e667; + hd->h1 = 0xbb67ae85; + hd->h2 = 0x3c6ef372; + hd->h3 = 0xa54ff53a; + hd->h4 = 0x510e527f; + hd->h5 = 0x9b05688c; + hd->h6 = 0x1f83d9ab; + hd->h7 = 0x5be0cd19; + + hd->nblocks = 0; + hd->count = 0; +} + + +static void +sha224_init (void *context) +{ + SHA256_CONTEXT *hd = context; + + hd->h0 = 0xc1059ed8; + hd->h1 = 0x367cd507; + hd->h2 = 0x3070dd17; + hd->h3 = 0xf70e5939; + hd->h4 = 0xffc00b31; + hd->h5 = 0x68581511; + hd->h6 = 0x64f98fa7; + hd->h7 = 0xbefa4fa4; + + hd->nblocks = 0; + hd->count = 0; +} + + +/* + Transform the message X which consists of 16 32-bit-words. See FIPS + 180-2 for details. */ +#define Cho(x,y,z) (z ^ (x & (y ^ z))) /* (4.2) same as SHA-1's F1 */ +#define Maj(x,y,z) ((x & y) | (z & (x|y))) /* (4.3) same as SHA-1's F3 */ +#define Sum0(x) (ror ((x), 2) ^ ror ((x), 13) ^ ror ((x), 22)) /* (4.4) */ +#define Sum1(x) (ror ((x), 6) ^ ror ((x), 11) ^ ror ((x), 25)) /* (4.5) */ +#define S0(x) (ror ((x), 7) ^ ror ((x), 18) ^ ((x) >> 3)) /* (4.6) */ +#define S1(x) (ror ((x), 17) ^ ror ((x), 19) ^ ((x) >> 10)) /* (4.7) */ +#define R(a,b,c,d,e,f,g,h,k,w) do \ + { \ + t1 = (h) + Sum1((e)) + Cho((e),(f),(g)) + (k) + (w); \ + t2 = Sum0((a)) + Maj((a),(b),(c)); \ + h = g; \ + g = f; \ + f = e; \ + e = d + t1; \ + d = c; \ + c = b; \ + b = a; \ + a = t1 + t2; \ + } while (0) + +static void +transform (SHA256_CONTEXT *hd, const unsigned char *data) +{ + static const u32 K[64] = { + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, + 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, + 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, + 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, + 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, + 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, + 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, + 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, + 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 + }; + + u32 a,b,c,d,e,f,g,h,t1,t2; + u32 x[16]; + u32 w[64]; + int i; + + a = hd->h0; + b = hd->h1; + c = hd->h2; + d = hd->h3; + e = hd->h4; + f = hd->h5; + g = hd->h6; + h = hd->h7; + +#ifdef WORDS_BIGENDIAN + memcpy (x, data, 64); +#else + { + byte *p2; + + for (i=0, p2=(byte*)x; i < 16; i++, p2 += 4 ) + { + p2[3] = *data++; + p2[2] = *data++; + p2[1] = *data++; + p2[0] = *data++; + } + } +#endif + + for (i=0; i < 16; i++) + w[i] = x[i]; + for (; i < 64; i++) + w[i] = S1(w[i-2]) + w[i-7] + S0(w[i-15]) + w[i-16]; + + for (i=0; i < 64; i++) + R(a,b,c,d,e,f,g,h,K[i],w[i]); + + hd->h0 += a; + hd->h1 += b; + hd->h2 += c; + hd->h3 += d; + hd->h4 += e; + hd->h5 += f; + hd->h6 += g; + hd->h7 += h; +} +#undef Cho +#undef Maj +#undef Sum0 +#undef Sum1 +#undef S0 +#undef S1 +#undef R + + +/* Update the message digest with the contents of INBUF with length + INLEN. */ +static void +sha256_write (void *context, const void *inbuf_arg, size_t inlen) +{ + const unsigned char *inbuf = inbuf_arg; + SHA256_CONTEXT *hd = context; + + if (hd->count == 64) + { /* flush the buffer */ + transform (hd, hd->buf); + _gcry_burn_stack (74*4+32); + hd->count = 0; + hd->nblocks++; + } + if (!inbuf) + return; + if (hd->count) + { + for (; inlen && hd->count < 64; inlen--) + hd->buf[hd->count++] = *inbuf++; + sha256_write (hd, NULL, 0); + if (!inlen) + return; + } + + while (inlen >= 64) + { + transform (hd, inbuf); + hd->count = 0; + hd->nblocks++; + inlen -= 64; + inbuf += 64; + } + _gcry_burn_stack (74*4+32); + for (; inlen && hd->count < 64; inlen--) + hd->buf[hd->count++] = *inbuf++; +} + + +/* + The routine finally terminates the computation and returns the + digest. The handle is prepared for a new cycle, but adding bytes + to the handle will the destroy the returned buffer. Returns: 32 + bytes with the message the digest. */ +static void +sha256_final(void *context) +{ + SHA256_CONTEXT *hd = context; + u32 t, msb, lsb; + byte *p; + + sha256_write (hd, NULL, 0); /* flush */; + + t = hd->nblocks; + /* multiply by 64 to make a byte count */ + lsb = t << 6; + msb = t >> 26; + /* add the count */ + t = lsb; + if ((lsb += hd->count) < t) + msb++; + /* multiply by 8 to make a bit count */ + t = lsb; + lsb <<= 3; + msb <<= 3; + msb |= t >> 29; + + if (hd->count < 56) + { /* enough room */ + hd->buf[hd->count++] = 0x80; /* pad */ + while (hd->count < 56) + hd->buf[hd->count++] = 0; /* pad */ + } + else + { /* need one extra block */ + hd->buf[hd->count++] = 0x80; /* pad character */ + while (hd->count < 64) + hd->buf[hd->count++] = 0; + sha256_write (hd, NULL, 0); /* flush */; + memset (hd->buf, 0, 56 ); /* fill next block with zeroes */ + } + /* append the 64 bit count */ + hd->buf[56] = msb >> 24; + hd->buf[57] = msb >> 16; + hd->buf[58] = msb >> 8; + hd->buf[59] = msb; + hd->buf[60] = lsb >> 24; + hd->buf[61] = lsb >> 16; + hd->buf[62] = lsb >> 8; + hd->buf[63] = lsb; + transform (hd, hd->buf); + _gcry_burn_stack (74*4+32); + + p = hd->buf; +#ifdef WORDS_BIGENDIAN +#define X(a) do { *(u32*)p = hd->h##a ; p += 4; } while(0) +#else /* little endian */ +#define X(a) do { *p++ = hd->h##a >> 24; *p++ = hd->h##a >> 16; \ + *p++ = hd->h##a >> 8; *p++ = hd->h##a; } while(0) +#endif + X(0); + X(1); + X(2); + X(3); + X(4); + X(5); + X(6); + X(7); +#undef X +} + +static byte * +sha256_read (void *context) +{ + SHA256_CONTEXT *hd = context; + + return hd->buf; +} + + + +/* + Self-test section. + */ + + + + + +/* Run a full self-test for ALGO and return 0 on success. */ + + + + +static byte asn224[19] = /* Object ID is 2.16.840.1.101.3.4.2.4 */ + { 0x30, 0x2D, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, + 0x01, 0x65, 0x03, 0x04, 0x02, 0x04, 0x05, 0x00, 0x04, + 0x1C + }; + +static gcry_md_oid_spec_t oid_spec_sha224[] = + { + /* From RFC3874, Section 4 */ + { "2.16.840.1.101.3.4.2.4" }, + { NULL }, + }; + +static byte asn256[19] = /* Object ID is 2.16.840.1.101.3.4.2.1 */ + { 0x30, 0x31, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, + 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05, + 0x00, 0x04, 0x20 }; + +static gcry_md_oid_spec_t oid_spec_sha256[] = + { + /* According to the OpenPGP draft rfc2440-bis06 */ + { "2.16.840.1.101.3.4.2.1" }, + /* PKCS#1 sha256WithRSAEncryption */ + { "1.2.840.113549.1.1.11" }, + + { NULL }, + }; + +gcry_md_spec_t _gcry_digest_spec_sha224 = + { + "SHA224", asn224, DIM (asn224), oid_spec_sha224, 28, + sha224_init, sha256_write, sha256_final, sha256_read, + sizeof (SHA256_CONTEXT) + , + .blocksize = 64 + }; + +gcry_md_spec_t _gcry_digest_spec_sha256 = + { + "SHA256", asn256, DIM (asn256), oid_spec_sha256, 32, + sha256_init, sha256_write, sha256_final, sha256_read, + sizeof (SHA256_CONTEXT) + , + .blocksize = 64 + }; + + +GRUB_MOD_INIT(gcry_sha256) +{ + grub_md_register (&_gcry_digest_spec_sha224); + grub_md_register (&_gcry_digest_spec_sha256); +} + +GRUB_MOD_FINI(gcry_sha256) +{ + grub_md_unregister (&_gcry_digest_spec_sha224); + grub_md_unregister (&_gcry_digest_spec_sha256); +} --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/elgamal.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/elgamal.c @@ -0,0 +1,844 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* Elgamal.c - Elgamal Public Key encryption + * Copyright (C) 1998, 2000, 2001, 2002, 2003, + * 2008 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, see . + * + * For a description of the algorithm, see: + * Bruce Schneier: Applied Cryptography. John Wiley & Sons, 1996. + * ISBN 0-471-11709-9. Pages 476 ff. + */ + +#include "g10lib.h" +#include "mpi.h" +#include "cipher.h" + +typedef struct +{ + gcry_mpi_t p; /* prime */ + gcry_mpi_t g; /* group generator */ + gcry_mpi_t y; /* g^x mod p */ +} ELG_public_key; + + +typedef struct +{ + gcry_mpi_t p; /* prime */ + gcry_mpi_t g; /* group generator */ + gcry_mpi_t y; /* g^x mod p */ + gcry_mpi_t x; /* secret exponent */ +} ELG_secret_key; + + +static int test_keys (ELG_secret_key *sk, unsigned int nbits, int nodie); +static gcry_mpi_t gen_k (gcry_mpi_t p, int small_k); +static void generate (ELG_secret_key *sk, unsigned nbits, gcry_mpi_t **factors); +static int check_secret_key (ELG_secret_key *sk); +static void do_encrypt (gcry_mpi_t a, gcry_mpi_t b, gcry_mpi_t input, + ELG_public_key *pkey); +static void decrypt (gcry_mpi_t output, gcry_mpi_t a, gcry_mpi_t b, + ELG_secret_key *skey); +static void sign (gcry_mpi_t a, gcry_mpi_t b, gcry_mpi_t input, + ELG_secret_key *skey); +static int verify (gcry_mpi_t a, gcry_mpi_t b, gcry_mpi_t input, + ELG_public_key *pkey); + + +static void (*progress_cb) (void *, const char *, int, int, int); +static void *progress_cb_data; + +void +_gcry_register_pk_elg_progress (void (*cb) (void *, const char *, + int, int, int), + void *cb_data) +{ + progress_cb = cb; + progress_cb_data = cb_data; +} + + +static void +progress (int c) +{ + if (progress_cb) + progress_cb (progress_cb_data, "pk_elg", c, 0, 0); +} + + +/**************** + * Michael Wiener's table on subgroup sizes to match field sizes. + * (floating around somewhere, probably based on the paper from + * Eurocrypt 96, page 332) + */ +static unsigned int +wiener_map( unsigned int n ) +{ + static struct { unsigned int p_n, q_n; } t[] = + { /* p q attack cost */ + { 512, 119 }, /* 9 x 10^17 */ + { 768, 145 }, /* 6 x 10^21 */ + { 1024, 165 }, /* 7 x 10^24 */ + { 1280, 183 }, /* 3 x 10^27 */ + { 1536, 198 }, /* 7 x 10^29 */ + { 1792, 212 }, /* 9 x 10^31 */ + { 2048, 225 }, /* 8 x 10^33 */ + { 2304, 237 }, /* 5 x 10^35 */ + { 2560, 249 }, /* 3 x 10^37 */ + { 2816, 259 }, /* 1 x 10^39 */ + { 3072, 269 }, /* 3 x 10^40 */ + { 3328, 279 }, /* 8 x 10^41 */ + { 3584, 288 }, /* 2 x 10^43 */ + { 3840, 296 }, /* 4 x 10^44 */ + { 4096, 305 }, /* 7 x 10^45 */ + { 4352, 313 }, /* 1 x 10^47 */ + { 4608, 320 }, /* 2 x 10^48 */ + { 4864, 328 }, /* 2 x 10^49 */ + { 5120, 335 }, /* 3 x 10^50 */ + { 0, 0 } + }; + int i; + + for(i=0; t[i].p_n; i++ ) + { + if( n <= t[i].p_n ) + return t[i].q_n; + } + /* Not in table - use an arbitrary high number. */ + return n / 8 + 200; +} + +static int +test_keys ( ELG_secret_key *sk, unsigned int nbits, int nodie ) +{ + ELG_public_key pk; + gcry_mpi_t test = gcry_mpi_new ( 0 ); + gcry_mpi_t out1_a = gcry_mpi_new ( nbits ); + gcry_mpi_t out1_b = gcry_mpi_new ( nbits ); + gcry_mpi_t out2 = gcry_mpi_new ( nbits ); + int failed = 0; + + pk.p = sk->p; + pk.g = sk->g; + pk.y = sk->y; + + gcry_mpi_randomize ( test, nbits, GCRY_WEAK_RANDOM ); + + do_encrypt ( out1_a, out1_b, test, &pk ); + decrypt ( out2, out1_a, out1_b, sk ); + if ( mpi_cmp( test, out2 ) ) + failed |= 1; + + sign ( out1_a, out1_b, test, sk ); + if ( !verify( out1_a, out1_b, test, &pk ) ) + failed |= 2; + + gcry_mpi_release ( test ); + gcry_mpi_release ( out1_a ); + gcry_mpi_release ( out1_b ); + gcry_mpi_release ( out2 ); + + if (failed && !nodie) + log_fatal ("Elgamal test key for %s %s failed\n", + (failed & 1)? "encrypt+decrypt":"", + (failed & 2)? "sign+verify":""); + if (failed && DBG_CIPHER) + log_debug ("Elgamal test key for %s %s failed\n", + (failed & 1)? "encrypt+decrypt":"", + (failed & 2)? "sign+verify":""); + + return failed; +} + + +/**************** + * Generate a random secret exponent k from prime p, so that k is + * relatively prime to p-1. With SMALL_K set, k will be selected for + * better encryption performance - this must never be used signing! + */ +static gcry_mpi_t +gen_k( gcry_mpi_t p, int small_k ) +{ + gcry_mpi_t k = mpi_alloc_secure( 0 ); + gcry_mpi_t temp = mpi_alloc( mpi_get_nlimbs(p) ); + gcry_mpi_t p_1 = mpi_copy(p); + unsigned int orig_nbits = mpi_get_nbits(p); + unsigned int nbits, nbytes; + char *rndbuf = NULL; + + if (small_k) + { + /* Using a k much lesser than p is sufficient for encryption and + * it greatly improves the encryption performance. We use + * Wiener's table and add a large safety margin. */ + nbits = wiener_map( orig_nbits ) * 3 / 2; + if( nbits >= orig_nbits ) + BUG(); + } + else + nbits = orig_nbits; + + + nbytes = (nbits+7)/8; + if( DBG_CIPHER ) + log_debug("choosing a random k "); + mpi_sub_ui( p_1, p, 1); + for(;;) + { + if( !rndbuf || nbits < 32 ) + { + gcry_free(rndbuf); + rndbuf = gcry_random_bytes_secure( nbytes, GCRY_STRONG_RANDOM ); + } + else + { + /* Change only some of the higher bits. We could improve + this by directly requesting more memory at the first call + to get_random_bytes() and use this the here maybe it is + easier to do this directly in random.c Anyway, it is + highly inlikely that we will ever reach this code. */ + char *pp = gcry_random_bytes_secure( 4, GCRY_STRONG_RANDOM ); + memcpy( rndbuf, pp, 4 ); + gcry_free(pp); + } + _gcry_mpi_set_buffer( k, rndbuf, nbytes, 0 ); + + for(;;) + { + if( !(mpi_cmp( k, p_1 ) < 0) ) /* check: k < (p-1) */ + { + if( DBG_CIPHER ) + progress('+'); + break; /* no */ + } + if( !(mpi_cmp_ui( k, 0 ) > 0) ) /* check: k > 0 */ + { + if( DBG_CIPHER ) + progress('-'); + break; /* no */ + } + if (gcry_mpi_gcd( temp, k, p_1 )) + goto found; /* okay, k is relative prime to (p-1) */ + mpi_add_ui( k, k, 1 ); + if( DBG_CIPHER ) + progress('.'); + } + } + found: + gcry_free(rndbuf); + if( DBG_CIPHER ) + progress('\n'); + mpi_free(p_1); + mpi_free(temp); + + return k; +} + +/**************** + * Generate a key pair with a key of size NBITS + * Returns: 2 structures filled with all needed values + * and an array with n-1 factors of (p-1) + */ +static void +generate ( ELG_secret_key *sk, unsigned int nbits, gcry_mpi_t **ret_factors ) +{ + gcry_mpi_t p; /* the prime */ + gcry_mpi_t p_min1; + gcry_mpi_t g; + gcry_mpi_t x; /* the secret exponent */ + gcry_mpi_t y; + unsigned int qbits; + unsigned int xbits; + byte *rndbuf; + + p_min1 = gcry_mpi_new ( nbits ); + qbits = wiener_map( nbits ); + if( qbits & 1 ) /* better have a even one */ + qbits++; + g = mpi_alloc(1); + p = _gcry_generate_elg_prime( 0, nbits, qbits, g, ret_factors ); + mpi_sub_ui(p_min1, p, 1); + + + /* Select a random number which has these properties: + * 0 < x < p-1 + * This must be a very good random number because this is the + * secret part. The prime is public and may be shared anyway, + * so a random generator level of 1 is used for the prime. + * + * I don't see a reason to have a x of about the same size + * as the p. It should be sufficient to have one about the size + * of q or the later used k plus a large safety margin. Decryption + * will be much faster with such an x. + */ + xbits = qbits * 3 / 2; + if( xbits >= nbits ) + BUG(); + x = gcry_mpi_snew ( xbits ); + if( DBG_CIPHER ) + log_debug("choosing a random x of size %u", xbits ); + rndbuf = NULL; + do + { + if( DBG_CIPHER ) + progress('.'); + if( rndbuf ) + { /* Change only some of the higher bits */ + if( xbits < 16 ) /* should never happen ... */ + { + gcry_free(rndbuf); + rndbuf = gcry_random_bytes_secure( (xbits+7)/8, + GCRY_VERY_STRONG_RANDOM ); + } + else + { + char *r = gcry_random_bytes_secure( 2, + GCRY_VERY_STRONG_RANDOM ); + memcpy(rndbuf, r, 2 ); + gcry_free(r); + } + } + else + { + rndbuf = gcry_random_bytes_secure( (xbits+7)/8, + GCRY_VERY_STRONG_RANDOM ); + } + _gcry_mpi_set_buffer( x, rndbuf, (xbits+7)/8, 0 ); + mpi_clear_highbit( x, xbits+1 ); + } + while( !( mpi_cmp_ui( x, 0 )>0 && mpi_cmp( x, p_min1 )<0 ) ); + gcry_free(rndbuf); + + y = gcry_mpi_new (nbits); + gcry_mpi_powm( y, g, x, p ); + + if( DBG_CIPHER ) + { + progress('\n'); + log_mpidump("elg p= ", p ); + log_mpidump("elg g= ", g ); + log_mpidump("elg y= ", y ); + log_mpidump("elg x= ", x ); + } + + /* Copy the stuff to the key structures */ + sk->p = p; + sk->g = g; + sk->y = y; + sk->x = x; + + gcry_mpi_release ( p_min1 ); + + /* Now we can test our keys (this should never fail!) */ + test_keys ( sk, nbits - 64, 0 ); +} + + +/* Generate a key pair with a key of size NBITS not using a random + value for the secret key but the one given as X. This is useful to + implement a passphrase based decryption for a public key based + encryption. It has appliactions in backup systems. + + Returns: A structure filled with all needed values and an array + with n-1 factors of (p-1). */ +static gcry_err_code_t +generate_using_x (ELG_secret_key *sk, unsigned int nbits, gcry_mpi_t x, + gcry_mpi_t **ret_factors ) +{ + gcry_mpi_t p; /* The prime. */ + gcry_mpi_t p_min1; /* The prime minus 1. */ + gcry_mpi_t g; /* The generator. */ + gcry_mpi_t y; /* g^x mod p. */ + unsigned int qbits; + unsigned int xbits; + + sk->p = NULL; + sk->g = NULL; + sk->y = NULL; + sk->x = NULL; + + /* Do a quick check to see whether X is suitable. */ + xbits = mpi_get_nbits (x); + if ( xbits < 64 || xbits >= nbits ) + return GPG_ERR_INV_VALUE; + + p_min1 = gcry_mpi_new ( nbits ); + qbits = wiener_map ( nbits ); + if ( (qbits & 1) ) /* Better have an even one. */ + qbits++; + g = mpi_alloc (1); + p = _gcry_generate_elg_prime ( 0, nbits, qbits, g, ret_factors ); + mpi_sub_ui (p_min1, p, 1); + + if (DBG_CIPHER) + log_debug ("using a supplied x of size %u", xbits ); + if ( !(mpi_cmp_ui ( x, 0 ) > 0 && mpi_cmp ( x, p_min1 ) <0 ) ) + { + gcry_mpi_release ( p_min1 ); + gcry_mpi_release ( p ); + gcry_mpi_release ( g ); + return GPG_ERR_INV_VALUE; + } + + y = gcry_mpi_new (nbits); + gcry_mpi_powm ( y, g, x, p ); + + if ( DBG_CIPHER ) + { + progress ('\n'); + log_mpidump ("elg p= ", p ); + log_mpidump ("elg g= ", g ); + log_mpidump ("elg y= ", y ); + log_mpidump ("elg x= ", x ); + } + + /* Copy the stuff to the key structures */ + sk->p = p; + sk->g = g; + sk->y = y; + sk->x = gcry_mpi_copy (x); + + gcry_mpi_release ( p_min1 ); + + /* Now we can test our keys. */ + if ( test_keys ( sk, nbits - 64, 1 ) ) + { + gcry_mpi_release ( sk->p ); sk->p = NULL; + gcry_mpi_release ( sk->g ); sk->g = NULL; + gcry_mpi_release ( sk->y ); sk->y = NULL; + gcry_mpi_release ( sk->x ); sk->x = NULL; + return GPG_ERR_BAD_SECKEY; + } + + return 0; +} + + +/**************** + * Test whether the secret key is valid. + * Returns: if this is a valid key. + */ +static int +check_secret_key( ELG_secret_key *sk ) +{ + int rc; + gcry_mpi_t y = mpi_alloc( mpi_get_nlimbs(sk->y) ); + + gcry_mpi_powm( y, sk->g, sk->x, sk->p ); + rc = !mpi_cmp( y, sk->y ); + mpi_free( y ); + return rc; +} + + +static void +do_encrypt(gcry_mpi_t a, gcry_mpi_t b, gcry_mpi_t input, ELG_public_key *pkey ) +{ + gcry_mpi_t k; + + /* Note: maybe we should change the interface, so that it + * is possible to check that input is < p and return an + * error code. + */ + + k = gen_k( pkey->p, 1 ); + gcry_mpi_powm( a, pkey->g, k, pkey->p ); + /* b = (y^k * input) mod p + * = ((y^k mod p) * (input mod p)) mod p + * and because input is < p + * = ((y^k mod p) * input) mod p + */ + gcry_mpi_powm( b, pkey->y, k, pkey->p ); + gcry_mpi_mulm( b, b, input, pkey->p ); +#if 0 + if( DBG_CIPHER ) + { + log_mpidump("elg encrypted y= ", pkey->y); + log_mpidump("elg encrypted p= ", pkey->p); + log_mpidump("elg encrypted k= ", k); + log_mpidump("elg encrypted M= ", input); + log_mpidump("elg encrypted a= ", a); + log_mpidump("elg encrypted b= ", b); + } +#endif + mpi_free(k); +} + + + + +static void +decrypt(gcry_mpi_t output, gcry_mpi_t a, gcry_mpi_t b, ELG_secret_key *skey ) +{ + gcry_mpi_t t1 = mpi_alloc_secure( mpi_get_nlimbs( skey->p ) ); + + /* output = b/(a^x) mod p */ + gcry_mpi_powm( t1, a, skey->x, skey->p ); + mpi_invm( t1, t1, skey->p ); + mpi_mulm( output, b, t1, skey->p ); +#if 0 + if( DBG_CIPHER ) + { + log_mpidump("elg decrypted x= ", skey->x); + log_mpidump("elg decrypted p= ", skey->p); + log_mpidump("elg decrypted a= ", a); + log_mpidump("elg decrypted b= ", b); + log_mpidump("elg decrypted M= ", output); + } +#endif + mpi_free(t1); +} + + +/**************** + * Make an Elgamal signature out of INPUT + */ + +static void +sign(gcry_mpi_t a, gcry_mpi_t b, gcry_mpi_t input, ELG_secret_key *skey ) +{ + gcry_mpi_t k; + gcry_mpi_t t = mpi_alloc( mpi_get_nlimbs(a) ); + gcry_mpi_t inv = mpi_alloc( mpi_get_nlimbs(a) ); + gcry_mpi_t p_1 = mpi_copy(skey->p); + + /* + * b = (t * inv) mod (p-1) + * b = (t * inv(k,(p-1),(p-1)) mod (p-1) + * b = (((M-x*a) mod (p-1)) * inv(k,(p-1),(p-1))) mod (p-1) + * + */ + mpi_sub_ui(p_1, p_1, 1); + k = gen_k( skey->p, 0 /* no small K ! */ ); + gcry_mpi_powm( a, skey->g, k, skey->p ); + mpi_mul(t, skey->x, a ); + mpi_subm(t, input, t, p_1 ); + mpi_invm(inv, k, p_1 ); + mpi_mulm(b, t, inv, p_1 ); + +#if 0 + if( DBG_CIPHER ) + { + log_mpidump("elg sign p= ", skey->p); + log_mpidump("elg sign g= ", skey->g); + log_mpidump("elg sign y= ", skey->y); + log_mpidump("elg sign x= ", skey->x); + log_mpidump("elg sign k= ", k); + log_mpidump("elg sign M= ", input); + log_mpidump("elg sign a= ", a); + log_mpidump("elg sign b= ", b); + } +#endif + mpi_free(k); + mpi_free(t); + mpi_free(inv); + mpi_free(p_1); +} + + +/**************** + * Returns true if the signature composed of A and B is valid. + */ +static int +verify(gcry_mpi_t a, gcry_mpi_t b, gcry_mpi_t input, ELG_public_key *pkey ) +{ + int rc; + gcry_mpi_t t1; + gcry_mpi_t t2; + gcry_mpi_t base[4]; + gcry_mpi_t ex[4]; + + if( !(mpi_cmp_ui( a, 0 ) > 0 && mpi_cmp( a, pkey->p ) < 0) ) + return 0; /* assertion 0 < a < p failed */ + + t1 = mpi_alloc( mpi_get_nlimbs(a) ); + t2 = mpi_alloc( mpi_get_nlimbs(a) ); + +#if 0 + /* t1 = (y^a mod p) * (a^b mod p) mod p */ + gcry_mpi_powm( t1, pkey->y, a, pkey->p ); + gcry_mpi_powm( t2, a, b, pkey->p ); + mpi_mulm( t1, t1, t2, pkey->p ); + + /* t2 = g ^ input mod p */ + gcry_mpi_powm( t2, pkey->g, input, pkey->p ); + + rc = !mpi_cmp( t1, t2 ); +#elif 0 + /* t1 = (y^a mod p) * (a^b mod p) mod p */ + base[0] = pkey->y; ex[0] = a; + base[1] = a; ex[1] = b; + base[2] = NULL; ex[2] = NULL; + mpi_mulpowm( t1, base, ex, pkey->p ); + + /* t2 = g ^ input mod p */ + gcry_mpi_powm( t2, pkey->g, input, pkey->p ); + + rc = !mpi_cmp( t1, t2 ); +#else + /* t1 = g ^ - input * y ^ a * a ^ b mod p */ + mpi_invm(t2, pkey->g, pkey->p ); + base[0] = t2 ; ex[0] = input; + base[1] = pkey->y; ex[1] = a; + base[2] = a; ex[2] = b; + base[3] = NULL; ex[3] = NULL; + mpi_mulpowm( t1, base, ex, pkey->p ); + rc = !mpi_cmp_ui( t1, 1 ); + +#endif + + mpi_free(t1); + mpi_free(t2); + return rc; +} + +/********************************************* + ************** interface ****************** + *********************************************/ + +static gpg_err_code_t +elg_generate_ext (int algo, unsigned int nbits, unsigned long evalue, + const gcry_sexp_t genparms, + gcry_mpi_t *skey, gcry_mpi_t **retfactors, + gcry_sexp_t *r_extrainfo) +{ + gpg_err_code_t ec; + ELG_secret_key sk; + gcry_mpi_t xvalue = NULL; + gcry_sexp_t l1; + + (void)algo; + (void)evalue; + (void)r_extrainfo; + + if (genparms) + { + /* Parse the optional xvalue element. */ + l1 = gcry_sexp_find_token (genparms, "xvalue", 0); + if (l1) + { + xvalue = gcry_sexp_nth_mpi (l1, 1, 0); + gcry_sexp_release (l1); + if (!xvalue) + return GPG_ERR_BAD_MPI; + } + } + + if (xvalue) + ec = generate_using_x (&sk, nbits, xvalue, retfactors); + else + { + generate (&sk, nbits, retfactors); + ec = 0; + } + + skey[0] = sk.p; + skey[1] = sk.g; + skey[2] = sk.y; + skey[3] = sk.x; + + return ec; +} + + +static gcry_err_code_t +elg_generate (int algo, unsigned int nbits, unsigned long evalue, + gcry_mpi_t *skey, gcry_mpi_t **retfactors) +{ + ELG_secret_key sk; + + (void)algo; + (void)evalue; + + generate (&sk, nbits, retfactors); + skey[0] = sk.p; + skey[1] = sk.g; + skey[2] = sk.y; + skey[3] = sk.x; + + return GPG_ERR_NO_ERROR; +} + + +static gcry_err_code_t +elg_check_secret_key (int algo, gcry_mpi_t *skey) +{ + gcry_err_code_t err = GPG_ERR_NO_ERROR; + ELG_secret_key sk; + + (void)algo; + + if ((! skey[0]) || (! skey[1]) || (! skey[2]) || (! skey[3])) + err = GPG_ERR_BAD_MPI; + else + { + sk.p = skey[0]; + sk.g = skey[1]; + sk.y = skey[2]; + sk.x = skey[3]; + + if (! check_secret_key (&sk)) + err = GPG_ERR_BAD_SECKEY; + } + + return err; +} + + +static gcry_err_code_t +elg_encrypt (int algo, gcry_mpi_t *resarr, + gcry_mpi_t data, gcry_mpi_t *pkey, int flags) +{ + gcry_err_code_t err = GPG_ERR_NO_ERROR; + ELG_public_key pk; + + (void)algo; + (void)flags; + + if ((! data) || (! pkey[0]) || (! pkey[1]) || (! pkey[2])) + err = GPG_ERR_BAD_MPI; + else + { + pk.p = pkey[0]; + pk.g = pkey[1]; + pk.y = pkey[2]; + resarr[0] = mpi_alloc (mpi_get_nlimbs (pk.p)); + resarr[1] = mpi_alloc (mpi_get_nlimbs (pk.p)); + do_encrypt (resarr[0], resarr[1], data, &pk); + } + return err; +} + + +static gcry_err_code_t +elg_decrypt (int algo, gcry_mpi_t *result, + gcry_mpi_t *data, gcry_mpi_t *skey, int flags) +{ + gcry_err_code_t err = GPG_ERR_NO_ERROR; + ELG_secret_key sk; + + (void)algo; + (void)flags; + + if ((! data[0]) || (! data[1]) + || (! skey[0]) || (! skey[1]) || (! skey[2]) || (! skey[3])) + err = GPG_ERR_BAD_MPI; + else + { + sk.p = skey[0]; + sk.g = skey[1]; + sk.y = skey[2]; + sk.x = skey[3]; + *result = mpi_alloc_secure (mpi_get_nlimbs (sk.p)); + decrypt (*result, data[0], data[1], &sk); + } + return err; +} + + +static gcry_err_code_t +elg_sign (int algo, gcry_mpi_t *resarr, gcry_mpi_t data, gcry_mpi_t *skey) +{ + gcry_err_code_t err = GPG_ERR_NO_ERROR; + ELG_secret_key sk; + + (void)algo; + + if ((! data) + || (! skey[0]) || (! skey[1]) || (! skey[2]) || (! skey[3])) + err = GPG_ERR_BAD_MPI; + else + { + sk.p = skey[0]; + sk.g = skey[1]; + sk.y = skey[2]; + sk.x = skey[3]; + resarr[0] = mpi_alloc (mpi_get_nlimbs (sk.p)); + resarr[1] = mpi_alloc (mpi_get_nlimbs (sk.p)); + sign (resarr[0], resarr[1], data, &sk); + } + + return err; +} + + +static gcry_err_code_t +elg_verify (int algo, gcry_mpi_t hash, gcry_mpi_t *data, gcry_mpi_t *pkey, + int (*cmp) (void *, gcry_mpi_t), void *opaquev) +{ + gcry_err_code_t err = GPG_ERR_NO_ERROR; + ELG_public_key pk; + + (void)algo; + (void)cmp; + (void)opaquev; + + if ((! data[0]) || (! data[1]) || (! hash) + || (! pkey[0]) || (! pkey[1]) || (! pkey[2])) + err = GPG_ERR_BAD_MPI; + else + { + pk.p = pkey[0]; + pk.g = pkey[1]; + pk.y = pkey[2]; + if (! verify (data[0], data[1], hash, &pk)) + err = GPG_ERR_BAD_SIGNATURE; + } + + return err; +} + + +static unsigned int +elg_get_nbits (int algo, gcry_mpi_t *pkey) +{ + (void)algo; + + return mpi_get_nbits (pkey[0]); +} + + +static const char *elg_names[] = + { + "elg", + "openpgp-elg", + "openpgp-elg-sig", + NULL, + }; + + +gcry_pk_spec_t _gcry_pubkey_spec_elg = + { + "ELG", elg_names, + "pgy", "pgyx", "ab", "rs", "pgy", + GCRY_PK_USAGE_SIGN | GCRY_PK_USAGE_ENCR, + elg_generate, + elg_check_secret_key, + elg_encrypt, + elg_decrypt, + elg_sign, + elg_verify, + elg_get_nbits + }; + +pk_extra_spec_t _gcry_pubkey_extraspec_elg = + { + NULL, + elg_generate_ext, + NULL + }; + --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/rmd.h +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/rmd.h @@ -0,0 +1,39 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* rmd.h - RIPE-MD hash functions + * Copyright (C) 1998, 2001, 2002 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ +#ifndef G10_RMD_H +#define G10_RMD_H + + +/* We need this here because random.c must have direct access. */ +typedef struct +{ + u32 h0,h1,h2,h3,h4; + u32 nblocks; + byte buf[64]; + int count; +} RMD160_CONTEXT; + +void _gcry_rmd160_init ( void *context ); +void _gcry_rmd160_mixblock ( RMD160_CONTEXT *hd, void *blockof64byte ); + +#endif /*G10_RMD_H*/ + --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/tiger.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/tiger.c @@ -0,0 +1,862 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* tiger.c - The TIGER hash function + * Copyright (C) 1998, 2001, 2002, 2003 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#include "g10lib.h" +#include "memory.h" +#include "cipher.h" + +#ifdef HAVE_U64_TYPEDEF + +/* we really need it here, but as this is only experiment we + * can live without Tiger */ + +typedef struct { + u64 a, b, c; + byte buf[64]; + int count; + u32 nblocks; +} TIGER_CONTEXT; + + +/********************************* + * Okay, okay, this is not the fastest code - improvements are welcome. + * + */ + +/* Some test vectors: + * "" 24F0130C63AC9332 16166E76B1BB925F F373DE2D49584E7A + * "abc" F258C1E88414AB2A 527AB541FFC5B8BF 935F7B951C132951 + * "Tiger" 9F00F599072300DD 276ABB38C8EB6DEC 37790C116F9D2BDF + * "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-" + * 87FB2A9083851CF7 470D2CF810E6DF9E B586445034A5A386 + * "ABCDEFGHIJKLMNOPQRSTUVWXYZ=abcdefghijklmnopqrstuvwxyz+0123456789" + * 467DB80863EBCE48 8DF1CD1261655DE9 57896565975F9197 + * "Tiger - A Fast New Hash Function, by Ross Anderson and Eli Biham" + * 0C410A042968868A 1671DA5A3FD29A72 5EC1E457D3CDB303 + * "Tiger - A Fast New Hash Function, by Ross Anderson and Eli Biham, proc" + * "eedings of Fast Software Encryption 3, Cambridge." + * EBF591D5AFA655CE 7F22894FF87F54AC 89C811B6B0DA3193 + * "Tiger - A Fast New Hash Function, by Ross Anderson and Eli Biham, proc" + * "eedings of Fast Software Encryption 3, Cambridge, 1996." + * 3D9AEB03D1BD1A63 57B2774DFD6D5B24 DD68151D503974FC + * "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-ABCDEF" + * "GHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-" + * 00B83EB4E53440C5 76AC6AAEE0A74858 25FD15E70A59FFE4 + */ + +static u64 sbox1[256] = { + U64_C(0x02aab17cf7e90c5e) /* 0 */, U64_C(0xac424b03e243a8ec) /* 1 */, + U64_C(0x72cd5be30dd5fcd3) /* 2 */, U64_C(0x6d019b93f6f97f3a) /* 3 */, + U64_C(0xcd9978ffd21f9193) /* 4 */, U64_C(0x7573a1c9708029e2) /* 5 */, + U64_C(0xb164326b922a83c3) /* 6 */, U64_C(0x46883eee04915870) /* 7 */, + U64_C(0xeaace3057103ece6) /* 8 */, U64_C(0xc54169b808a3535c) /* 9 */, + U64_C(0x4ce754918ddec47c) /* 10 */, U64_C(0x0aa2f4dfdc0df40c) /* 11 */, + U64_C(0x10b76f18a74dbefa) /* 12 */, U64_C(0xc6ccb6235ad1ab6a) /* 13 */, + U64_C(0x13726121572fe2ff) /* 14 */, U64_C(0x1a488c6f199d921e) /* 15 */, + U64_C(0x4bc9f9f4da0007ca) /* 16 */, U64_C(0x26f5e6f6e85241c7) /* 17 */, + U64_C(0x859079dbea5947b6) /* 18 */, U64_C(0x4f1885c5c99e8c92) /* 19 */, + U64_C(0xd78e761ea96f864b) /* 20 */, U64_C(0x8e36428c52b5c17d) /* 21 */, + U64_C(0x69cf6827373063c1) /* 22 */, U64_C(0xb607c93d9bb4c56e) /* 23 */, + U64_C(0x7d820e760e76b5ea) /* 24 */, U64_C(0x645c9cc6f07fdc42) /* 25 */, + U64_C(0xbf38a078243342e0) /* 26 */, U64_C(0x5f6b343c9d2e7d04) /* 27 */, + U64_C(0xf2c28aeb600b0ec6) /* 28 */, U64_C(0x6c0ed85f7254bcac) /* 29 */, + U64_C(0x71592281a4db4fe5) /* 30 */, U64_C(0x1967fa69ce0fed9f) /* 31 */, + U64_C(0xfd5293f8b96545db) /* 32 */, U64_C(0xc879e9d7f2a7600b) /* 33 */, + U64_C(0x860248920193194e) /* 34 */, U64_C(0xa4f9533b2d9cc0b3) /* 35 */, + U64_C(0x9053836c15957613) /* 36 */, U64_C(0xdb6dcf8afc357bf1) /* 37 */, + U64_C(0x18beea7a7a370f57) /* 38 */, U64_C(0x037117ca50b99066) /* 39 */, + U64_C(0x6ab30a9774424a35) /* 40 */, U64_C(0xf4e92f02e325249b) /* 41 */, + U64_C(0x7739db07061ccae1) /* 42 */, U64_C(0xd8f3b49ceca42a05) /* 43 */, + U64_C(0xbd56be3f51382f73) /* 44 */, U64_C(0x45faed5843b0bb28) /* 45 */, + U64_C(0x1c813d5c11bf1f83) /* 46 */, U64_C(0x8af0e4b6d75fa169) /* 47 */, + U64_C(0x33ee18a487ad9999) /* 48 */, U64_C(0x3c26e8eab1c94410) /* 49 */, + U64_C(0xb510102bc0a822f9) /* 50 */, U64_C(0x141eef310ce6123b) /* 51 */, + U64_C(0xfc65b90059ddb154) /* 52 */, U64_C(0xe0158640c5e0e607) /* 53 */, + U64_C(0x884e079826c3a3cf) /* 54 */, U64_C(0x930d0d9523c535fd) /* 55 */, + U64_C(0x35638d754e9a2b00) /* 56 */, U64_C(0x4085fccf40469dd5) /* 57 */, + U64_C(0xc4b17ad28be23a4c) /* 58 */, U64_C(0xcab2f0fc6a3e6a2e) /* 59 */, + U64_C(0x2860971a6b943fcd) /* 60 */, U64_C(0x3dde6ee212e30446) /* 61 */, + U64_C(0x6222f32ae01765ae) /* 62 */, U64_C(0x5d550bb5478308fe) /* 63 */, + U64_C(0xa9efa98da0eda22a) /* 64 */, U64_C(0xc351a71686c40da7) /* 65 */, + U64_C(0x1105586d9c867c84) /* 66 */, U64_C(0xdcffee85fda22853) /* 67 */, + U64_C(0xccfbd0262c5eef76) /* 68 */, U64_C(0xbaf294cb8990d201) /* 69 */, + U64_C(0xe69464f52afad975) /* 70 */, U64_C(0x94b013afdf133e14) /* 71 */, + U64_C(0x06a7d1a32823c958) /* 72 */, U64_C(0x6f95fe5130f61119) /* 73 */, + U64_C(0xd92ab34e462c06c0) /* 74 */, U64_C(0xed7bde33887c71d2) /* 75 */, + U64_C(0x79746d6e6518393e) /* 76 */, U64_C(0x5ba419385d713329) /* 77 */, + U64_C(0x7c1ba6b948a97564) /* 78 */, U64_C(0x31987c197bfdac67) /* 79 */, + U64_C(0xde6c23c44b053d02) /* 80 */, U64_C(0x581c49fed002d64d) /* 81 */, + U64_C(0xdd474d6338261571) /* 82 */, U64_C(0xaa4546c3e473d062) /* 83 */, + U64_C(0x928fce349455f860) /* 84 */, U64_C(0x48161bbacaab94d9) /* 85 */, + U64_C(0x63912430770e6f68) /* 86 */, U64_C(0x6ec8a5e602c6641c) /* 87 */, + U64_C(0x87282515337ddd2b) /* 88 */, U64_C(0x2cda6b42034b701b) /* 89 */, + U64_C(0xb03d37c181cb096d) /* 90 */, U64_C(0xe108438266c71c6f) /* 91 */, + U64_C(0x2b3180c7eb51b255) /* 92 */, U64_C(0xdf92b82f96c08bbc) /* 93 */, + U64_C(0x5c68c8c0a632f3ba) /* 94 */, U64_C(0x5504cc861c3d0556) /* 95 */, + U64_C(0xabbfa4e55fb26b8f) /* 96 */, U64_C(0x41848b0ab3baceb4) /* 97 */, + U64_C(0xb334a273aa445d32) /* 98 */, U64_C(0xbca696f0a85ad881) /* 99 */, + U64_C(0x24f6ec65b528d56c) /* 100 */, U64_C(0x0ce1512e90f4524a) /* 101 */, + U64_C(0x4e9dd79d5506d35a) /* 102 */, U64_C(0x258905fac6ce9779) /* 103 */, + U64_C(0x2019295b3e109b33) /* 104 */, U64_C(0xf8a9478b73a054cc) /* 105 */, + U64_C(0x2924f2f934417eb0) /* 106 */, U64_C(0x3993357d536d1bc4) /* 107 */, + U64_C(0x38a81ac21db6ff8b) /* 108 */, U64_C(0x47c4fbf17d6016bf) /* 109 */, + U64_C(0x1e0faadd7667e3f5) /* 110 */, U64_C(0x7abcff62938beb96) /* 111 */, + U64_C(0xa78dad948fc179c9) /* 112 */, U64_C(0x8f1f98b72911e50d) /* 113 */, + U64_C(0x61e48eae27121a91) /* 114 */, U64_C(0x4d62f7ad31859808) /* 115 */, + U64_C(0xeceba345ef5ceaeb) /* 116 */, U64_C(0xf5ceb25ebc9684ce) /* 117 */, + U64_C(0xf633e20cb7f76221) /* 118 */, U64_C(0xa32cdf06ab8293e4) /* 119 */, + U64_C(0x985a202ca5ee2ca4) /* 120 */, U64_C(0xcf0b8447cc8a8fb1) /* 121 */, + U64_C(0x9f765244979859a3) /* 122 */, U64_C(0xa8d516b1a1240017) /* 123 */, + U64_C(0x0bd7ba3ebb5dc726) /* 124 */, U64_C(0xe54bca55b86adb39) /* 125 */, + U64_C(0x1d7a3afd6c478063) /* 126 */, U64_C(0x519ec608e7669edd) /* 127 */, + U64_C(0x0e5715a2d149aa23) /* 128 */, U64_C(0x177d4571848ff194) /* 129 */, + U64_C(0xeeb55f3241014c22) /* 130 */, U64_C(0x0f5e5ca13a6e2ec2) /* 131 */, + U64_C(0x8029927b75f5c361) /* 132 */, U64_C(0xad139fabc3d6e436) /* 133 */, + U64_C(0x0d5df1a94ccf402f) /* 134 */, U64_C(0x3e8bd948bea5dfc8) /* 135 */, + U64_C(0xa5a0d357bd3ff77e) /* 136 */, U64_C(0xa2d12e251f74f645) /* 137 */, + U64_C(0x66fd9e525e81a082) /* 138 */, U64_C(0x2e0c90ce7f687a49) /* 139 */, + U64_C(0xc2e8bcbeba973bc5) /* 140 */, U64_C(0x000001bce509745f) /* 141 */, + U64_C(0x423777bbe6dab3d6) /* 142 */, U64_C(0xd1661c7eaef06eb5) /* 143 */, + U64_C(0xa1781f354daacfd8) /* 144 */, U64_C(0x2d11284a2b16affc) /* 145 */, + U64_C(0xf1fc4f67fa891d1f) /* 146 */, U64_C(0x73ecc25dcb920ada) /* 147 */, + U64_C(0xae610c22c2a12651) /* 148 */, U64_C(0x96e0a810d356b78a) /* 149 */, + U64_C(0x5a9a381f2fe7870f) /* 150 */, U64_C(0xd5ad62ede94e5530) /* 151 */, + U64_C(0xd225e5e8368d1427) /* 152 */, U64_C(0x65977b70c7af4631) /* 153 */, + U64_C(0x99f889b2de39d74f) /* 154 */, U64_C(0x233f30bf54e1d143) /* 155 */, + U64_C(0x9a9675d3d9a63c97) /* 156 */, U64_C(0x5470554ff334f9a8) /* 157 */, + U64_C(0x166acb744a4f5688) /* 158 */, U64_C(0x70c74caab2e4aead) /* 159 */, + U64_C(0xf0d091646f294d12) /* 160 */, U64_C(0x57b82a89684031d1) /* 161 */, + U64_C(0xefd95a5a61be0b6b) /* 162 */, U64_C(0x2fbd12e969f2f29a) /* 163 */, + U64_C(0x9bd37013feff9fe8) /* 164 */, U64_C(0x3f9b0404d6085a06) /* 165 */, + U64_C(0x4940c1f3166cfe15) /* 166 */, U64_C(0x09542c4dcdf3defb) /* 167 */, + U64_C(0xb4c5218385cd5ce3) /* 168 */, U64_C(0xc935b7dc4462a641) /* 169 */, + U64_C(0x3417f8a68ed3b63f) /* 170 */, U64_C(0xb80959295b215b40) /* 171 */, + U64_C(0xf99cdaef3b8c8572) /* 172 */, U64_C(0x018c0614f8fcb95d) /* 173 */, + U64_C(0x1b14accd1a3acdf3) /* 174 */, U64_C(0x84d471f200bb732d) /* 175 */, + U64_C(0xc1a3110e95e8da16) /* 176 */, U64_C(0x430a7220bf1a82b8) /* 177 */, + U64_C(0xb77e090d39df210e) /* 178 */, U64_C(0x5ef4bd9f3cd05e9d) /* 179 */, + U64_C(0x9d4ff6da7e57a444) /* 180 */, U64_C(0xda1d60e183d4a5f8) /* 181 */, + U64_C(0xb287c38417998e47) /* 182 */, U64_C(0xfe3edc121bb31886) /* 183 */, + U64_C(0xc7fe3ccc980ccbef) /* 184 */, U64_C(0xe46fb590189bfd03) /* 185 */, + U64_C(0x3732fd469a4c57dc) /* 186 */, U64_C(0x7ef700a07cf1ad65) /* 187 */, + U64_C(0x59c64468a31d8859) /* 188 */, U64_C(0x762fb0b4d45b61f6) /* 189 */, + U64_C(0x155baed099047718) /* 190 */, U64_C(0x68755e4c3d50baa6) /* 191 */, + U64_C(0xe9214e7f22d8b4df) /* 192 */, U64_C(0x2addbf532eac95f4) /* 193 */, + U64_C(0x32ae3909b4bd0109) /* 194 */, U64_C(0x834df537b08e3450) /* 195 */, + U64_C(0xfa209da84220728d) /* 196 */, U64_C(0x9e691d9b9efe23f7) /* 197 */, + U64_C(0x0446d288c4ae8d7f) /* 198 */, U64_C(0x7b4cc524e169785b) /* 199 */, + U64_C(0x21d87f0135ca1385) /* 200 */, U64_C(0xcebb400f137b8aa5) /* 201 */, + U64_C(0x272e2b66580796be) /* 202 */, U64_C(0x3612264125c2b0de) /* 203 */, + U64_C(0x057702bdad1efbb2) /* 204 */, U64_C(0xd4babb8eacf84be9) /* 205 */, + U64_C(0x91583139641bc67b) /* 206 */, U64_C(0x8bdc2de08036e024) /* 207 */, + U64_C(0x603c8156f49f68ed) /* 208 */, U64_C(0xf7d236f7dbef5111) /* 209 */, + U64_C(0x9727c4598ad21e80) /* 210 */, U64_C(0xa08a0896670a5fd7) /* 211 */, + U64_C(0xcb4a8f4309eba9cb) /* 212 */, U64_C(0x81af564b0f7036a1) /* 213 */, + U64_C(0xc0b99aa778199abd) /* 214 */, U64_C(0x959f1ec83fc8e952) /* 215 */, + U64_C(0x8c505077794a81b9) /* 216 */, U64_C(0x3acaaf8f056338f0) /* 217 */, + U64_C(0x07b43f50627a6778) /* 218 */, U64_C(0x4a44ab49f5eccc77) /* 219 */, + U64_C(0x3bc3d6e4b679ee98) /* 220 */, U64_C(0x9cc0d4d1cf14108c) /* 221 */, + U64_C(0x4406c00b206bc8a0) /* 222 */, U64_C(0x82a18854c8d72d89) /* 223 */, + U64_C(0x67e366b35c3c432c) /* 224 */, U64_C(0xb923dd61102b37f2) /* 225 */, + U64_C(0x56ab2779d884271d) /* 226 */, U64_C(0xbe83e1b0ff1525af) /* 227 */, + U64_C(0xfb7c65d4217e49a9) /* 228 */, U64_C(0x6bdbe0e76d48e7d4) /* 229 */, + U64_C(0x08df828745d9179e) /* 230 */, U64_C(0x22ea6a9add53bd34) /* 231 */, + U64_C(0xe36e141c5622200a) /* 232 */, U64_C(0x7f805d1b8cb750ee) /* 233 */, + U64_C(0xafe5c7a59f58e837) /* 234 */, U64_C(0xe27f996a4fb1c23c) /* 235 */, + U64_C(0xd3867dfb0775f0d0) /* 236 */, U64_C(0xd0e673de6e88891a) /* 237 */, + U64_C(0x123aeb9eafb86c25) /* 238 */, U64_C(0x30f1d5d5c145b895) /* 239 */, + U64_C(0xbb434a2dee7269e7) /* 240 */, U64_C(0x78cb67ecf931fa38) /* 241 */, + U64_C(0xf33b0372323bbf9c) /* 242 */, U64_C(0x52d66336fb279c74) /* 243 */, + U64_C(0x505f33ac0afb4eaa) /* 244 */, U64_C(0xe8a5cd99a2cce187) /* 245 */, + U64_C(0x534974801e2d30bb) /* 246 */, U64_C(0x8d2d5711d5876d90) /* 247 */, + U64_C(0x1f1a412891bc038e) /* 248 */, U64_C(0xd6e2e71d82e56648) /* 249 */, + U64_C(0x74036c3a497732b7) /* 250 */, U64_C(0x89b67ed96361f5ab) /* 251 */, + U64_C(0xffed95d8f1ea02a2) /* 252 */, U64_C(0xe72b3bd61464d43d) /* 253 */, + U64_C(0xa6300f170bdc4820) /* 254 */, U64_C(0xebc18760ed78a77a) /* 255 */ +}; +static u64 sbox2[256] = { + U64_C(0xe6a6be5a05a12138) /* 256 */, U64_C(0xb5a122a5b4f87c98) /* 257 */, + U64_C(0x563c6089140b6990) /* 258 */, U64_C(0x4c46cb2e391f5dd5) /* 259 */, + U64_C(0xd932addbc9b79434) /* 260 */, U64_C(0x08ea70e42015aff5) /* 261 */, + U64_C(0xd765a6673e478cf1) /* 262 */, U64_C(0xc4fb757eab278d99) /* 263 */, + U64_C(0xdf11c6862d6e0692) /* 264 */, U64_C(0xddeb84f10d7f3b16) /* 265 */, + U64_C(0x6f2ef604a665ea04) /* 266 */, U64_C(0x4a8e0f0ff0e0dfb3) /* 267 */, + U64_C(0xa5edeef83dbcba51) /* 268 */, U64_C(0xfc4f0a2a0ea4371e) /* 269 */, + U64_C(0xe83e1da85cb38429) /* 270 */, U64_C(0xdc8ff882ba1b1ce2) /* 271 */, + U64_C(0xcd45505e8353e80d) /* 272 */, U64_C(0x18d19a00d4db0717) /* 273 */, + U64_C(0x34a0cfeda5f38101) /* 274 */, U64_C(0x0be77e518887caf2) /* 275 */, + U64_C(0x1e341438b3c45136) /* 276 */, U64_C(0xe05797f49089ccf9) /* 277 */, + U64_C(0xffd23f9df2591d14) /* 278 */, U64_C(0x543dda228595c5cd) /* 279 */, + U64_C(0x661f81fd99052a33) /* 280 */, U64_C(0x8736e641db0f7b76) /* 281 */, + U64_C(0x15227725418e5307) /* 282 */, U64_C(0xe25f7f46162eb2fa) /* 283 */, + U64_C(0x48a8b2126c13d9fe) /* 284 */, U64_C(0xafdc541792e76eea) /* 285 */, + U64_C(0x03d912bfc6d1898f) /* 286 */, U64_C(0x31b1aafa1b83f51b) /* 287 */, + U64_C(0xf1ac2796e42ab7d9) /* 288 */, U64_C(0x40a3a7d7fcd2ebac) /* 289 */, + U64_C(0x1056136d0afbbcc5) /* 290 */, U64_C(0x7889e1dd9a6d0c85) /* 291 */, + U64_C(0xd33525782a7974aa) /* 292 */, U64_C(0xa7e25d09078ac09b) /* 293 */, + U64_C(0xbd4138b3eac6edd0) /* 294 */, U64_C(0x920abfbe71eb9e70) /* 295 */, + U64_C(0xa2a5d0f54fc2625c) /* 296 */, U64_C(0xc054e36b0b1290a3) /* 297 */, + U64_C(0xf6dd59ff62fe932b) /* 298 */, U64_C(0x3537354511a8ac7d) /* 299 */, + U64_C(0xca845e9172fadcd4) /* 300 */, U64_C(0x84f82b60329d20dc) /* 301 */, + U64_C(0x79c62ce1cd672f18) /* 302 */, U64_C(0x8b09a2add124642c) /* 303 */, + U64_C(0xd0c1e96a19d9e726) /* 304 */, U64_C(0x5a786a9b4ba9500c) /* 305 */, + U64_C(0x0e020336634c43f3) /* 306 */, U64_C(0xc17b474aeb66d822) /* 307 */, + U64_C(0x6a731ae3ec9baac2) /* 308 */, U64_C(0x8226667ae0840258) /* 309 */, + U64_C(0x67d4567691caeca5) /* 310 */, U64_C(0x1d94155c4875adb5) /* 311 */, + U64_C(0x6d00fd985b813fdf) /* 312 */, U64_C(0x51286efcb774cd06) /* 313 */, + U64_C(0x5e8834471fa744af) /* 314 */, U64_C(0xf72ca0aee761ae2e) /* 315 */, + U64_C(0xbe40e4cdaee8e09a) /* 316 */, U64_C(0xe9970bbb5118f665) /* 317 */, + U64_C(0x726e4beb33df1964) /* 318 */, U64_C(0x703b000729199762) /* 319 */, + U64_C(0x4631d816f5ef30a7) /* 320 */, U64_C(0xb880b5b51504a6be) /* 321 */, + U64_C(0x641793c37ed84b6c) /* 322 */, U64_C(0x7b21ed77f6e97d96) /* 323 */, + U64_C(0x776306312ef96b73) /* 324 */, U64_C(0xae528948e86ff3f4) /* 325 */, + U64_C(0x53dbd7f286a3f8f8) /* 326 */, U64_C(0x16cadce74cfc1063) /* 327 */, + U64_C(0x005c19bdfa52c6dd) /* 328 */, U64_C(0x68868f5d64d46ad3) /* 329 */, + U64_C(0x3a9d512ccf1e186a) /* 330 */, U64_C(0x367e62c2385660ae) /* 331 */, + U64_C(0xe359e7ea77dcb1d7) /* 332 */, U64_C(0x526c0773749abe6e) /* 333 */, + U64_C(0x735ae5f9d09f734b) /* 334 */, U64_C(0x493fc7cc8a558ba8) /* 335 */, + U64_C(0xb0b9c1533041ab45) /* 336 */, U64_C(0x321958ba470a59bd) /* 337 */, + U64_C(0x852db00b5f46c393) /* 338 */, U64_C(0x91209b2bd336b0e5) /* 339 */, + U64_C(0x6e604f7d659ef19f) /* 340 */, U64_C(0xb99a8ae2782ccb24) /* 341 */, + U64_C(0xccf52ab6c814c4c7) /* 342 */, U64_C(0x4727d9afbe11727b) /* 343 */, + U64_C(0x7e950d0c0121b34d) /* 344 */, U64_C(0x756f435670ad471f) /* 345 */, + U64_C(0xf5add442615a6849) /* 346 */, U64_C(0x4e87e09980b9957a) /* 347 */, + U64_C(0x2acfa1df50aee355) /* 348 */, U64_C(0xd898263afd2fd556) /* 349 */, + U64_C(0xc8f4924dd80c8fd6) /* 350 */, U64_C(0xcf99ca3d754a173a) /* 351 */, + U64_C(0xfe477bacaf91bf3c) /* 352 */, U64_C(0xed5371f6d690c12d) /* 353 */, + U64_C(0x831a5c285e687094) /* 354 */, U64_C(0xc5d3c90a3708a0a4) /* 355 */, + U64_C(0x0f7f903717d06580) /* 356 */, U64_C(0x19f9bb13b8fdf27f) /* 357 */, + U64_C(0xb1bd6f1b4d502843) /* 358 */, U64_C(0x1c761ba38fff4012) /* 359 */, + U64_C(0x0d1530c4e2e21f3b) /* 360 */, U64_C(0x8943ce69a7372c8a) /* 361 */, + U64_C(0xe5184e11feb5ce66) /* 362 */, U64_C(0x618bdb80bd736621) /* 363 */, + U64_C(0x7d29bad68b574d0b) /* 364 */, U64_C(0x81bb613e25e6fe5b) /* 365 */, + U64_C(0x071c9c10bc07913f) /* 366 */, U64_C(0xc7beeb7909ac2d97) /* 367 */, + U64_C(0xc3e58d353bc5d757) /* 368 */, U64_C(0xeb017892f38f61e8) /* 369 */, + U64_C(0xd4effb9c9b1cc21a) /* 370 */, U64_C(0x99727d26f494f7ab) /* 371 */, + U64_C(0xa3e063a2956b3e03) /* 372 */, U64_C(0x9d4a8b9a4aa09c30) /* 373 */, + U64_C(0x3f6ab7d500090fb4) /* 374 */, U64_C(0x9cc0f2a057268ac0) /* 375 */, + U64_C(0x3dee9d2dedbf42d1) /* 376 */, U64_C(0x330f49c87960a972) /* 377 */, + U64_C(0xc6b2720287421b41) /* 378 */, U64_C(0x0ac59ec07c00369c) /* 379 */, + U64_C(0xef4eac49cb353425) /* 380 */, U64_C(0xf450244eef0129d8) /* 381 */, + U64_C(0x8acc46e5caf4deb6) /* 382 */, U64_C(0x2ffeab63989263f7) /* 383 */, + U64_C(0x8f7cb9fe5d7a4578) /* 384 */, U64_C(0x5bd8f7644e634635) /* 385 */, + U64_C(0x427a7315bf2dc900) /* 386 */, U64_C(0x17d0c4aa2125261c) /* 387 */, + U64_C(0x3992486c93518e50) /* 388 */, U64_C(0xb4cbfee0a2d7d4c3) /* 389 */, + U64_C(0x7c75d6202c5ddd8d) /* 390 */, U64_C(0xdbc295d8e35b6c61) /* 391 */, + U64_C(0x60b369d302032b19) /* 392 */, U64_C(0xce42685fdce44132) /* 393 */, + U64_C(0x06f3ddb9ddf65610) /* 394 */, U64_C(0x8ea4d21db5e148f0) /* 395 */, + U64_C(0x20b0fce62fcd496f) /* 396 */, U64_C(0x2c1b912358b0ee31) /* 397 */, + U64_C(0xb28317b818f5a308) /* 398 */, U64_C(0xa89c1e189ca6d2cf) /* 399 */, + U64_C(0x0c6b18576aaadbc8) /* 400 */, U64_C(0xb65deaa91299fae3) /* 401 */, + U64_C(0xfb2b794b7f1027e7) /* 402 */, U64_C(0x04e4317f443b5beb) /* 403 */, + U64_C(0x4b852d325939d0a6) /* 404 */, U64_C(0xd5ae6beefb207ffc) /* 405 */, + U64_C(0x309682b281c7d374) /* 406 */, U64_C(0xbae309a194c3b475) /* 407 */, + U64_C(0x8cc3f97b13b49f05) /* 408 */, U64_C(0x98a9422ff8293967) /* 409 */, + U64_C(0x244b16b01076ff7c) /* 410 */, U64_C(0xf8bf571c663d67ee) /* 411 */, + U64_C(0x1f0d6758eee30da1) /* 412 */, U64_C(0xc9b611d97adeb9b7) /* 413 */, + U64_C(0xb7afd5887b6c57a2) /* 414 */, U64_C(0x6290ae846b984fe1) /* 415 */, + U64_C(0x94df4cdeacc1a5fd) /* 416 */, U64_C(0x058a5bd1c5483aff) /* 417 */, + U64_C(0x63166cc142ba3c37) /* 418 */, U64_C(0x8db8526eb2f76f40) /* 419 */, + U64_C(0xe10880036f0d6d4e) /* 420 */, U64_C(0x9e0523c9971d311d) /* 421 */, + U64_C(0x45ec2824cc7cd691) /* 422 */, U64_C(0x575b8359e62382c9) /* 423 */, + U64_C(0xfa9e400dc4889995) /* 424 */, U64_C(0xd1823ecb45721568) /* 425 */, + U64_C(0xdafd983b8206082f) /* 426 */, U64_C(0xaa7d29082386a8cb) /* 427 */, + U64_C(0x269fcd4403b87588) /* 428 */, U64_C(0x1b91f5f728bdd1e0) /* 429 */, + U64_C(0xe4669f39040201f6) /* 430 */, U64_C(0x7a1d7c218cf04ade) /* 431 */, + U64_C(0x65623c29d79ce5ce) /* 432 */, U64_C(0x2368449096c00bb1) /* 433 */, + U64_C(0xab9bf1879da503ba) /* 434 */, U64_C(0xbc23ecb1a458058e) /* 435 */, + U64_C(0x9a58df01bb401ecc) /* 436 */, U64_C(0xa070e868a85f143d) /* 437 */, + U64_C(0x4ff188307df2239e) /* 438 */, U64_C(0x14d565b41a641183) /* 439 */, + U64_C(0xee13337452701602) /* 440 */, U64_C(0x950e3dcf3f285e09) /* 441 */, + U64_C(0x59930254b9c80953) /* 442 */, U64_C(0x3bf299408930da6d) /* 443 */, + U64_C(0xa955943f53691387) /* 444 */, U64_C(0xa15edecaa9cb8784) /* 445 */, + U64_C(0x29142127352be9a0) /* 446 */, U64_C(0x76f0371fff4e7afb) /* 447 */, + U64_C(0x0239f450274f2228) /* 448 */, U64_C(0xbb073af01d5e868b) /* 449 */, + U64_C(0xbfc80571c10e96c1) /* 450 */, U64_C(0xd267088568222e23) /* 451 */, + U64_C(0x9671a3d48e80b5b0) /* 452 */, U64_C(0x55b5d38ae193bb81) /* 453 */, + U64_C(0x693ae2d0a18b04b8) /* 454 */, U64_C(0x5c48b4ecadd5335f) /* 455 */, + U64_C(0xfd743b194916a1ca) /* 456 */, U64_C(0x2577018134be98c4) /* 457 */, + U64_C(0xe77987e83c54a4ad) /* 458 */, U64_C(0x28e11014da33e1b9) /* 459 */, + U64_C(0x270cc59e226aa213) /* 460 */, U64_C(0x71495f756d1a5f60) /* 461 */, + U64_C(0x9be853fb60afef77) /* 462 */, U64_C(0xadc786a7f7443dbf) /* 463 */, + U64_C(0x0904456173b29a82) /* 464 */, U64_C(0x58bc7a66c232bd5e) /* 465 */, + U64_C(0xf306558c673ac8b2) /* 466 */, U64_C(0x41f639c6b6c9772a) /* 467 */, + U64_C(0x216defe99fda35da) /* 468 */, U64_C(0x11640cc71c7be615) /* 469 */, + U64_C(0x93c43694565c5527) /* 470 */, U64_C(0xea038e6246777839) /* 471 */, + U64_C(0xf9abf3ce5a3e2469) /* 472 */, U64_C(0x741e768d0fd312d2) /* 473 */, + U64_C(0x0144b883ced652c6) /* 474 */, U64_C(0xc20b5a5ba33f8552) /* 475 */, + U64_C(0x1ae69633c3435a9d) /* 476 */, U64_C(0x97a28ca4088cfdec) /* 477 */, + U64_C(0x8824a43c1e96f420) /* 478 */, U64_C(0x37612fa66eeea746) /* 479 */, + U64_C(0x6b4cb165f9cf0e5a) /* 480 */, U64_C(0x43aa1c06a0abfb4a) /* 481 */, + U64_C(0x7f4dc26ff162796b) /* 482 */, U64_C(0x6cbacc8e54ed9b0f) /* 483 */, + U64_C(0xa6b7ffefd2bb253e) /* 484 */, U64_C(0x2e25bc95b0a29d4f) /* 485 */, + U64_C(0x86d6a58bdef1388c) /* 486 */, U64_C(0xded74ac576b6f054) /* 487 */, + U64_C(0x8030bdbc2b45805d) /* 488 */, U64_C(0x3c81af70e94d9289) /* 489 */, + U64_C(0x3eff6dda9e3100db) /* 490 */, U64_C(0xb38dc39fdfcc8847) /* 491 */, + U64_C(0x123885528d17b87e) /* 492 */, U64_C(0xf2da0ed240b1b642) /* 493 */, + U64_C(0x44cefadcd54bf9a9) /* 494 */, U64_C(0x1312200e433c7ee6) /* 495 */, + U64_C(0x9ffcc84f3a78c748) /* 496 */, U64_C(0xf0cd1f72248576bb) /* 497 */, + U64_C(0xec6974053638cfe4) /* 498 */, U64_C(0x2ba7b67c0cec4e4c) /* 499 */, + U64_C(0xac2f4df3e5ce32ed) /* 500 */, U64_C(0xcb33d14326ea4c11) /* 501 */, + U64_C(0xa4e9044cc77e58bc) /* 502 */, U64_C(0x5f513293d934fcef) /* 503 */, + U64_C(0x5dc9645506e55444) /* 504 */, U64_C(0x50de418f317de40a) /* 505 */, + U64_C(0x388cb31a69dde259) /* 506 */, U64_C(0x2db4a83455820a86) /* 507 */, + U64_C(0x9010a91e84711ae9) /* 508 */, U64_C(0x4df7f0b7b1498371) /* 509 */, + U64_C(0xd62a2eabc0977179) /* 510 */, U64_C(0x22fac097aa8d5c0e) /* 511 */ +}; +static u64 sbox3[256] = { + U64_C(0xf49fcc2ff1daf39b) /* 512 */, U64_C(0x487fd5c66ff29281) /* 513 */, + U64_C(0xe8a30667fcdca83f) /* 514 */, U64_C(0x2c9b4be3d2fcce63) /* 515 */, + U64_C(0xda3ff74b93fbbbc2) /* 516 */, U64_C(0x2fa165d2fe70ba66) /* 517 */, + U64_C(0xa103e279970e93d4) /* 518 */, U64_C(0xbecdec77b0e45e71) /* 519 */, + U64_C(0xcfb41e723985e497) /* 520 */, U64_C(0xb70aaa025ef75017) /* 521 */, + U64_C(0xd42309f03840b8e0) /* 522 */, U64_C(0x8efc1ad035898579) /* 523 */, + U64_C(0x96c6920be2b2abc5) /* 524 */, U64_C(0x66af4163375a9172) /* 525 */, + U64_C(0x2174abdcca7127fb) /* 526 */, U64_C(0xb33ccea64a72ff41) /* 527 */, + U64_C(0xf04a4933083066a5) /* 528 */, U64_C(0x8d970acdd7289af5) /* 529 */, + U64_C(0x8f96e8e031c8c25e) /* 530 */, U64_C(0xf3fec02276875d47) /* 531 */, + U64_C(0xec7bf310056190dd) /* 532 */, U64_C(0xf5adb0aebb0f1491) /* 533 */, + U64_C(0x9b50f8850fd58892) /* 534 */, U64_C(0x4975488358b74de8) /* 535 */, + U64_C(0xa3354ff691531c61) /* 536 */, U64_C(0x0702bbe481d2c6ee) /* 537 */, + U64_C(0x89fb24057deded98) /* 538 */, U64_C(0xac3075138596e902) /* 539 */, + U64_C(0x1d2d3580172772ed) /* 540 */, U64_C(0xeb738fc28e6bc30d) /* 541 */, + U64_C(0x5854ef8f63044326) /* 542 */, U64_C(0x9e5c52325add3bbe) /* 543 */, + U64_C(0x90aa53cf325c4623) /* 544 */, U64_C(0xc1d24d51349dd067) /* 545 */, + U64_C(0x2051cfeea69ea624) /* 546 */, U64_C(0x13220f0a862e7e4f) /* 547 */, + U64_C(0xce39399404e04864) /* 548 */, U64_C(0xd9c42ca47086fcb7) /* 549 */, + U64_C(0x685ad2238a03e7cc) /* 550 */, U64_C(0x066484b2ab2ff1db) /* 551 */, + U64_C(0xfe9d5d70efbf79ec) /* 552 */, U64_C(0x5b13b9dd9c481854) /* 553 */, + U64_C(0x15f0d475ed1509ad) /* 554 */, U64_C(0x0bebcd060ec79851) /* 555 */, + U64_C(0xd58c6791183ab7f8) /* 556 */, U64_C(0xd1187c5052f3eee4) /* 557 */, + U64_C(0xc95d1192e54e82ff) /* 558 */, U64_C(0x86eea14cb9ac6ca2) /* 559 */, + U64_C(0x3485beb153677d5d) /* 560 */, U64_C(0xdd191d781f8c492a) /* 561 */, + U64_C(0xf60866baa784ebf9) /* 562 */, U64_C(0x518f643ba2d08c74) /* 563 */, + U64_C(0x8852e956e1087c22) /* 564 */, U64_C(0xa768cb8dc410ae8d) /* 565 */, + U64_C(0x38047726bfec8e1a) /* 566 */, U64_C(0xa67738b4cd3b45aa) /* 567 */, + U64_C(0xad16691cec0dde19) /* 568 */, U64_C(0xc6d4319380462e07) /* 569 */, + U64_C(0xc5a5876d0ba61938) /* 570 */, U64_C(0x16b9fa1fa58fd840) /* 571 */, + U64_C(0x188ab1173ca74f18) /* 572 */, U64_C(0xabda2f98c99c021f) /* 573 */, + U64_C(0x3e0580ab134ae816) /* 574 */, U64_C(0x5f3b05b773645abb) /* 575 */, + U64_C(0x2501a2be5575f2f6) /* 576 */, U64_C(0x1b2f74004e7e8ba9) /* 577 */, + U64_C(0x1cd7580371e8d953) /* 578 */, U64_C(0x7f6ed89562764e30) /* 579 */, + U64_C(0xb15926ff596f003d) /* 580 */, U64_C(0x9f65293da8c5d6b9) /* 581 */, + U64_C(0x6ecef04dd690f84c) /* 582 */, U64_C(0x4782275fff33af88) /* 583 */, + U64_C(0xe41433083f820801) /* 584 */, U64_C(0xfd0dfe409a1af9b5) /* 585 */, + U64_C(0x4325a3342cdb396b) /* 586 */, U64_C(0x8ae77e62b301b252) /* 587 */, + U64_C(0xc36f9e9f6655615a) /* 588 */, U64_C(0x85455a2d92d32c09) /* 589 */, + U64_C(0xf2c7dea949477485) /* 590 */, U64_C(0x63cfb4c133a39eba) /* 591 */, + U64_C(0x83b040cc6ebc5462) /* 592 */, U64_C(0x3b9454c8fdb326b0) /* 593 */, + U64_C(0x56f56a9e87ffd78c) /* 594 */, U64_C(0x2dc2940d99f42bc6) /* 595 */, + U64_C(0x98f7df096b096e2d) /* 596 */, U64_C(0x19a6e01e3ad852bf) /* 597 */, + U64_C(0x42a99ccbdbd4b40b) /* 598 */, U64_C(0xa59998af45e9c559) /* 599 */, + U64_C(0x366295e807d93186) /* 600 */, U64_C(0x6b48181bfaa1f773) /* 601 */, + U64_C(0x1fec57e2157a0a1d) /* 602 */, U64_C(0x4667446af6201ad5) /* 603 */, + U64_C(0xe615ebcacfb0f075) /* 604 */, U64_C(0xb8f31f4f68290778) /* 605 */, + U64_C(0x22713ed6ce22d11e) /* 606 */, U64_C(0x3057c1a72ec3c93b) /* 607 */, + U64_C(0xcb46acc37c3f1f2f) /* 608 */, U64_C(0xdbb893fd02aaf50e) /* 609 */, + U64_C(0x331fd92e600b9fcf) /* 610 */, U64_C(0xa498f96148ea3ad6) /* 611 */, + U64_C(0xa8d8426e8b6a83ea) /* 612 */, U64_C(0xa089b274b7735cdc) /* 613 */, + U64_C(0x87f6b3731e524a11) /* 614 */, U64_C(0x118808e5cbc96749) /* 615 */, + U64_C(0x9906e4c7b19bd394) /* 616 */, U64_C(0xafed7f7e9b24a20c) /* 617 */, + U64_C(0x6509eadeeb3644a7) /* 618 */, U64_C(0x6c1ef1d3e8ef0ede) /* 619 */, + U64_C(0xb9c97d43e9798fb4) /* 620 */, U64_C(0xa2f2d784740c28a3) /* 621 */, + U64_C(0x7b8496476197566f) /* 622 */, U64_C(0x7a5be3e6b65f069d) /* 623 */, + U64_C(0xf96330ed78be6f10) /* 624 */, U64_C(0xeee60de77a076a15) /* 625 */, + U64_C(0x2b4bee4aa08b9bd0) /* 626 */, U64_C(0x6a56a63ec7b8894e) /* 627 */, + U64_C(0x02121359ba34fef4) /* 628 */, U64_C(0x4cbf99f8283703fc) /* 629 */, + U64_C(0x398071350caf30c8) /* 630 */, U64_C(0xd0a77a89f017687a) /* 631 */, + U64_C(0xf1c1a9eb9e423569) /* 632 */, U64_C(0x8c7976282dee8199) /* 633 */, + U64_C(0x5d1737a5dd1f7abd) /* 634 */, U64_C(0x4f53433c09a9fa80) /* 635 */, + U64_C(0xfa8b0c53df7ca1d9) /* 636 */, U64_C(0x3fd9dcbc886ccb77) /* 637 */, + U64_C(0xc040917ca91b4720) /* 638 */, U64_C(0x7dd00142f9d1dcdf) /* 639 */, + U64_C(0x8476fc1d4f387b58) /* 640 */, U64_C(0x23f8e7c5f3316503) /* 641 */, + U64_C(0x032a2244e7e37339) /* 642 */, U64_C(0x5c87a5d750f5a74b) /* 643 */, + U64_C(0x082b4cc43698992e) /* 644 */, U64_C(0xdf917becb858f63c) /* 645 */, + U64_C(0x3270b8fc5bf86dda) /* 646 */, U64_C(0x10ae72bb29b5dd76) /* 647 */, + U64_C(0x576ac94e7700362b) /* 648 */, U64_C(0x1ad112dac61efb8f) /* 649 */, + U64_C(0x691bc30ec5faa427) /* 650 */, U64_C(0xff246311cc327143) /* 651 */, + U64_C(0x3142368e30e53206) /* 652 */, U64_C(0x71380e31e02ca396) /* 653 */, + U64_C(0x958d5c960aad76f1) /* 654 */, U64_C(0xf8d6f430c16da536) /* 655 */, + U64_C(0xc8ffd13f1be7e1d2) /* 656 */, U64_C(0x7578ae66004ddbe1) /* 657 */, + U64_C(0x05833f01067be646) /* 658 */, U64_C(0xbb34b5ad3bfe586d) /* 659 */, + U64_C(0x095f34c9a12b97f0) /* 660 */, U64_C(0x247ab64525d60ca8) /* 661 */, + U64_C(0xdcdbc6f3017477d1) /* 662 */, U64_C(0x4a2e14d4decad24d) /* 663 */, + U64_C(0xbdb5e6d9be0a1eeb) /* 664 */, U64_C(0x2a7e70f7794301ab) /* 665 */, + U64_C(0xdef42d8a270540fd) /* 666 */, U64_C(0x01078ec0a34c22c1) /* 667 */, + U64_C(0xe5de511af4c16387) /* 668 */, U64_C(0x7ebb3a52bd9a330a) /* 669 */, + U64_C(0x77697857aa7d6435) /* 670 */, U64_C(0x004e831603ae4c32) /* 671 */, + U64_C(0xe7a21020ad78e312) /* 672 */, U64_C(0x9d41a70c6ab420f2) /* 673 */, + U64_C(0x28e06c18ea1141e6) /* 674 */, U64_C(0xd2b28cbd984f6b28) /* 675 */, + U64_C(0x26b75f6c446e9d83) /* 676 */, U64_C(0xba47568c4d418d7f) /* 677 */, + U64_C(0xd80badbfe6183d8e) /* 678 */, U64_C(0x0e206d7f5f166044) /* 679 */, + U64_C(0xe258a43911cbca3e) /* 680 */, U64_C(0x723a1746b21dc0bc) /* 681 */, + U64_C(0xc7caa854f5d7cdd3) /* 682 */, U64_C(0x7cac32883d261d9c) /* 683 */, + U64_C(0x7690c26423ba942c) /* 684 */, U64_C(0x17e55524478042b8) /* 685 */, + U64_C(0xe0be477656a2389f) /* 686 */, U64_C(0x4d289b5e67ab2da0) /* 687 */, + U64_C(0x44862b9c8fbbfd31) /* 688 */, U64_C(0xb47cc8049d141365) /* 689 */, + U64_C(0x822c1b362b91c793) /* 690 */, U64_C(0x4eb14655fb13dfd8) /* 691 */, + U64_C(0x1ecbba0714e2a97b) /* 692 */, U64_C(0x6143459d5cde5f14) /* 693 */, + U64_C(0x53a8fbf1d5f0ac89) /* 694 */, U64_C(0x97ea04d81c5e5b00) /* 695 */, + U64_C(0x622181a8d4fdb3f3) /* 696 */, U64_C(0xe9bcd341572a1208) /* 697 */, + U64_C(0x1411258643cce58a) /* 698 */, U64_C(0x9144c5fea4c6e0a4) /* 699 */, + U64_C(0x0d33d06565cf620f) /* 700 */, U64_C(0x54a48d489f219ca1) /* 701 */, + U64_C(0xc43e5eac6d63c821) /* 702 */, U64_C(0xa9728b3a72770daf) /* 703 */, + U64_C(0xd7934e7b20df87ef) /* 704 */, U64_C(0xe35503b61a3e86e5) /* 705 */, + U64_C(0xcae321fbc819d504) /* 706 */, U64_C(0x129a50b3ac60bfa6) /* 707 */, + U64_C(0xcd5e68ea7e9fb6c3) /* 708 */, U64_C(0xb01c90199483b1c7) /* 709 */, + U64_C(0x3de93cd5c295376c) /* 710 */, U64_C(0xaed52edf2ab9ad13) /* 711 */, + U64_C(0x2e60f512c0a07884) /* 712 */, U64_C(0xbc3d86a3e36210c9) /* 713 */, + U64_C(0x35269d9b163951ce) /* 714 */, U64_C(0x0c7d6e2ad0cdb5fa) /* 715 */, + U64_C(0x59e86297d87f5733) /* 716 */, U64_C(0x298ef221898db0e7) /* 717 */, + U64_C(0x55000029d1a5aa7e) /* 718 */, U64_C(0x8bc08ae1b5061b45) /* 719 */, + U64_C(0xc2c31c2b6c92703a) /* 720 */, U64_C(0x94cc596baf25ef42) /* 721 */, + U64_C(0x0a1d73db22540456) /* 722 */, U64_C(0x04b6a0f9d9c4179a) /* 723 */, + U64_C(0xeffdafa2ae3d3c60) /* 724 */, U64_C(0xf7c8075bb49496c4) /* 725 */, + U64_C(0x9cc5c7141d1cd4e3) /* 726 */, U64_C(0x78bd1638218e5534) /* 727 */, + U64_C(0xb2f11568f850246a) /* 728 */, U64_C(0xedfabcfa9502bc29) /* 729 */, + U64_C(0x796ce5f2da23051b) /* 730 */, U64_C(0xaae128b0dc93537c) /* 731 */, + U64_C(0x3a493da0ee4b29ae) /* 732 */, U64_C(0xb5df6b2c416895d7) /* 733 */, + U64_C(0xfcabbd25122d7f37) /* 734 */, U64_C(0x70810b58105dc4b1) /* 735 */, + U64_C(0xe10fdd37f7882a90) /* 736 */, U64_C(0x524dcab5518a3f5c) /* 737 */, + U64_C(0x3c9e85878451255b) /* 738 */, U64_C(0x4029828119bd34e2) /* 739 */, + U64_C(0x74a05b6f5d3ceccb) /* 740 */, U64_C(0xb610021542e13eca) /* 741 */, + U64_C(0x0ff979d12f59e2ac) /* 742 */, U64_C(0x6037da27e4f9cc50) /* 743 */, + U64_C(0x5e92975a0df1847d) /* 744 */, U64_C(0xd66de190d3e623fe) /* 745 */, + U64_C(0x5032d6b87b568048) /* 746 */, U64_C(0x9a36b7ce8235216e) /* 747 */, + U64_C(0x80272a7a24f64b4a) /* 748 */, U64_C(0x93efed8b8c6916f7) /* 749 */, + U64_C(0x37ddbff44cce1555) /* 750 */, U64_C(0x4b95db5d4b99bd25) /* 751 */, + U64_C(0x92d3fda169812fc0) /* 752 */, U64_C(0xfb1a4a9a90660bb6) /* 753 */, + U64_C(0x730c196946a4b9b2) /* 754 */, U64_C(0x81e289aa7f49da68) /* 755 */, + U64_C(0x64669a0f83b1a05f) /* 756 */, U64_C(0x27b3ff7d9644f48b) /* 757 */, + U64_C(0xcc6b615c8db675b3) /* 758 */, U64_C(0x674f20b9bcebbe95) /* 759 */, + U64_C(0x6f31238275655982) /* 760 */, U64_C(0x5ae488713e45cf05) /* 761 */, + U64_C(0xbf619f9954c21157) /* 762 */, U64_C(0xeabac46040a8eae9) /* 763 */, + U64_C(0x454c6fe9f2c0c1cd) /* 764 */, U64_C(0x419cf6496412691c) /* 765 */, + U64_C(0xd3dc3bef265b0f70) /* 766 */, U64_C(0x6d0e60f5c3578a9e) /* 767 */ +}; +static u64 sbox4[256] = { + U64_C(0x5b0e608526323c55) /* 768 */, U64_C(0x1a46c1a9fa1b59f5) /* 769 */, + U64_C(0xa9e245a17c4c8ffa) /* 770 */, U64_C(0x65ca5159db2955d7) /* 771 */, + U64_C(0x05db0a76ce35afc2) /* 772 */, U64_C(0x81eac77ea9113d45) /* 773 */, + U64_C(0x528ef88ab6ac0a0d) /* 774 */, U64_C(0xa09ea253597be3ff) /* 775 */, + U64_C(0x430ddfb3ac48cd56) /* 776 */, U64_C(0xc4b3a67af45ce46f) /* 777 */, + U64_C(0x4ececfd8fbe2d05e) /* 778 */, U64_C(0x3ef56f10b39935f0) /* 779 */, + U64_C(0x0b22d6829cd619c6) /* 780 */, U64_C(0x17fd460a74df2069) /* 781 */, + U64_C(0x6cf8cc8e8510ed40) /* 782 */, U64_C(0xd6c824bf3a6ecaa7) /* 783 */, + U64_C(0x61243d581a817049) /* 784 */, U64_C(0x048bacb6bbc163a2) /* 785 */, + U64_C(0xd9a38ac27d44cc32) /* 786 */, U64_C(0x7fddff5baaf410ab) /* 787 */, + U64_C(0xad6d495aa804824b) /* 788 */, U64_C(0xe1a6a74f2d8c9f94) /* 789 */, + U64_C(0xd4f7851235dee8e3) /* 790 */, U64_C(0xfd4b7f886540d893) /* 791 */, + U64_C(0x247c20042aa4bfda) /* 792 */, U64_C(0x096ea1c517d1327c) /* 793 */, + U64_C(0xd56966b4361a6685) /* 794 */, U64_C(0x277da5c31221057d) /* 795 */, + U64_C(0x94d59893a43acff7) /* 796 */, U64_C(0x64f0c51ccdc02281) /* 797 */, + U64_C(0x3d33bcc4ff6189db) /* 798 */, U64_C(0xe005cb184ce66af1) /* 799 */, + U64_C(0xff5ccd1d1db99bea) /* 800 */, U64_C(0xb0b854a7fe42980f) /* 801 */, + U64_C(0x7bd46a6a718d4b9f) /* 802 */, U64_C(0xd10fa8cc22a5fd8c) /* 803 */, + U64_C(0xd31484952be4bd31) /* 804 */, U64_C(0xc7fa975fcb243847) /* 805 */, + U64_C(0x4886ed1e5846c407) /* 806 */, U64_C(0x28cddb791eb70b04) /* 807 */, + U64_C(0xc2b00be2f573417f) /* 808 */, U64_C(0x5c9590452180f877) /* 809 */, + U64_C(0x7a6bddfff370eb00) /* 810 */, U64_C(0xce509e38d6d9d6a4) /* 811 */, + U64_C(0xebeb0f00647fa702) /* 812 */, U64_C(0x1dcc06cf76606f06) /* 813 */, + U64_C(0xe4d9f28ba286ff0a) /* 814 */, U64_C(0xd85a305dc918c262) /* 815 */, + U64_C(0x475b1d8732225f54) /* 816 */, U64_C(0x2d4fb51668ccb5fe) /* 817 */, + U64_C(0xa679b9d9d72bba20) /* 818 */, U64_C(0x53841c0d912d43a5) /* 819 */, + U64_C(0x3b7eaa48bf12a4e8) /* 820 */, U64_C(0x781e0e47f22f1ddf) /* 821 */, + U64_C(0xeff20ce60ab50973) /* 822 */, U64_C(0x20d261d19dffb742) /* 823 */, + U64_C(0x16a12b03062a2e39) /* 824 */, U64_C(0x1960eb2239650495) /* 825 */, + U64_C(0x251c16fed50eb8b8) /* 826 */, U64_C(0x9ac0c330f826016e) /* 827 */, + U64_C(0xed152665953e7671) /* 828 */, U64_C(0x02d63194a6369570) /* 829 */, + U64_C(0x5074f08394b1c987) /* 830 */, U64_C(0x70ba598c90b25ce1) /* 831 */, + U64_C(0x794a15810b9742f6) /* 832 */, U64_C(0x0d5925e9fcaf8c6c) /* 833 */, + U64_C(0x3067716cd868744e) /* 834 */, U64_C(0x910ab077e8d7731b) /* 835 */, + U64_C(0x6a61bbdb5ac42f61) /* 836 */, U64_C(0x93513efbf0851567) /* 837 */, + U64_C(0xf494724b9e83e9d5) /* 838 */, U64_C(0xe887e1985c09648d) /* 839 */, + U64_C(0x34b1d3c675370cfd) /* 840 */, U64_C(0xdc35e433bc0d255d) /* 841 */, + U64_C(0xd0aab84234131be0) /* 842 */, U64_C(0x08042a50b48b7eaf) /* 843 */, + U64_C(0x9997c4ee44a3ab35) /* 844 */, U64_C(0x829a7b49201799d0) /* 845 */, + U64_C(0x263b8307b7c54441) /* 846 */, U64_C(0x752f95f4fd6a6ca6) /* 847 */, + U64_C(0x927217402c08c6e5) /* 848 */, U64_C(0x2a8ab754a795d9ee) /* 849 */, + U64_C(0xa442f7552f72943d) /* 850 */, U64_C(0x2c31334e19781208) /* 851 */, + U64_C(0x4fa98d7ceaee6291) /* 852 */, U64_C(0x55c3862f665db309) /* 853 */, + U64_C(0xbd0610175d53b1f3) /* 854 */, U64_C(0x46fe6cb840413f27) /* 855 */, + U64_C(0x3fe03792df0cfa59) /* 856 */, U64_C(0xcfe700372eb85e8f) /* 857 */, + U64_C(0xa7be29e7adbce118) /* 858 */, U64_C(0xe544ee5cde8431dd) /* 859 */, + U64_C(0x8a781b1b41f1873e) /* 860 */, U64_C(0xa5c94c78a0d2f0e7) /* 861 */, + U64_C(0x39412e2877b60728) /* 862 */, U64_C(0xa1265ef3afc9a62c) /* 863 */, + U64_C(0xbcc2770c6a2506c5) /* 864 */, U64_C(0x3ab66dd5dce1ce12) /* 865 */, + U64_C(0xe65499d04a675b37) /* 866 */, U64_C(0x7d8f523481bfd216) /* 867 */, + U64_C(0x0f6f64fcec15f389) /* 868 */, U64_C(0x74efbe618b5b13c8) /* 869 */, + U64_C(0xacdc82b714273e1d) /* 870 */, U64_C(0xdd40bfe003199d17) /* 871 */, + U64_C(0x37e99257e7e061f8) /* 872 */, U64_C(0xfa52626904775aaa) /* 873 */, + U64_C(0x8bbbf63a463d56f9) /* 874 */, U64_C(0xf0013f1543a26e64) /* 875 */, + U64_C(0xa8307e9f879ec898) /* 876 */, U64_C(0xcc4c27a4150177cc) /* 877 */, + U64_C(0x1b432f2cca1d3348) /* 878 */, U64_C(0xde1d1f8f9f6fa013) /* 879 */, + U64_C(0x606602a047a7ddd6) /* 880 */, U64_C(0xd237ab64cc1cb2c7) /* 881 */, + U64_C(0x9b938e7225fcd1d3) /* 882 */, U64_C(0xec4e03708e0ff476) /* 883 */, + U64_C(0xfeb2fbda3d03c12d) /* 884 */, U64_C(0xae0bced2ee43889a) /* 885 */, + U64_C(0x22cb8923ebfb4f43) /* 886 */, U64_C(0x69360d013cf7396d) /* 887 */, + U64_C(0x855e3602d2d4e022) /* 888 */, U64_C(0x073805bad01f784c) /* 889 */, + U64_C(0x33e17a133852f546) /* 890 */, U64_C(0xdf4874058ac7b638) /* 891 */, + U64_C(0xba92b29c678aa14a) /* 892 */, U64_C(0x0ce89fc76cfaadcd) /* 893 */, + U64_C(0x5f9d4e0908339e34) /* 894 */, U64_C(0xf1afe9291f5923b9) /* 895 */, + U64_C(0x6e3480f60f4a265f) /* 896 */, U64_C(0xeebf3a2ab29b841c) /* 897 */, + U64_C(0xe21938a88f91b4ad) /* 898 */, U64_C(0x57dfeff845c6d3c3) /* 899 */, + U64_C(0x2f006b0bf62caaf2) /* 900 */, U64_C(0x62f479ef6f75ee78) /* 901 */, + U64_C(0x11a55ad41c8916a9) /* 902 */, U64_C(0xf229d29084fed453) /* 903 */, + U64_C(0x42f1c27b16b000e6) /* 904 */, U64_C(0x2b1f76749823c074) /* 905 */, + U64_C(0x4b76eca3c2745360) /* 906 */, U64_C(0x8c98f463b91691bd) /* 907 */, + U64_C(0x14bcc93cf1ade66a) /* 908 */, U64_C(0x8885213e6d458397) /* 909 */, + U64_C(0x8e177df0274d4711) /* 910 */, U64_C(0xb49b73b5503f2951) /* 911 */, + U64_C(0x10168168c3f96b6b) /* 912 */, U64_C(0x0e3d963b63cab0ae) /* 913 */, + U64_C(0x8dfc4b5655a1db14) /* 914 */, U64_C(0xf789f1356e14de5c) /* 915 */, + U64_C(0x683e68af4e51dac1) /* 916 */, U64_C(0xc9a84f9d8d4b0fd9) /* 917 */, + U64_C(0x3691e03f52a0f9d1) /* 918 */, U64_C(0x5ed86e46e1878e80) /* 919 */, + U64_C(0x3c711a0e99d07150) /* 920 */, U64_C(0x5a0865b20c4e9310) /* 921 */, + U64_C(0x56fbfc1fe4f0682e) /* 922 */, U64_C(0xea8d5de3105edf9b) /* 923 */, + U64_C(0x71abfdb12379187a) /* 924 */, U64_C(0x2eb99de1bee77b9c) /* 925 */, + U64_C(0x21ecc0ea33cf4523) /* 926 */, U64_C(0x59a4d7521805c7a1) /* 927 */, + U64_C(0x3896f5eb56ae7c72) /* 928 */, U64_C(0xaa638f3db18f75dc) /* 929 */, + U64_C(0x9f39358dabe9808e) /* 930 */, U64_C(0xb7defa91c00b72ac) /* 931 */, + U64_C(0x6b5541fd62492d92) /* 932 */, U64_C(0x6dc6dee8f92e4d5b) /* 933 */, + U64_C(0x353f57abc4beea7e) /* 934 */, U64_C(0x735769d6da5690ce) /* 935 */, + U64_C(0x0a234aa642391484) /* 936 */, U64_C(0xf6f9508028f80d9d) /* 937 */, + U64_C(0xb8e319a27ab3f215) /* 938 */, U64_C(0x31ad9c1151341a4d) /* 939 */, + U64_C(0x773c22a57bef5805) /* 940 */, U64_C(0x45c7561a07968633) /* 941 */, + U64_C(0xf913da9e249dbe36) /* 942 */, U64_C(0xda652d9b78a64c68) /* 943 */, + U64_C(0x4c27a97f3bc334ef) /* 944 */, U64_C(0x76621220e66b17f4) /* 945 */, + U64_C(0x967743899acd7d0b) /* 946 */, U64_C(0xf3ee5bcae0ed6782) /* 947 */, + U64_C(0x409f753600c879fc) /* 948 */, U64_C(0x06d09a39b5926db6) /* 949 */, + U64_C(0x6f83aeb0317ac588) /* 950 */, U64_C(0x01e6ca4a86381f21) /* 951 */, + U64_C(0x66ff3462d19f3025) /* 952 */, U64_C(0x72207c24ddfd3bfb) /* 953 */, + U64_C(0x4af6b6d3e2ece2eb) /* 954 */, U64_C(0x9c994dbec7ea08de) /* 955 */, + U64_C(0x49ace597b09a8bc4) /* 956 */, U64_C(0xb38c4766cf0797ba) /* 957 */, + U64_C(0x131b9373c57c2a75) /* 958 */, U64_C(0xb1822cce61931e58) /* 959 */, + U64_C(0x9d7555b909ba1c0c) /* 960 */, U64_C(0x127fafdd937d11d2) /* 961 */, + U64_C(0x29da3badc66d92e4) /* 962 */, U64_C(0xa2c1d57154c2ecbc) /* 963 */, + U64_C(0x58c5134d82f6fe24) /* 964 */, U64_C(0x1c3ae3515b62274f) /* 965 */, + U64_C(0xe907c82e01cb8126) /* 966 */, U64_C(0xf8ed091913e37fcb) /* 967 */, + U64_C(0x3249d8f9c80046c9) /* 968 */, U64_C(0x80cf9bede388fb63) /* 969 */, + U64_C(0x1881539a116cf19e) /* 970 */, U64_C(0x5103f3f76bd52457) /* 971 */, + U64_C(0x15b7e6f5ae47f7a8) /* 972 */, U64_C(0xdbd7c6ded47e9ccf) /* 973 */, + U64_C(0x44e55c410228bb1a) /* 974 */, U64_C(0xb647d4255edb4e99) /* 975 */, + U64_C(0x5d11882bb8aafc30) /* 976 */, U64_C(0xf5098bbb29d3212a) /* 977 */, + U64_C(0x8fb5ea14e90296b3) /* 978 */, U64_C(0x677b942157dd025a) /* 979 */, + U64_C(0xfb58e7c0a390acb5) /* 980 */, U64_C(0x89d3674c83bd4a01) /* 981 */, + U64_C(0x9e2da4df4bf3b93b) /* 982 */, U64_C(0xfcc41e328cab4829) /* 983 */, + U64_C(0x03f38c96ba582c52) /* 984 */, U64_C(0xcad1bdbd7fd85db2) /* 985 */, + U64_C(0xbbb442c16082ae83) /* 986 */, U64_C(0xb95fe86ba5da9ab0) /* 987 */, + U64_C(0xb22e04673771a93f) /* 988 */, U64_C(0x845358c9493152d8) /* 989 */, + U64_C(0xbe2a488697b4541e) /* 990 */, U64_C(0x95a2dc2dd38e6966) /* 991 */, + U64_C(0xc02c11ac923c852b) /* 992 */, U64_C(0x2388b1990df2a87b) /* 993 */, + U64_C(0x7c8008fa1b4f37be) /* 994 */, U64_C(0x1f70d0c84d54e503) /* 995 */, + U64_C(0x5490adec7ece57d4) /* 996 */, U64_C(0x002b3c27d9063a3a) /* 997 */, + U64_C(0x7eaea3848030a2bf) /* 998 */, U64_C(0xc602326ded2003c0) /* 999 */, + U64_C(0x83a7287d69a94086) /* 1000 */, U64_C(0xc57a5fcb30f57a8a) /* 1001 */, + U64_C(0xb56844e479ebe779) /* 1002 */, U64_C(0xa373b40f05dcbce9) /* 1003 */, + U64_C(0xd71a786e88570ee2) /* 1004 */, U64_C(0x879cbacdbde8f6a0) /* 1005 */, + U64_C(0x976ad1bcc164a32f) /* 1006 */, U64_C(0xab21e25e9666d78b) /* 1007 */, + U64_C(0x901063aae5e5c33c) /* 1008 */, U64_C(0x9818b34448698d90) /* 1009 */, + U64_C(0xe36487ae3e1e8abb) /* 1010 */, U64_C(0xafbdf931893bdcb4) /* 1011 */, + U64_C(0x6345a0dc5fbbd519) /* 1012 */, U64_C(0x8628fe269b9465ca) /* 1013 */, + U64_C(0x1e5d01603f9c51ec) /* 1014 */, U64_C(0x4de44006a15049b7) /* 1015 */, + U64_C(0xbf6c70e5f776cbb1) /* 1016 */, U64_C(0x411218f2ef552bed) /* 1017 */, + U64_C(0xcb0c0708705a36a3) /* 1018 */, U64_C(0xe74d14754f986044) /* 1019 */, + U64_C(0xcd56d9430ea8280e) /* 1020 */, U64_C(0xc12591d7535f5065) /* 1021 */, + U64_C(0xc83223f1720aef96) /* 1022 */, U64_C(0xc3a0396f7363a51f) /* 1023 */ +}; + +static void +tiger_init( void *context ) +{ + TIGER_CONTEXT *hd = context; + + hd->a = 0x0123456789abcdefLL; + hd->b = 0xfedcba9876543210LL; + hd->c = 0xf096a5b4c3b2e187LL; + hd->nblocks = 0; + hd->count = 0; +} + +static void +tiger_round( u64 *ra, u64 *rb, u64 *rc, u64 x, int mul ) +{ + u64 a = *ra; + u64 b = *rb; + u64 c = *rc; + + c ^= x; + a -= ( sbox1[ c & 0xff ] ^ sbox2[ (c >> 16) & 0xff ] + ^ sbox3[ (c >> 32) & 0xff ] ^ sbox4[ (c >> 48) & 0xff ]); + b += ( sbox4[ (c >> 8) & 0xff ] ^ sbox3[ (c >> 24) & 0xff ] + ^ sbox2[ (c >> 40) & 0xff ] ^ sbox1[ (c >> 56) & 0xff ]); + b *= mul; + + *ra = a; + *rb = b; + *rc = c; +} + + +static void +pass( u64 *ra, u64 *rb, u64 *rc, u64 *x, int mul ) +{ + u64 a = *ra; + u64 b = *rb; + u64 c = *rc; + + tiger_round( &a, &b, &c, x[0], mul ); + tiger_round( &b, &c, &a, x[1], mul ); + tiger_round( &c, &a, &b, x[2], mul ); + tiger_round( &a, &b, &c, x[3], mul ); + tiger_round( &b, &c, &a, x[4], mul ); + tiger_round( &c, &a, &b, x[5], mul ); + tiger_round( &a, &b, &c, x[6], mul ); + tiger_round( &b, &c, &a, x[7], mul ); + + *ra = a; + *rb = b; + *rc = c; +} + + +static void +key_schedule( u64 *x ) +{ + x[0] -= x[7] ^ 0xa5a5a5a5a5a5a5a5LL; + x[1] ^= x[0]; + x[2] += x[1]; + x[3] -= x[2] ^ ((~x[1]) << 19 ); + x[4] ^= x[3]; + x[5] += x[4]; + x[6] -= x[5] ^ ((~x[4]) >> 23 ); + x[7] ^= x[6]; + x[0] += x[7]; + x[1] -= x[0] ^ ((~x[7]) << 19 ); + x[2] ^= x[1]; + x[3] += x[2]; + x[4] -= x[3] ^ ((~x[2]) >> 23 ); + x[5] ^= x[4]; + x[6] += x[5]; + x[7] -= x[6] ^ 0x0123456789abcdefLL; +} + + +/**************** + * Transform the message DATA which consists of 512 bytes (8 words) + */ +static void +transform ( TIGER_CONTEXT *hd, const unsigned char *data ) +{ + u64 a,b,c,aa,bb,cc; + u64 x[8]; +#ifdef WORDS_BIGENDIAN +#define MKWORD(d,n) \ + ( ((u64)(d)[8*(n)+7]) << 56 | ((u64)(d)[8*(n)+6]) << 48 \ + | ((u64)(d)[8*(n)+5]) << 40 | ((u64)(d)[8*(n)+4]) << 32 \ + | ((u64)(d)[8*(n)+3]) << 24 | ((u64)(d)[8*(n)+2]) << 16 \ + | ((u64)(d)[8*(n)+1]) << 8 | ((u64)(d)[8*(n) ]) ) + x[0] = MKWORD(data, 0); + x[1] = MKWORD(data, 1); + x[2] = MKWORD(data, 2); + x[3] = MKWORD(data, 3); + x[4] = MKWORD(data, 4); + x[5] = MKWORD(data, 5); + x[6] = MKWORD(data, 6); + x[7] = MKWORD(data, 7); +#undef MKWORD +#else + memcpy( &x[0], data, 64 ); +#endif + + /* save */ + a = aa = hd->a; + b = bb = hd->b; + c = cc = hd->c; + + pass( &a, &b, &c, x, 5); + key_schedule( x ); + pass( &c, &a, &b, x, 7); + key_schedule( x ); + pass( &b, &c, &a, x, 9); + + /* feedforward */ + a ^= aa; + b -= bb; + c += cc; + /* store */ + hd->a = a; + hd->b = b; + hd->c = c; +} + + + +/* Update the message digest with the contents + * of INBUF with length INLEN. + */ +static void +tiger_write ( void *context, const void *inbuf_arg, size_t inlen) +{ + const unsigned char *inbuf = inbuf_arg; + TIGER_CONTEXT *hd = context; + + if( hd->count == 64 ) /* flush the buffer */ + { + transform( hd, hd->buf ); + _gcry_burn_stack (21*8+11*sizeof(void*)); + hd->count = 0; + hd->nblocks++; + } + if( !inbuf ) + return; + if( hd->count ) + { + for( ; inlen && hd->count < 64; inlen-- ) + hd->buf[hd->count++] = *inbuf++; + tiger_write( hd, NULL, 0 ); + if( !inlen ) + return; + } + + while( inlen >= 64 ) + { + transform( hd, inbuf ); + hd->count = 0; + hd->nblocks++; + inlen -= 64; + inbuf += 64; + } + _gcry_burn_stack (21*8+11*sizeof(void*)); + for( ; inlen && hd->count < 64; inlen-- ) + hd->buf[hd->count++] = *inbuf++; +} + + + +/* The routine terminates the computation + */ +static void +tiger_final( void *context ) +{ + TIGER_CONTEXT *hd = context; + u32 t, msb, lsb; + byte *p; + + tiger_write(hd, NULL, 0); /* flush */; + + t = hd->nblocks; + /* multiply by 64 to make a byte count */ + lsb = t << 6; + msb = t >> 26; + /* add the count */ + t = lsb; + if( (lsb += hd->count) < t ) + msb++; + /* multiply by 8 to make a bit count */ + t = lsb; + lsb <<= 3; + msb <<= 3; + msb |= t >> 29; + + if( hd->count < 56 ) /* enough room */ + { + hd->buf[hd->count++] = 0x01; /* pad */ + while( hd->count < 56 ) + hd->buf[hd->count++] = 0; /* pad */ + } + else /* need one extra block */ + { + hd->buf[hd->count++] = 0x01; /* pad character */ + while( hd->count < 64 ) + hd->buf[hd->count++] = 0; + tiger_write(hd, NULL, 0); /* flush */; + memset(hd->buf, 0, 56 ); /* fill next block with zeroes */ + } + /* append the 64 bit count */ + hd->buf[56] = lsb ; + hd->buf[57] = lsb >> 8; + hd->buf[58] = lsb >> 16; + hd->buf[59] = lsb >> 24; + hd->buf[60] = msb ; + hd->buf[61] = msb >> 8; + hd->buf[62] = msb >> 16; + hd->buf[63] = msb >> 24; + transform( hd, hd->buf ); + _gcry_burn_stack (21*8+11*sizeof(void*)); + + p = hd->buf; +#ifdef WORDS_BIGENDIAN +#define X(a) do { *(u64*)p = hd->a ; p += 8; } while(0) +#else /* little endian */ +#define X(a) do { *p++ = hd->a >> 56; *p++ = hd->a >> 48; \ + *p++ = hd->a >> 40; *p++ = hd->a >> 32; \ + *p++ = hd->a >> 24; *p++ = hd->a >> 16; \ + *p++ = hd->a >> 8; *p++ = hd->a; } while(0) +#endif + X(a); + X(b); + X(c); +#undef X +} + +static byte * +tiger_read( void *context ) +{ + TIGER_CONTEXT *hd = context; + + return hd->buf; +} + +static byte asn[19] = /* Object ID is 1.3.6.1.4.1.11591.12.2 */ + { 0x30, 0x29, 0x30, 0x0d, 0x06, 0x09, 0x2b, 0x06, + 0x01, 0x04, 0x01, 0xda, 0x47, 0x0c, 0x02, + 0x05, 0x00, 0x04, 0x18 }; + +static gcry_md_oid_spec_t oid_spec_tiger[] = + { + /* GNU.digestAlgorithm TIGER */ + { "1.3.6.1.4.1.11591.12.2" }, + { NULL } + }; + +gcry_md_spec_t _gcry_digest_spec_tiger = + { + "TIGER192", asn, DIM (asn), oid_spec_tiger, 24, + tiger_init, tiger_write, tiger_final, tiger_read, + sizeof (TIGER_CONTEXT) + , + .blocksize = 64 + }; + +#endif /* HAVE_U64_TYPEDEF */ + + +GRUB_MOD_INIT(gcry_tiger) +{ + grub_md_register (&_gcry_digest_spec_tiger); +} + +GRUB_MOD_FINI(gcry_tiger) +{ + grub_md_unregister (&_gcry_digest_spec_tiger); +} --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/des.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/des.c @@ -0,0 +1,921 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* des.c - DES and Triple-DES encryption/decryption Algorithm + * Copyright (C) 1998, 1999, 2001, 2002, 2003, + * 2008 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser general Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + * + * For a description of triple encryption, see: + * Bruce Schneier: Applied Cryptography. Second Edition. + * John Wiley & Sons, 1996. ISBN 0-471-12845-7. Pages 358 ff. + * This implementation is according to the definition of DES in FIPS + * PUB 46-2 from December 1993. + */ + + +/* + * Written by Michael Roth , September 1998 + */ + + +/* + * U S A G E + * =========== + * + * For DES or Triple-DES encryption/decryption you must initialize a proper + * encryption context with a key. + * + * A DES key is 64bit wide but only 56bits of the key are used. The remaining + * bits are parity bits and they will _not_ checked in this implementation, but + * simply ignored. + * + * For Triple-DES you could use either two 64bit keys or three 64bit keys. + * The parity bits will _not_ checked, too. + * + * After initializing a context with a key you could use this context to + * encrypt or decrypt data in 64bit blocks in Electronic Codebook Mode. + * + * (In the examples below the slashes at the beginning and ending of comments + * are omited.) + * + * DES Example + * ----------- + * unsigned char key[8]; + * unsigned char plaintext[8]; + * unsigned char ciphertext[8]; + * unsigned char recoverd[8]; + * des_ctx context; + * + * * Fill 'key' and 'plaintext' with some data * + * .... + * + * * Set up the DES encryption context * + * des_setkey(context, key); + * + * * Encrypt the plaintext * + * des_ecb_encrypt(context, plaintext, ciphertext); + * + * * To recover the orginal plaintext from ciphertext use: * + * des_ecb_decrypt(context, ciphertext, recoverd); + * + * + * Triple-DES Example + * ------------------ + * unsigned char key1[8]; + * unsigned char key2[8]; + * unsigned char key3[8]; + * unsigned char plaintext[8]; + * unsigned char ciphertext[8]; + * unsigned char recoverd[8]; + * tripledes_ctx context; + * + * * If you would like to use two 64bit keys, fill 'key1' and'key2' + * then setup the encryption context: * + * tripledes_set2keys(context, key1, key2); + * + * * To use three 64bit keys with Triple-DES use: * + * tripledes_set3keys(context, key1, key2, key3); + * + * * Encrypting plaintext with Triple-DES * + * tripledes_ecb_encrypt(context, plaintext, ciphertext); + * + * * Decrypting ciphertext to recover the plaintext with Triple-DES * + * tripledes_ecb_decrypt(context, ciphertext, recoverd); + * + * + * Selftest + * -------- + * char *error_msg; + * + * * To perform a selftest of this DES/Triple-DES implementation use the + * function selftest(). It will return an error string if there are + * some problems with this library. * + * + * if ( (error_msg = selftest()) ) + * { + * fprintf(stderr, "An error in the DES/Tripple-DES implementation occured: %s\n", error_msg); + * abort(); + * } + */ + + +#include "types.h" /* for byte and u32 typedefs */ +#include "g10lib.h" +#include "cipher.h" + +#if defined(__GNUC__) && defined(__GNU_LIBRARY__) +#define working_memcmp memcmp +#else +/* + * According to the SunOS man page, memcmp returns indeterminate sign + * depending on whether characters are signed or not. + */ +static int +working_memcmp( const char *a, const char *b, size_t n ) +{ + for( ; n; n--, a++, b++ ) + if( *a != *b ) + return (int)(*(byte*)a) - (int)(*(byte*)b); + return 0; +} +#endif + +/* + * Encryption/Decryption context of DES + */ +typedef struct _des_ctx + { + u32 encrypt_subkeys[32]; + u32 decrypt_subkeys[32]; + } +des_ctx[1]; + +/* + * Encryption/Decryption context of Triple-DES + */ +typedef struct _tripledes_ctx + { + u32 encrypt_subkeys[96]; + u32 decrypt_subkeys[96]; + struct { + int no_weak_key; + } flags; + } +tripledes_ctx[1]; + +static void des_key_schedule (const byte *, u32 *); +static int des_setkey (struct _des_ctx *, const byte *); +static int des_ecb_crypt (struct _des_ctx *, const byte *, byte *, int); +static int tripledes_set3keys (struct _tripledes_ctx *, + const byte *, const byte *, const byte *); +static int tripledes_ecb_crypt (struct _tripledes_ctx *, + const byte *, byte *, int); +static int is_weak_key ( const byte *key ); + +static int initialized; + + + + +/* + * The s-box values are permuted according to the 'primitive function P' + * and are rotated one bit to the left. + */ +static u32 sbox1[64] = +{ + 0x01010400, 0x00000000, 0x00010000, 0x01010404, 0x01010004, 0x00010404, 0x00000004, 0x00010000, + 0x00000400, 0x01010400, 0x01010404, 0x00000400, 0x01000404, 0x01010004, 0x01000000, 0x00000004, + 0x00000404, 0x01000400, 0x01000400, 0x00010400, 0x00010400, 0x01010000, 0x01010000, 0x01000404, + 0x00010004, 0x01000004, 0x01000004, 0x00010004, 0x00000000, 0x00000404, 0x00010404, 0x01000000, + 0x00010000, 0x01010404, 0x00000004, 0x01010000, 0x01010400, 0x01000000, 0x01000000, 0x00000400, + 0x01010004, 0x00010000, 0x00010400, 0x01000004, 0x00000400, 0x00000004, 0x01000404, 0x00010404, + 0x01010404, 0x00010004, 0x01010000, 0x01000404, 0x01000004, 0x00000404, 0x00010404, 0x01010400, + 0x00000404, 0x01000400, 0x01000400, 0x00000000, 0x00010004, 0x00010400, 0x00000000, 0x01010004 +}; + +static u32 sbox2[64] = +{ + 0x80108020, 0x80008000, 0x00008000, 0x00108020, 0x00100000, 0x00000020, 0x80100020, 0x80008020, + 0x80000020, 0x80108020, 0x80108000, 0x80000000, 0x80008000, 0x00100000, 0x00000020, 0x80100020, + 0x00108000, 0x00100020, 0x80008020, 0x00000000, 0x80000000, 0x00008000, 0x00108020, 0x80100000, + 0x00100020, 0x80000020, 0x00000000, 0x00108000, 0x00008020, 0x80108000, 0x80100000, 0x00008020, + 0x00000000, 0x00108020, 0x80100020, 0x00100000, 0x80008020, 0x80100000, 0x80108000, 0x00008000, + 0x80100000, 0x80008000, 0x00000020, 0x80108020, 0x00108020, 0x00000020, 0x00008000, 0x80000000, + 0x00008020, 0x80108000, 0x00100000, 0x80000020, 0x00100020, 0x80008020, 0x80000020, 0x00100020, + 0x00108000, 0x00000000, 0x80008000, 0x00008020, 0x80000000, 0x80100020, 0x80108020, 0x00108000 +}; + +static u32 sbox3[64] = +{ + 0x00000208, 0x08020200, 0x00000000, 0x08020008, 0x08000200, 0x00000000, 0x00020208, 0x08000200, + 0x00020008, 0x08000008, 0x08000008, 0x00020000, 0x08020208, 0x00020008, 0x08020000, 0x00000208, + 0x08000000, 0x00000008, 0x08020200, 0x00000200, 0x00020200, 0x08020000, 0x08020008, 0x00020208, + 0x08000208, 0x00020200, 0x00020000, 0x08000208, 0x00000008, 0x08020208, 0x00000200, 0x08000000, + 0x08020200, 0x08000000, 0x00020008, 0x00000208, 0x00020000, 0x08020200, 0x08000200, 0x00000000, + 0x00000200, 0x00020008, 0x08020208, 0x08000200, 0x08000008, 0x00000200, 0x00000000, 0x08020008, + 0x08000208, 0x00020000, 0x08000000, 0x08020208, 0x00000008, 0x00020208, 0x00020200, 0x08000008, + 0x08020000, 0x08000208, 0x00000208, 0x08020000, 0x00020208, 0x00000008, 0x08020008, 0x00020200 +}; + +static u32 sbox4[64] = +{ + 0x00802001, 0x00002081, 0x00002081, 0x00000080, 0x00802080, 0x00800081, 0x00800001, 0x00002001, + 0x00000000, 0x00802000, 0x00802000, 0x00802081, 0x00000081, 0x00000000, 0x00800080, 0x00800001, + 0x00000001, 0x00002000, 0x00800000, 0x00802001, 0x00000080, 0x00800000, 0x00002001, 0x00002080, + 0x00800081, 0x00000001, 0x00002080, 0x00800080, 0x00002000, 0x00802080, 0x00802081, 0x00000081, + 0x00800080, 0x00800001, 0x00802000, 0x00802081, 0x00000081, 0x00000000, 0x00000000, 0x00802000, + 0x00002080, 0x00800080, 0x00800081, 0x00000001, 0x00802001, 0x00002081, 0x00002081, 0x00000080, + 0x00802081, 0x00000081, 0x00000001, 0x00002000, 0x00800001, 0x00002001, 0x00802080, 0x00800081, + 0x00002001, 0x00002080, 0x00800000, 0x00802001, 0x00000080, 0x00800000, 0x00002000, 0x00802080 +}; + +static u32 sbox5[64] = +{ + 0x00000100, 0x02080100, 0x02080000, 0x42000100, 0x00080000, 0x00000100, 0x40000000, 0x02080000, + 0x40080100, 0x00080000, 0x02000100, 0x40080100, 0x42000100, 0x42080000, 0x00080100, 0x40000000, + 0x02000000, 0x40080000, 0x40080000, 0x00000000, 0x40000100, 0x42080100, 0x42080100, 0x02000100, + 0x42080000, 0x40000100, 0x00000000, 0x42000000, 0x02080100, 0x02000000, 0x42000000, 0x00080100, + 0x00080000, 0x42000100, 0x00000100, 0x02000000, 0x40000000, 0x02080000, 0x42000100, 0x40080100, + 0x02000100, 0x40000000, 0x42080000, 0x02080100, 0x40080100, 0x00000100, 0x02000000, 0x42080000, + 0x42080100, 0x00080100, 0x42000000, 0x42080100, 0x02080000, 0x00000000, 0x40080000, 0x42000000, + 0x00080100, 0x02000100, 0x40000100, 0x00080000, 0x00000000, 0x40080000, 0x02080100, 0x40000100 +}; + +static u32 sbox6[64] = +{ + 0x20000010, 0x20400000, 0x00004000, 0x20404010, 0x20400000, 0x00000010, 0x20404010, 0x00400000, + 0x20004000, 0x00404010, 0x00400000, 0x20000010, 0x00400010, 0x20004000, 0x20000000, 0x00004010, + 0x00000000, 0x00400010, 0x20004010, 0x00004000, 0x00404000, 0x20004010, 0x00000010, 0x20400010, + 0x20400010, 0x00000000, 0x00404010, 0x20404000, 0x00004010, 0x00404000, 0x20404000, 0x20000000, + 0x20004000, 0x00000010, 0x20400010, 0x00404000, 0x20404010, 0x00400000, 0x00004010, 0x20000010, + 0x00400000, 0x20004000, 0x20000000, 0x00004010, 0x20000010, 0x20404010, 0x00404000, 0x20400000, + 0x00404010, 0x20404000, 0x00000000, 0x20400010, 0x00000010, 0x00004000, 0x20400000, 0x00404010, + 0x00004000, 0x00400010, 0x20004010, 0x00000000, 0x20404000, 0x20000000, 0x00400010, 0x20004010 +}; + +static u32 sbox7[64] = +{ + 0x00200000, 0x04200002, 0x04000802, 0x00000000, 0x00000800, 0x04000802, 0x00200802, 0x04200800, + 0x04200802, 0x00200000, 0x00000000, 0x04000002, 0x00000002, 0x04000000, 0x04200002, 0x00000802, + 0x04000800, 0x00200802, 0x00200002, 0x04000800, 0x04000002, 0x04200000, 0x04200800, 0x00200002, + 0x04200000, 0x00000800, 0x00000802, 0x04200802, 0x00200800, 0x00000002, 0x04000000, 0x00200800, + 0x04000000, 0x00200800, 0x00200000, 0x04000802, 0x04000802, 0x04200002, 0x04200002, 0x00000002, + 0x00200002, 0x04000000, 0x04000800, 0x00200000, 0x04200800, 0x00000802, 0x00200802, 0x04200800, + 0x00000802, 0x04000002, 0x04200802, 0x04200000, 0x00200800, 0x00000000, 0x00000002, 0x04200802, + 0x00000000, 0x00200802, 0x04200000, 0x00000800, 0x04000002, 0x04000800, 0x00000800, 0x00200002 +}; + +static u32 sbox8[64] = +{ + 0x10001040, 0x00001000, 0x00040000, 0x10041040, 0x10000000, 0x10001040, 0x00000040, 0x10000000, + 0x00040040, 0x10040000, 0x10041040, 0x00041000, 0x10041000, 0x00041040, 0x00001000, 0x00000040, + 0x10040000, 0x10000040, 0x10001000, 0x00001040, 0x00041000, 0x00040040, 0x10040040, 0x10041000, + 0x00001040, 0x00000000, 0x00000000, 0x10040040, 0x10000040, 0x10001000, 0x00041040, 0x00040000, + 0x00041040, 0x00040000, 0x10041000, 0x00001000, 0x00000040, 0x10040040, 0x00001000, 0x00041040, + 0x10001000, 0x00000040, 0x10000040, 0x10040000, 0x10040040, 0x10000000, 0x00040000, 0x10001040, + 0x00000000, 0x10041040, 0x00040040, 0x10000040, 0x10040000, 0x10001000, 0x10001040, 0x00000000, + 0x10041040, 0x00041000, 0x00041000, 0x00001040, 0x00001040, 0x00040040, 0x10000000, 0x10041000 +}; + + +/* + * These two tables are part of the 'permuted choice 1' function. + * In this implementation several speed improvements are done. + */ +static u32 leftkey_swap[16] = +{ + 0x00000000, 0x00000001, 0x00000100, 0x00000101, + 0x00010000, 0x00010001, 0x00010100, 0x00010101, + 0x01000000, 0x01000001, 0x01000100, 0x01000101, + 0x01010000, 0x01010001, 0x01010100, 0x01010101 +}; + +static u32 rightkey_swap[16] = +{ + 0x00000000, 0x01000000, 0x00010000, 0x01010000, + 0x00000100, 0x01000100, 0x00010100, 0x01010100, + 0x00000001, 0x01000001, 0x00010001, 0x01010001, + 0x00000101, 0x01000101, 0x00010101, 0x01010101, +}; + + + +/* + * Numbers of left shifts per round for encryption subkeys. + * To calculate the decryption subkeys we just reverse the + * ordering of the calculated encryption subkeys. So their + * is no need for a decryption rotate tab. + */ +static byte encrypt_rotate_tab[16] = +{ + 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1 +}; + + + +/* + * Table with weak DES keys sorted in ascending order. + * In DES their are 64 known keys which are weak. They are weak + * because they produce only one, two or four different + * subkeys in the subkey scheduling process. + * The keys in this table have all their parity bits cleared. + */ +static byte weak_keys[64][8] = +{ + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /*w*/ + { 0x00, 0x00, 0x1e, 0x1e, 0x00, 0x00, 0x0e, 0x0e }, + { 0x00, 0x00, 0xe0, 0xe0, 0x00, 0x00, 0xf0, 0xf0 }, + { 0x00, 0x00, 0xfe, 0xfe, 0x00, 0x00, 0xfe, 0xfe }, + { 0x00, 0x1e, 0x00, 0x1e, 0x00, 0x0e, 0x00, 0x0e }, /*sw*/ + { 0x00, 0x1e, 0x1e, 0x00, 0x00, 0x0e, 0x0e, 0x00 }, + { 0x00, 0x1e, 0xe0, 0xfe, 0x00, 0x0e, 0xf0, 0xfe }, + { 0x00, 0x1e, 0xfe, 0xe0, 0x00, 0x0e, 0xfe, 0xf0 }, + { 0x00, 0xe0, 0x00, 0xe0, 0x00, 0xf0, 0x00, 0xf0 }, /*sw*/ + { 0x00, 0xe0, 0x1e, 0xfe, 0x00, 0xf0, 0x0e, 0xfe }, + { 0x00, 0xe0, 0xe0, 0x00, 0x00, 0xf0, 0xf0, 0x00 }, + { 0x00, 0xe0, 0xfe, 0x1e, 0x00, 0xf0, 0xfe, 0x0e }, + { 0x00, 0xfe, 0x00, 0xfe, 0x00, 0xfe, 0x00, 0xfe }, /*sw*/ + { 0x00, 0xfe, 0x1e, 0xe0, 0x00, 0xfe, 0x0e, 0xf0 }, + { 0x00, 0xfe, 0xe0, 0x1e, 0x00, 0xfe, 0xf0, 0x0e }, + { 0x00, 0xfe, 0xfe, 0x00, 0x00, 0xfe, 0xfe, 0x00 }, + { 0x1e, 0x00, 0x00, 0x1e, 0x0e, 0x00, 0x00, 0x0e }, + { 0x1e, 0x00, 0x1e, 0x00, 0x0e, 0x00, 0x0e, 0x00 }, /*sw*/ + { 0x1e, 0x00, 0xe0, 0xfe, 0x0e, 0x00, 0xf0, 0xfe }, + { 0x1e, 0x00, 0xfe, 0xe0, 0x0e, 0x00, 0xfe, 0xf0 }, + { 0x1e, 0x1e, 0x00, 0x00, 0x0e, 0x0e, 0x00, 0x00 }, + { 0x1e, 0x1e, 0x1e, 0x1e, 0x0e, 0x0e, 0x0e, 0x0e }, /*w*/ + { 0x1e, 0x1e, 0xe0, 0xe0, 0x0e, 0x0e, 0xf0, 0xf0 }, + { 0x1e, 0x1e, 0xfe, 0xfe, 0x0e, 0x0e, 0xfe, 0xfe }, + { 0x1e, 0xe0, 0x00, 0xfe, 0x0e, 0xf0, 0x00, 0xfe }, + { 0x1e, 0xe0, 0x1e, 0xe0, 0x0e, 0xf0, 0x0e, 0xf0 }, /*sw*/ + { 0x1e, 0xe0, 0xe0, 0x1e, 0x0e, 0xf0, 0xf0, 0x0e }, + { 0x1e, 0xe0, 0xfe, 0x00, 0x0e, 0xf0, 0xfe, 0x00 }, + { 0x1e, 0xfe, 0x00, 0xe0, 0x0e, 0xfe, 0x00, 0xf0 }, + { 0x1e, 0xfe, 0x1e, 0xfe, 0x0e, 0xfe, 0x0e, 0xfe }, /*sw*/ + { 0x1e, 0xfe, 0xe0, 0x00, 0x0e, 0xfe, 0xf0, 0x00 }, + { 0x1e, 0xfe, 0xfe, 0x1e, 0x0e, 0xfe, 0xfe, 0x0e }, + { 0xe0, 0x00, 0x00, 0xe0, 0xf0, 0x00, 0x00, 0xf0 }, + { 0xe0, 0x00, 0x1e, 0xfe, 0xf0, 0x00, 0x0e, 0xfe }, + { 0xe0, 0x00, 0xe0, 0x00, 0xf0, 0x00, 0xf0, 0x00 }, /*sw*/ + { 0xe0, 0x00, 0xfe, 0x1e, 0xf0, 0x00, 0xfe, 0x0e }, + { 0xe0, 0x1e, 0x00, 0xfe, 0xf0, 0x0e, 0x00, 0xfe }, + { 0xe0, 0x1e, 0x1e, 0xe0, 0xf0, 0x0e, 0x0e, 0xf0 }, + { 0xe0, 0x1e, 0xe0, 0x1e, 0xf0, 0x0e, 0xf0, 0x0e }, /*sw*/ + { 0xe0, 0x1e, 0xfe, 0x00, 0xf0, 0x0e, 0xfe, 0x00 }, + { 0xe0, 0xe0, 0x00, 0x00, 0xf0, 0xf0, 0x00, 0x00 }, + { 0xe0, 0xe0, 0x1e, 0x1e, 0xf0, 0xf0, 0x0e, 0x0e }, + { 0xe0, 0xe0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0xf0 }, /*w*/ + { 0xe0, 0xe0, 0xfe, 0xfe, 0xf0, 0xf0, 0xfe, 0xfe }, + { 0xe0, 0xfe, 0x00, 0x1e, 0xf0, 0xfe, 0x00, 0x0e }, + { 0xe0, 0xfe, 0x1e, 0x00, 0xf0, 0xfe, 0x0e, 0x00 }, + { 0xe0, 0xfe, 0xe0, 0xfe, 0xf0, 0xfe, 0xf0, 0xfe }, /*sw*/ + { 0xe0, 0xfe, 0xfe, 0xe0, 0xf0, 0xfe, 0xfe, 0xf0 }, + { 0xfe, 0x00, 0x00, 0xfe, 0xfe, 0x00, 0x00, 0xfe }, + { 0xfe, 0x00, 0x1e, 0xe0, 0xfe, 0x00, 0x0e, 0xf0 }, + { 0xfe, 0x00, 0xe0, 0x1e, 0xfe, 0x00, 0xf0, 0x0e }, + { 0xfe, 0x00, 0xfe, 0x00, 0xfe, 0x00, 0xfe, 0x00 }, /*sw*/ + { 0xfe, 0x1e, 0x00, 0xe0, 0xfe, 0x0e, 0x00, 0xf0 }, + { 0xfe, 0x1e, 0x1e, 0xfe, 0xfe, 0x0e, 0x0e, 0xfe }, + { 0xfe, 0x1e, 0xe0, 0x00, 0xfe, 0x0e, 0xf0, 0x00 }, + { 0xfe, 0x1e, 0xfe, 0x1e, 0xfe, 0x0e, 0xfe, 0x0e }, /*sw*/ + { 0xfe, 0xe0, 0x00, 0x1e, 0xfe, 0xf0, 0x00, 0x0e }, + { 0xfe, 0xe0, 0x1e, 0x00, 0xfe, 0xf0, 0x0e, 0x00 }, + { 0xfe, 0xe0, 0xe0, 0xfe, 0xfe, 0xf0, 0xf0, 0xfe }, + { 0xfe, 0xe0, 0xfe, 0xe0, 0xfe, 0xf0, 0xfe, 0xf0 }, /*sw*/ + { 0xfe, 0xfe, 0x00, 0x00, 0xfe, 0xfe, 0x00, 0x00 }, + { 0xfe, 0xfe, 0x1e, 0x1e, 0xfe, 0xfe, 0x0e, 0x0e }, + { 0xfe, 0xfe, 0xe0, 0xe0, 0xfe, 0xfe, 0xf0, 0xf0 }, + { 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe } /*w*/ +}; + + + +/* + * Macro to swap bits across two words. + */ +#define DO_PERMUTATION(a, temp, b, offset, mask) \ + temp = ((a>>offset) ^ b) & mask; \ + b ^= temp; \ + a ^= temp<> 31); \ + temp = (left ^ right) & 0xaaaaaaaa; \ + right ^= temp; \ + left ^= temp; \ + left = (left << 1) | (left >> 31); + +/* + * The 'inverse initial permutation'. + */ +#define FINAL_PERMUTATION(left, temp, right) \ + left = (left << 31) | (left >> 1); \ + temp = (left ^ right) & 0xaaaaaaaa; \ + left ^= temp; \ + right ^= temp; \ + right = (right << 31) | (right >> 1); \ + DO_PERMUTATION(right, temp, left, 8, 0x00ff00ff) \ + DO_PERMUTATION(right, temp, left, 2, 0x33333333) \ + DO_PERMUTATION(left, temp, right, 16, 0x0000ffff) \ + DO_PERMUTATION(left, temp, right, 4, 0x0f0f0f0f) + + +/* + * A full DES round including 'expansion function', 'sbox substitution' + * and 'primitive function P' but without swapping the left and right word. + * Please note: The data in 'from' and 'to' is already rotated one bit to + * the left, done in the initial permutation. + */ +#define DES_ROUND(from, to, work, subkey) \ + work = from ^ *subkey++; \ + to ^= sbox8[ work & 0x3f ]; \ + to ^= sbox6[ (work>>8) & 0x3f ]; \ + to ^= sbox4[ (work>>16) & 0x3f ]; \ + to ^= sbox2[ (work>>24) & 0x3f ]; \ + work = ((from << 28) | (from >> 4)) ^ *subkey++; \ + to ^= sbox7[ work & 0x3f ]; \ + to ^= sbox5[ (work>>8) & 0x3f ]; \ + to ^= sbox3[ (work>>16) & 0x3f ]; \ + to ^= sbox1[ (work>>24) & 0x3f ]; + +/* + * Macros to convert 8 bytes from/to 32bit words. + */ +#define READ_64BIT_DATA(data, left, right) \ + left = (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3]; \ + right = (data[4] << 24) | (data[5] << 16) | (data[6] << 8) | data[7]; + +#define WRITE_64BIT_DATA(data, left, right) \ + data[0] = (left >> 24) &0xff; data[1] = (left >> 16) &0xff; \ + data[2] = (left >> 8) &0xff; data[3] = left &0xff; \ + data[4] = (right >> 24) &0xff; data[5] = (right >> 16) &0xff; \ + data[6] = (right >> 8) &0xff; data[7] = right &0xff; + +/* + * Handy macros for encryption and decryption of data + */ +#define des_ecb_encrypt(ctx, from, to) des_ecb_crypt(ctx, from, to, 0) +#define des_ecb_decrypt(ctx, from, to) des_ecb_crypt(ctx, from, to, 1) +#define tripledes_ecb_encrypt(ctx, from, to) tripledes_ecb_crypt(ctx,from,to,0) +#define tripledes_ecb_decrypt(ctx, from, to) tripledes_ecb_crypt(ctx,from,to,1) + + + + + + +/* + * des_key_schedule(): Calculate 16 subkeys pairs (even/odd) for + * 16 encryption rounds. + * To calculate subkeys for decryption the caller + * have to reorder the generated subkeys. + * + * rawkey: 8 Bytes of key data + * subkey: Array of at least 32 u32s. Will be filled + * with calculated subkeys. + * + */ +static void +des_key_schedule (const byte * rawkey, u32 * subkey) +{ + u32 left, right, work; + int round; + + READ_64BIT_DATA (rawkey, left, right) + + DO_PERMUTATION (right, work, left, 4, 0x0f0f0f0f) + DO_PERMUTATION (right, work, left, 0, 0x10101010) + + left = ((leftkey_swap[(left >> 0) & 0xf] << 3) + | (leftkey_swap[(left >> 8) & 0xf] << 2) + | (leftkey_swap[(left >> 16) & 0xf] << 1) + | (leftkey_swap[(left >> 24) & 0xf]) + | (leftkey_swap[(left >> 5) & 0xf] << 7) + | (leftkey_swap[(left >> 13) & 0xf] << 6) + | (leftkey_swap[(left >> 21) & 0xf] << 5) + | (leftkey_swap[(left >> 29) & 0xf] << 4)); + + left &= 0x0fffffff; + + right = ((rightkey_swap[(right >> 1) & 0xf] << 3) + | (rightkey_swap[(right >> 9) & 0xf] << 2) + | (rightkey_swap[(right >> 17) & 0xf] << 1) + | (rightkey_swap[(right >> 25) & 0xf]) + | (rightkey_swap[(right >> 4) & 0xf] << 7) + | (rightkey_swap[(right >> 12) & 0xf] << 6) + | (rightkey_swap[(right >> 20) & 0xf] << 5) + | (rightkey_swap[(right >> 28) & 0xf] << 4)); + + right &= 0x0fffffff; + + for (round = 0; round < 16; ++round) + { + left = ((left << encrypt_rotate_tab[round]) + | (left >> (28 - encrypt_rotate_tab[round]))) & 0x0fffffff; + right = ((right << encrypt_rotate_tab[round]) + | (right >> (28 - encrypt_rotate_tab[round]))) & 0x0fffffff; + + *subkey++ = (((left << 4) & 0x24000000) + | ((left << 28) & 0x10000000) + | ((left << 14) & 0x08000000) + | ((left << 18) & 0x02080000) + | ((left << 6) & 0x01000000) + | ((left << 9) & 0x00200000) + | ((left >> 1) & 0x00100000) + | ((left << 10) & 0x00040000) + | ((left << 2) & 0x00020000) + | ((left >> 10) & 0x00010000) + | ((right >> 13) & 0x00002000) + | ((right >> 4) & 0x00001000) + | ((right << 6) & 0x00000800) + | ((right >> 1) & 0x00000400) + | ((right >> 14) & 0x00000200) + | (right & 0x00000100) + | ((right >> 5) & 0x00000020) + | ((right >> 10) & 0x00000010) + | ((right >> 3) & 0x00000008) + | ((right >> 18) & 0x00000004) + | ((right >> 26) & 0x00000002) + | ((right >> 24) & 0x00000001)); + + *subkey++ = (((left << 15) & 0x20000000) + | ((left << 17) & 0x10000000) + | ((left << 10) & 0x08000000) + | ((left << 22) & 0x04000000) + | ((left >> 2) & 0x02000000) + | ((left << 1) & 0x01000000) + | ((left << 16) & 0x00200000) + | ((left << 11) & 0x00100000) + | ((left << 3) & 0x00080000) + | ((left >> 6) & 0x00040000) + | ((left << 15) & 0x00020000) + | ((left >> 4) & 0x00010000) + | ((right >> 2) & 0x00002000) + | ((right << 8) & 0x00001000) + | ((right >> 14) & 0x00000808) + | ((right >> 9) & 0x00000400) + | ((right) & 0x00000200) + | ((right << 7) & 0x00000100) + | ((right >> 7) & 0x00000020) + | ((right >> 3) & 0x00000011) + | ((right << 2) & 0x00000004) + | ((right >> 21) & 0x00000002)); + } +} + + +/* + * Fill a DES context with subkeys calculated from a 64bit key. + * Does not check parity bits, but simply ignore them. + * Does not check for weak keys. + */ +static int +des_setkey (struct _des_ctx *ctx, const byte * key) +{ + static const char *selftest_failed; + int i; + + if (!fips_mode () && !initialized) + { + initialized = 1; + selftest_failed = selftest (); + + if (selftest_failed) + log_error ("%s\n", selftest_failed); + } + if (selftest_failed) + return GPG_ERR_SELFTEST_FAILED; + + des_key_schedule (key, ctx->encrypt_subkeys); + _gcry_burn_stack (32); + + for(i=0; i<32; i+=2) + { + ctx->decrypt_subkeys[i] = ctx->encrypt_subkeys[30-i]; + ctx->decrypt_subkeys[i+1] = ctx->encrypt_subkeys[31-i]; + } + + return 0; +} + + + +/* + * Electronic Codebook Mode DES encryption/decryption of data according + * to 'mode'. + */ +static int +des_ecb_crypt (struct _des_ctx *ctx, const byte * from, byte * to, int mode) +{ + u32 left, right, work; + u32 *keys; + + keys = mode ? ctx->decrypt_subkeys : ctx->encrypt_subkeys; + + READ_64BIT_DATA (from, left, right) + INITIAL_PERMUTATION (left, work, right) + + DES_ROUND (right, left, work, keys) DES_ROUND (left, right, work, keys) + DES_ROUND (right, left, work, keys) DES_ROUND (left, right, work, keys) + DES_ROUND (right, left, work, keys) DES_ROUND (left, right, work, keys) + DES_ROUND (right, left, work, keys) DES_ROUND (left, right, work, keys) + DES_ROUND (right, left, work, keys) DES_ROUND (left, right, work, keys) + DES_ROUND (right, left, work, keys) DES_ROUND (left, right, work, keys) + DES_ROUND (right, left, work, keys) DES_ROUND (left, right, work, keys) + DES_ROUND (right, left, work, keys) DES_ROUND (left, right, work, keys) + + FINAL_PERMUTATION (right, work, left) + WRITE_64BIT_DATA (to, right, left) + + return 0; +} + + + +/* + * Fill a Triple-DES context with subkeys calculated from two 64bit keys. + * Does not check the parity bits of the keys, but simply ignore them. + * Does not check for weak keys. + */ + + + +/* + * Fill a Triple-DES context with subkeys calculated from three 64bit keys. + * Does not check the parity bits of the keys, but simply ignore them. + * Does not check for weak keys. + */ +static int +tripledes_set3keys (struct _tripledes_ctx *ctx, + const byte * key1, + const byte * key2, + const byte * key3) +{ + static const char *selftest_failed; + int i; + + if (!fips_mode () && !initialized) + { + initialized = 1; + selftest_failed = selftest (); + + if (selftest_failed) + log_error ("%s\n", selftest_failed); + } + if (selftest_failed) + return GPG_ERR_SELFTEST_FAILED; + + des_key_schedule (key1, ctx->encrypt_subkeys); + des_key_schedule (key2, &(ctx->decrypt_subkeys[32])); + des_key_schedule (key3, &(ctx->encrypt_subkeys[64])); + _gcry_burn_stack (32); + + for(i=0; i<32; i+=2) + { + ctx->decrypt_subkeys[i] = ctx->encrypt_subkeys[94-i]; + ctx->decrypt_subkeys[i+1] = ctx->encrypt_subkeys[95-i]; + + ctx->encrypt_subkeys[i+32] = ctx->decrypt_subkeys[62-i]; + ctx->encrypt_subkeys[i+33] = ctx->decrypt_subkeys[63-i]; + + ctx->decrypt_subkeys[i+64] = ctx->encrypt_subkeys[30-i]; + ctx->decrypt_subkeys[i+65] = ctx->encrypt_subkeys[31-i]; + } + + return 0; +} + + + +/* + * Electronic Codebook Mode Triple-DES encryption/decryption of data + * according to 'mode'. Sometimes this mode is named 'EDE' mode + * (Encryption-Decryption-Encryption). + */ +static int +tripledes_ecb_crypt (struct _tripledes_ctx *ctx, const byte * from, + byte * to, int mode) +{ + u32 left, right, work; + u32 *keys; + + keys = mode ? ctx->decrypt_subkeys : ctx->encrypt_subkeys; + + READ_64BIT_DATA (from, left, right) + INITIAL_PERMUTATION (left, work, right) + + DES_ROUND (right, left, work, keys) DES_ROUND (left, right, work, keys) + DES_ROUND (right, left, work, keys) DES_ROUND (left, right, work, keys) + DES_ROUND (right, left, work, keys) DES_ROUND (left, right, work, keys) + DES_ROUND (right, left, work, keys) DES_ROUND (left, right, work, keys) + DES_ROUND (right, left, work, keys) DES_ROUND (left, right, work, keys) + DES_ROUND (right, left, work, keys) DES_ROUND (left, right, work, keys) + DES_ROUND (right, left, work, keys) DES_ROUND (left, right, work, keys) + DES_ROUND (right, left, work, keys) DES_ROUND (left, right, work, keys) + + DES_ROUND (left, right, work, keys) DES_ROUND (right, left, work, keys) + DES_ROUND (left, right, work, keys) DES_ROUND (right, left, work, keys) + DES_ROUND (left, right, work, keys) DES_ROUND (right, left, work, keys) + DES_ROUND (left, right, work, keys) DES_ROUND (right, left, work, keys) + DES_ROUND (left, right, work, keys) DES_ROUND (right, left, work, keys) + DES_ROUND (left, right, work, keys) DES_ROUND (right, left, work, keys) + DES_ROUND (left, right, work, keys) DES_ROUND (right, left, work, keys) + DES_ROUND (left, right, work, keys) DES_ROUND (right, left, work, keys) + + DES_ROUND (right, left, work, keys) DES_ROUND (left, right, work, keys) + DES_ROUND (right, left, work, keys) DES_ROUND (left, right, work, keys) + DES_ROUND (right, left, work, keys) DES_ROUND (left, right, work, keys) + DES_ROUND (right, left, work, keys) DES_ROUND (left, right, work, keys) + DES_ROUND (right, left, work, keys) DES_ROUND (left, right, work, keys) + DES_ROUND (right, left, work, keys) DES_ROUND (left, right, work, keys) + DES_ROUND (right, left, work, keys) DES_ROUND (left, right, work, keys) + DES_ROUND (right, left, work, keys) DES_ROUND (left, right, work, keys) + + FINAL_PERMUTATION (right, work, left) + WRITE_64BIT_DATA (to, right, left) + + return 0; +} + + + + + +/* + * Check whether the 8 byte key is weak. + * Does not check the parity bits of the key but simple ignore them. + */ +static int +is_weak_key ( const byte *key ) +{ + byte work[8]; + int i, left, right, middle, cmp_result; + + /* clear parity bits */ + for(i=0; i<8; ++i) + work[i] = key[i] & 0xfe; + + /* binary search in the weak key table */ + left = 0; + right = 63; + while(left <= right) + { + middle = (left + right) / 2; + + if ( !(cmp_result=working_memcmp(work, weak_keys[middle], 8)) ) + return -1; + + if ( cmp_result > 0 ) + left = middle + 1; + else + right = middle - 1; + } + + return 0; +} + + + +/* + * Performs a selftest of this DES/Triple-DES implementation. + * Returns an string with the error text on failure. + * Returns NULL if all is ok. + */ + + +static gcry_err_code_t +do_tripledes_setkey ( void *context, const byte *key, unsigned keylen ) +{ + struct _tripledes_ctx *ctx = (struct _tripledes_ctx *) context; + + if( keylen != 24 ) + return GPG_ERR_INV_KEYLEN; + + tripledes_set3keys ( ctx, key, key+8, key+16); + + if (ctx->flags.no_weak_key) + ; /* Detection has been disabled. */ + else if (is_weak_key (key) || is_weak_key (key+8) || is_weak_key (key+16)) + { + _gcry_burn_stack (64); + return GPG_ERR_WEAK_KEY; + } + _gcry_burn_stack (64); + + return GPG_ERR_NO_ERROR; +} + + + + +static void +do_tripledes_encrypt( void *context, byte *outbuf, const byte *inbuf ) +{ + struct _tripledes_ctx *ctx = (struct _tripledes_ctx *) context; + + tripledes_ecb_encrypt ( ctx, inbuf, outbuf ); + _gcry_burn_stack (32); +} + +static void +do_tripledes_decrypt( void *context, byte *outbuf, const byte *inbuf ) +{ + struct _tripledes_ctx *ctx = (struct _tripledes_ctx *) context; + tripledes_ecb_decrypt ( ctx, inbuf, outbuf ); + _gcry_burn_stack (32); +} + +static gcry_err_code_t +do_des_setkey (void *context, const byte *key, unsigned keylen) +{ + struct _des_ctx *ctx = (struct _des_ctx *) context; + + if (keylen != 8) + return GPG_ERR_INV_KEYLEN; + + des_setkey (ctx, key); + + if (is_weak_key (key)) { + _gcry_burn_stack (64); + return GPG_ERR_WEAK_KEY; + } + _gcry_burn_stack (64); + + return GPG_ERR_NO_ERROR; +} + + +static void +do_des_encrypt( void *context, byte *outbuf, const byte *inbuf ) +{ + struct _des_ctx *ctx = (struct _des_ctx *) context; + + des_ecb_encrypt ( ctx, inbuf, outbuf ); + _gcry_burn_stack (32); +} + +static void +do_des_decrypt( void *context, byte *outbuf, const byte *inbuf ) +{ + struct _des_ctx *ctx = (struct _des_ctx *) context; + + des_ecb_decrypt ( ctx, inbuf, outbuf ); + _gcry_burn_stack (32); +} + + + + +/* + Self-test section. + */ + + +/* Selftest for TripleDES. */ + + + +/* Run a full self-test for ALGO and return 0 on success. */ + + + +gcry_cipher_spec_t _gcry_cipher_spec_des = + { + "DES", NULL, NULL, 8, 64, sizeof (struct _des_ctx), + do_des_setkey, do_des_encrypt, do_des_decrypt + }; + +static gcry_cipher_oid_spec_t oids_tripledes[] = + { + { "1.2.840.113549.3.7", GCRY_CIPHER_MODE_CBC }, + /* Teletrust specific OID for 3DES. */ + { "1.3.36.3.1.3.2.1", GCRY_CIPHER_MODE_CBC }, + /* pbeWithSHAAnd3_KeyTripleDES_CBC */ + { "1.2.840.113549.1.12.1.3", GCRY_CIPHER_MODE_CBC }, + { NULL } + }; + +gcry_cipher_spec_t _gcry_cipher_spec_tripledes = + { + "3DES", NULL, oids_tripledes, 8, 192, sizeof (struct _tripledes_ctx), + do_tripledes_setkey, do_tripledes_encrypt, do_tripledes_decrypt + }; + + + +GRUB_MOD_INIT(gcry_des) +{ + grub_cipher_register (&_gcry_cipher_spec_des); + grub_cipher_register (&_gcry_cipher_spec_tripledes); +} + +GRUB_MOD_FINI(gcry_des) +{ + grub_cipher_unregister (&_gcry_cipher_spec_des); + grub_cipher_unregister (&_gcry_cipher_spec_tripledes); +} --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/whirlpool.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/whirlpool.c @@ -0,0 +1,1417 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* whirlpool.c - Whirlpool hashing algorithm + * Copyright (C) 2005 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + * + */ + +/* This is an implementation of the Whirlpool hashing algorithm, which + has been developed by Vincent Rijmen and Paulo S. L. M. Barreto; + it's homepage is located at: + http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html. + + The S-Boxes and the structure of the main transformation function, + which implements an optimized version of the algorithm, is taken + from the reference implementation available from + http://planeta.terra.com.br/informatica/paulobarreto/whirlpool.zip. */ + + +#include "types.h" +#include "g10lib.h" +#include "memory.h" +#include "cipher.h" + +#include "bithelp.h" + +/* Size of a whirlpool block (in bytes). */ +#define BLOCK_SIZE 64 + +/* Number of rounds. */ +#define R 10 + + + +/* Types. */ +typedef u64 whirlpool_block_t[BLOCK_SIZE / 8]; + +typedef struct { + whirlpool_block_t hash_state; + unsigned char buffer[BLOCK_SIZE]; + size_t count; + unsigned char length[32]; +} whirlpool_context_t; + + + +/* Macros. */ + +/* Convert the the buffer BUFFER into a block BLOCK, using I as + counter. */ +#define buffer_to_block(buffer, block, i) \ + for (i = 0; i < 8; i++) \ + (block)[i] = ((u64) (0 \ + | (((u64) (buffer)[i * 8 + 0]) << 56) \ + | (((u64) (buffer)[i * 8 + 1]) << 48) \ + | (((u64) (buffer)[i * 8 + 2]) << 40) \ + | (((u64) (buffer)[i * 8 + 3]) << 32) \ + | (((u64) (buffer)[i * 8 + 4]) << 24) \ + | (((u64) (buffer)[i * 8 + 5]) << 16) \ + | (((u64) (buffer)[i * 8 + 6]) << 8) \ + | (((u64) (buffer)[i * 8 + 7]) << 0))); + +/* Convert the block BLOCK into a buffer BUFFER, using I as + counter. */ +#define block_to_buffer(buffer, block, i) \ + for (i = 0; i < 8; i++) \ + { \ + (buffer)[i * 8 + 0] = (block[i] >> 56) & 0xFF; \ + (buffer)[i * 8 + 1] = (block[i] >> 48) & 0xFF; \ + (buffer)[i * 8 + 2] = (block[i] >> 40) & 0xFF; \ + (buffer)[i * 8 + 3] = (block[i] >> 32) & 0xFF; \ + (buffer)[i * 8 + 4] = (block[i] >> 24) & 0xFF; \ + (buffer)[i * 8 + 5] = (block[i] >> 16) & 0xFF; \ + (buffer)[i * 8 + 6] = (block[i] >> 8) & 0xFF; \ + (buffer)[i * 8 + 7] = (block[i] >> 0) & 0xFF; \ + } + +/* Copy the block BLOCK_SRC to BLOCK_DST, using I as counter. */ +#define block_copy(block_dst, block_src, i) \ + for (i = 0; i < 8; i++) \ + block_dst[i] = block_src[i]; + +/* XOR the block BLOCK_SRC into BLOCK_DST, using I as counter. */ +#define block_xor(block_dst, block_src, i) \ + for (i = 0; i < 8; i++) \ + block_dst[i] ^= block_src[i]; + + + +/* Round constants. */ +static const u64 rc[R] = + { + U64_C (0x1823c6e887b8014f), + U64_C (0x36a6d2f5796f9152), + U64_C (0x60bc9b8ea30c7b35), + U64_C (0x1de0d7c22e4bfe57), + U64_C (0x157737e59ff04ada), + U64_C (0x58c9290ab1a06b85), + U64_C (0xbd5d10f4cb3e0567), + U64_C (0xe427418ba77d95d8), + U64_C (0xfbee7c66dd17479e), + U64_C (0xca2dbf07ad5a8333), + }; + + + +/* Main lookup boxes. */ +static const u64 C0[256] = + { + U64_C (0x18186018c07830d8), U64_C (0x23238c2305af4626), + U64_C (0xc6c63fc67ef991b8), U64_C (0xe8e887e8136fcdfb), + U64_C (0x878726874ca113cb), U64_C (0xb8b8dab8a9626d11), + U64_C (0x0101040108050209), U64_C (0x4f4f214f426e9e0d), + U64_C (0x3636d836adee6c9b), U64_C (0xa6a6a2a6590451ff), + U64_C (0xd2d26fd2debdb90c), U64_C (0xf5f5f3f5fb06f70e), + U64_C (0x7979f979ef80f296), U64_C (0x6f6fa16f5fcede30), + U64_C (0x91917e91fcef3f6d), U64_C (0x52525552aa07a4f8), + U64_C (0x60609d6027fdc047), U64_C (0xbcbccabc89766535), + U64_C (0x9b9b569baccd2b37), U64_C (0x8e8e028e048c018a), + U64_C (0xa3a3b6a371155bd2), U64_C (0x0c0c300c603c186c), + U64_C (0x7b7bf17bff8af684), U64_C (0x3535d435b5e16a80), + U64_C (0x1d1d741de8693af5), U64_C (0xe0e0a7e05347ddb3), + U64_C (0xd7d77bd7f6acb321), U64_C (0xc2c22fc25eed999c), + U64_C (0x2e2eb82e6d965c43), U64_C (0x4b4b314b627a9629), + U64_C (0xfefedffea321e15d), U64_C (0x575741578216aed5), + U64_C (0x15155415a8412abd), U64_C (0x7777c1779fb6eee8), + U64_C (0x3737dc37a5eb6e92), U64_C (0xe5e5b3e57b56d79e), + U64_C (0x9f9f469f8cd92313), U64_C (0xf0f0e7f0d317fd23), + U64_C (0x4a4a354a6a7f9420), U64_C (0xdada4fda9e95a944), + U64_C (0x58587d58fa25b0a2), U64_C (0xc9c903c906ca8fcf), + U64_C (0x2929a429558d527c), U64_C (0x0a0a280a5022145a), + U64_C (0xb1b1feb1e14f7f50), U64_C (0xa0a0baa0691a5dc9), + U64_C (0x6b6bb16b7fdad614), U64_C (0x85852e855cab17d9), + U64_C (0xbdbdcebd8173673c), U64_C (0x5d5d695dd234ba8f), + U64_C (0x1010401080502090), U64_C (0xf4f4f7f4f303f507), + U64_C (0xcbcb0bcb16c08bdd), U64_C (0x3e3ef83eedc67cd3), + U64_C (0x0505140528110a2d), U64_C (0x676781671fe6ce78), + U64_C (0xe4e4b7e47353d597), U64_C (0x27279c2725bb4e02), + U64_C (0x4141194132588273), U64_C (0x8b8b168b2c9d0ba7), + U64_C (0xa7a7a6a7510153f6), U64_C (0x7d7de97dcf94fab2), + U64_C (0x95956e95dcfb3749), U64_C (0xd8d847d88e9fad56), + U64_C (0xfbfbcbfb8b30eb70), U64_C (0xeeee9fee2371c1cd), + U64_C (0x7c7ced7cc791f8bb), U64_C (0x6666856617e3cc71), + U64_C (0xdddd53dda68ea77b), U64_C (0x17175c17b84b2eaf), + U64_C (0x4747014702468e45), U64_C (0x9e9e429e84dc211a), + U64_C (0xcaca0fca1ec589d4), U64_C (0x2d2db42d75995a58), + U64_C (0xbfbfc6bf9179632e), U64_C (0x07071c07381b0e3f), + U64_C (0xadad8ead012347ac), U64_C (0x5a5a755aea2fb4b0), + U64_C (0x838336836cb51bef), U64_C (0x3333cc3385ff66b6), + U64_C (0x636391633ff2c65c), U64_C (0x02020802100a0412), + U64_C (0xaaaa92aa39384993), U64_C (0x7171d971afa8e2de), + U64_C (0xc8c807c80ecf8dc6), U64_C (0x19196419c87d32d1), + U64_C (0x494939497270923b), U64_C (0xd9d943d9869aaf5f), + U64_C (0xf2f2eff2c31df931), U64_C (0xe3e3abe34b48dba8), + U64_C (0x5b5b715be22ab6b9), U64_C (0x88881a8834920dbc), + U64_C (0x9a9a529aa4c8293e), U64_C (0x262698262dbe4c0b), + U64_C (0x3232c8328dfa64bf), U64_C (0xb0b0fab0e94a7d59), + U64_C (0xe9e983e91b6acff2), U64_C (0x0f0f3c0f78331e77), + U64_C (0xd5d573d5e6a6b733), U64_C (0x80803a8074ba1df4), + U64_C (0xbebec2be997c6127), U64_C (0xcdcd13cd26de87eb), + U64_C (0x3434d034bde46889), U64_C (0x48483d487a759032), + U64_C (0xffffdbffab24e354), U64_C (0x7a7af57af78ff48d), + U64_C (0x90907a90f4ea3d64), U64_C (0x5f5f615fc23ebe9d), + U64_C (0x202080201da0403d), U64_C (0x6868bd6867d5d00f), + U64_C (0x1a1a681ad07234ca), U64_C (0xaeae82ae192c41b7), + U64_C (0xb4b4eab4c95e757d), U64_C (0x54544d549a19a8ce), + U64_C (0x93937693ece53b7f), U64_C (0x222288220daa442f), + U64_C (0x64648d6407e9c863), U64_C (0xf1f1e3f1db12ff2a), + U64_C (0x7373d173bfa2e6cc), U64_C (0x12124812905a2482), + U64_C (0x40401d403a5d807a), U64_C (0x0808200840281048), + U64_C (0xc3c32bc356e89b95), U64_C (0xecec97ec337bc5df), + U64_C (0xdbdb4bdb9690ab4d), U64_C (0xa1a1bea1611f5fc0), + U64_C (0x8d8d0e8d1c830791), U64_C (0x3d3df43df5c97ac8), + U64_C (0x97976697ccf1335b), U64_C (0x0000000000000000), + U64_C (0xcfcf1bcf36d483f9), U64_C (0x2b2bac2b4587566e), + U64_C (0x7676c57697b3ece1), U64_C (0x8282328264b019e6), + U64_C (0xd6d67fd6fea9b128), U64_C (0x1b1b6c1bd87736c3), + U64_C (0xb5b5eeb5c15b7774), U64_C (0xafaf86af112943be), + U64_C (0x6a6ab56a77dfd41d), U64_C (0x50505d50ba0da0ea), + U64_C (0x45450945124c8a57), U64_C (0xf3f3ebf3cb18fb38), + U64_C (0x3030c0309df060ad), U64_C (0xefef9bef2b74c3c4), + U64_C (0x3f3ffc3fe5c37eda), U64_C (0x55554955921caac7), + U64_C (0xa2a2b2a2791059db), U64_C (0xeaea8fea0365c9e9), + U64_C (0x656589650fecca6a), U64_C (0xbabad2bab9686903), + U64_C (0x2f2fbc2f65935e4a), U64_C (0xc0c027c04ee79d8e), + U64_C (0xdede5fdebe81a160), U64_C (0x1c1c701ce06c38fc), + U64_C (0xfdfdd3fdbb2ee746), U64_C (0x4d4d294d52649a1f), + U64_C (0x92927292e4e03976), U64_C (0x7575c9758fbceafa), + U64_C (0x06061806301e0c36), U64_C (0x8a8a128a249809ae), + U64_C (0xb2b2f2b2f940794b), U64_C (0xe6e6bfe66359d185), + U64_C (0x0e0e380e70361c7e), U64_C (0x1f1f7c1ff8633ee7), + U64_C (0x6262956237f7c455), U64_C (0xd4d477d4eea3b53a), + U64_C (0xa8a89aa829324d81), U64_C (0x96966296c4f43152), + U64_C (0xf9f9c3f99b3aef62), U64_C (0xc5c533c566f697a3), + U64_C (0x2525942535b14a10), U64_C (0x59597959f220b2ab), + U64_C (0x84842a8454ae15d0), U64_C (0x7272d572b7a7e4c5), + U64_C (0x3939e439d5dd72ec), U64_C (0x4c4c2d4c5a619816), + U64_C (0x5e5e655eca3bbc94), U64_C (0x7878fd78e785f09f), + U64_C (0x3838e038ddd870e5), U64_C (0x8c8c0a8c14860598), + U64_C (0xd1d163d1c6b2bf17), U64_C (0xa5a5aea5410b57e4), + U64_C (0xe2e2afe2434dd9a1), U64_C (0x616199612ff8c24e), + U64_C (0xb3b3f6b3f1457b42), U64_C (0x2121842115a54234), + U64_C (0x9c9c4a9c94d62508), U64_C (0x1e1e781ef0663cee), + U64_C (0x4343114322528661), U64_C (0xc7c73bc776fc93b1), + U64_C (0xfcfcd7fcb32be54f), U64_C (0x0404100420140824), + U64_C (0x51515951b208a2e3), U64_C (0x99995e99bcc72f25), + U64_C (0x6d6da96d4fc4da22), U64_C (0x0d0d340d68391a65), + U64_C (0xfafacffa8335e979), U64_C (0xdfdf5bdfb684a369), + U64_C (0x7e7ee57ed79bfca9), U64_C (0x242490243db44819), + U64_C (0x3b3bec3bc5d776fe), U64_C (0xabab96ab313d4b9a), + U64_C (0xcece1fce3ed181f0), U64_C (0x1111441188552299), + U64_C (0x8f8f068f0c890383), U64_C (0x4e4e254e4a6b9c04), + U64_C (0xb7b7e6b7d1517366), U64_C (0xebeb8beb0b60cbe0), + U64_C (0x3c3cf03cfdcc78c1), U64_C (0x81813e817cbf1ffd), + U64_C (0x94946a94d4fe3540), U64_C (0xf7f7fbf7eb0cf31c), + U64_C (0xb9b9deb9a1676f18), U64_C (0x13134c13985f268b), + U64_C (0x2c2cb02c7d9c5851), U64_C (0xd3d36bd3d6b8bb05), + U64_C (0xe7e7bbe76b5cd38c), U64_C (0x6e6ea56e57cbdc39), + U64_C (0xc4c437c46ef395aa), U64_C (0x03030c03180f061b), + U64_C (0x565645568a13acdc), U64_C (0x44440d441a49885e), + U64_C (0x7f7fe17fdf9efea0), U64_C (0xa9a99ea921374f88), + U64_C (0x2a2aa82a4d825467), U64_C (0xbbbbd6bbb16d6b0a), + U64_C (0xc1c123c146e29f87), U64_C (0x53535153a202a6f1), + U64_C (0xdcdc57dcae8ba572), U64_C (0x0b0b2c0b58271653), + U64_C (0x9d9d4e9d9cd32701), U64_C (0x6c6cad6c47c1d82b), + U64_C (0x3131c43195f562a4), U64_C (0x7474cd7487b9e8f3), + U64_C (0xf6f6fff6e309f115), U64_C (0x464605460a438c4c), + U64_C (0xacac8aac092645a5), U64_C (0x89891e893c970fb5), + U64_C (0x14145014a04428b4), U64_C (0xe1e1a3e15b42dfba), + U64_C (0x16165816b04e2ca6), U64_C (0x3a3ae83acdd274f7), + U64_C (0x6969b9696fd0d206), U64_C (0x09092409482d1241), + U64_C (0x7070dd70a7ade0d7), U64_C (0xb6b6e2b6d954716f), + U64_C (0xd0d067d0ceb7bd1e), U64_C (0xeded93ed3b7ec7d6), + U64_C (0xcccc17cc2edb85e2), U64_C (0x424215422a578468), + U64_C (0x98985a98b4c22d2c), U64_C (0xa4a4aaa4490e55ed), + U64_C (0x2828a0285d885075), U64_C (0x5c5c6d5cda31b886), + U64_C (0xf8f8c7f8933fed6b), U64_C (0x8686228644a411c2), + }; + +static const u64 C1[256] = + { + U64_C (0xd818186018c07830), U64_C (0x2623238c2305af46), + U64_C (0xb8c6c63fc67ef991), U64_C (0xfbe8e887e8136fcd), + U64_C (0xcb878726874ca113), U64_C (0x11b8b8dab8a9626d), + U64_C (0x0901010401080502), U64_C (0x0d4f4f214f426e9e), + U64_C (0x9b3636d836adee6c), U64_C (0xffa6a6a2a6590451), + U64_C (0x0cd2d26fd2debdb9), U64_C (0x0ef5f5f3f5fb06f7), + U64_C (0x967979f979ef80f2), U64_C (0x306f6fa16f5fcede), + U64_C (0x6d91917e91fcef3f), U64_C (0xf852525552aa07a4), + U64_C (0x4760609d6027fdc0), U64_C (0x35bcbccabc897665), + U64_C (0x379b9b569baccd2b), U64_C (0x8a8e8e028e048c01), + U64_C (0xd2a3a3b6a371155b), U64_C (0x6c0c0c300c603c18), + U64_C (0x847b7bf17bff8af6), U64_C (0x803535d435b5e16a), + U64_C (0xf51d1d741de8693a), U64_C (0xb3e0e0a7e05347dd), + U64_C (0x21d7d77bd7f6acb3), U64_C (0x9cc2c22fc25eed99), + U64_C (0x432e2eb82e6d965c), U64_C (0x294b4b314b627a96), + U64_C (0x5dfefedffea321e1), U64_C (0xd5575741578216ae), + U64_C (0xbd15155415a8412a), U64_C (0xe87777c1779fb6ee), + U64_C (0x923737dc37a5eb6e), U64_C (0x9ee5e5b3e57b56d7), + U64_C (0x139f9f469f8cd923), U64_C (0x23f0f0e7f0d317fd), + U64_C (0x204a4a354a6a7f94), U64_C (0x44dada4fda9e95a9), + U64_C (0xa258587d58fa25b0), U64_C (0xcfc9c903c906ca8f), + U64_C (0x7c2929a429558d52), U64_C (0x5a0a0a280a502214), + U64_C (0x50b1b1feb1e14f7f), U64_C (0xc9a0a0baa0691a5d), + U64_C (0x146b6bb16b7fdad6), U64_C (0xd985852e855cab17), + U64_C (0x3cbdbdcebd817367), U64_C (0x8f5d5d695dd234ba), + U64_C (0x9010104010805020), U64_C (0x07f4f4f7f4f303f5), + U64_C (0xddcbcb0bcb16c08b), U64_C (0xd33e3ef83eedc67c), + U64_C (0x2d0505140528110a), U64_C (0x78676781671fe6ce), + U64_C (0x97e4e4b7e47353d5), U64_C (0x0227279c2725bb4e), + U64_C (0x7341411941325882), U64_C (0xa78b8b168b2c9d0b), + U64_C (0xf6a7a7a6a7510153), U64_C (0xb27d7de97dcf94fa), + U64_C (0x4995956e95dcfb37), U64_C (0x56d8d847d88e9fad), + U64_C (0x70fbfbcbfb8b30eb), U64_C (0xcdeeee9fee2371c1), + U64_C (0xbb7c7ced7cc791f8), U64_C (0x716666856617e3cc), + U64_C (0x7bdddd53dda68ea7), U64_C (0xaf17175c17b84b2e), + U64_C (0x454747014702468e), U64_C (0x1a9e9e429e84dc21), + U64_C (0xd4caca0fca1ec589), U64_C (0x582d2db42d75995a), + U64_C (0x2ebfbfc6bf917963), U64_C (0x3f07071c07381b0e), + U64_C (0xacadad8ead012347), U64_C (0xb05a5a755aea2fb4), + U64_C (0xef838336836cb51b), U64_C (0xb63333cc3385ff66), + U64_C (0x5c636391633ff2c6), U64_C (0x1202020802100a04), + U64_C (0x93aaaa92aa393849), U64_C (0xde7171d971afa8e2), + U64_C (0xc6c8c807c80ecf8d), U64_C (0xd119196419c87d32), + U64_C (0x3b49493949727092), U64_C (0x5fd9d943d9869aaf), + U64_C (0x31f2f2eff2c31df9), U64_C (0xa8e3e3abe34b48db), + U64_C (0xb95b5b715be22ab6), U64_C (0xbc88881a8834920d), + U64_C (0x3e9a9a529aa4c829), U64_C (0x0b262698262dbe4c), + U64_C (0xbf3232c8328dfa64), U64_C (0x59b0b0fab0e94a7d), + U64_C (0xf2e9e983e91b6acf), U64_C (0x770f0f3c0f78331e), + U64_C (0x33d5d573d5e6a6b7), U64_C (0xf480803a8074ba1d), + U64_C (0x27bebec2be997c61), U64_C (0xebcdcd13cd26de87), + U64_C (0x893434d034bde468), U64_C (0x3248483d487a7590), + U64_C (0x54ffffdbffab24e3), U64_C (0x8d7a7af57af78ff4), + U64_C (0x6490907a90f4ea3d), U64_C (0x9d5f5f615fc23ebe), + U64_C (0x3d202080201da040), U64_C (0x0f6868bd6867d5d0), + U64_C (0xca1a1a681ad07234), U64_C (0xb7aeae82ae192c41), + U64_C (0x7db4b4eab4c95e75), U64_C (0xce54544d549a19a8), + U64_C (0x7f93937693ece53b), U64_C (0x2f222288220daa44), + U64_C (0x6364648d6407e9c8), U64_C (0x2af1f1e3f1db12ff), + U64_C (0xcc7373d173bfa2e6), U64_C (0x8212124812905a24), + U64_C (0x7a40401d403a5d80), U64_C (0x4808082008402810), + U64_C (0x95c3c32bc356e89b), U64_C (0xdfecec97ec337bc5), + U64_C (0x4ddbdb4bdb9690ab), U64_C (0xc0a1a1bea1611f5f), + U64_C (0x918d8d0e8d1c8307), U64_C (0xc83d3df43df5c97a), + U64_C (0x5b97976697ccf133), U64_C (0x0000000000000000), + U64_C (0xf9cfcf1bcf36d483), U64_C (0x6e2b2bac2b458756), + U64_C (0xe17676c57697b3ec), U64_C (0xe68282328264b019), + U64_C (0x28d6d67fd6fea9b1), U64_C (0xc31b1b6c1bd87736), + U64_C (0x74b5b5eeb5c15b77), U64_C (0xbeafaf86af112943), + U64_C (0x1d6a6ab56a77dfd4), U64_C (0xea50505d50ba0da0), + U64_C (0x5745450945124c8a), U64_C (0x38f3f3ebf3cb18fb), + U64_C (0xad3030c0309df060), U64_C (0xc4efef9bef2b74c3), + U64_C (0xda3f3ffc3fe5c37e), U64_C (0xc755554955921caa), + U64_C (0xdba2a2b2a2791059), U64_C (0xe9eaea8fea0365c9), + U64_C (0x6a656589650fecca), U64_C (0x03babad2bab96869), + U64_C (0x4a2f2fbc2f65935e), U64_C (0x8ec0c027c04ee79d), + U64_C (0x60dede5fdebe81a1), U64_C (0xfc1c1c701ce06c38), + U64_C (0x46fdfdd3fdbb2ee7), U64_C (0x1f4d4d294d52649a), + U64_C (0x7692927292e4e039), U64_C (0xfa7575c9758fbcea), + U64_C (0x3606061806301e0c), U64_C (0xae8a8a128a249809), + U64_C (0x4bb2b2f2b2f94079), U64_C (0x85e6e6bfe66359d1), + U64_C (0x7e0e0e380e70361c), U64_C (0xe71f1f7c1ff8633e), + U64_C (0x556262956237f7c4), U64_C (0x3ad4d477d4eea3b5), + U64_C (0x81a8a89aa829324d), U64_C (0x5296966296c4f431), + U64_C (0x62f9f9c3f99b3aef), U64_C (0xa3c5c533c566f697), + U64_C (0x102525942535b14a), U64_C (0xab59597959f220b2), + U64_C (0xd084842a8454ae15), U64_C (0xc57272d572b7a7e4), + U64_C (0xec3939e439d5dd72), U64_C (0x164c4c2d4c5a6198), + U64_C (0x945e5e655eca3bbc), U64_C (0x9f7878fd78e785f0), + U64_C (0xe53838e038ddd870), U64_C (0x988c8c0a8c148605), + U64_C (0x17d1d163d1c6b2bf), U64_C (0xe4a5a5aea5410b57), + U64_C (0xa1e2e2afe2434dd9), U64_C (0x4e616199612ff8c2), + U64_C (0x42b3b3f6b3f1457b), U64_C (0x342121842115a542), + U64_C (0x089c9c4a9c94d625), U64_C (0xee1e1e781ef0663c), + U64_C (0x6143431143225286), U64_C (0xb1c7c73bc776fc93), + U64_C (0x4ffcfcd7fcb32be5), U64_C (0x2404041004201408), + U64_C (0xe351515951b208a2), U64_C (0x2599995e99bcc72f), + U64_C (0x226d6da96d4fc4da), U64_C (0x650d0d340d68391a), + U64_C (0x79fafacffa8335e9), U64_C (0x69dfdf5bdfb684a3), + U64_C (0xa97e7ee57ed79bfc), U64_C (0x19242490243db448), + U64_C (0xfe3b3bec3bc5d776), U64_C (0x9aabab96ab313d4b), + U64_C (0xf0cece1fce3ed181), U64_C (0x9911114411885522), + U64_C (0x838f8f068f0c8903), U64_C (0x044e4e254e4a6b9c), + U64_C (0x66b7b7e6b7d15173), U64_C (0xe0ebeb8beb0b60cb), + U64_C (0xc13c3cf03cfdcc78), U64_C (0xfd81813e817cbf1f), + U64_C (0x4094946a94d4fe35), U64_C (0x1cf7f7fbf7eb0cf3), + U64_C (0x18b9b9deb9a1676f), U64_C (0x8b13134c13985f26), + U64_C (0x512c2cb02c7d9c58), U64_C (0x05d3d36bd3d6b8bb), + U64_C (0x8ce7e7bbe76b5cd3), U64_C (0x396e6ea56e57cbdc), + U64_C (0xaac4c437c46ef395), U64_C (0x1b03030c03180f06), + U64_C (0xdc565645568a13ac), U64_C (0x5e44440d441a4988), + U64_C (0xa07f7fe17fdf9efe), U64_C (0x88a9a99ea921374f), + U64_C (0x672a2aa82a4d8254), U64_C (0x0abbbbd6bbb16d6b), + U64_C (0x87c1c123c146e29f), U64_C (0xf153535153a202a6), + U64_C (0x72dcdc57dcae8ba5), U64_C (0x530b0b2c0b582716), + U64_C (0x019d9d4e9d9cd327), U64_C (0x2b6c6cad6c47c1d8), + U64_C (0xa43131c43195f562), U64_C (0xf37474cd7487b9e8), + U64_C (0x15f6f6fff6e309f1), U64_C (0x4c464605460a438c), + U64_C (0xa5acac8aac092645), U64_C (0xb589891e893c970f), + U64_C (0xb414145014a04428), U64_C (0xbae1e1a3e15b42df), + U64_C (0xa616165816b04e2c), U64_C (0xf73a3ae83acdd274), + U64_C (0x066969b9696fd0d2), U64_C (0x4109092409482d12), + U64_C (0xd77070dd70a7ade0), U64_C (0x6fb6b6e2b6d95471), + U64_C (0x1ed0d067d0ceb7bd), U64_C (0xd6eded93ed3b7ec7), + U64_C (0xe2cccc17cc2edb85), U64_C (0x68424215422a5784), + U64_C (0x2c98985a98b4c22d), U64_C (0xeda4a4aaa4490e55), + U64_C (0x752828a0285d8850), U64_C (0x865c5c6d5cda31b8), + U64_C (0x6bf8f8c7f8933fed), U64_C (0xc28686228644a411), + }; + +static const u64 C2[256] = + { + U64_C (0x30d818186018c078), U64_C (0x462623238c2305af), + U64_C (0x91b8c6c63fc67ef9), U64_C (0xcdfbe8e887e8136f), + U64_C (0x13cb878726874ca1), U64_C (0x6d11b8b8dab8a962), + U64_C (0x0209010104010805), U64_C (0x9e0d4f4f214f426e), + U64_C (0x6c9b3636d836adee), U64_C (0x51ffa6a6a2a65904), + U64_C (0xb90cd2d26fd2debd), U64_C (0xf70ef5f5f3f5fb06), + U64_C (0xf2967979f979ef80), U64_C (0xde306f6fa16f5fce), + U64_C (0x3f6d91917e91fcef), U64_C (0xa4f852525552aa07), + U64_C (0xc04760609d6027fd), U64_C (0x6535bcbccabc8976), + U64_C (0x2b379b9b569baccd), U64_C (0x018a8e8e028e048c), + U64_C (0x5bd2a3a3b6a37115), U64_C (0x186c0c0c300c603c), + U64_C (0xf6847b7bf17bff8a), U64_C (0x6a803535d435b5e1), + U64_C (0x3af51d1d741de869), U64_C (0xddb3e0e0a7e05347), + U64_C (0xb321d7d77bd7f6ac), U64_C (0x999cc2c22fc25eed), + U64_C (0x5c432e2eb82e6d96), U64_C (0x96294b4b314b627a), + U64_C (0xe15dfefedffea321), U64_C (0xaed5575741578216), + U64_C (0x2abd15155415a841), U64_C (0xeee87777c1779fb6), + U64_C (0x6e923737dc37a5eb), U64_C (0xd79ee5e5b3e57b56), + U64_C (0x23139f9f469f8cd9), U64_C (0xfd23f0f0e7f0d317), + U64_C (0x94204a4a354a6a7f), U64_C (0xa944dada4fda9e95), + U64_C (0xb0a258587d58fa25), U64_C (0x8fcfc9c903c906ca), + U64_C (0x527c2929a429558d), U64_C (0x145a0a0a280a5022), + U64_C (0x7f50b1b1feb1e14f), U64_C (0x5dc9a0a0baa0691a), + U64_C (0xd6146b6bb16b7fda), U64_C (0x17d985852e855cab), + U64_C (0x673cbdbdcebd8173), U64_C (0xba8f5d5d695dd234), + U64_C (0x2090101040108050), U64_C (0xf507f4f4f7f4f303), + U64_C (0x8bddcbcb0bcb16c0), U64_C (0x7cd33e3ef83eedc6), + U64_C (0x0a2d050514052811), U64_C (0xce78676781671fe6), + U64_C (0xd597e4e4b7e47353), U64_C (0x4e0227279c2725bb), + U64_C (0x8273414119413258), U64_C (0x0ba78b8b168b2c9d), + U64_C (0x53f6a7a7a6a75101), U64_C (0xfab27d7de97dcf94), + U64_C (0x374995956e95dcfb), U64_C (0xad56d8d847d88e9f), + U64_C (0xeb70fbfbcbfb8b30), U64_C (0xc1cdeeee9fee2371), + U64_C (0xf8bb7c7ced7cc791), U64_C (0xcc716666856617e3), + U64_C (0xa77bdddd53dda68e), U64_C (0x2eaf17175c17b84b), + U64_C (0x8e45474701470246), U64_C (0x211a9e9e429e84dc), + U64_C (0x89d4caca0fca1ec5), U64_C (0x5a582d2db42d7599), + U64_C (0x632ebfbfc6bf9179), U64_C (0x0e3f07071c07381b), + U64_C (0x47acadad8ead0123), U64_C (0xb4b05a5a755aea2f), + U64_C (0x1bef838336836cb5), U64_C (0x66b63333cc3385ff), + U64_C (0xc65c636391633ff2), U64_C (0x041202020802100a), + U64_C (0x4993aaaa92aa3938), U64_C (0xe2de7171d971afa8), + U64_C (0x8dc6c8c807c80ecf), U64_C (0x32d119196419c87d), + U64_C (0x923b494939497270), U64_C (0xaf5fd9d943d9869a), + U64_C (0xf931f2f2eff2c31d), U64_C (0xdba8e3e3abe34b48), + U64_C (0xb6b95b5b715be22a), U64_C (0x0dbc88881a883492), + U64_C (0x293e9a9a529aa4c8), U64_C (0x4c0b262698262dbe), + U64_C (0x64bf3232c8328dfa), U64_C (0x7d59b0b0fab0e94a), + U64_C (0xcff2e9e983e91b6a), U64_C (0x1e770f0f3c0f7833), + U64_C (0xb733d5d573d5e6a6), U64_C (0x1df480803a8074ba), + U64_C (0x6127bebec2be997c), U64_C (0x87ebcdcd13cd26de), + U64_C (0x68893434d034bde4), U64_C (0x903248483d487a75), + U64_C (0xe354ffffdbffab24), U64_C (0xf48d7a7af57af78f), + U64_C (0x3d6490907a90f4ea), U64_C (0xbe9d5f5f615fc23e), + U64_C (0x403d202080201da0), U64_C (0xd00f6868bd6867d5), + U64_C (0x34ca1a1a681ad072), U64_C (0x41b7aeae82ae192c), + U64_C (0x757db4b4eab4c95e), U64_C (0xa8ce54544d549a19), + U64_C (0x3b7f93937693ece5), U64_C (0x442f222288220daa), + U64_C (0xc86364648d6407e9), U64_C (0xff2af1f1e3f1db12), + U64_C (0xe6cc7373d173bfa2), U64_C (0x248212124812905a), + U64_C (0x807a40401d403a5d), U64_C (0x1048080820084028), + U64_C (0x9b95c3c32bc356e8), U64_C (0xc5dfecec97ec337b), + U64_C (0xab4ddbdb4bdb9690), U64_C (0x5fc0a1a1bea1611f), + U64_C (0x07918d8d0e8d1c83), U64_C (0x7ac83d3df43df5c9), + U64_C (0x335b97976697ccf1), U64_C (0x0000000000000000), + U64_C (0x83f9cfcf1bcf36d4), U64_C (0x566e2b2bac2b4587), + U64_C (0xece17676c57697b3), U64_C (0x19e68282328264b0), + U64_C (0xb128d6d67fd6fea9), U64_C (0x36c31b1b6c1bd877), + U64_C (0x7774b5b5eeb5c15b), U64_C (0x43beafaf86af1129), + U64_C (0xd41d6a6ab56a77df), U64_C (0xa0ea50505d50ba0d), + U64_C (0x8a5745450945124c), U64_C (0xfb38f3f3ebf3cb18), + U64_C (0x60ad3030c0309df0), U64_C (0xc3c4efef9bef2b74), + U64_C (0x7eda3f3ffc3fe5c3), U64_C (0xaac755554955921c), + U64_C (0x59dba2a2b2a27910), U64_C (0xc9e9eaea8fea0365), + U64_C (0xca6a656589650fec), U64_C (0x6903babad2bab968), + U64_C (0x5e4a2f2fbc2f6593), U64_C (0x9d8ec0c027c04ee7), + U64_C (0xa160dede5fdebe81), U64_C (0x38fc1c1c701ce06c), + U64_C (0xe746fdfdd3fdbb2e), U64_C (0x9a1f4d4d294d5264), + U64_C (0x397692927292e4e0), U64_C (0xeafa7575c9758fbc), + U64_C (0x0c3606061806301e), U64_C (0x09ae8a8a128a2498), + U64_C (0x794bb2b2f2b2f940), U64_C (0xd185e6e6bfe66359), + U64_C (0x1c7e0e0e380e7036), U64_C (0x3ee71f1f7c1ff863), + U64_C (0xc4556262956237f7), U64_C (0xb53ad4d477d4eea3), + U64_C (0x4d81a8a89aa82932), U64_C (0x315296966296c4f4), + U64_C (0xef62f9f9c3f99b3a), U64_C (0x97a3c5c533c566f6), + U64_C (0x4a102525942535b1), U64_C (0xb2ab59597959f220), + U64_C (0x15d084842a8454ae), U64_C (0xe4c57272d572b7a7), + U64_C (0x72ec3939e439d5dd), U64_C (0x98164c4c2d4c5a61), + U64_C (0xbc945e5e655eca3b), U64_C (0xf09f7878fd78e785), + U64_C (0x70e53838e038ddd8), U64_C (0x05988c8c0a8c1486), + U64_C (0xbf17d1d163d1c6b2), U64_C (0x57e4a5a5aea5410b), + U64_C (0xd9a1e2e2afe2434d), U64_C (0xc24e616199612ff8), + U64_C (0x7b42b3b3f6b3f145), U64_C (0x42342121842115a5), + U64_C (0x25089c9c4a9c94d6), U64_C (0x3cee1e1e781ef066), + U64_C (0x8661434311432252), U64_C (0x93b1c7c73bc776fc), + U64_C (0xe54ffcfcd7fcb32b), U64_C (0x0824040410042014), + U64_C (0xa2e351515951b208), U64_C (0x2f2599995e99bcc7), + U64_C (0xda226d6da96d4fc4), U64_C (0x1a650d0d340d6839), + U64_C (0xe979fafacffa8335), U64_C (0xa369dfdf5bdfb684), + U64_C (0xfca97e7ee57ed79b), U64_C (0x4819242490243db4), + U64_C (0x76fe3b3bec3bc5d7), U64_C (0x4b9aabab96ab313d), + U64_C (0x81f0cece1fce3ed1), U64_C (0x2299111144118855), + U64_C (0x03838f8f068f0c89), U64_C (0x9c044e4e254e4a6b), + U64_C (0x7366b7b7e6b7d151), U64_C (0xcbe0ebeb8beb0b60), + U64_C (0x78c13c3cf03cfdcc), U64_C (0x1ffd81813e817cbf), + U64_C (0x354094946a94d4fe), U64_C (0xf31cf7f7fbf7eb0c), + U64_C (0x6f18b9b9deb9a167), U64_C (0x268b13134c13985f), + U64_C (0x58512c2cb02c7d9c), U64_C (0xbb05d3d36bd3d6b8), + U64_C (0xd38ce7e7bbe76b5c), U64_C (0xdc396e6ea56e57cb), + U64_C (0x95aac4c437c46ef3), U64_C (0x061b03030c03180f), + U64_C (0xacdc565645568a13), U64_C (0x885e44440d441a49), + U64_C (0xfea07f7fe17fdf9e), U64_C (0x4f88a9a99ea92137), + U64_C (0x54672a2aa82a4d82), U64_C (0x6b0abbbbd6bbb16d), + U64_C (0x9f87c1c123c146e2), U64_C (0xa6f153535153a202), + U64_C (0xa572dcdc57dcae8b), U64_C (0x16530b0b2c0b5827), + U64_C (0x27019d9d4e9d9cd3), U64_C (0xd82b6c6cad6c47c1), + U64_C (0x62a43131c43195f5), U64_C (0xe8f37474cd7487b9), + U64_C (0xf115f6f6fff6e309), U64_C (0x8c4c464605460a43), + U64_C (0x45a5acac8aac0926), U64_C (0x0fb589891e893c97), + U64_C (0x28b414145014a044), U64_C (0xdfbae1e1a3e15b42), + U64_C (0x2ca616165816b04e), U64_C (0x74f73a3ae83acdd2), + U64_C (0xd2066969b9696fd0), U64_C (0x124109092409482d), + U64_C (0xe0d77070dd70a7ad), U64_C (0x716fb6b6e2b6d954), + U64_C (0xbd1ed0d067d0ceb7), U64_C (0xc7d6eded93ed3b7e), + U64_C (0x85e2cccc17cc2edb), U64_C (0x8468424215422a57), + U64_C (0x2d2c98985a98b4c2), U64_C (0x55eda4a4aaa4490e), + U64_C (0x50752828a0285d88), U64_C (0xb8865c5c6d5cda31), + U64_C (0xed6bf8f8c7f8933f), U64_C (0x11c28686228644a4), + }; + +static const u64 C3[256] = + { + U64_C (0x7830d818186018c0), U64_C (0xaf462623238c2305), + U64_C (0xf991b8c6c63fc67e), U64_C (0x6fcdfbe8e887e813), + U64_C (0xa113cb878726874c), U64_C (0x626d11b8b8dab8a9), + U64_C (0x0502090101040108), U64_C (0x6e9e0d4f4f214f42), + U64_C (0xee6c9b3636d836ad), U64_C (0x0451ffa6a6a2a659), + U64_C (0xbdb90cd2d26fd2de), U64_C (0x06f70ef5f5f3f5fb), + U64_C (0x80f2967979f979ef), U64_C (0xcede306f6fa16f5f), + U64_C (0xef3f6d91917e91fc), U64_C (0x07a4f852525552aa), + U64_C (0xfdc04760609d6027), U64_C (0x766535bcbccabc89), + U64_C (0xcd2b379b9b569bac), U64_C (0x8c018a8e8e028e04), + U64_C (0x155bd2a3a3b6a371), U64_C (0x3c186c0c0c300c60), + U64_C (0x8af6847b7bf17bff), U64_C (0xe16a803535d435b5), + U64_C (0x693af51d1d741de8), U64_C (0x47ddb3e0e0a7e053), + U64_C (0xacb321d7d77bd7f6), U64_C (0xed999cc2c22fc25e), + U64_C (0x965c432e2eb82e6d), U64_C (0x7a96294b4b314b62), + U64_C (0x21e15dfefedffea3), U64_C (0x16aed55757415782), + U64_C (0x412abd15155415a8), U64_C (0xb6eee87777c1779f), + U64_C (0xeb6e923737dc37a5), U64_C (0x56d79ee5e5b3e57b), + U64_C (0xd923139f9f469f8c), U64_C (0x17fd23f0f0e7f0d3), + U64_C (0x7f94204a4a354a6a), U64_C (0x95a944dada4fda9e), + U64_C (0x25b0a258587d58fa), U64_C (0xca8fcfc9c903c906), + U64_C (0x8d527c2929a42955), U64_C (0x22145a0a0a280a50), + U64_C (0x4f7f50b1b1feb1e1), U64_C (0x1a5dc9a0a0baa069), + U64_C (0xdad6146b6bb16b7f), U64_C (0xab17d985852e855c), + U64_C (0x73673cbdbdcebd81), U64_C (0x34ba8f5d5d695dd2), + U64_C (0x5020901010401080), U64_C (0x03f507f4f4f7f4f3), + U64_C (0xc08bddcbcb0bcb16), U64_C (0xc67cd33e3ef83eed), + U64_C (0x110a2d0505140528), U64_C (0xe6ce78676781671f), + U64_C (0x53d597e4e4b7e473), U64_C (0xbb4e0227279c2725), + U64_C (0x5882734141194132), U64_C (0x9d0ba78b8b168b2c), + U64_C (0x0153f6a7a7a6a751), U64_C (0x94fab27d7de97dcf), + U64_C (0xfb374995956e95dc), U64_C (0x9fad56d8d847d88e), + U64_C (0x30eb70fbfbcbfb8b), U64_C (0x71c1cdeeee9fee23), + U64_C (0x91f8bb7c7ced7cc7), U64_C (0xe3cc716666856617), + U64_C (0x8ea77bdddd53dda6), U64_C (0x4b2eaf17175c17b8), + U64_C (0x468e454747014702), U64_C (0xdc211a9e9e429e84), + U64_C (0xc589d4caca0fca1e), U64_C (0x995a582d2db42d75), + U64_C (0x79632ebfbfc6bf91), U64_C (0x1b0e3f07071c0738), + U64_C (0x2347acadad8ead01), U64_C (0x2fb4b05a5a755aea), + U64_C (0xb51bef838336836c), U64_C (0xff66b63333cc3385), + U64_C (0xf2c65c636391633f), U64_C (0x0a04120202080210), + U64_C (0x384993aaaa92aa39), U64_C (0xa8e2de7171d971af), + U64_C (0xcf8dc6c8c807c80e), U64_C (0x7d32d119196419c8), + U64_C (0x70923b4949394972), U64_C (0x9aaf5fd9d943d986), + U64_C (0x1df931f2f2eff2c3), U64_C (0x48dba8e3e3abe34b), + U64_C (0x2ab6b95b5b715be2), U64_C (0x920dbc88881a8834), + U64_C (0xc8293e9a9a529aa4), U64_C (0xbe4c0b262698262d), + U64_C (0xfa64bf3232c8328d), U64_C (0x4a7d59b0b0fab0e9), + U64_C (0x6acff2e9e983e91b), U64_C (0x331e770f0f3c0f78), + U64_C (0xa6b733d5d573d5e6), U64_C (0xba1df480803a8074), + U64_C (0x7c6127bebec2be99), U64_C (0xde87ebcdcd13cd26), + U64_C (0xe468893434d034bd), U64_C (0x75903248483d487a), + U64_C (0x24e354ffffdbffab), U64_C (0x8ff48d7a7af57af7), + U64_C (0xea3d6490907a90f4), U64_C (0x3ebe9d5f5f615fc2), + U64_C (0xa0403d202080201d), U64_C (0xd5d00f6868bd6867), + U64_C (0x7234ca1a1a681ad0), U64_C (0x2c41b7aeae82ae19), + U64_C (0x5e757db4b4eab4c9), U64_C (0x19a8ce54544d549a), + U64_C (0xe53b7f93937693ec), U64_C (0xaa442f222288220d), + U64_C (0xe9c86364648d6407), U64_C (0x12ff2af1f1e3f1db), + U64_C (0xa2e6cc7373d173bf), U64_C (0x5a24821212481290), + U64_C (0x5d807a40401d403a), U64_C (0x2810480808200840), + U64_C (0xe89b95c3c32bc356), U64_C (0x7bc5dfecec97ec33), + U64_C (0x90ab4ddbdb4bdb96), U64_C (0x1f5fc0a1a1bea161), + U64_C (0x8307918d8d0e8d1c), U64_C (0xc97ac83d3df43df5), + U64_C (0xf1335b97976697cc), U64_C (0x0000000000000000), + U64_C (0xd483f9cfcf1bcf36), U64_C (0x87566e2b2bac2b45), + U64_C (0xb3ece17676c57697), U64_C (0xb019e68282328264), + U64_C (0xa9b128d6d67fd6fe), U64_C (0x7736c31b1b6c1bd8), + U64_C (0x5b7774b5b5eeb5c1), U64_C (0x2943beafaf86af11), + U64_C (0xdfd41d6a6ab56a77), U64_C (0x0da0ea50505d50ba), + U64_C (0x4c8a574545094512), U64_C (0x18fb38f3f3ebf3cb), + U64_C (0xf060ad3030c0309d), U64_C (0x74c3c4efef9bef2b), + U64_C (0xc37eda3f3ffc3fe5), U64_C (0x1caac75555495592), + U64_C (0x1059dba2a2b2a279), U64_C (0x65c9e9eaea8fea03), + U64_C (0xecca6a656589650f), U64_C (0x686903babad2bab9), + U64_C (0x935e4a2f2fbc2f65), U64_C (0xe79d8ec0c027c04e), + U64_C (0x81a160dede5fdebe), U64_C (0x6c38fc1c1c701ce0), + U64_C (0x2ee746fdfdd3fdbb), U64_C (0x649a1f4d4d294d52), + U64_C (0xe0397692927292e4), U64_C (0xbceafa7575c9758f), + U64_C (0x1e0c360606180630), U64_C (0x9809ae8a8a128a24), + U64_C (0x40794bb2b2f2b2f9), U64_C (0x59d185e6e6bfe663), + U64_C (0x361c7e0e0e380e70), U64_C (0x633ee71f1f7c1ff8), + U64_C (0xf7c4556262956237), U64_C (0xa3b53ad4d477d4ee), + U64_C (0x324d81a8a89aa829), U64_C (0xf4315296966296c4), + U64_C (0x3aef62f9f9c3f99b), U64_C (0xf697a3c5c533c566), + U64_C (0xb14a102525942535), U64_C (0x20b2ab59597959f2), + U64_C (0xae15d084842a8454), U64_C (0xa7e4c57272d572b7), + U64_C (0xdd72ec3939e439d5), U64_C (0x6198164c4c2d4c5a), + U64_C (0x3bbc945e5e655eca), U64_C (0x85f09f7878fd78e7), + U64_C (0xd870e53838e038dd), U64_C (0x8605988c8c0a8c14), + U64_C (0xb2bf17d1d163d1c6), U64_C (0x0b57e4a5a5aea541), + U64_C (0x4dd9a1e2e2afe243), U64_C (0xf8c24e616199612f), + U64_C (0x457b42b3b3f6b3f1), U64_C (0xa542342121842115), + U64_C (0xd625089c9c4a9c94), U64_C (0x663cee1e1e781ef0), + U64_C (0x5286614343114322), U64_C (0xfc93b1c7c73bc776), + U64_C (0x2be54ffcfcd7fcb3), U64_C (0x1408240404100420), + U64_C (0x08a2e351515951b2), U64_C (0xc72f2599995e99bc), + U64_C (0xc4da226d6da96d4f), U64_C (0x391a650d0d340d68), + U64_C (0x35e979fafacffa83), U64_C (0x84a369dfdf5bdfb6), + U64_C (0x9bfca97e7ee57ed7), U64_C (0xb44819242490243d), + U64_C (0xd776fe3b3bec3bc5), U64_C (0x3d4b9aabab96ab31), + U64_C (0xd181f0cece1fce3e), U64_C (0x5522991111441188), + U64_C (0x8903838f8f068f0c), U64_C (0x6b9c044e4e254e4a), + U64_C (0x517366b7b7e6b7d1), U64_C (0x60cbe0ebeb8beb0b), + U64_C (0xcc78c13c3cf03cfd), U64_C (0xbf1ffd81813e817c), + U64_C (0xfe354094946a94d4), U64_C (0x0cf31cf7f7fbf7eb), + U64_C (0x676f18b9b9deb9a1), U64_C (0x5f268b13134c1398), + U64_C (0x9c58512c2cb02c7d), U64_C (0xb8bb05d3d36bd3d6), + U64_C (0x5cd38ce7e7bbe76b), U64_C (0xcbdc396e6ea56e57), + U64_C (0xf395aac4c437c46e), U64_C (0x0f061b03030c0318), + U64_C (0x13acdc565645568a), U64_C (0x49885e44440d441a), + U64_C (0x9efea07f7fe17fdf), U64_C (0x374f88a9a99ea921), + U64_C (0x8254672a2aa82a4d), U64_C (0x6d6b0abbbbd6bbb1), + U64_C (0xe29f87c1c123c146), U64_C (0x02a6f153535153a2), + U64_C (0x8ba572dcdc57dcae), U64_C (0x2716530b0b2c0b58), + U64_C (0xd327019d9d4e9d9c), U64_C (0xc1d82b6c6cad6c47), + U64_C (0xf562a43131c43195), U64_C (0xb9e8f37474cd7487), + U64_C (0x09f115f6f6fff6e3), U64_C (0x438c4c464605460a), + U64_C (0x2645a5acac8aac09), U64_C (0x970fb589891e893c), + U64_C (0x4428b414145014a0), U64_C (0x42dfbae1e1a3e15b), + U64_C (0x4e2ca616165816b0), U64_C (0xd274f73a3ae83acd), + U64_C (0xd0d2066969b9696f), U64_C (0x2d12410909240948), + U64_C (0xade0d77070dd70a7), U64_C (0x54716fb6b6e2b6d9), + U64_C (0xb7bd1ed0d067d0ce), U64_C (0x7ec7d6eded93ed3b), + U64_C (0xdb85e2cccc17cc2e), U64_C (0x578468424215422a), + U64_C (0xc22d2c98985a98b4), U64_C (0x0e55eda4a4aaa449), + U64_C (0x8850752828a0285d), U64_C (0x31b8865c5c6d5cda), + U64_C (0x3fed6bf8f8c7f893), U64_C (0xa411c28686228644), + }; + +static const u64 C4[256] = + { + U64_C (0xc07830d818186018), U64_C (0x05af462623238c23), + U64_C (0x7ef991b8c6c63fc6), U64_C (0x136fcdfbe8e887e8), + U64_C (0x4ca113cb87872687), U64_C (0xa9626d11b8b8dab8), + U64_C (0x0805020901010401), U64_C (0x426e9e0d4f4f214f), + U64_C (0xadee6c9b3636d836), U64_C (0x590451ffa6a6a2a6), + U64_C (0xdebdb90cd2d26fd2), U64_C (0xfb06f70ef5f5f3f5), + U64_C (0xef80f2967979f979), U64_C (0x5fcede306f6fa16f), + U64_C (0xfcef3f6d91917e91), U64_C (0xaa07a4f852525552), + U64_C (0x27fdc04760609d60), U64_C (0x89766535bcbccabc), + U64_C (0xaccd2b379b9b569b), U64_C (0x048c018a8e8e028e), + U64_C (0x71155bd2a3a3b6a3), U64_C (0x603c186c0c0c300c), + U64_C (0xff8af6847b7bf17b), U64_C (0xb5e16a803535d435), + U64_C (0xe8693af51d1d741d), U64_C (0x5347ddb3e0e0a7e0), + U64_C (0xf6acb321d7d77bd7), U64_C (0x5eed999cc2c22fc2), + U64_C (0x6d965c432e2eb82e), U64_C (0x627a96294b4b314b), + U64_C (0xa321e15dfefedffe), U64_C (0x8216aed557574157), + U64_C (0xa8412abd15155415), U64_C (0x9fb6eee87777c177), + U64_C (0xa5eb6e923737dc37), U64_C (0x7b56d79ee5e5b3e5), + U64_C (0x8cd923139f9f469f), U64_C (0xd317fd23f0f0e7f0), + U64_C (0x6a7f94204a4a354a), U64_C (0x9e95a944dada4fda), + U64_C (0xfa25b0a258587d58), U64_C (0x06ca8fcfc9c903c9), + U64_C (0x558d527c2929a429), U64_C (0x5022145a0a0a280a), + U64_C (0xe14f7f50b1b1feb1), U64_C (0x691a5dc9a0a0baa0), + U64_C (0x7fdad6146b6bb16b), U64_C (0x5cab17d985852e85), + U64_C (0x8173673cbdbdcebd), U64_C (0xd234ba8f5d5d695d), + U64_C (0x8050209010104010), U64_C (0xf303f507f4f4f7f4), + U64_C (0x16c08bddcbcb0bcb), U64_C (0xedc67cd33e3ef83e), + U64_C (0x28110a2d05051405), U64_C (0x1fe6ce7867678167), + U64_C (0x7353d597e4e4b7e4), U64_C (0x25bb4e0227279c27), + U64_C (0x3258827341411941), U64_C (0x2c9d0ba78b8b168b), + U64_C (0x510153f6a7a7a6a7), U64_C (0xcf94fab27d7de97d), + U64_C (0xdcfb374995956e95), U64_C (0x8e9fad56d8d847d8), + U64_C (0x8b30eb70fbfbcbfb), U64_C (0x2371c1cdeeee9fee), + U64_C (0xc791f8bb7c7ced7c), U64_C (0x17e3cc7166668566), + U64_C (0xa68ea77bdddd53dd), U64_C (0xb84b2eaf17175c17), + U64_C (0x02468e4547470147), U64_C (0x84dc211a9e9e429e), + U64_C (0x1ec589d4caca0fca), U64_C (0x75995a582d2db42d), + U64_C (0x9179632ebfbfc6bf), U64_C (0x381b0e3f07071c07), + U64_C (0x012347acadad8ead), U64_C (0xea2fb4b05a5a755a), + U64_C (0x6cb51bef83833683), U64_C (0x85ff66b63333cc33), + U64_C (0x3ff2c65c63639163), U64_C (0x100a041202020802), + U64_C (0x39384993aaaa92aa), U64_C (0xafa8e2de7171d971), + U64_C (0x0ecf8dc6c8c807c8), U64_C (0xc87d32d119196419), + U64_C (0x7270923b49493949), U64_C (0x869aaf5fd9d943d9), + U64_C (0xc31df931f2f2eff2), U64_C (0x4b48dba8e3e3abe3), + U64_C (0xe22ab6b95b5b715b), U64_C (0x34920dbc88881a88), + U64_C (0xa4c8293e9a9a529a), U64_C (0x2dbe4c0b26269826), + U64_C (0x8dfa64bf3232c832), U64_C (0xe94a7d59b0b0fab0), + U64_C (0x1b6acff2e9e983e9), U64_C (0x78331e770f0f3c0f), + U64_C (0xe6a6b733d5d573d5), U64_C (0x74ba1df480803a80), + U64_C (0x997c6127bebec2be), U64_C (0x26de87ebcdcd13cd), + U64_C (0xbde468893434d034), U64_C (0x7a75903248483d48), + U64_C (0xab24e354ffffdbff), U64_C (0xf78ff48d7a7af57a), + U64_C (0xf4ea3d6490907a90), U64_C (0xc23ebe9d5f5f615f), + U64_C (0x1da0403d20208020), U64_C (0x67d5d00f6868bd68), + U64_C (0xd07234ca1a1a681a), U64_C (0x192c41b7aeae82ae), + U64_C (0xc95e757db4b4eab4), U64_C (0x9a19a8ce54544d54), + U64_C (0xece53b7f93937693), U64_C (0x0daa442f22228822), + U64_C (0x07e9c86364648d64), U64_C (0xdb12ff2af1f1e3f1), + U64_C (0xbfa2e6cc7373d173), U64_C (0x905a248212124812), + U64_C (0x3a5d807a40401d40), U64_C (0x4028104808082008), + U64_C (0x56e89b95c3c32bc3), U64_C (0x337bc5dfecec97ec), + U64_C (0x9690ab4ddbdb4bdb), U64_C (0x611f5fc0a1a1bea1), + U64_C (0x1c8307918d8d0e8d), U64_C (0xf5c97ac83d3df43d), + U64_C (0xccf1335b97976697), U64_C (0x0000000000000000), + U64_C (0x36d483f9cfcf1bcf), U64_C (0x4587566e2b2bac2b), + U64_C (0x97b3ece17676c576), U64_C (0x64b019e682823282), + U64_C (0xfea9b128d6d67fd6), U64_C (0xd87736c31b1b6c1b), + U64_C (0xc15b7774b5b5eeb5), U64_C (0x112943beafaf86af), + U64_C (0x77dfd41d6a6ab56a), U64_C (0xba0da0ea50505d50), + U64_C (0x124c8a5745450945), U64_C (0xcb18fb38f3f3ebf3), + U64_C (0x9df060ad3030c030), U64_C (0x2b74c3c4efef9bef), + U64_C (0xe5c37eda3f3ffc3f), U64_C (0x921caac755554955), + U64_C (0x791059dba2a2b2a2), U64_C (0x0365c9e9eaea8fea), + U64_C (0x0fecca6a65658965), U64_C (0xb9686903babad2ba), + U64_C (0x65935e4a2f2fbc2f), U64_C (0x4ee79d8ec0c027c0), + U64_C (0xbe81a160dede5fde), U64_C (0xe06c38fc1c1c701c), + U64_C (0xbb2ee746fdfdd3fd), U64_C (0x52649a1f4d4d294d), + U64_C (0xe4e0397692927292), U64_C (0x8fbceafa7575c975), + U64_C (0x301e0c3606061806), U64_C (0x249809ae8a8a128a), + U64_C (0xf940794bb2b2f2b2), U64_C (0x6359d185e6e6bfe6), + U64_C (0x70361c7e0e0e380e), U64_C (0xf8633ee71f1f7c1f), + U64_C (0x37f7c45562629562), U64_C (0xeea3b53ad4d477d4), + U64_C (0x29324d81a8a89aa8), U64_C (0xc4f4315296966296), + U64_C (0x9b3aef62f9f9c3f9), U64_C (0x66f697a3c5c533c5), + U64_C (0x35b14a1025259425), U64_C (0xf220b2ab59597959), + U64_C (0x54ae15d084842a84), U64_C (0xb7a7e4c57272d572), + U64_C (0xd5dd72ec3939e439), U64_C (0x5a6198164c4c2d4c), + U64_C (0xca3bbc945e5e655e), U64_C (0xe785f09f7878fd78), + U64_C (0xddd870e53838e038), U64_C (0x148605988c8c0a8c), + U64_C (0xc6b2bf17d1d163d1), U64_C (0x410b57e4a5a5aea5), + U64_C (0x434dd9a1e2e2afe2), U64_C (0x2ff8c24e61619961), + U64_C (0xf1457b42b3b3f6b3), U64_C (0x15a5423421218421), + U64_C (0x94d625089c9c4a9c), U64_C (0xf0663cee1e1e781e), + U64_C (0x2252866143431143), U64_C (0x76fc93b1c7c73bc7), + U64_C (0xb32be54ffcfcd7fc), U64_C (0x2014082404041004), + U64_C (0xb208a2e351515951), U64_C (0xbcc72f2599995e99), + U64_C (0x4fc4da226d6da96d), U64_C (0x68391a650d0d340d), + U64_C (0x8335e979fafacffa), U64_C (0xb684a369dfdf5bdf), + U64_C (0xd79bfca97e7ee57e), U64_C (0x3db4481924249024), + U64_C (0xc5d776fe3b3bec3b), U64_C (0x313d4b9aabab96ab), + U64_C (0x3ed181f0cece1fce), U64_C (0x8855229911114411), + U64_C (0x0c8903838f8f068f), U64_C (0x4a6b9c044e4e254e), + U64_C (0xd1517366b7b7e6b7), U64_C (0x0b60cbe0ebeb8beb), + U64_C (0xfdcc78c13c3cf03c), U64_C (0x7cbf1ffd81813e81), + U64_C (0xd4fe354094946a94), U64_C (0xeb0cf31cf7f7fbf7), + U64_C (0xa1676f18b9b9deb9), U64_C (0x985f268b13134c13), + U64_C (0x7d9c58512c2cb02c), U64_C (0xd6b8bb05d3d36bd3), + U64_C (0x6b5cd38ce7e7bbe7), U64_C (0x57cbdc396e6ea56e), + U64_C (0x6ef395aac4c437c4), U64_C (0x180f061b03030c03), + U64_C (0x8a13acdc56564556), U64_C (0x1a49885e44440d44), + U64_C (0xdf9efea07f7fe17f), U64_C (0x21374f88a9a99ea9), + U64_C (0x4d8254672a2aa82a), U64_C (0xb16d6b0abbbbd6bb), + U64_C (0x46e29f87c1c123c1), U64_C (0xa202a6f153535153), + U64_C (0xae8ba572dcdc57dc), U64_C (0x582716530b0b2c0b), + U64_C (0x9cd327019d9d4e9d), U64_C (0x47c1d82b6c6cad6c), + U64_C (0x95f562a43131c431), U64_C (0x87b9e8f37474cd74), + U64_C (0xe309f115f6f6fff6), U64_C (0x0a438c4c46460546), + U64_C (0x092645a5acac8aac), U64_C (0x3c970fb589891e89), + U64_C (0xa04428b414145014), U64_C (0x5b42dfbae1e1a3e1), + U64_C (0xb04e2ca616165816), U64_C (0xcdd274f73a3ae83a), + U64_C (0x6fd0d2066969b969), U64_C (0x482d124109092409), + U64_C (0xa7ade0d77070dd70), U64_C (0xd954716fb6b6e2b6), + U64_C (0xceb7bd1ed0d067d0), U64_C (0x3b7ec7d6eded93ed), + U64_C (0x2edb85e2cccc17cc), U64_C (0x2a57846842421542), + U64_C (0xb4c22d2c98985a98), U64_C (0x490e55eda4a4aaa4), + U64_C (0x5d8850752828a028), U64_C (0xda31b8865c5c6d5c), + U64_C (0x933fed6bf8f8c7f8), U64_C (0x44a411c286862286), + }; + +static const u64 C5[256] = + { + U64_C (0x18c07830d8181860), U64_C (0x2305af462623238c), + U64_C (0xc67ef991b8c6c63f), U64_C (0xe8136fcdfbe8e887), + U64_C (0x874ca113cb878726), U64_C (0xb8a9626d11b8b8da), + U64_C (0x0108050209010104), U64_C (0x4f426e9e0d4f4f21), + U64_C (0x36adee6c9b3636d8), U64_C (0xa6590451ffa6a6a2), + U64_C (0xd2debdb90cd2d26f), U64_C (0xf5fb06f70ef5f5f3), + U64_C (0x79ef80f2967979f9), U64_C (0x6f5fcede306f6fa1), + U64_C (0x91fcef3f6d91917e), U64_C (0x52aa07a4f8525255), + U64_C (0x6027fdc04760609d), U64_C (0xbc89766535bcbcca), + U64_C (0x9baccd2b379b9b56), U64_C (0x8e048c018a8e8e02), + U64_C (0xa371155bd2a3a3b6), U64_C (0x0c603c186c0c0c30), + U64_C (0x7bff8af6847b7bf1), U64_C (0x35b5e16a803535d4), + U64_C (0x1de8693af51d1d74), U64_C (0xe05347ddb3e0e0a7), + U64_C (0xd7f6acb321d7d77b), U64_C (0xc25eed999cc2c22f), + U64_C (0x2e6d965c432e2eb8), U64_C (0x4b627a96294b4b31), + U64_C (0xfea321e15dfefedf), U64_C (0x578216aed5575741), + U64_C (0x15a8412abd151554), U64_C (0x779fb6eee87777c1), + U64_C (0x37a5eb6e923737dc), U64_C (0xe57b56d79ee5e5b3), + U64_C (0x9f8cd923139f9f46), U64_C (0xf0d317fd23f0f0e7), + U64_C (0x4a6a7f94204a4a35), U64_C (0xda9e95a944dada4f), + U64_C (0x58fa25b0a258587d), U64_C (0xc906ca8fcfc9c903), + U64_C (0x29558d527c2929a4), U64_C (0x0a5022145a0a0a28), + U64_C (0xb1e14f7f50b1b1fe), U64_C (0xa0691a5dc9a0a0ba), + U64_C (0x6b7fdad6146b6bb1), U64_C (0x855cab17d985852e), + U64_C (0xbd8173673cbdbdce), U64_C (0x5dd234ba8f5d5d69), + U64_C (0x1080502090101040), U64_C (0xf4f303f507f4f4f7), + U64_C (0xcb16c08bddcbcb0b), U64_C (0x3eedc67cd33e3ef8), + U64_C (0x0528110a2d050514), U64_C (0x671fe6ce78676781), + U64_C (0xe47353d597e4e4b7), U64_C (0x2725bb4e0227279c), + U64_C (0x4132588273414119), U64_C (0x8b2c9d0ba78b8b16), + U64_C (0xa7510153f6a7a7a6), U64_C (0x7dcf94fab27d7de9), + U64_C (0x95dcfb374995956e), U64_C (0xd88e9fad56d8d847), + U64_C (0xfb8b30eb70fbfbcb), U64_C (0xee2371c1cdeeee9f), + U64_C (0x7cc791f8bb7c7ced), U64_C (0x6617e3cc71666685), + U64_C (0xdda68ea77bdddd53), U64_C (0x17b84b2eaf17175c), + U64_C (0x4702468e45474701), U64_C (0x9e84dc211a9e9e42), + U64_C (0xca1ec589d4caca0f), U64_C (0x2d75995a582d2db4), + U64_C (0xbf9179632ebfbfc6), U64_C (0x07381b0e3f07071c), + U64_C (0xad012347acadad8e), U64_C (0x5aea2fb4b05a5a75), + U64_C (0x836cb51bef838336), U64_C (0x3385ff66b63333cc), + U64_C (0x633ff2c65c636391), U64_C (0x02100a0412020208), + U64_C (0xaa39384993aaaa92), U64_C (0x71afa8e2de7171d9), + U64_C (0xc80ecf8dc6c8c807), U64_C (0x19c87d32d1191964), + U64_C (0x497270923b494939), U64_C (0xd9869aaf5fd9d943), + U64_C (0xf2c31df931f2f2ef), U64_C (0xe34b48dba8e3e3ab), + U64_C (0x5be22ab6b95b5b71), U64_C (0x8834920dbc88881a), + U64_C (0x9aa4c8293e9a9a52), U64_C (0x262dbe4c0b262698), + U64_C (0x328dfa64bf3232c8), U64_C (0xb0e94a7d59b0b0fa), + U64_C (0xe91b6acff2e9e983), U64_C (0x0f78331e770f0f3c), + U64_C (0xd5e6a6b733d5d573), U64_C (0x8074ba1df480803a), + U64_C (0xbe997c6127bebec2), U64_C (0xcd26de87ebcdcd13), + U64_C (0x34bde468893434d0), U64_C (0x487a75903248483d), + U64_C (0xffab24e354ffffdb), U64_C (0x7af78ff48d7a7af5), + U64_C (0x90f4ea3d6490907a), U64_C (0x5fc23ebe9d5f5f61), + U64_C (0x201da0403d202080), U64_C (0x6867d5d00f6868bd), + U64_C (0x1ad07234ca1a1a68), U64_C (0xae192c41b7aeae82), + U64_C (0xb4c95e757db4b4ea), U64_C (0x549a19a8ce54544d), + U64_C (0x93ece53b7f939376), U64_C (0x220daa442f222288), + U64_C (0x6407e9c86364648d), U64_C (0xf1db12ff2af1f1e3), + U64_C (0x73bfa2e6cc7373d1), U64_C (0x12905a2482121248), + U64_C (0x403a5d807a40401d), U64_C (0x0840281048080820), + U64_C (0xc356e89b95c3c32b), U64_C (0xec337bc5dfecec97), + U64_C (0xdb9690ab4ddbdb4b), U64_C (0xa1611f5fc0a1a1be), + U64_C (0x8d1c8307918d8d0e), U64_C (0x3df5c97ac83d3df4), + U64_C (0x97ccf1335b979766), U64_C (0x0000000000000000), + U64_C (0xcf36d483f9cfcf1b), U64_C (0x2b4587566e2b2bac), + U64_C (0x7697b3ece17676c5), U64_C (0x8264b019e6828232), + U64_C (0xd6fea9b128d6d67f), U64_C (0x1bd87736c31b1b6c), + U64_C (0xb5c15b7774b5b5ee), U64_C (0xaf112943beafaf86), + U64_C (0x6a77dfd41d6a6ab5), U64_C (0x50ba0da0ea50505d), + U64_C (0x45124c8a57454509), U64_C (0xf3cb18fb38f3f3eb), + U64_C (0x309df060ad3030c0), U64_C (0xef2b74c3c4efef9b), + U64_C (0x3fe5c37eda3f3ffc), U64_C (0x55921caac7555549), + U64_C (0xa2791059dba2a2b2), U64_C (0xea0365c9e9eaea8f), + U64_C (0x650fecca6a656589), U64_C (0xbab9686903babad2), + U64_C (0x2f65935e4a2f2fbc), U64_C (0xc04ee79d8ec0c027), + U64_C (0xdebe81a160dede5f), U64_C (0x1ce06c38fc1c1c70), + U64_C (0xfdbb2ee746fdfdd3), U64_C (0x4d52649a1f4d4d29), + U64_C (0x92e4e03976929272), U64_C (0x758fbceafa7575c9), + U64_C (0x06301e0c36060618), U64_C (0x8a249809ae8a8a12), + U64_C (0xb2f940794bb2b2f2), U64_C (0xe66359d185e6e6bf), + U64_C (0x0e70361c7e0e0e38), U64_C (0x1ff8633ee71f1f7c), + U64_C (0x6237f7c455626295), U64_C (0xd4eea3b53ad4d477), + U64_C (0xa829324d81a8a89a), U64_C (0x96c4f43152969662), + U64_C (0xf99b3aef62f9f9c3), U64_C (0xc566f697a3c5c533), + U64_C (0x2535b14a10252594), U64_C (0x59f220b2ab595979), + U64_C (0x8454ae15d084842a), U64_C (0x72b7a7e4c57272d5), + U64_C (0x39d5dd72ec3939e4), U64_C (0x4c5a6198164c4c2d), + U64_C (0x5eca3bbc945e5e65), U64_C (0x78e785f09f7878fd), + U64_C (0x38ddd870e53838e0), U64_C (0x8c148605988c8c0a), + U64_C (0xd1c6b2bf17d1d163), U64_C (0xa5410b57e4a5a5ae), + U64_C (0xe2434dd9a1e2e2af), U64_C (0x612ff8c24e616199), + U64_C (0xb3f1457b42b3b3f6), U64_C (0x2115a54234212184), + U64_C (0x9c94d625089c9c4a), U64_C (0x1ef0663cee1e1e78), + U64_C (0x4322528661434311), U64_C (0xc776fc93b1c7c73b), + U64_C (0xfcb32be54ffcfcd7), U64_C (0x0420140824040410), + U64_C (0x51b208a2e3515159), U64_C (0x99bcc72f2599995e), + U64_C (0x6d4fc4da226d6da9), U64_C (0x0d68391a650d0d34), + U64_C (0xfa8335e979fafacf), U64_C (0xdfb684a369dfdf5b), + U64_C (0x7ed79bfca97e7ee5), U64_C (0x243db44819242490), + U64_C (0x3bc5d776fe3b3bec), U64_C (0xab313d4b9aabab96), + U64_C (0xce3ed181f0cece1f), U64_C (0x1188552299111144), + U64_C (0x8f0c8903838f8f06), U64_C (0x4e4a6b9c044e4e25), + U64_C (0xb7d1517366b7b7e6), U64_C (0xeb0b60cbe0ebeb8b), + U64_C (0x3cfdcc78c13c3cf0), U64_C (0x817cbf1ffd81813e), + U64_C (0x94d4fe354094946a), U64_C (0xf7eb0cf31cf7f7fb), + U64_C (0xb9a1676f18b9b9de), U64_C (0x13985f268b13134c), + U64_C (0x2c7d9c58512c2cb0), U64_C (0xd3d6b8bb05d3d36b), + U64_C (0xe76b5cd38ce7e7bb), U64_C (0x6e57cbdc396e6ea5), + U64_C (0xc46ef395aac4c437), U64_C (0x03180f061b03030c), + U64_C (0x568a13acdc565645), U64_C (0x441a49885e44440d), + U64_C (0x7fdf9efea07f7fe1), U64_C (0xa921374f88a9a99e), + U64_C (0x2a4d8254672a2aa8), U64_C (0xbbb16d6b0abbbbd6), + U64_C (0xc146e29f87c1c123), U64_C (0x53a202a6f1535351), + U64_C (0xdcae8ba572dcdc57), U64_C (0x0b582716530b0b2c), + U64_C (0x9d9cd327019d9d4e), U64_C (0x6c47c1d82b6c6cad), + U64_C (0x3195f562a43131c4), U64_C (0x7487b9e8f37474cd), + U64_C (0xf6e309f115f6f6ff), U64_C (0x460a438c4c464605), + U64_C (0xac092645a5acac8a), U64_C (0x893c970fb589891e), + U64_C (0x14a04428b4141450), U64_C (0xe15b42dfbae1e1a3), + U64_C (0x16b04e2ca6161658), U64_C (0x3acdd274f73a3ae8), + U64_C (0x696fd0d2066969b9), U64_C (0x09482d1241090924), + U64_C (0x70a7ade0d77070dd), U64_C (0xb6d954716fb6b6e2), + U64_C (0xd0ceb7bd1ed0d067), U64_C (0xed3b7ec7d6eded93), + U64_C (0xcc2edb85e2cccc17), U64_C (0x422a578468424215), + U64_C (0x98b4c22d2c98985a), U64_C (0xa4490e55eda4a4aa), + U64_C (0x285d8850752828a0), U64_C (0x5cda31b8865c5c6d), + U64_C (0xf8933fed6bf8f8c7), U64_C (0x8644a411c2868622), + }; + +static const u64 C6[256] = + { + U64_C (0x6018c07830d81818), U64_C (0x8c2305af46262323), + U64_C (0x3fc67ef991b8c6c6), U64_C (0x87e8136fcdfbe8e8), + U64_C (0x26874ca113cb8787), U64_C (0xdab8a9626d11b8b8), + U64_C (0x0401080502090101), U64_C (0x214f426e9e0d4f4f), + U64_C (0xd836adee6c9b3636), U64_C (0xa2a6590451ffa6a6), + U64_C (0x6fd2debdb90cd2d2), U64_C (0xf3f5fb06f70ef5f5), + U64_C (0xf979ef80f2967979), U64_C (0xa16f5fcede306f6f), + U64_C (0x7e91fcef3f6d9191), U64_C (0x5552aa07a4f85252), + U64_C (0x9d6027fdc0476060), U64_C (0xcabc89766535bcbc), + U64_C (0x569baccd2b379b9b), U64_C (0x028e048c018a8e8e), + U64_C (0xb6a371155bd2a3a3), U64_C (0x300c603c186c0c0c), + U64_C (0xf17bff8af6847b7b), U64_C (0xd435b5e16a803535), + U64_C (0x741de8693af51d1d), U64_C (0xa7e05347ddb3e0e0), + U64_C (0x7bd7f6acb321d7d7), U64_C (0x2fc25eed999cc2c2), + U64_C (0xb82e6d965c432e2e), U64_C (0x314b627a96294b4b), + U64_C (0xdffea321e15dfefe), U64_C (0x41578216aed55757), + U64_C (0x5415a8412abd1515), U64_C (0xc1779fb6eee87777), + U64_C (0xdc37a5eb6e923737), U64_C (0xb3e57b56d79ee5e5), + U64_C (0x469f8cd923139f9f), U64_C (0xe7f0d317fd23f0f0), + U64_C (0x354a6a7f94204a4a), U64_C (0x4fda9e95a944dada), + U64_C (0x7d58fa25b0a25858), U64_C (0x03c906ca8fcfc9c9), + U64_C (0xa429558d527c2929), U64_C (0x280a5022145a0a0a), + U64_C (0xfeb1e14f7f50b1b1), U64_C (0xbaa0691a5dc9a0a0), + U64_C (0xb16b7fdad6146b6b), U64_C (0x2e855cab17d98585), + U64_C (0xcebd8173673cbdbd), U64_C (0x695dd234ba8f5d5d), + U64_C (0x4010805020901010), U64_C (0xf7f4f303f507f4f4), + U64_C (0x0bcb16c08bddcbcb), U64_C (0xf83eedc67cd33e3e), + U64_C (0x140528110a2d0505), U64_C (0x81671fe6ce786767), + U64_C (0xb7e47353d597e4e4), U64_C (0x9c2725bb4e022727), + U64_C (0x1941325882734141), U64_C (0x168b2c9d0ba78b8b), + U64_C (0xa6a7510153f6a7a7), U64_C (0xe97dcf94fab27d7d), + U64_C (0x6e95dcfb37499595), U64_C (0x47d88e9fad56d8d8), + U64_C (0xcbfb8b30eb70fbfb), U64_C (0x9fee2371c1cdeeee), + U64_C (0xed7cc791f8bb7c7c), U64_C (0x856617e3cc716666), + U64_C (0x53dda68ea77bdddd), U64_C (0x5c17b84b2eaf1717), + U64_C (0x014702468e454747), U64_C (0x429e84dc211a9e9e), + U64_C (0x0fca1ec589d4caca), U64_C (0xb42d75995a582d2d), + U64_C (0xc6bf9179632ebfbf), U64_C (0x1c07381b0e3f0707), + U64_C (0x8ead012347acadad), U64_C (0x755aea2fb4b05a5a), + U64_C (0x36836cb51bef8383), U64_C (0xcc3385ff66b63333), + U64_C (0x91633ff2c65c6363), U64_C (0x0802100a04120202), + U64_C (0x92aa39384993aaaa), U64_C (0xd971afa8e2de7171), + U64_C (0x07c80ecf8dc6c8c8), U64_C (0x6419c87d32d11919), + U64_C (0x39497270923b4949), U64_C (0x43d9869aaf5fd9d9), + U64_C (0xeff2c31df931f2f2), U64_C (0xabe34b48dba8e3e3), + U64_C (0x715be22ab6b95b5b), U64_C (0x1a8834920dbc8888), + U64_C (0x529aa4c8293e9a9a), U64_C (0x98262dbe4c0b2626), + U64_C (0xc8328dfa64bf3232), U64_C (0xfab0e94a7d59b0b0), + U64_C (0x83e91b6acff2e9e9), U64_C (0x3c0f78331e770f0f), + U64_C (0x73d5e6a6b733d5d5), U64_C (0x3a8074ba1df48080), + U64_C (0xc2be997c6127bebe), U64_C (0x13cd26de87ebcdcd), + U64_C (0xd034bde468893434), U64_C (0x3d487a7590324848), + U64_C (0xdbffab24e354ffff), U64_C (0xf57af78ff48d7a7a), + U64_C (0x7a90f4ea3d649090), U64_C (0x615fc23ebe9d5f5f), + U64_C (0x80201da0403d2020), U64_C (0xbd6867d5d00f6868), + U64_C (0x681ad07234ca1a1a), U64_C (0x82ae192c41b7aeae), + U64_C (0xeab4c95e757db4b4), U64_C (0x4d549a19a8ce5454), + U64_C (0x7693ece53b7f9393), U64_C (0x88220daa442f2222), + U64_C (0x8d6407e9c8636464), U64_C (0xe3f1db12ff2af1f1), + U64_C (0xd173bfa2e6cc7373), U64_C (0x4812905a24821212), + U64_C (0x1d403a5d807a4040), U64_C (0x2008402810480808), + U64_C (0x2bc356e89b95c3c3), U64_C (0x97ec337bc5dfecec), + U64_C (0x4bdb9690ab4ddbdb), U64_C (0xbea1611f5fc0a1a1), + U64_C (0x0e8d1c8307918d8d), U64_C (0xf43df5c97ac83d3d), + U64_C (0x6697ccf1335b9797), U64_C (0x0000000000000000), + U64_C (0x1bcf36d483f9cfcf), U64_C (0xac2b4587566e2b2b), + U64_C (0xc57697b3ece17676), U64_C (0x328264b019e68282), + U64_C (0x7fd6fea9b128d6d6), U64_C (0x6c1bd87736c31b1b), + U64_C (0xeeb5c15b7774b5b5), U64_C (0x86af112943beafaf), + U64_C (0xb56a77dfd41d6a6a), U64_C (0x5d50ba0da0ea5050), + U64_C (0x0945124c8a574545), U64_C (0xebf3cb18fb38f3f3), + U64_C (0xc0309df060ad3030), U64_C (0x9bef2b74c3c4efef), + U64_C (0xfc3fe5c37eda3f3f), U64_C (0x4955921caac75555), + U64_C (0xb2a2791059dba2a2), U64_C (0x8fea0365c9e9eaea), + U64_C (0x89650fecca6a6565), U64_C (0xd2bab9686903baba), + U64_C (0xbc2f65935e4a2f2f), U64_C (0x27c04ee79d8ec0c0), + U64_C (0x5fdebe81a160dede), U64_C (0x701ce06c38fc1c1c), + U64_C (0xd3fdbb2ee746fdfd), U64_C (0x294d52649a1f4d4d), + U64_C (0x7292e4e039769292), U64_C (0xc9758fbceafa7575), + U64_C (0x1806301e0c360606), U64_C (0x128a249809ae8a8a), + U64_C (0xf2b2f940794bb2b2), U64_C (0xbfe66359d185e6e6), + U64_C (0x380e70361c7e0e0e), U64_C (0x7c1ff8633ee71f1f), + U64_C (0x956237f7c4556262), U64_C (0x77d4eea3b53ad4d4), + U64_C (0x9aa829324d81a8a8), U64_C (0x6296c4f431529696), + U64_C (0xc3f99b3aef62f9f9), U64_C (0x33c566f697a3c5c5), + U64_C (0x942535b14a102525), U64_C (0x7959f220b2ab5959), + U64_C (0x2a8454ae15d08484), U64_C (0xd572b7a7e4c57272), + U64_C (0xe439d5dd72ec3939), U64_C (0x2d4c5a6198164c4c), + U64_C (0x655eca3bbc945e5e), U64_C (0xfd78e785f09f7878), + U64_C (0xe038ddd870e53838), U64_C (0x0a8c148605988c8c), + U64_C (0x63d1c6b2bf17d1d1), U64_C (0xaea5410b57e4a5a5), + U64_C (0xafe2434dd9a1e2e2), U64_C (0x99612ff8c24e6161), + U64_C (0xf6b3f1457b42b3b3), U64_C (0x842115a542342121), + U64_C (0x4a9c94d625089c9c), U64_C (0x781ef0663cee1e1e), + U64_C (0x1143225286614343), U64_C (0x3bc776fc93b1c7c7), + U64_C (0xd7fcb32be54ffcfc), U64_C (0x1004201408240404), + U64_C (0x5951b208a2e35151), U64_C (0x5e99bcc72f259999), + U64_C (0xa96d4fc4da226d6d), U64_C (0x340d68391a650d0d), + U64_C (0xcffa8335e979fafa), U64_C (0x5bdfb684a369dfdf), + U64_C (0xe57ed79bfca97e7e), U64_C (0x90243db448192424), + U64_C (0xec3bc5d776fe3b3b), U64_C (0x96ab313d4b9aabab), + U64_C (0x1fce3ed181f0cece), U64_C (0x4411885522991111), + U64_C (0x068f0c8903838f8f), U64_C (0x254e4a6b9c044e4e), + U64_C (0xe6b7d1517366b7b7), U64_C (0x8beb0b60cbe0ebeb), + U64_C (0xf03cfdcc78c13c3c), U64_C (0x3e817cbf1ffd8181), + U64_C (0x6a94d4fe35409494), U64_C (0xfbf7eb0cf31cf7f7), + U64_C (0xdeb9a1676f18b9b9), U64_C (0x4c13985f268b1313), + U64_C (0xb02c7d9c58512c2c), U64_C (0x6bd3d6b8bb05d3d3), + U64_C (0xbbe76b5cd38ce7e7), U64_C (0xa56e57cbdc396e6e), + U64_C (0x37c46ef395aac4c4), U64_C (0x0c03180f061b0303), + U64_C (0x45568a13acdc5656), U64_C (0x0d441a49885e4444), + U64_C (0xe17fdf9efea07f7f), U64_C (0x9ea921374f88a9a9), + U64_C (0xa82a4d8254672a2a), U64_C (0xd6bbb16d6b0abbbb), + U64_C (0x23c146e29f87c1c1), U64_C (0x5153a202a6f15353), + U64_C (0x57dcae8ba572dcdc), U64_C (0x2c0b582716530b0b), + U64_C (0x4e9d9cd327019d9d), U64_C (0xad6c47c1d82b6c6c), + U64_C (0xc43195f562a43131), U64_C (0xcd7487b9e8f37474), + U64_C (0xfff6e309f115f6f6), U64_C (0x05460a438c4c4646), + U64_C (0x8aac092645a5acac), U64_C (0x1e893c970fb58989), + U64_C (0x5014a04428b41414), U64_C (0xa3e15b42dfbae1e1), + U64_C (0x5816b04e2ca61616), U64_C (0xe83acdd274f73a3a), + U64_C (0xb9696fd0d2066969), U64_C (0x2409482d12410909), + U64_C (0xdd70a7ade0d77070), U64_C (0xe2b6d954716fb6b6), + U64_C (0x67d0ceb7bd1ed0d0), U64_C (0x93ed3b7ec7d6eded), + U64_C (0x17cc2edb85e2cccc), U64_C (0x15422a5784684242), + U64_C (0x5a98b4c22d2c9898), U64_C (0xaaa4490e55eda4a4), + U64_C (0xa0285d8850752828), U64_C (0x6d5cda31b8865c5c), + U64_C (0xc7f8933fed6bf8f8), U64_C (0x228644a411c28686), + }; + +static const u64 C7[256] = + { + U64_C (0x186018c07830d818), U64_C (0x238c2305af462623), + U64_C (0xc63fc67ef991b8c6), U64_C (0xe887e8136fcdfbe8), + U64_C (0x8726874ca113cb87), U64_C (0xb8dab8a9626d11b8), + U64_C (0x0104010805020901), U64_C (0x4f214f426e9e0d4f), + U64_C (0x36d836adee6c9b36), U64_C (0xa6a2a6590451ffa6), + U64_C (0xd26fd2debdb90cd2), U64_C (0xf5f3f5fb06f70ef5), + U64_C (0x79f979ef80f29679), U64_C (0x6fa16f5fcede306f), + U64_C (0x917e91fcef3f6d91), U64_C (0x525552aa07a4f852), + U64_C (0x609d6027fdc04760), U64_C (0xbccabc89766535bc), + U64_C (0x9b569baccd2b379b), U64_C (0x8e028e048c018a8e), + U64_C (0xa3b6a371155bd2a3), U64_C (0x0c300c603c186c0c), + U64_C (0x7bf17bff8af6847b), U64_C (0x35d435b5e16a8035), + U64_C (0x1d741de8693af51d), U64_C (0xe0a7e05347ddb3e0), + U64_C (0xd77bd7f6acb321d7), U64_C (0xc22fc25eed999cc2), + U64_C (0x2eb82e6d965c432e), U64_C (0x4b314b627a96294b), + U64_C (0xfedffea321e15dfe), U64_C (0x5741578216aed557), + U64_C (0x155415a8412abd15), U64_C (0x77c1779fb6eee877), + U64_C (0x37dc37a5eb6e9237), U64_C (0xe5b3e57b56d79ee5), + U64_C (0x9f469f8cd923139f), U64_C (0xf0e7f0d317fd23f0), + U64_C (0x4a354a6a7f94204a), U64_C (0xda4fda9e95a944da), + U64_C (0x587d58fa25b0a258), U64_C (0xc903c906ca8fcfc9), + U64_C (0x29a429558d527c29), U64_C (0x0a280a5022145a0a), + U64_C (0xb1feb1e14f7f50b1), U64_C (0xa0baa0691a5dc9a0), + U64_C (0x6bb16b7fdad6146b), U64_C (0x852e855cab17d985), + U64_C (0xbdcebd8173673cbd), U64_C (0x5d695dd234ba8f5d), + U64_C (0x1040108050209010), U64_C (0xf4f7f4f303f507f4), + U64_C (0xcb0bcb16c08bddcb), U64_C (0x3ef83eedc67cd33e), + U64_C (0x05140528110a2d05), U64_C (0x6781671fe6ce7867), + U64_C (0xe4b7e47353d597e4), U64_C (0x279c2725bb4e0227), + U64_C (0x4119413258827341), U64_C (0x8b168b2c9d0ba78b), + U64_C (0xa7a6a7510153f6a7), U64_C (0x7de97dcf94fab27d), + U64_C (0x956e95dcfb374995), U64_C (0xd847d88e9fad56d8), + U64_C (0xfbcbfb8b30eb70fb), U64_C (0xee9fee2371c1cdee), + U64_C (0x7ced7cc791f8bb7c), U64_C (0x66856617e3cc7166), + U64_C (0xdd53dda68ea77bdd), U64_C (0x175c17b84b2eaf17), + U64_C (0x47014702468e4547), U64_C (0x9e429e84dc211a9e), + U64_C (0xca0fca1ec589d4ca), U64_C (0x2db42d75995a582d), + U64_C (0xbfc6bf9179632ebf), U64_C (0x071c07381b0e3f07), + U64_C (0xad8ead012347acad), U64_C (0x5a755aea2fb4b05a), + U64_C (0x8336836cb51bef83), U64_C (0x33cc3385ff66b633), + U64_C (0x6391633ff2c65c63), U64_C (0x020802100a041202), + U64_C (0xaa92aa39384993aa), U64_C (0x71d971afa8e2de71), + U64_C (0xc807c80ecf8dc6c8), U64_C (0x196419c87d32d119), + U64_C (0x4939497270923b49), U64_C (0xd943d9869aaf5fd9), + U64_C (0xf2eff2c31df931f2), U64_C (0xe3abe34b48dba8e3), + U64_C (0x5b715be22ab6b95b), U64_C (0x881a8834920dbc88), + U64_C (0x9a529aa4c8293e9a), U64_C (0x2698262dbe4c0b26), + U64_C (0x32c8328dfa64bf32), U64_C (0xb0fab0e94a7d59b0), + U64_C (0xe983e91b6acff2e9), U64_C (0x0f3c0f78331e770f), + U64_C (0xd573d5e6a6b733d5), U64_C (0x803a8074ba1df480), + U64_C (0xbec2be997c6127be), U64_C (0xcd13cd26de87ebcd), + U64_C (0x34d034bde4688934), U64_C (0x483d487a75903248), + U64_C (0xffdbffab24e354ff), U64_C (0x7af57af78ff48d7a), + U64_C (0x907a90f4ea3d6490), U64_C (0x5f615fc23ebe9d5f), + U64_C (0x2080201da0403d20), U64_C (0x68bd6867d5d00f68), + U64_C (0x1a681ad07234ca1a), U64_C (0xae82ae192c41b7ae), + U64_C (0xb4eab4c95e757db4), U64_C (0x544d549a19a8ce54), + U64_C (0x937693ece53b7f93), U64_C (0x2288220daa442f22), + U64_C (0x648d6407e9c86364), U64_C (0xf1e3f1db12ff2af1), + U64_C (0x73d173bfa2e6cc73), U64_C (0x124812905a248212), + U64_C (0x401d403a5d807a40), U64_C (0x0820084028104808), + U64_C (0xc32bc356e89b95c3), U64_C (0xec97ec337bc5dfec), + U64_C (0xdb4bdb9690ab4ddb), U64_C (0xa1bea1611f5fc0a1), + U64_C (0x8d0e8d1c8307918d), U64_C (0x3df43df5c97ac83d), + U64_C (0x976697ccf1335b97), U64_C (0x0000000000000000), + U64_C (0xcf1bcf36d483f9cf), U64_C (0x2bac2b4587566e2b), + U64_C (0x76c57697b3ece176), U64_C (0x82328264b019e682), + U64_C (0xd67fd6fea9b128d6), U64_C (0x1b6c1bd87736c31b), + U64_C (0xb5eeb5c15b7774b5), U64_C (0xaf86af112943beaf), + U64_C (0x6ab56a77dfd41d6a), U64_C (0x505d50ba0da0ea50), + U64_C (0x450945124c8a5745), U64_C (0xf3ebf3cb18fb38f3), + U64_C (0x30c0309df060ad30), U64_C (0xef9bef2b74c3c4ef), + U64_C (0x3ffc3fe5c37eda3f), U64_C (0x554955921caac755), + U64_C (0xa2b2a2791059dba2), U64_C (0xea8fea0365c9e9ea), + U64_C (0x6589650fecca6a65), U64_C (0xbad2bab9686903ba), + U64_C (0x2fbc2f65935e4a2f), U64_C (0xc027c04ee79d8ec0), + U64_C (0xde5fdebe81a160de), U64_C (0x1c701ce06c38fc1c), + U64_C (0xfdd3fdbb2ee746fd), U64_C (0x4d294d52649a1f4d), + U64_C (0x927292e4e0397692), U64_C (0x75c9758fbceafa75), + U64_C (0x061806301e0c3606), U64_C (0x8a128a249809ae8a), + U64_C (0xb2f2b2f940794bb2), U64_C (0xe6bfe66359d185e6), + U64_C (0x0e380e70361c7e0e), U64_C (0x1f7c1ff8633ee71f), + U64_C (0x62956237f7c45562), U64_C (0xd477d4eea3b53ad4), + U64_C (0xa89aa829324d81a8), U64_C (0x966296c4f4315296), + U64_C (0xf9c3f99b3aef62f9), U64_C (0xc533c566f697a3c5), + U64_C (0x25942535b14a1025), U64_C (0x597959f220b2ab59), + U64_C (0x842a8454ae15d084), U64_C (0x72d572b7a7e4c572), + U64_C (0x39e439d5dd72ec39), U64_C (0x4c2d4c5a6198164c), + U64_C (0x5e655eca3bbc945e), U64_C (0x78fd78e785f09f78), + U64_C (0x38e038ddd870e538), U64_C (0x8c0a8c148605988c), + U64_C (0xd163d1c6b2bf17d1), U64_C (0xa5aea5410b57e4a5), + U64_C (0xe2afe2434dd9a1e2), U64_C (0x6199612ff8c24e61), + U64_C (0xb3f6b3f1457b42b3), U64_C (0x21842115a5423421), + U64_C (0x9c4a9c94d625089c), U64_C (0x1e781ef0663cee1e), + U64_C (0x4311432252866143), U64_C (0xc73bc776fc93b1c7), + U64_C (0xfcd7fcb32be54ffc), U64_C (0x0410042014082404), + U64_C (0x515951b208a2e351), U64_C (0x995e99bcc72f2599), + U64_C (0x6da96d4fc4da226d), U64_C (0x0d340d68391a650d), + U64_C (0xfacffa8335e979fa), U64_C (0xdf5bdfb684a369df), + U64_C (0x7ee57ed79bfca97e), U64_C (0x2490243db4481924), + U64_C (0x3bec3bc5d776fe3b), U64_C (0xab96ab313d4b9aab), + U64_C (0xce1fce3ed181f0ce), U64_C (0x1144118855229911), + U64_C (0x8f068f0c8903838f), U64_C (0x4e254e4a6b9c044e), + U64_C (0xb7e6b7d1517366b7), U64_C (0xeb8beb0b60cbe0eb), + U64_C (0x3cf03cfdcc78c13c), U64_C (0x813e817cbf1ffd81), + U64_C (0x946a94d4fe354094), U64_C (0xf7fbf7eb0cf31cf7), + U64_C (0xb9deb9a1676f18b9), U64_C (0x134c13985f268b13), + U64_C (0x2cb02c7d9c58512c), U64_C (0xd36bd3d6b8bb05d3), + U64_C (0xe7bbe76b5cd38ce7), U64_C (0x6ea56e57cbdc396e), + U64_C (0xc437c46ef395aac4), U64_C (0x030c03180f061b03), + U64_C (0x5645568a13acdc56), U64_C (0x440d441a49885e44), + U64_C (0x7fe17fdf9efea07f), U64_C (0xa99ea921374f88a9), + U64_C (0x2aa82a4d8254672a), U64_C (0xbbd6bbb16d6b0abb), + U64_C (0xc123c146e29f87c1), U64_C (0x535153a202a6f153), + U64_C (0xdc57dcae8ba572dc), U64_C (0x0b2c0b582716530b), + U64_C (0x9d4e9d9cd327019d), U64_C (0x6cad6c47c1d82b6c), + U64_C (0x31c43195f562a431), U64_C (0x74cd7487b9e8f374), + U64_C (0xf6fff6e309f115f6), U64_C (0x4605460a438c4c46), + U64_C (0xac8aac092645a5ac), U64_C (0x891e893c970fb589), + U64_C (0x145014a04428b414), U64_C (0xe1a3e15b42dfbae1), + U64_C (0x165816b04e2ca616), U64_C (0x3ae83acdd274f73a), + U64_C (0x69b9696fd0d20669), U64_C (0x092409482d124109), + U64_C (0x70dd70a7ade0d770), U64_C (0xb6e2b6d954716fb6), + U64_C (0xd067d0ceb7bd1ed0), U64_C (0xed93ed3b7ec7d6ed), + U64_C (0xcc17cc2edb85e2cc), U64_C (0x4215422a57846842), + U64_C (0x985a98b4c22d2c98), U64_C (0xa4aaa4490e55eda4), + U64_C (0x28a0285d88507528), U64_C (0x5c6d5cda31b8865c), + U64_C (0xf8c7f8933fed6bf8), U64_C (0x86228644a411c286), + }; + + + +static void +whirlpool_init (void *ctx) +{ + whirlpool_context_t *context = ctx; + + memset (context, 0, sizeof (*context)); +} + + +/* + * Transform block. + */ +static void +whirlpool_transform (whirlpool_context_t *context, const unsigned char *data) +{ + whirlpool_block_t data_block; + whirlpool_block_t key; + whirlpool_block_t state; + whirlpool_block_t block; + unsigned int r; + unsigned int i; + + buffer_to_block (data, data_block, i); + block_copy (key, context->hash_state, i); + block_copy (state, context->hash_state, i); + block_xor (state, data_block, i); + + for (r = 0; r < R; r++) + { + /* Compute round key K^r. */ + + block[0] = (C0[(key[0] >> 56) & 0xFF] ^ C1[(key[7] >> 48) & 0xFF] ^ + C2[(key[6] >> 40) & 0xFF] ^ C3[(key[5] >> 32) & 0xFF] ^ + C4[(key[4] >> 24) & 0xFF] ^ C5[(key[3] >> 16) & 0xFF] ^ + C6[(key[2] >> 8) & 0xFF] ^ C7[(key[1] >> 0) & 0xFF] ^ rc[r]); + block[1] = (C0[(key[1] >> 56) & 0xFF] ^ C1[(key[0] >> 48) & 0xFF] ^ + C2[(key[7] >> 40) & 0xFF] ^ C3[(key[6] >> 32) & 0xFF] ^ + C4[(key[5] >> 24) & 0xFF] ^ C5[(key[4] >> 16) & 0xFF] ^ + C6[(key[3] >> 8) & 0xFF] ^ C7[(key[2] >> 0) & 0xFF]); + block[2] = (C0[(key[2] >> 56) & 0xFF] ^ C1[(key[1] >> 48) & 0xFF] ^ + C2[(key[0] >> 40) & 0xFF] ^ C3[(key[7] >> 32) & 0xFF] ^ + C4[(key[6] >> 24) & 0xFF] ^ C5[(key[5] >> 16) & 0xFF] ^ + C6[(key[4] >> 8) & 0xFF] ^ C7[(key[3] >> 0) & 0xFF]); + block[3] = (C0[(key[3] >> 56) & 0xFF] ^ C1[(key[2] >> 48) & 0xFF] ^ + C2[(key[1] >> 40) & 0xFF] ^ C3[(key[0] >> 32) & 0xFF] ^ + C4[(key[7] >> 24) & 0xFF] ^ C5[(key[6] >> 16) & 0xFF] ^ + C6[(key[5] >> 8) & 0xFF] ^ C7[(key[4] >> 0) & 0xFF]); + block[4] = (C0[(key[4] >> 56) & 0xFF] ^ C1[(key[3] >> 48) & 0xFF] ^ + C2[(key[2] >> 40) & 0xFF] ^ C3[(key[1] >> 32) & 0xFF] ^ + C4[(key[0] >> 24) & 0xFF] ^ C5[(key[7] >> 16) & 0xFF] ^ + C6[(key[6] >> 8) & 0xFF] ^ C7[(key[5] >> 0) & 0xFF]); + block[5] = (C0[(key[5] >> 56) & 0xFF] ^ C1[(key[4] >> 48) & 0xFF] ^ + C2[(key[3] >> 40) & 0xFF] ^ C3[(key[2] >> 32) & 0xFF] ^ + C4[(key[1] >> 24) & 0xFF] ^ C5[(key[0] >> 16) & 0xFF] ^ + C6[(key[7] >> 8) & 0xFF] ^ C7[(key[6] >> 0) & 0xFF]); + block[6] = (C0[(key[6] >> 56) & 0xFF] ^ C1[(key[5] >> 48) & 0xFF] ^ + C2[(key[4] >> 40) & 0xFF] ^ C3[(key[3] >> 32) & 0xFF] ^ + C4[(key[2] >> 24) & 0xFF] ^ C5[(key[1] >> 16) & 0xFF] ^ + C6[(key[0] >> 8) & 0xFF] ^ C7[(key[7] >> 0) & 0xFF]); + block[7] = (C0[(key[7] >> 56) & 0xFF] ^ C1[(key[6] >> 48) & 0xFF] ^ + C2[(key[5] >> 40) & 0xFF] ^ C3[(key[4] >> 32) & 0xFF] ^ + C4[(key[3] >> 24) & 0xFF] ^ C5[(key[2] >> 16) & 0xFF] ^ + C6[(key[1] >> 8) & 0xFF] ^ C7[(key[0] >> 0) & 0xFF]); + block_copy (key, block, i); + + /* Apply r-th round transformation. */ + + block[0] = (C0[(state[0] >> 56) & 0xFF] ^ C1[(state[7] >> 48) & 0xFF] ^ + C2[(state[6] >> 40) & 0xFF] ^ C3[(state[5] >> 32) & 0xFF] ^ + C4[(state[4] >> 24) & 0xFF] ^ C5[(state[3] >> 16) & 0xFF] ^ + C6[(state[2] >> 8) & 0xFF] ^ C7[(state[1] >> 0) & 0xFF] ^ key[0]); + block[1] = (C0[(state[1] >> 56) & 0xFF] ^ C1[(state[0] >> 48) & 0xFF] ^ + C2[(state[7] >> 40) & 0xFF] ^ C3[(state[6] >> 32) & 0xFF] ^ + C4[(state[5] >> 24) & 0xFF] ^ C5[(state[4] >> 16) & 0xFF] ^ + C6[(state[3] >> 8) & 0xFF] ^ C7[(state[2] >> 0) & 0xFF] ^ key[1]); + block[2] = (C0[(state[2] >> 56) & 0xFF] ^ C1[(state[1] >> 48) & 0xFF] ^ + C2[(state[0] >> 40) & 0xFF] ^ C3[(state[7] >> 32) & 0xFF] ^ + C4[(state[6] >> 24) & 0xFF] ^ C5[(state[5] >> 16) & 0xFF] ^ + C6[(state[4] >> 8) & 0xFF] ^ C7[(state[3] >> 0) & 0xFF] ^ key[2]); + block[3] = (C0[(state[3] >> 56) & 0xFF] ^ C1[(state[2] >> 48) & 0xFF] ^ + C2[(state[1] >> 40) & 0xFF] ^ C3[(state[0] >> 32) & 0xFF] ^ + C4[(state[7] >> 24) & 0xFF] ^ C5[(state[6] >> 16) & 0xFF] ^ + C6[(state[5] >> 8) & 0xFF] ^ C7[(state[4] >> 0) & 0xFF] ^ key[3]); + block[4] = (C0[(state[4] >> 56) & 0xFF] ^ C1[(state[3] >> 48) & 0xFF] ^ + C2[(state[2] >> 40) & 0xFF] ^ C3[(state[1] >> 32) & 0xFF] ^ + C4[(state[0] >> 24) & 0xFF] ^ C5[(state[7] >> 16) & 0xFF] ^ + C6[(state[6] >> 8) & 0xFF] ^ C7[(state[5] >> 0) & 0xFF] ^ key[4]); + block[5] = (C0[(state[5] >> 56) & 0xFF] ^ C1[(state[4] >> 48) & 0xFF] ^ + C2[(state[3] >> 40) & 0xFF] ^ C3[(state[2] >> 32) & 0xFF] ^ + C4[(state[1] >> 24) & 0xFF] ^ C5[(state[0] >> 16) & 0xFF] ^ + C6[(state[7] >> 8) & 0xFF] ^ C7[(state[6] >> 0) & 0xFF] ^ key[5]); + block[6] = (C0[(state[6] >> 56) & 0xFF] ^ C1[(state[5] >> 48) & 0xFF] ^ + C2[(state[4] >> 40) & 0xFF] ^ C3[(state[3] >> 32) & 0xFF] ^ + C4[(state[2] >> 24) & 0xFF] ^ C5[(state[1] >> 16) & 0xFF] ^ + C6[(state[0] >> 8) & 0xFF] ^ C7[(state[7] >> 0) & 0xFF] ^ key[6]); + block[7] = (C0[(state[7] >> 56) & 0xFF] ^ C1[(state[6] >> 48) & 0xFF] ^ + C2[(state[5] >> 40) & 0xFF] ^ C3[(state[4] >> 32) & 0xFF] ^ + C4[(state[3] >> 24) & 0xFF] ^ C5[(state[2] >> 16) & 0xFF] ^ + C6[(state[1] >> 8) & 0xFF] ^ C7[(state[0] >> 0) & 0xFF] ^ key[7]); + block_copy (state, block, i); + } + + /* Compression. */ + + block_xor (context->hash_state, data_block, i); + block_xor (context->hash_state, state, i); +} + +static void +whirlpool_add (whirlpool_context_t *context, + const void *buffer_arg, size_t buffer_n) +{ + const unsigned char *buffer = buffer_arg; + u64 buffer_size; + unsigned int carry; + unsigned int i; + + buffer_size = buffer_n; + + if (context->count == BLOCK_SIZE) + { + /* Flush the buffer. */ + whirlpool_transform (context, context->buffer); + /*_gcry_burn_stack (80+6*sizeof(void*));*/ /* FIXME */ + context->count = 0; + } + if (! buffer) + return; /* Nothing to add. */ + + if (context->count) + { + while (buffer_n && (context->count < BLOCK_SIZE)) + { + context->buffer[context->count++] = *buffer++; + buffer_n--; + } + whirlpool_add (context, NULL, 0); + if (!buffer_n) + /* Done. */ + return; + } + /*_gcry_burn_stack (80+6*sizeof(void*));*/ /* FIXME */ + + while (buffer_n >= BLOCK_SIZE) + { + whirlpool_transform (context, buffer); + context->count = 0; + buffer_n -= BLOCK_SIZE; + buffer += BLOCK_SIZE; + } + while (buffer_n && (context->count < BLOCK_SIZE)) + { + context->buffer[context->count++] = *buffer++; + buffer_n--; + } + + /* Update bit counter. */ + carry = 0; + buffer_size <<= 3; + for (i = 1; i <= 32; i++) + { + if (! (buffer_size || carry)) + break; + + carry += context->length[32 - i] + (buffer_size & 0xFF); + context->length[32 - i] = carry; + buffer_size >>= 8; + carry >>= 8; + } + gcry_assert (! (buffer_size || carry)); +} + +static void +whirlpool_write (void *ctx, const void *buffer, size_t buffer_n) +{ + whirlpool_context_t *context = ctx; + + whirlpool_add (context, buffer, buffer_n); +} + +static void +whirlpool_final (void *ctx) +{ + whirlpool_context_t *context = ctx; + unsigned int i; + + /* Flush. */ + whirlpool_add (context, NULL, 0); + + /* Pad. */ + context->buffer[context->count++] = 0x80; + + if (context->count > 32) + { + /* An extra block is necessary. */ + while (context->count < 64) + context->buffer[context->count++] = 0; + whirlpool_add (context, NULL, 0); + } + while (context->count < 32) + context->buffer[context->count++] = 0; + + /* Add length of message. */ + memcpy (context->buffer + context->count, context->length, 32); + context->count += 32; + whirlpool_add (context, NULL, 0); + + block_to_buffer (context->buffer, context->hash_state, i); +} + +static byte * +whirlpool_read (void *ctx) +{ + whirlpool_context_t *context = ctx; + + return context->buffer; +} + +gcry_md_spec_t _gcry_digest_spec_whirlpool = + { + "WHIRLPOOL", NULL, 0, NULL, 64, + whirlpool_init, whirlpool_write, whirlpool_final, whirlpool_read, + sizeof (whirlpool_context_t) + , + .blocksize = 64 + }; + + +GRUB_MOD_INIT(gcry_whirlpool) +{ + grub_md_register (&_gcry_digest_spec_whirlpool); +} + +GRUB_MOD_FINI(gcry_whirlpool) +{ + grub_md_unregister (&_gcry_digest_spec_whirlpool); +} --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/md4.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/md4.c @@ -0,0 +1,339 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* md4.c - MD4 Message-Digest Algorithm + * Copyright (C) 2002, 2003 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + * + * Based on md5.c in libgcrypt, but rewritten to compute md4 checksums + * using a public domain md4 implementation with the following comments: + * + * Modified by Wei Dai from Andrew M. Kuchling's md4.c + * The original code and all modifications are in the public domain. + * + * This is the original introductory comment: + * + * md4.c : MD4 hash algorithm. + * + * Part of the Python Cryptography Toolkit, version 1.1 + * + * Distribute and use freely; there are no restrictions on further + * dissemination and usage except those imposed by the laws of your + * country of residence. + * + */ + +/* MD4 test suite: + * MD4 ("") = 31d6cfe0d16ae931b73c59d7e0c089c0 + * MD4 ("a") = bde52cb31de33e46245e05fbdbd6fb24 + * MD4 ("abc") = a448017aaf21d8525fc10ae87aa6729d + * MD4 ("message digest") = d9130a8164549fe818874806e1c7014b + * MD4 ("abcdefghijklmnopqrstuvwxyz") = d79e1c308aa5bbcdeea8ed63df412da9 + * MD4 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") = + * 043f8582f241db351ce627e153e7f0e4 + * MD4 ("123456789012345678901234567890123456789012345678901234567890123456 + * 78901234567890") = e33b4ddc9c38f2199c3e7b164fcc0536 + */ + + +#include "g10lib.h" +#include "memory.h" +#include "cipher.h" + +#include "bithelp.h" + + +typedef struct { + u32 A,B,C,D; /* chaining variables */ + u32 nblocks; + byte buf[64]; + int count; +} MD4_CONTEXT; + + +static void +md4_init( void *context ) +{ + MD4_CONTEXT *ctx = context; + + ctx->A = 0x67452301; + ctx->B = 0xefcdab89; + ctx->C = 0x98badcfe; + ctx->D = 0x10325476; + + ctx->nblocks = 0; + ctx->count = 0; +} + +#define F(x, y, z) ((z) ^ ((x) & ((y) ^ (z)))) +#define G(x, y, z) (((x) & (y)) | ((x) & (z)) | ((y) & (z))) +#define H(x, y, z) ((x) ^ (y) ^ (z)) + + +/**************** + * transform 64 bytes + */ +static void +transform ( MD4_CONTEXT *ctx, const unsigned char *data ) +{ + u32 in[16]; + register u32 A = ctx->A; + register u32 B = ctx->B; + register u32 C = ctx->C; + register u32 D = ctx->D; + +#ifdef WORDS_BIGENDIAN + { + int i; + byte *p2, *p1; + for(i=0, p1=data, p2=(byte*)in; i < 16; i++, p2 += 4 ) + { + p2[3] = *p1++; + p2[2] = *p1++; + p2[1] = *p1++; + p2[0] = *p1++; + } + } +#else + memcpy (in, data, 64); +#endif + + /* Round 1. */ +#define function(a,b,c,d,k,s) a=rol(a+F(b,c,d)+in[k],s); + function(A,B,C,D, 0, 3); + function(D,A,B,C, 1, 7); + function(C,D,A,B, 2,11); + function(B,C,D,A, 3,19); + function(A,B,C,D, 4, 3); + function(D,A,B,C, 5, 7); + function(C,D,A,B, 6,11); + function(B,C,D,A, 7,19); + function(A,B,C,D, 8, 3); + function(D,A,B,C, 9, 7); + function(C,D,A,B,10,11); + function(B,C,D,A,11,19); + function(A,B,C,D,12, 3); + function(D,A,B,C,13, 7); + function(C,D,A,B,14,11); + function(B,C,D,A,15,19); + +#undef function + + /* Round 2. */ +#define function(a,b,c,d,k,s) a=rol(a+G(b,c,d)+in[k]+0x5a827999,s); + + function(A,B,C,D, 0, 3); + function(D,A,B,C, 4, 5); + function(C,D,A,B, 8, 9); + function(B,C,D,A,12,13); + function(A,B,C,D, 1, 3); + function(D,A,B,C, 5, 5); + function(C,D,A,B, 9, 9); + function(B,C,D,A,13,13); + function(A,B,C,D, 2, 3); + function(D,A,B,C, 6, 5); + function(C,D,A,B,10, 9); + function(B,C,D,A,14,13); + function(A,B,C,D, 3, 3); + function(D,A,B,C, 7, 5); + function(C,D,A,B,11, 9); + function(B,C,D,A,15,13); + +#undef function + + /* Round 3. */ +#define function(a,b,c,d,k,s) a=rol(a+H(b,c,d)+in[k]+0x6ed9eba1,s); + + function(A,B,C,D, 0, 3); + function(D,A,B,C, 8, 9); + function(C,D,A,B, 4,11); + function(B,C,D,A,12,15); + function(A,B,C,D, 2, 3); + function(D,A,B,C,10, 9); + function(C,D,A,B, 6,11); + function(B,C,D,A,14,15); + function(A,B,C,D, 1, 3); + function(D,A,B,C, 9, 9); + function(C,D,A,B, 5,11); + function(B,C,D,A,13,15); + function(A,B,C,D, 3, 3); + function(D,A,B,C,11, 9); + function(C,D,A,B, 7,11); + function(B,C,D,A,15,15); + + + /* Put checksum in context given as argument. */ + ctx->A += A; + ctx->B += B; + ctx->C += C; + ctx->D += D; +} + + + +/* The routine updates the message-digest context to + * account for the presence of each of the characters inBuf[0..inLen-1] + * in the message whose digest is being computed. + */ +static void +md4_write ( void *context, const void *inbuf_arg, size_t inlen) +{ + const unsigned char *inbuf = inbuf_arg; + MD4_CONTEXT *hd = context; + + if( hd->count == 64 ) /* flush the buffer */ + { + transform( hd, hd->buf ); + _gcry_burn_stack (80+6*sizeof(void*)); + hd->count = 0; + hd->nblocks++; + } + if( !inbuf ) + return; + + if( hd->count ) + { + for( ; inlen && hd->count < 64; inlen-- ) + hd->buf[hd->count++] = *inbuf++; + md4_write( hd, NULL, 0 ); + if( !inlen ) + return; + } + _gcry_burn_stack (80+6*sizeof(void*)); + + while( inlen >= 64 ) + { + transform( hd, inbuf ); + hd->count = 0; + hd->nblocks++; + inlen -= 64; + inbuf += 64; + } + for( ; inlen && hd->count < 64; inlen-- ) + hd->buf[hd->count++] = *inbuf++; +} + + + +/* The routine final terminates the message-digest computation and + * ends with the desired message digest in mdContext->digest[0...15]. + * The handle is prepared for a new MD4 cycle. + * Returns 16 bytes representing the digest. + */ + +static void +md4_final( void *context ) +{ + MD4_CONTEXT *hd = context; + u32 t, msb, lsb; + byte *p; + + md4_write(hd, NULL, 0); /* flush */; + + t = hd->nblocks; + /* multiply by 64 to make a byte count */ + lsb = t << 6; + msb = t >> 26; + /* add the count */ + t = lsb; + if( (lsb += hd->count) < t ) + msb++; + /* multiply by 8 to make a bit count */ + t = lsb; + lsb <<= 3; + msb <<= 3; + msb |= t >> 29; + + if( hd->count < 56 ) /* enough room */ + { + hd->buf[hd->count++] = 0x80; /* pad */ + while( hd->count < 56 ) + hd->buf[hd->count++] = 0; /* pad */ + } + else /* need one extra block */ + { + hd->buf[hd->count++] = 0x80; /* pad character */ + while( hd->count < 64 ) + hd->buf[hd->count++] = 0; + md4_write(hd, NULL, 0); /* flush */; + memset(hd->buf, 0, 56 ); /* fill next block with zeroes */ + } + /* append the 64 bit count */ + hd->buf[56] = lsb ; + hd->buf[57] = lsb >> 8; + hd->buf[58] = lsb >> 16; + hd->buf[59] = lsb >> 24; + hd->buf[60] = msb ; + hd->buf[61] = msb >> 8; + hd->buf[62] = msb >> 16; + hd->buf[63] = msb >> 24; + transform( hd, hd->buf ); + _gcry_burn_stack (80+6*sizeof(void*)); + + p = hd->buf; +#ifdef WORDS_BIGENDIAN +#define X(a) do { *p++ = hd->a ; *p++ = hd->a >> 8; \ + *p++ = hd->a >> 16; *p++ = hd->a >> 24; } while(0) +#else /* little endian */ +#define X(a) do { *(u32*)p = (*hd).a ; p += 4; } while(0) +#endif + X(A); + X(B); + X(C); + X(D); +#undef X + +} + +static byte * +md4_read (void *context) +{ + MD4_CONTEXT *hd = context; + return hd->buf; +} + +static byte asn[18] = /* Object ID is 1.2.840.113549.2.4 */ + { 0x30, 0x20, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86,0x48, + 0x86, 0xf7, 0x0d, 0x02, 0x04, 0x05, 0x00, 0x04, 0x10 }; + +static gcry_md_oid_spec_t oid_spec_md4[] = + { + /* iso.member-body.us.rsadsi.digestAlgorithm.md4 */ + { "1.2.840.113549.2.4" }, + { NULL }, + }; + +gcry_md_spec_t _gcry_digest_spec_md4 = + { + "MD4", asn, DIM (asn), oid_spec_md4,16, + md4_init, md4_write, md4_final, md4_read, + sizeof (MD4_CONTEXT) + , + .blocksize = 64 + }; + + + +GRUB_MOD_INIT(gcry_md4) +{ + grub_md_register (&_gcry_digest_spec_md4); +} + +GRUB_MOD_FINI(gcry_md4) +{ + grub_md_unregister (&_gcry_digest_spec_md4); +} --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/camellia.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/camellia.c @@ -0,0 +1,1461 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* camellia.h ver 1.2.0 + * + * Copyright (C) 2006,2007 + * NTT (Nippon Telegraph and Telephone Corporation). + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * Algorithm Specification + * http://info.isl.ntt.co.jp/crypt/eng/camellia/specifications.html + */ + + +#include "camellia.h" + +/* u32 must be 32bit word */ +typedef unsigned int u32; +typedef unsigned char u8; + +/* key constants */ + +#define CAMELLIA_SIGMA1L (0xA09E667FL) +#define CAMELLIA_SIGMA1R (0x3BCC908BL) +#define CAMELLIA_SIGMA2L (0xB67AE858L) +#define CAMELLIA_SIGMA2R (0x4CAA73B2L) +#define CAMELLIA_SIGMA3L (0xC6EF372FL) +#define CAMELLIA_SIGMA3R (0xE94F82BEL) +#define CAMELLIA_SIGMA4L (0x54FF53A5L) +#define CAMELLIA_SIGMA4R (0xF1D36F1CL) +#define CAMELLIA_SIGMA5L (0x10E527FAL) +#define CAMELLIA_SIGMA5R (0xDE682D1DL) +#define CAMELLIA_SIGMA6L (0xB05688C2L) +#define CAMELLIA_SIGMA6R (0xB3E6C1FDL) + +/* + * macros + */ + + +#if defined(_MSC_VER) + +# define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00) +# define GETU32(p) SWAP(*((u32 *)(p))) +# define PUTU32(ct, st) {*((u32 *)(ct)) = SWAP((st));} + +#else /* not MS-VC */ + +# define GETU32(pt) \ + (((u32)(pt)[0] << 24) \ + ^ ((u32)(pt)[1] << 16) \ + ^ ((u32)(pt)[2] << 8) \ + ^ ((u32)(pt)[3])) + +# define PUTU32(ct, st) { \ + (ct)[0] = (u8)((st) >> 24); \ + (ct)[1] = (u8)((st) >> 16); \ + (ct)[2] = (u8)((st) >> 8); \ + (ct)[3] = (u8)(st); } + +#endif + +#define CamelliaSubkeyL(INDEX) (subkey[(INDEX)*2]) +#define CamelliaSubkeyR(INDEX) (subkey[(INDEX)*2 + 1]) + +/* rotation right shift 1byte */ +#define CAMELLIA_RR8(x) (((x) >> 8) + ((x) << 24)) +/* rotation left shift 1bit */ +#define CAMELLIA_RL1(x) (((x) << 1) + ((x) >> 31)) +/* rotation left shift 1byte */ +#define CAMELLIA_RL8(x) (((x) << 8) + ((x) >> 24)) + +#define CAMELLIA_ROLDQ(ll, lr, rl, rr, w0, w1, bits) \ + do { \ + w0 = ll; \ + ll = (ll << bits) + (lr >> (32 - bits)); \ + lr = (lr << bits) + (rl >> (32 - bits)); \ + rl = (rl << bits) + (rr >> (32 - bits)); \ + rr = (rr << bits) + (w0 >> (32 - bits)); \ + } while(0) + +#define CAMELLIA_ROLDQo32(ll, lr, rl, rr, w0, w1, bits) \ + do { \ + w0 = ll; \ + w1 = lr; \ + ll = (lr << (bits - 32)) + (rl >> (64 - bits)); \ + lr = (rl << (bits - 32)) + (rr >> (64 - bits)); \ + rl = (rr << (bits - 32)) + (w0 >> (64 - bits)); \ + rr = (w0 << (bits - 32)) + (w1 >> (64 - bits)); \ + } while(0) + +#define CAMELLIA_SP1110(INDEX) (camellia_sp1110[(INDEX)]) +#define CAMELLIA_SP0222(INDEX) (camellia_sp0222[(INDEX)]) +#define CAMELLIA_SP3033(INDEX) (camellia_sp3033[(INDEX)]) +#define CAMELLIA_SP4404(INDEX) (camellia_sp4404[(INDEX)]) + +#define CAMELLIA_F(xl, xr, kl, kr, yl, yr, il, ir, t0, t1) \ + do { \ + il = xl ^ kl; \ + ir = xr ^ kr; \ + t0 = il >> 16; \ + t1 = ir >> 16; \ + yl = CAMELLIA_SP1110(ir & 0xff) \ + ^ CAMELLIA_SP0222((t1 >> 8) & 0xff) \ + ^ CAMELLIA_SP3033(t1 & 0xff) \ + ^ CAMELLIA_SP4404((ir >> 8) & 0xff); \ + yr = CAMELLIA_SP1110((t0 >> 8) & 0xff) \ + ^ CAMELLIA_SP0222(t0 & 0xff) \ + ^ CAMELLIA_SP3033((il >> 8) & 0xff) \ + ^ CAMELLIA_SP4404(il & 0xff); \ + yl ^= yr; \ + yr = CAMELLIA_RR8(yr); \ + yr ^= yl; \ + } while(0) + + +/* + * for speed up + * + */ +#define CAMELLIA_FLS(ll, lr, rl, rr, kll, klr, krl, krr, t0, t1, t2, t3) \ + do { \ + t0 = kll; \ + t0 &= ll; \ + lr ^= CAMELLIA_RL1(t0); \ + t1 = klr; \ + t1 |= lr; \ + ll ^= t1; \ + \ + t2 = krr; \ + t2 |= rr; \ + rl ^= t2; \ + t3 = krl; \ + t3 &= rl; \ + rr ^= CAMELLIA_RL1(t3); \ + } while(0) + +#define CAMELLIA_ROUNDSM(xl, xr, kl, kr, yl, yr, il, ir, t0, t1) \ + do { \ + ir = CAMELLIA_SP1110(xr & 0xff) \ + ^ CAMELLIA_SP0222((xr >> 24) & 0xff) \ + ^ CAMELLIA_SP3033((xr >> 16) & 0xff) \ + ^ CAMELLIA_SP4404((xr >> 8) & 0xff); \ + il = CAMELLIA_SP1110((xl >> 24) & 0xff) \ + ^ CAMELLIA_SP0222((xl >> 16) & 0xff) \ + ^ CAMELLIA_SP3033((xl >> 8) & 0xff) \ + ^ CAMELLIA_SP4404(xl & 0xff); \ + il ^= kl; \ + ir ^= kr; \ + ir ^= il; \ + il = CAMELLIA_RR8(il); \ + il ^= ir; \ + yl ^= ir; \ + yr ^= il; \ + } while(0) + + +static const u32 camellia_sp1110[256] = { + 0x70707000,0x82828200,0x2c2c2c00,0xececec00, + 0xb3b3b300,0x27272700,0xc0c0c000,0xe5e5e500, + 0xe4e4e400,0x85858500,0x57575700,0x35353500, + 0xeaeaea00,0x0c0c0c00,0xaeaeae00,0x41414100, + 0x23232300,0xefefef00,0x6b6b6b00,0x93939300, + 0x45454500,0x19191900,0xa5a5a500,0x21212100, + 0xededed00,0x0e0e0e00,0x4f4f4f00,0x4e4e4e00, + 0x1d1d1d00,0x65656500,0x92929200,0xbdbdbd00, + 0x86868600,0xb8b8b800,0xafafaf00,0x8f8f8f00, + 0x7c7c7c00,0xebebeb00,0x1f1f1f00,0xcecece00, + 0x3e3e3e00,0x30303000,0xdcdcdc00,0x5f5f5f00, + 0x5e5e5e00,0xc5c5c500,0x0b0b0b00,0x1a1a1a00, + 0xa6a6a600,0xe1e1e100,0x39393900,0xcacaca00, + 0xd5d5d500,0x47474700,0x5d5d5d00,0x3d3d3d00, + 0xd9d9d900,0x01010100,0x5a5a5a00,0xd6d6d600, + 0x51515100,0x56565600,0x6c6c6c00,0x4d4d4d00, + 0x8b8b8b00,0x0d0d0d00,0x9a9a9a00,0x66666600, + 0xfbfbfb00,0xcccccc00,0xb0b0b000,0x2d2d2d00, + 0x74747400,0x12121200,0x2b2b2b00,0x20202000, + 0xf0f0f000,0xb1b1b100,0x84848400,0x99999900, + 0xdfdfdf00,0x4c4c4c00,0xcbcbcb00,0xc2c2c200, + 0x34343400,0x7e7e7e00,0x76767600,0x05050500, + 0x6d6d6d00,0xb7b7b700,0xa9a9a900,0x31313100, + 0xd1d1d100,0x17171700,0x04040400,0xd7d7d700, + 0x14141400,0x58585800,0x3a3a3a00,0x61616100, + 0xdedede00,0x1b1b1b00,0x11111100,0x1c1c1c00, + 0x32323200,0x0f0f0f00,0x9c9c9c00,0x16161600, + 0x53535300,0x18181800,0xf2f2f200,0x22222200, + 0xfefefe00,0x44444400,0xcfcfcf00,0xb2b2b200, + 0xc3c3c300,0xb5b5b500,0x7a7a7a00,0x91919100, + 0x24242400,0x08080800,0xe8e8e800,0xa8a8a800, + 0x60606000,0xfcfcfc00,0x69696900,0x50505000, + 0xaaaaaa00,0xd0d0d000,0xa0a0a000,0x7d7d7d00, + 0xa1a1a100,0x89898900,0x62626200,0x97979700, + 0x54545400,0x5b5b5b00,0x1e1e1e00,0x95959500, + 0xe0e0e000,0xffffff00,0x64646400,0xd2d2d200, + 0x10101000,0xc4c4c400,0x00000000,0x48484800, + 0xa3a3a300,0xf7f7f700,0x75757500,0xdbdbdb00, + 0x8a8a8a00,0x03030300,0xe6e6e600,0xdadada00, + 0x09090900,0x3f3f3f00,0xdddddd00,0x94949400, + 0x87878700,0x5c5c5c00,0x83838300,0x02020200, + 0xcdcdcd00,0x4a4a4a00,0x90909000,0x33333300, + 0x73737300,0x67676700,0xf6f6f600,0xf3f3f300, + 0x9d9d9d00,0x7f7f7f00,0xbfbfbf00,0xe2e2e200, + 0x52525200,0x9b9b9b00,0xd8d8d800,0x26262600, + 0xc8c8c800,0x37373700,0xc6c6c600,0x3b3b3b00, + 0x81818100,0x96969600,0x6f6f6f00,0x4b4b4b00, + 0x13131300,0xbebebe00,0x63636300,0x2e2e2e00, + 0xe9e9e900,0x79797900,0xa7a7a700,0x8c8c8c00, + 0x9f9f9f00,0x6e6e6e00,0xbcbcbc00,0x8e8e8e00, + 0x29292900,0xf5f5f500,0xf9f9f900,0xb6b6b600, + 0x2f2f2f00,0xfdfdfd00,0xb4b4b400,0x59595900, + 0x78787800,0x98989800,0x06060600,0x6a6a6a00, + 0xe7e7e700,0x46464600,0x71717100,0xbababa00, + 0xd4d4d400,0x25252500,0xababab00,0x42424200, + 0x88888800,0xa2a2a200,0x8d8d8d00,0xfafafa00, + 0x72727200,0x07070700,0xb9b9b900,0x55555500, + 0xf8f8f800,0xeeeeee00,0xacacac00,0x0a0a0a00, + 0x36363600,0x49494900,0x2a2a2a00,0x68686800, + 0x3c3c3c00,0x38383800,0xf1f1f100,0xa4a4a400, + 0x40404000,0x28282800,0xd3d3d300,0x7b7b7b00, + 0xbbbbbb00,0xc9c9c900,0x43434300,0xc1c1c100, + 0x15151500,0xe3e3e300,0xadadad00,0xf4f4f400, + 0x77777700,0xc7c7c700,0x80808000,0x9e9e9e00, +}; + +static const u32 camellia_sp0222[256] = { + 0x00e0e0e0,0x00050505,0x00585858,0x00d9d9d9, + 0x00676767,0x004e4e4e,0x00818181,0x00cbcbcb, + 0x00c9c9c9,0x000b0b0b,0x00aeaeae,0x006a6a6a, + 0x00d5d5d5,0x00181818,0x005d5d5d,0x00828282, + 0x00464646,0x00dfdfdf,0x00d6d6d6,0x00272727, + 0x008a8a8a,0x00323232,0x004b4b4b,0x00424242, + 0x00dbdbdb,0x001c1c1c,0x009e9e9e,0x009c9c9c, + 0x003a3a3a,0x00cacaca,0x00252525,0x007b7b7b, + 0x000d0d0d,0x00717171,0x005f5f5f,0x001f1f1f, + 0x00f8f8f8,0x00d7d7d7,0x003e3e3e,0x009d9d9d, + 0x007c7c7c,0x00606060,0x00b9b9b9,0x00bebebe, + 0x00bcbcbc,0x008b8b8b,0x00161616,0x00343434, + 0x004d4d4d,0x00c3c3c3,0x00727272,0x00959595, + 0x00ababab,0x008e8e8e,0x00bababa,0x007a7a7a, + 0x00b3b3b3,0x00020202,0x00b4b4b4,0x00adadad, + 0x00a2a2a2,0x00acacac,0x00d8d8d8,0x009a9a9a, + 0x00171717,0x001a1a1a,0x00353535,0x00cccccc, + 0x00f7f7f7,0x00999999,0x00616161,0x005a5a5a, + 0x00e8e8e8,0x00242424,0x00565656,0x00404040, + 0x00e1e1e1,0x00636363,0x00090909,0x00333333, + 0x00bfbfbf,0x00989898,0x00979797,0x00858585, + 0x00686868,0x00fcfcfc,0x00ececec,0x000a0a0a, + 0x00dadada,0x006f6f6f,0x00535353,0x00626262, + 0x00a3a3a3,0x002e2e2e,0x00080808,0x00afafaf, + 0x00282828,0x00b0b0b0,0x00747474,0x00c2c2c2, + 0x00bdbdbd,0x00363636,0x00222222,0x00383838, + 0x00646464,0x001e1e1e,0x00393939,0x002c2c2c, + 0x00a6a6a6,0x00303030,0x00e5e5e5,0x00444444, + 0x00fdfdfd,0x00888888,0x009f9f9f,0x00656565, + 0x00878787,0x006b6b6b,0x00f4f4f4,0x00232323, + 0x00484848,0x00101010,0x00d1d1d1,0x00515151, + 0x00c0c0c0,0x00f9f9f9,0x00d2d2d2,0x00a0a0a0, + 0x00555555,0x00a1a1a1,0x00414141,0x00fafafa, + 0x00434343,0x00131313,0x00c4c4c4,0x002f2f2f, + 0x00a8a8a8,0x00b6b6b6,0x003c3c3c,0x002b2b2b, + 0x00c1c1c1,0x00ffffff,0x00c8c8c8,0x00a5a5a5, + 0x00202020,0x00898989,0x00000000,0x00909090, + 0x00474747,0x00efefef,0x00eaeaea,0x00b7b7b7, + 0x00151515,0x00060606,0x00cdcdcd,0x00b5b5b5, + 0x00121212,0x007e7e7e,0x00bbbbbb,0x00292929, + 0x000f0f0f,0x00b8b8b8,0x00070707,0x00040404, + 0x009b9b9b,0x00949494,0x00212121,0x00666666, + 0x00e6e6e6,0x00cecece,0x00ededed,0x00e7e7e7, + 0x003b3b3b,0x00fefefe,0x007f7f7f,0x00c5c5c5, + 0x00a4a4a4,0x00373737,0x00b1b1b1,0x004c4c4c, + 0x00919191,0x006e6e6e,0x008d8d8d,0x00767676, + 0x00030303,0x002d2d2d,0x00dedede,0x00969696, + 0x00262626,0x007d7d7d,0x00c6c6c6,0x005c5c5c, + 0x00d3d3d3,0x00f2f2f2,0x004f4f4f,0x00191919, + 0x003f3f3f,0x00dcdcdc,0x00797979,0x001d1d1d, + 0x00525252,0x00ebebeb,0x00f3f3f3,0x006d6d6d, + 0x005e5e5e,0x00fbfbfb,0x00696969,0x00b2b2b2, + 0x00f0f0f0,0x00313131,0x000c0c0c,0x00d4d4d4, + 0x00cfcfcf,0x008c8c8c,0x00e2e2e2,0x00757575, + 0x00a9a9a9,0x004a4a4a,0x00575757,0x00848484, + 0x00111111,0x00454545,0x001b1b1b,0x00f5f5f5, + 0x00e4e4e4,0x000e0e0e,0x00737373,0x00aaaaaa, + 0x00f1f1f1,0x00dddddd,0x00595959,0x00141414, + 0x006c6c6c,0x00929292,0x00545454,0x00d0d0d0, + 0x00787878,0x00707070,0x00e3e3e3,0x00494949, + 0x00808080,0x00505050,0x00a7a7a7,0x00f6f6f6, + 0x00777777,0x00939393,0x00868686,0x00838383, + 0x002a2a2a,0x00c7c7c7,0x005b5b5b,0x00e9e9e9, + 0x00eeeeee,0x008f8f8f,0x00010101,0x003d3d3d, +}; + +static const u32 camellia_sp3033[256] = { + 0x38003838,0x41004141,0x16001616,0x76007676, + 0xd900d9d9,0x93009393,0x60006060,0xf200f2f2, + 0x72007272,0xc200c2c2,0xab00abab,0x9a009a9a, + 0x75007575,0x06000606,0x57005757,0xa000a0a0, + 0x91009191,0xf700f7f7,0xb500b5b5,0xc900c9c9, + 0xa200a2a2,0x8c008c8c,0xd200d2d2,0x90009090, + 0xf600f6f6,0x07000707,0xa700a7a7,0x27002727, + 0x8e008e8e,0xb200b2b2,0x49004949,0xde00dede, + 0x43004343,0x5c005c5c,0xd700d7d7,0xc700c7c7, + 0x3e003e3e,0xf500f5f5,0x8f008f8f,0x67006767, + 0x1f001f1f,0x18001818,0x6e006e6e,0xaf00afaf, + 0x2f002f2f,0xe200e2e2,0x85008585,0x0d000d0d, + 0x53005353,0xf000f0f0,0x9c009c9c,0x65006565, + 0xea00eaea,0xa300a3a3,0xae00aeae,0x9e009e9e, + 0xec00ecec,0x80008080,0x2d002d2d,0x6b006b6b, + 0xa800a8a8,0x2b002b2b,0x36003636,0xa600a6a6, + 0xc500c5c5,0x86008686,0x4d004d4d,0x33003333, + 0xfd00fdfd,0x66006666,0x58005858,0x96009696, + 0x3a003a3a,0x09000909,0x95009595,0x10001010, + 0x78007878,0xd800d8d8,0x42004242,0xcc00cccc, + 0xef00efef,0x26002626,0xe500e5e5,0x61006161, + 0x1a001a1a,0x3f003f3f,0x3b003b3b,0x82008282, + 0xb600b6b6,0xdb00dbdb,0xd400d4d4,0x98009898, + 0xe800e8e8,0x8b008b8b,0x02000202,0xeb00ebeb, + 0x0a000a0a,0x2c002c2c,0x1d001d1d,0xb000b0b0, + 0x6f006f6f,0x8d008d8d,0x88008888,0x0e000e0e, + 0x19001919,0x87008787,0x4e004e4e,0x0b000b0b, + 0xa900a9a9,0x0c000c0c,0x79007979,0x11001111, + 0x7f007f7f,0x22002222,0xe700e7e7,0x59005959, + 0xe100e1e1,0xda00dada,0x3d003d3d,0xc800c8c8, + 0x12001212,0x04000404,0x74007474,0x54005454, + 0x30003030,0x7e007e7e,0xb400b4b4,0x28002828, + 0x55005555,0x68006868,0x50005050,0xbe00bebe, + 0xd000d0d0,0xc400c4c4,0x31003131,0xcb00cbcb, + 0x2a002a2a,0xad00adad,0x0f000f0f,0xca00caca, + 0x70007070,0xff00ffff,0x32003232,0x69006969, + 0x08000808,0x62006262,0x00000000,0x24002424, + 0xd100d1d1,0xfb00fbfb,0xba00baba,0xed00eded, + 0x45004545,0x81008181,0x73007373,0x6d006d6d, + 0x84008484,0x9f009f9f,0xee00eeee,0x4a004a4a, + 0xc300c3c3,0x2e002e2e,0xc100c1c1,0x01000101, + 0xe600e6e6,0x25002525,0x48004848,0x99009999, + 0xb900b9b9,0xb300b3b3,0x7b007b7b,0xf900f9f9, + 0xce00cece,0xbf00bfbf,0xdf00dfdf,0x71007171, + 0x29002929,0xcd00cdcd,0x6c006c6c,0x13001313, + 0x64006464,0x9b009b9b,0x63006363,0x9d009d9d, + 0xc000c0c0,0x4b004b4b,0xb700b7b7,0xa500a5a5, + 0x89008989,0x5f005f5f,0xb100b1b1,0x17001717, + 0xf400f4f4,0xbc00bcbc,0xd300d3d3,0x46004646, + 0xcf00cfcf,0x37003737,0x5e005e5e,0x47004747, + 0x94009494,0xfa00fafa,0xfc00fcfc,0x5b005b5b, + 0x97009797,0xfe00fefe,0x5a005a5a,0xac00acac, + 0x3c003c3c,0x4c004c4c,0x03000303,0x35003535, + 0xf300f3f3,0x23002323,0xb800b8b8,0x5d005d5d, + 0x6a006a6a,0x92009292,0xd500d5d5,0x21002121, + 0x44004444,0x51005151,0xc600c6c6,0x7d007d7d, + 0x39003939,0x83008383,0xdc00dcdc,0xaa00aaaa, + 0x7c007c7c,0x77007777,0x56005656,0x05000505, + 0x1b001b1b,0xa400a4a4,0x15001515,0x34003434, + 0x1e001e1e,0x1c001c1c,0xf800f8f8,0x52005252, + 0x20002020,0x14001414,0xe900e9e9,0xbd00bdbd, + 0xdd00dddd,0xe400e4e4,0xa100a1a1,0xe000e0e0, + 0x8a008a8a,0xf100f1f1,0xd600d6d6,0x7a007a7a, + 0xbb00bbbb,0xe300e3e3,0x40004040,0x4f004f4f, +}; + +static const u32 camellia_sp4404[256] = { + 0x70700070,0x2c2c002c,0xb3b300b3,0xc0c000c0, + 0xe4e400e4,0x57570057,0xeaea00ea,0xaeae00ae, + 0x23230023,0x6b6b006b,0x45450045,0xa5a500a5, + 0xeded00ed,0x4f4f004f,0x1d1d001d,0x92920092, + 0x86860086,0xafaf00af,0x7c7c007c,0x1f1f001f, + 0x3e3e003e,0xdcdc00dc,0x5e5e005e,0x0b0b000b, + 0xa6a600a6,0x39390039,0xd5d500d5,0x5d5d005d, + 0xd9d900d9,0x5a5a005a,0x51510051,0x6c6c006c, + 0x8b8b008b,0x9a9a009a,0xfbfb00fb,0xb0b000b0, + 0x74740074,0x2b2b002b,0xf0f000f0,0x84840084, + 0xdfdf00df,0xcbcb00cb,0x34340034,0x76760076, + 0x6d6d006d,0xa9a900a9,0xd1d100d1,0x04040004, + 0x14140014,0x3a3a003a,0xdede00de,0x11110011, + 0x32320032,0x9c9c009c,0x53530053,0xf2f200f2, + 0xfefe00fe,0xcfcf00cf,0xc3c300c3,0x7a7a007a, + 0x24240024,0xe8e800e8,0x60600060,0x69690069, + 0xaaaa00aa,0xa0a000a0,0xa1a100a1,0x62620062, + 0x54540054,0x1e1e001e,0xe0e000e0,0x64640064, + 0x10100010,0x00000000,0xa3a300a3,0x75750075, + 0x8a8a008a,0xe6e600e6,0x09090009,0xdddd00dd, + 0x87870087,0x83830083,0xcdcd00cd,0x90900090, + 0x73730073,0xf6f600f6,0x9d9d009d,0xbfbf00bf, + 0x52520052,0xd8d800d8,0xc8c800c8,0xc6c600c6, + 0x81810081,0x6f6f006f,0x13130013,0x63630063, + 0xe9e900e9,0xa7a700a7,0x9f9f009f,0xbcbc00bc, + 0x29290029,0xf9f900f9,0x2f2f002f,0xb4b400b4, + 0x78780078,0x06060006,0xe7e700e7,0x71710071, + 0xd4d400d4,0xabab00ab,0x88880088,0x8d8d008d, + 0x72720072,0xb9b900b9,0xf8f800f8,0xacac00ac, + 0x36360036,0x2a2a002a,0x3c3c003c,0xf1f100f1, + 0x40400040,0xd3d300d3,0xbbbb00bb,0x43430043, + 0x15150015,0xadad00ad,0x77770077,0x80800080, + 0x82820082,0xecec00ec,0x27270027,0xe5e500e5, + 0x85850085,0x35350035,0x0c0c000c,0x41410041, + 0xefef00ef,0x93930093,0x19190019,0x21210021, + 0x0e0e000e,0x4e4e004e,0x65650065,0xbdbd00bd, + 0xb8b800b8,0x8f8f008f,0xebeb00eb,0xcece00ce, + 0x30300030,0x5f5f005f,0xc5c500c5,0x1a1a001a, + 0xe1e100e1,0xcaca00ca,0x47470047,0x3d3d003d, + 0x01010001,0xd6d600d6,0x56560056,0x4d4d004d, + 0x0d0d000d,0x66660066,0xcccc00cc,0x2d2d002d, + 0x12120012,0x20200020,0xb1b100b1,0x99990099, + 0x4c4c004c,0xc2c200c2,0x7e7e007e,0x05050005, + 0xb7b700b7,0x31310031,0x17170017,0xd7d700d7, + 0x58580058,0x61610061,0x1b1b001b,0x1c1c001c, + 0x0f0f000f,0x16160016,0x18180018,0x22220022, + 0x44440044,0xb2b200b2,0xb5b500b5,0x91910091, + 0x08080008,0xa8a800a8,0xfcfc00fc,0x50500050, + 0xd0d000d0,0x7d7d007d,0x89890089,0x97970097, + 0x5b5b005b,0x95950095,0xffff00ff,0xd2d200d2, + 0xc4c400c4,0x48480048,0xf7f700f7,0xdbdb00db, + 0x03030003,0xdada00da,0x3f3f003f,0x94940094, + 0x5c5c005c,0x02020002,0x4a4a004a,0x33330033, + 0x67670067,0xf3f300f3,0x7f7f007f,0xe2e200e2, + 0x9b9b009b,0x26260026,0x37370037,0x3b3b003b, + 0x96960096,0x4b4b004b,0xbebe00be,0x2e2e002e, + 0x79790079,0x8c8c008c,0x6e6e006e,0x8e8e008e, + 0xf5f500f5,0xb6b600b6,0xfdfd00fd,0x59590059, + 0x98980098,0x6a6a006a,0x46460046,0xbaba00ba, + 0x25250025,0x42420042,0xa2a200a2,0xfafa00fa, + 0x07070007,0x55550055,0xeeee00ee,0x0a0a000a, + 0x49490049,0x68680068,0x38380038,0xa4a400a4, + 0x28280028,0x7b7b007b,0xc9c900c9,0xc1c100c1, + 0xe3e300e3,0xf4f400f4,0xc7c700c7,0x9e9e009e, +}; + + +/** + * Stuff related to the Camellia key schedule + */ +#define subl(x) subL[(x)] +#define subr(x) subR[(x)] + +void camellia_setup128(const unsigned char *key, u32 *subkey) +{ + u32 kll, klr, krl, krr; + u32 il, ir, t0, t1, w0, w1; + u32 kw4l, kw4r, dw, tl, tr; + u32 subL[26]; + u32 subR[26]; + + /** + * k == kll || klr || krl || krr (|| is concatination) + */ + kll = GETU32(key ); + klr = GETU32(key + 4); + krl = GETU32(key + 8); + krr = GETU32(key + 12); + /** + * generate KL dependent subkeys + */ + subl(0) = kll; subr(0) = klr; + subl(1) = krl; subr(1) = krr; + CAMELLIA_ROLDQ(kll, klr, krl, krr, w0, w1, 15); + subl(4) = kll; subr(4) = klr; + subl(5) = krl; subr(5) = krr; + CAMELLIA_ROLDQ(kll, klr, krl, krr, w0, w1, 30); + subl(10) = kll; subr(10) = klr; + subl(11) = krl; subr(11) = krr; + CAMELLIA_ROLDQ(kll, klr, krl, krr, w0, w1, 15); + subl(13) = krl; subr(13) = krr; + CAMELLIA_ROLDQ(kll, klr, krl, krr, w0, w1, 17); + subl(16) = kll; subr(16) = klr; + subl(17) = krl; subr(17) = krr; + CAMELLIA_ROLDQ(kll, klr, krl, krr, w0, w1, 17); + subl(18) = kll; subr(18) = klr; + subl(19) = krl; subr(19) = krr; + CAMELLIA_ROLDQ(kll, klr, krl, krr, w0, w1, 17); + subl(22) = kll; subr(22) = klr; + subl(23) = krl; subr(23) = krr; + + /* generate KA */ + kll = subl(0); klr = subr(0); + krl = subl(1); krr = subr(1); + CAMELLIA_F(kll, klr, + CAMELLIA_SIGMA1L, CAMELLIA_SIGMA1R, + w0, w1, il, ir, t0, t1); + krl ^= w0; krr ^= w1; + CAMELLIA_F(krl, krr, + CAMELLIA_SIGMA2L, CAMELLIA_SIGMA2R, + kll, klr, il, ir, t0, t1); + CAMELLIA_F(kll, klr, + CAMELLIA_SIGMA3L, CAMELLIA_SIGMA3R, + krl, krr, il, ir, t0, t1); + krl ^= w0; krr ^= w1; + CAMELLIA_F(krl, krr, + CAMELLIA_SIGMA4L, CAMELLIA_SIGMA4R, + w0, w1, il, ir, t0, t1); + kll ^= w0; klr ^= w1; + + /* generate KA dependent subkeys */ + subl(2) = kll; subr(2) = klr; + subl(3) = krl; subr(3) = krr; + CAMELLIA_ROLDQ(kll, klr, krl, krr, w0, w1, 15); + subl(6) = kll; subr(6) = klr; + subl(7) = krl; subr(7) = krr; + CAMELLIA_ROLDQ(kll, klr, krl, krr, w0, w1, 15); + subl(8) = kll; subr(8) = klr; + subl(9) = krl; subr(9) = krr; + CAMELLIA_ROLDQ(kll, klr, krl, krr, w0, w1, 15); + subl(12) = kll; subr(12) = klr; + CAMELLIA_ROLDQ(kll, klr, krl, krr, w0, w1, 15); + subl(14) = kll; subr(14) = klr; + subl(15) = krl; subr(15) = krr; + CAMELLIA_ROLDQo32(kll, klr, krl, krr, w0, w1, 34); + subl(20) = kll; subr(20) = klr; + subl(21) = krl; subr(21) = krr; + CAMELLIA_ROLDQ(kll, klr, krl, krr, w0, w1, 17); + subl(24) = kll; subr(24) = klr; + subl(25) = krl; subr(25) = krr; + + + /* absorb kw2 to other subkeys */ + subl(3) ^= subl(1); subr(3) ^= subr(1); + subl(5) ^= subl(1); subr(5) ^= subr(1); + subl(7) ^= subl(1); subr(7) ^= subr(1); + subl(1) ^= subr(1) & ~subr(9); + dw = subl(1) & subl(9), subr(1) ^= CAMELLIA_RL1(dw); + subl(11) ^= subl(1); subr(11) ^= subr(1); + subl(13) ^= subl(1); subr(13) ^= subr(1); + subl(15) ^= subl(1); subr(15) ^= subr(1); + subl(1) ^= subr(1) & ~subr(17); + dw = subl(1) & subl(17), subr(1) ^= CAMELLIA_RL1(dw); + subl(19) ^= subl(1); subr(19) ^= subr(1); + subl(21) ^= subl(1); subr(21) ^= subr(1); + subl(23) ^= subl(1); subr(23) ^= subr(1); + subl(24) ^= subl(1); subr(24) ^= subr(1); + + /* absorb kw4 to other subkeys */ + kw4l = subl(25); kw4r = subr(25); + subl(22) ^= kw4l; subr(22) ^= kw4r; + subl(20) ^= kw4l; subr(20) ^= kw4r; + subl(18) ^= kw4l; subr(18) ^= kw4r; + kw4l ^= kw4r & ~subr(16); + dw = kw4l & subl(16), kw4r ^= CAMELLIA_RL1(dw); + subl(14) ^= kw4l; subr(14) ^= kw4r; + subl(12) ^= kw4l; subr(12) ^= kw4r; + subl(10) ^= kw4l; subr(10) ^= kw4r; + kw4l ^= kw4r & ~subr(8); + dw = kw4l & subl(8), kw4r ^= CAMELLIA_RL1(dw); + subl(6) ^= kw4l; subr(6) ^= kw4r; + subl(4) ^= kw4l; subr(4) ^= kw4r; + subl(2) ^= kw4l; subr(2) ^= kw4r; + subl(0) ^= kw4l; subr(0) ^= kw4r; + + /* key XOR is end of F-function */ + CamelliaSubkeyL(0) = subl(0) ^ subl(2); + CamelliaSubkeyR(0) = subr(0) ^ subr(2); + CamelliaSubkeyL(2) = subl(3); + CamelliaSubkeyR(2) = subr(3); + CamelliaSubkeyL(3) = subl(2) ^ subl(4); + CamelliaSubkeyR(3) = subr(2) ^ subr(4); + CamelliaSubkeyL(4) = subl(3) ^ subl(5); + CamelliaSubkeyR(4) = subr(3) ^ subr(5); + CamelliaSubkeyL(5) = subl(4) ^ subl(6); + CamelliaSubkeyR(5) = subr(4) ^ subr(6); + CamelliaSubkeyL(6) = subl(5) ^ subl(7); + CamelliaSubkeyR(6) = subr(5) ^ subr(7); + tl = subl(10) ^ (subr(10) & ~subr(8)); + dw = tl & subl(8), tr = subr(10) ^ CAMELLIA_RL1(dw); + CamelliaSubkeyL(7) = subl(6) ^ tl; + CamelliaSubkeyR(7) = subr(6) ^ tr; + CamelliaSubkeyL(8) = subl(8); + CamelliaSubkeyR(8) = subr(8); + CamelliaSubkeyL(9) = subl(9); + CamelliaSubkeyR(9) = subr(9); + tl = subl(7) ^ (subr(7) & ~subr(9)); + dw = tl & subl(9), tr = subr(7) ^ CAMELLIA_RL1(dw); + CamelliaSubkeyL(10) = tl ^ subl(11); + CamelliaSubkeyR(10) = tr ^ subr(11); + CamelliaSubkeyL(11) = subl(10) ^ subl(12); + CamelliaSubkeyR(11) = subr(10) ^ subr(12); + CamelliaSubkeyL(12) = subl(11) ^ subl(13); + CamelliaSubkeyR(12) = subr(11) ^ subr(13); + CamelliaSubkeyL(13) = subl(12) ^ subl(14); + CamelliaSubkeyR(13) = subr(12) ^ subr(14); + CamelliaSubkeyL(14) = subl(13) ^ subl(15); + CamelliaSubkeyR(14) = subr(13) ^ subr(15); + tl = subl(18) ^ (subr(18) & ~subr(16)); + dw = tl & subl(16), tr = subr(18) ^ CAMELLIA_RL1(dw); + CamelliaSubkeyL(15) = subl(14) ^ tl; + CamelliaSubkeyR(15) = subr(14) ^ tr; + CamelliaSubkeyL(16) = subl(16); + CamelliaSubkeyR(16) = subr(16); + CamelliaSubkeyL(17) = subl(17); + CamelliaSubkeyR(17) = subr(17); + tl = subl(15) ^ (subr(15) & ~subr(17)); + dw = tl & subl(17), tr = subr(15) ^ CAMELLIA_RL1(dw); + CamelliaSubkeyL(18) = tl ^ subl(19); + CamelliaSubkeyR(18) = tr ^ subr(19); + CamelliaSubkeyL(19) = subl(18) ^ subl(20); + CamelliaSubkeyR(19) = subr(18) ^ subr(20); + CamelliaSubkeyL(20) = subl(19) ^ subl(21); + CamelliaSubkeyR(20) = subr(19) ^ subr(21); + CamelliaSubkeyL(21) = subl(20) ^ subl(22); + CamelliaSubkeyR(21) = subr(20) ^ subr(22); + CamelliaSubkeyL(22) = subl(21) ^ subl(23); + CamelliaSubkeyR(22) = subr(21) ^ subr(23); + CamelliaSubkeyL(23) = subl(22); + CamelliaSubkeyR(23) = subr(22); + CamelliaSubkeyL(24) = subl(24) ^ subl(23); + CamelliaSubkeyR(24) = subr(24) ^ subr(23); + + /* apply the inverse of the last half of P-function */ + dw = CamelliaSubkeyL(2) ^ CamelliaSubkeyR(2), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(2) = CamelliaSubkeyL(2) ^ dw, CamelliaSubkeyL(2) = dw; + dw = CamelliaSubkeyL(3) ^ CamelliaSubkeyR(3), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(3) = CamelliaSubkeyL(3) ^ dw, CamelliaSubkeyL(3) = dw; + dw = CamelliaSubkeyL(4) ^ CamelliaSubkeyR(4), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(4) = CamelliaSubkeyL(4) ^ dw, CamelliaSubkeyL(4) = dw; + dw = CamelliaSubkeyL(5) ^ CamelliaSubkeyR(5), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(5) = CamelliaSubkeyL(5) ^ dw, CamelliaSubkeyL(5) = dw; + dw = CamelliaSubkeyL(6) ^ CamelliaSubkeyR(6), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(6) = CamelliaSubkeyL(6) ^ dw, CamelliaSubkeyL(6) = dw; + dw = CamelliaSubkeyL(7) ^ CamelliaSubkeyR(7), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(7) = CamelliaSubkeyL(7) ^ dw, CamelliaSubkeyL(7) = dw; + dw = CamelliaSubkeyL(10) ^ CamelliaSubkeyR(10), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(10) = CamelliaSubkeyL(10) ^ dw, CamelliaSubkeyL(10) = dw; + dw = CamelliaSubkeyL(11) ^ CamelliaSubkeyR(11), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(11) = CamelliaSubkeyL(11) ^ dw, CamelliaSubkeyL(11) = dw; + dw = CamelliaSubkeyL(12) ^ CamelliaSubkeyR(12), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(12) = CamelliaSubkeyL(12) ^ dw, CamelliaSubkeyL(12) = dw; + dw = CamelliaSubkeyL(13) ^ CamelliaSubkeyR(13), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(13) = CamelliaSubkeyL(13) ^ dw, CamelliaSubkeyL(13) = dw; + dw = CamelliaSubkeyL(14) ^ CamelliaSubkeyR(14), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(14) = CamelliaSubkeyL(14) ^ dw, CamelliaSubkeyL(14) = dw; + dw = CamelliaSubkeyL(15) ^ CamelliaSubkeyR(15), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(15) = CamelliaSubkeyL(15) ^ dw, CamelliaSubkeyL(15) = dw; + dw = CamelliaSubkeyL(18) ^ CamelliaSubkeyR(18), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(18) = CamelliaSubkeyL(18) ^ dw, CamelliaSubkeyL(18) = dw; + dw = CamelliaSubkeyL(19) ^ CamelliaSubkeyR(19), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(19) = CamelliaSubkeyL(19) ^ dw, CamelliaSubkeyL(19) = dw; + dw = CamelliaSubkeyL(20) ^ CamelliaSubkeyR(20), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(20) = CamelliaSubkeyL(20) ^ dw, CamelliaSubkeyL(20) = dw; + dw = CamelliaSubkeyL(21) ^ CamelliaSubkeyR(21), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(21) = CamelliaSubkeyL(21) ^ dw, CamelliaSubkeyL(21) = dw; + dw = CamelliaSubkeyL(22) ^ CamelliaSubkeyR(22), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(22) = CamelliaSubkeyL(22) ^ dw, CamelliaSubkeyL(22) = dw; + dw = CamelliaSubkeyL(23) ^ CamelliaSubkeyR(23), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(23) = CamelliaSubkeyL(23) ^ dw, CamelliaSubkeyL(23) = dw; + + return; +} + +void camellia_setup256(const unsigned char *key, u32 *subkey) +{ + u32 kll,klr,krl,krr; /* left half of key */ + u32 krll,krlr,krrl,krrr; /* right half of key */ + u32 il, ir, t0, t1, w0, w1; /* temporary variables */ + u32 kw4l, kw4r, dw, tl, tr; + u32 subL[34]; + u32 subR[34]; + + /** + * key = (kll || klr || krl || krr || krll || krlr || krrl || krrr) + * (|| is concatination) + */ + + kll = GETU32(key ); + klr = GETU32(key + 4); + krl = GETU32(key + 8); + krr = GETU32(key + 12); + krll = GETU32(key + 16); + krlr = GETU32(key + 20); + krrl = GETU32(key + 24); + krrr = GETU32(key + 28); + + /* generate KL dependent subkeys */ + subl(0) = kll; subr(0) = klr; + subl(1) = krl; subr(1) = krr; + CAMELLIA_ROLDQo32(kll, klr, krl, krr, w0, w1, 45); + subl(12) = kll; subr(12) = klr; + subl(13) = krl; subr(13) = krr; + CAMELLIA_ROLDQ(kll, klr, krl, krr, w0, w1, 15); + subl(16) = kll; subr(16) = klr; + subl(17) = krl; subr(17) = krr; + CAMELLIA_ROLDQ(kll, klr, krl, krr, w0, w1, 17); + subl(22) = kll; subr(22) = klr; + subl(23) = krl; subr(23) = krr; + CAMELLIA_ROLDQo32(kll, klr, krl, krr, w0, w1, 34); + subl(30) = kll; subr(30) = klr; + subl(31) = krl; subr(31) = krr; + + /* generate KR dependent subkeys */ + CAMELLIA_ROLDQ(krll, krlr, krrl, krrr, w0, w1, 15); + subl(4) = krll; subr(4) = krlr; + subl(5) = krrl; subr(5) = krrr; + CAMELLIA_ROLDQ(krll, krlr, krrl, krrr, w0, w1, 15); + subl(8) = krll; subr(8) = krlr; + subl(9) = krrl; subr(9) = krrr; + CAMELLIA_ROLDQ(krll, krlr, krrl, krrr, w0, w1, 30); + subl(18) = krll; subr(18) = krlr; + subl(19) = krrl; subr(19) = krrr; + CAMELLIA_ROLDQo32(krll, krlr, krrl, krrr, w0, w1, 34); + subl(26) = krll; subr(26) = krlr; + subl(27) = krrl; subr(27) = krrr; + CAMELLIA_ROLDQo32(krll, krlr, krrl, krrr, w0, w1, 34); + + /* generate KA */ + kll = subl(0) ^ krll; klr = subr(0) ^ krlr; + krl = subl(1) ^ krrl; krr = subr(1) ^ krrr; + CAMELLIA_F(kll, klr, + CAMELLIA_SIGMA1L, CAMELLIA_SIGMA1R, + w0, w1, il, ir, t0, t1); + krl ^= w0; krr ^= w1; + CAMELLIA_F(krl, krr, + CAMELLIA_SIGMA2L, CAMELLIA_SIGMA2R, + kll, klr, il, ir, t0, t1); + kll ^= krll; klr ^= krlr; + CAMELLIA_F(kll, klr, + CAMELLIA_SIGMA3L, CAMELLIA_SIGMA3R, + krl, krr, il, ir, t0, t1); + krl ^= w0 ^ krrl; krr ^= w1 ^ krrr; + CAMELLIA_F(krl, krr, + CAMELLIA_SIGMA4L, CAMELLIA_SIGMA4R, + w0, w1, il, ir, t0, t1); + kll ^= w0; klr ^= w1; + + /* generate KB */ + krll ^= kll; krlr ^= klr; + krrl ^= krl; krrr ^= krr; + CAMELLIA_F(krll, krlr, + CAMELLIA_SIGMA5L, CAMELLIA_SIGMA5R, + w0, w1, il, ir, t0, t1); + krrl ^= w0; krrr ^= w1; + CAMELLIA_F(krrl, krrr, + CAMELLIA_SIGMA6L, CAMELLIA_SIGMA6R, + w0, w1, il, ir, t0, t1); + krll ^= w0; krlr ^= w1; + + /* generate KA dependent subkeys */ + CAMELLIA_ROLDQ(kll, klr, krl, krr, w0, w1, 15); + subl(6) = kll; subr(6) = klr; + subl(7) = krl; subr(7) = krr; + CAMELLIA_ROLDQ(kll, klr, krl, krr, w0, w1, 30); + subl(14) = kll; subr(14) = klr; + subl(15) = krl; subr(15) = krr; + subl(24) = klr; subr(24) = krl; + subl(25) = krr; subr(25) = kll; + CAMELLIA_ROLDQo32(kll, klr, krl, krr, w0, w1, 49); + subl(28) = kll; subr(28) = klr; + subl(29) = krl; subr(29) = krr; + + /* generate KB dependent subkeys */ + subl(2) = krll; subr(2) = krlr; + subl(3) = krrl; subr(3) = krrr; + CAMELLIA_ROLDQ(krll, krlr, krrl, krrr, w0, w1, 30); + subl(10) = krll; subr(10) = krlr; + subl(11) = krrl; subr(11) = krrr; + CAMELLIA_ROLDQ(krll, krlr, krrl, krrr, w0, w1, 30); + subl(20) = krll; subr(20) = krlr; + subl(21) = krrl; subr(21) = krrr; + CAMELLIA_ROLDQo32(krll, krlr, krrl, krrr, w0, w1, 51); + subl(32) = krll; subr(32) = krlr; + subl(33) = krrl; subr(33) = krrr; + + /* absorb kw2 to other subkeys */ + subl(3) ^= subl(1); subr(3) ^= subr(1); + subl(5) ^= subl(1); subr(5) ^= subr(1); + subl(7) ^= subl(1); subr(7) ^= subr(1); + subl(1) ^= subr(1) & ~subr(9); + dw = subl(1) & subl(9), subr(1) ^= CAMELLIA_RL1(dw); + subl(11) ^= subl(1); subr(11) ^= subr(1); + subl(13) ^= subl(1); subr(13) ^= subr(1); + subl(15) ^= subl(1); subr(15) ^= subr(1); + subl(1) ^= subr(1) & ~subr(17); + dw = subl(1) & subl(17), subr(1) ^= CAMELLIA_RL1(dw); + subl(19) ^= subl(1); subr(19) ^= subr(1); + subl(21) ^= subl(1); subr(21) ^= subr(1); + subl(23) ^= subl(1); subr(23) ^= subr(1); + subl(1) ^= subr(1) & ~subr(25); + dw = subl(1) & subl(25), subr(1) ^= CAMELLIA_RL1(dw); + subl(27) ^= subl(1); subr(27) ^= subr(1); + subl(29) ^= subl(1); subr(29) ^= subr(1); + subl(31) ^= subl(1); subr(31) ^= subr(1); + subl(32) ^= subl(1); subr(32) ^= subr(1); + + /* absorb kw4 to other subkeys */ + kw4l = subl(33); kw4r = subr(33); + subl(30) ^= kw4l; subr(30) ^= kw4r; + subl(28) ^= kw4l; subr(28) ^= kw4r; + subl(26) ^= kw4l; subr(26) ^= kw4r; + kw4l ^= kw4r & ~subr(24); + dw = kw4l & subl(24), kw4r ^= CAMELLIA_RL1(dw); + subl(22) ^= kw4l; subr(22) ^= kw4r; + subl(20) ^= kw4l; subr(20) ^= kw4r; + subl(18) ^= kw4l; subr(18) ^= kw4r; + kw4l ^= kw4r & ~subr(16); + dw = kw4l & subl(16), kw4r ^= CAMELLIA_RL1(dw); + subl(14) ^= kw4l; subr(14) ^= kw4r; + subl(12) ^= kw4l; subr(12) ^= kw4r; + subl(10) ^= kw4l; subr(10) ^= kw4r; + kw4l ^= kw4r & ~subr(8); + dw = kw4l & subl(8), kw4r ^= CAMELLIA_RL1(dw); + subl(6) ^= kw4l; subr(6) ^= kw4r; + subl(4) ^= kw4l; subr(4) ^= kw4r; + subl(2) ^= kw4l; subr(2) ^= kw4r; + subl(0) ^= kw4l; subr(0) ^= kw4r; + + /* key XOR is end of F-function */ + CamelliaSubkeyL(0) = subl(0) ^ subl(2); + CamelliaSubkeyR(0) = subr(0) ^ subr(2); + CamelliaSubkeyL(2) = subl(3); + CamelliaSubkeyR(2) = subr(3); + CamelliaSubkeyL(3) = subl(2) ^ subl(4); + CamelliaSubkeyR(3) = subr(2) ^ subr(4); + CamelliaSubkeyL(4) = subl(3) ^ subl(5); + CamelliaSubkeyR(4) = subr(3) ^ subr(5); + CamelliaSubkeyL(5) = subl(4) ^ subl(6); + CamelliaSubkeyR(5) = subr(4) ^ subr(6); + CamelliaSubkeyL(6) = subl(5) ^ subl(7); + CamelliaSubkeyR(6) = subr(5) ^ subr(7); + tl = subl(10) ^ (subr(10) & ~subr(8)); + dw = tl & subl(8), tr = subr(10) ^ CAMELLIA_RL1(dw); + CamelliaSubkeyL(7) = subl(6) ^ tl; + CamelliaSubkeyR(7) = subr(6) ^ tr; + CamelliaSubkeyL(8) = subl(8); + CamelliaSubkeyR(8) = subr(8); + CamelliaSubkeyL(9) = subl(9); + CamelliaSubkeyR(9) = subr(9); + tl = subl(7) ^ (subr(7) & ~subr(9)); + dw = tl & subl(9), tr = subr(7) ^ CAMELLIA_RL1(dw); + CamelliaSubkeyL(10) = tl ^ subl(11); + CamelliaSubkeyR(10) = tr ^ subr(11); + CamelliaSubkeyL(11) = subl(10) ^ subl(12); + CamelliaSubkeyR(11) = subr(10) ^ subr(12); + CamelliaSubkeyL(12) = subl(11) ^ subl(13); + CamelliaSubkeyR(12) = subr(11) ^ subr(13); + CamelliaSubkeyL(13) = subl(12) ^ subl(14); + CamelliaSubkeyR(13) = subr(12) ^ subr(14); + CamelliaSubkeyL(14) = subl(13) ^ subl(15); + CamelliaSubkeyR(14) = subr(13) ^ subr(15); + tl = subl(18) ^ (subr(18) & ~subr(16)); + dw = tl & subl(16), tr = subr(18) ^ CAMELLIA_RL1(dw); + CamelliaSubkeyL(15) = subl(14) ^ tl; + CamelliaSubkeyR(15) = subr(14) ^ tr; + CamelliaSubkeyL(16) = subl(16); + CamelliaSubkeyR(16) = subr(16); + CamelliaSubkeyL(17) = subl(17); + CamelliaSubkeyR(17) = subr(17); + tl = subl(15) ^ (subr(15) & ~subr(17)); + dw = tl & subl(17), tr = subr(15) ^ CAMELLIA_RL1(dw); + CamelliaSubkeyL(18) = tl ^ subl(19); + CamelliaSubkeyR(18) = tr ^ subr(19); + CamelliaSubkeyL(19) = subl(18) ^ subl(20); + CamelliaSubkeyR(19) = subr(18) ^ subr(20); + CamelliaSubkeyL(20) = subl(19) ^ subl(21); + CamelliaSubkeyR(20) = subr(19) ^ subr(21); + CamelliaSubkeyL(21) = subl(20) ^ subl(22); + CamelliaSubkeyR(21) = subr(20) ^ subr(22); + CamelliaSubkeyL(22) = subl(21) ^ subl(23); + CamelliaSubkeyR(22) = subr(21) ^ subr(23); + tl = subl(26) ^ (subr(26) & ~subr(24)); + dw = tl & subl(24), tr = subr(26) ^ CAMELLIA_RL1(dw); + CamelliaSubkeyL(23) = subl(22) ^ tl; + CamelliaSubkeyR(23) = subr(22) ^ tr; + CamelliaSubkeyL(24) = subl(24); + CamelliaSubkeyR(24) = subr(24); + CamelliaSubkeyL(25) = subl(25); + CamelliaSubkeyR(25) = subr(25); + tl = subl(23) ^ (subr(23) & ~subr(25)); + dw = tl & subl(25), tr = subr(23) ^ CAMELLIA_RL1(dw); + CamelliaSubkeyL(26) = tl ^ subl(27); + CamelliaSubkeyR(26) = tr ^ subr(27); + CamelliaSubkeyL(27) = subl(26) ^ subl(28); + CamelliaSubkeyR(27) = subr(26) ^ subr(28); + CamelliaSubkeyL(28) = subl(27) ^ subl(29); + CamelliaSubkeyR(28) = subr(27) ^ subr(29); + CamelliaSubkeyL(29) = subl(28) ^ subl(30); + CamelliaSubkeyR(29) = subr(28) ^ subr(30); + CamelliaSubkeyL(30) = subl(29) ^ subl(31); + CamelliaSubkeyR(30) = subr(29) ^ subr(31); + CamelliaSubkeyL(31) = subl(30); + CamelliaSubkeyR(31) = subr(30); + CamelliaSubkeyL(32) = subl(32) ^ subl(31); + CamelliaSubkeyR(32) = subr(32) ^ subr(31); + + /* apply the inverse of the last half of P-function */ + dw = CamelliaSubkeyL(2) ^ CamelliaSubkeyR(2), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(2) = CamelliaSubkeyL(2) ^ dw, CamelliaSubkeyL(2) = dw; + dw = CamelliaSubkeyL(3) ^ CamelliaSubkeyR(3), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(3) = CamelliaSubkeyL(3) ^ dw, CamelliaSubkeyL(3) = dw; + dw = CamelliaSubkeyL(4) ^ CamelliaSubkeyR(4), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(4) = CamelliaSubkeyL(4) ^ dw, CamelliaSubkeyL(4) = dw; + dw = CamelliaSubkeyL(5) ^ CamelliaSubkeyR(5), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(5) = CamelliaSubkeyL(5) ^ dw, CamelliaSubkeyL(5) = dw; + dw = CamelliaSubkeyL(6) ^ CamelliaSubkeyR(6), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(6) = CamelliaSubkeyL(6) ^ dw, CamelliaSubkeyL(6) = dw; + dw = CamelliaSubkeyL(7) ^ CamelliaSubkeyR(7), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(7) = CamelliaSubkeyL(7) ^ dw, CamelliaSubkeyL(7) = dw; + dw = CamelliaSubkeyL(10) ^ CamelliaSubkeyR(10), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(10) = CamelliaSubkeyL(10) ^ dw, CamelliaSubkeyL(10) = dw; + dw = CamelliaSubkeyL(11) ^ CamelliaSubkeyR(11), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(11) = CamelliaSubkeyL(11) ^ dw, CamelliaSubkeyL(11) = dw; + dw = CamelliaSubkeyL(12) ^ CamelliaSubkeyR(12), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(12) = CamelliaSubkeyL(12) ^ dw, CamelliaSubkeyL(12) = dw; + dw = CamelliaSubkeyL(13) ^ CamelliaSubkeyR(13), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(13) = CamelliaSubkeyL(13) ^ dw, CamelliaSubkeyL(13) = dw; + dw = CamelliaSubkeyL(14) ^ CamelliaSubkeyR(14), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(14) = CamelliaSubkeyL(14) ^ dw, CamelliaSubkeyL(14) = dw; + dw = CamelliaSubkeyL(15) ^ CamelliaSubkeyR(15), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(15) = CamelliaSubkeyL(15) ^ dw, CamelliaSubkeyL(15) = dw; + dw = CamelliaSubkeyL(18) ^ CamelliaSubkeyR(18), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(18) = CamelliaSubkeyL(18) ^ dw, CamelliaSubkeyL(18) = dw; + dw = CamelliaSubkeyL(19) ^ CamelliaSubkeyR(19), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(19) = CamelliaSubkeyL(19) ^ dw, CamelliaSubkeyL(19) = dw; + dw = CamelliaSubkeyL(20) ^ CamelliaSubkeyR(20), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(20) = CamelliaSubkeyL(20) ^ dw, CamelliaSubkeyL(20) = dw; + dw = CamelliaSubkeyL(21) ^ CamelliaSubkeyR(21), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(21) = CamelliaSubkeyL(21) ^ dw, CamelliaSubkeyL(21) = dw; + dw = CamelliaSubkeyL(22) ^ CamelliaSubkeyR(22), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(22) = CamelliaSubkeyL(22) ^ dw, CamelliaSubkeyL(22) = dw; + dw = CamelliaSubkeyL(23) ^ CamelliaSubkeyR(23), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(23) = CamelliaSubkeyL(23) ^ dw, CamelliaSubkeyL(23) = dw; + dw = CamelliaSubkeyL(26) ^ CamelliaSubkeyR(26), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(26) = CamelliaSubkeyL(26) ^ dw, CamelliaSubkeyL(26) = dw; + dw = CamelliaSubkeyL(27) ^ CamelliaSubkeyR(27), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(27) = CamelliaSubkeyL(27) ^ dw, CamelliaSubkeyL(27) = dw; + dw = CamelliaSubkeyL(28) ^ CamelliaSubkeyR(28), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(28) = CamelliaSubkeyL(28) ^ dw, CamelliaSubkeyL(28) = dw; + dw = CamelliaSubkeyL(29) ^ CamelliaSubkeyR(29), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(29) = CamelliaSubkeyL(29) ^ dw, CamelliaSubkeyL(29) = dw; + dw = CamelliaSubkeyL(30) ^ CamelliaSubkeyR(30), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(30) = CamelliaSubkeyL(30) ^ dw, CamelliaSubkeyL(30) = dw; + dw = CamelliaSubkeyL(31) ^ CamelliaSubkeyR(31), dw = CAMELLIA_RL8(dw); + CamelliaSubkeyR(31) = CamelliaSubkeyL(31) ^ dw,CamelliaSubkeyL(31) = dw; + + return; +} + +void camellia_setup192(const unsigned char *key, u32 *subkey) +{ + unsigned char kk[32]; + u32 krll, krlr, krrl,krrr; + + memcpy(kk, key, 24); + memcpy((unsigned char *)&krll, key+16,4); + memcpy((unsigned char *)&krlr, key+20,4); + krrl = ~krll; + krrr = ~krlr; + memcpy(kk+24, (unsigned char *)&krrl, 4); + memcpy(kk+28, (unsigned char *)&krrr, 4); + camellia_setup256(kk, subkey); + return; +} + + +/** + * Stuff related to camellia encryption/decryption + * + * "io" must be 4byte aligned and big-endian data. + */ +void camellia_encrypt128(const u32 *subkey, u32 *io) +{ + u32 il, ir, t0, t1; + + /* pre whitening but absorb kw2*/ + io[0] ^= CamelliaSubkeyL(0); + io[1] ^= CamelliaSubkeyR(0); + /* main iteration */ + + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(2),CamelliaSubkeyR(2), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(3),CamelliaSubkeyR(3), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(4),CamelliaSubkeyR(4), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(5),CamelliaSubkeyR(5), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(6),CamelliaSubkeyR(6), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(7),CamelliaSubkeyR(7), + io[0],io[1],il,ir,t0,t1); + + CAMELLIA_FLS(io[0],io[1],io[2],io[3], + CamelliaSubkeyL(8),CamelliaSubkeyR(8), + CamelliaSubkeyL(9),CamelliaSubkeyR(9), + t0,t1,il,ir); + + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(10),CamelliaSubkeyR(10), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(11),CamelliaSubkeyR(11), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(12),CamelliaSubkeyR(12), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(13),CamelliaSubkeyR(13), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(14),CamelliaSubkeyR(14), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(15),CamelliaSubkeyR(15), + io[0],io[1],il,ir,t0,t1); + + CAMELLIA_FLS(io[0],io[1],io[2],io[3], + CamelliaSubkeyL(16),CamelliaSubkeyR(16), + CamelliaSubkeyL(17),CamelliaSubkeyR(17), + t0,t1,il,ir); + + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(18),CamelliaSubkeyR(18), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(19),CamelliaSubkeyR(19), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(20),CamelliaSubkeyR(20), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(21),CamelliaSubkeyR(21), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(22),CamelliaSubkeyR(22), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(23),CamelliaSubkeyR(23), + io[0],io[1],il,ir,t0,t1); + + /* post whitening but kw4 */ + io[2] ^= CamelliaSubkeyL(24); + io[3] ^= CamelliaSubkeyR(24); + + t0 = io[0]; + t1 = io[1]; + io[0] = io[2]; + io[1] = io[3]; + io[2] = t0; + io[3] = t1; + + return; +} + +void camellia_decrypt128(const u32 *subkey, u32 *io) +{ + u32 il,ir,t0,t1; /* temporary valiables */ + + /* pre whitening but absorb kw2*/ + io[0] ^= CamelliaSubkeyL(24); + io[1] ^= CamelliaSubkeyR(24); + + /* main iteration */ + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(23),CamelliaSubkeyR(23), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(22),CamelliaSubkeyR(22), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(21),CamelliaSubkeyR(21), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(20),CamelliaSubkeyR(20), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(19),CamelliaSubkeyR(19), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(18),CamelliaSubkeyR(18), + io[0],io[1],il,ir,t0,t1); + + CAMELLIA_FLS(io[0],io[1],io[2],io[3], + CamelliaSubkeyL(17),CamelliaSubkeyR(17), + CamelliaSubkeyL(16),CamelliaSubkeyR(16), + t0,t1,il,ir); + + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(15),CamelliaSubkeyR(15), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(14),CamelliaSubkeyR(14), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(13),CamelliaSubkeyR(13), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(12),CamelliaSubkeyR(12), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(11),CamelliaSubkeyR(11), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(10),CamelliaSubkeyR(10), + io[0],io[1],il,ir,t0,t1); + + CAMELLIA_FLS(io[0],io[1],io[2],io[3], + CamelliaSubkeyL(9),CamelliaSubkeyR(9), + CamelliaSubkeyL(8),CamelliaSubkeyR(8), + t0,t1,il,ir); + + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(7),CamelliaSubkeyR(7), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(6),CamelliaSubkeyR(6), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(5),CamelliaSubkeyR(5), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(4),CamelliaSubkeyR(4), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(3),CamelliaSubkeyR(3), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(2),CamelliaSubkeyR(2), + io[0],io[1],il,ir,t0,t1); + + /* post whitening but kw4 */ + io[2] ^= CamelliaSubkeyL(0); + io[3] ^= CamelliaSubkeyR(0); + + t0 = io[0]; + t1 = io[1]; + io[0] = io[2]; + io[1] = io[3]; + io[2] = t0; + io[3] = t1; + + return; +} + +/** + * stuff for 192 and 256bit encryption/decryption + */ +void camellia_encrypt256(const u32 *subkey, u32 *io) +{ + u32 il,ir,t0,t1; /* temporary valiables */ + + /* pre whitening but absorb kw2*/ + io[0] ^= CamelliaSubkeyL(0); + io[1] ^= CamelliaSubkeyR(0); + + /* main iteration */ + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(2),CamelliaSubkeyR(2), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(3),CamelliaSubkeyR(3), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(4),CamelliaSubkeyR(4), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(5),CamelliaSubkeyR(5), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(6),CamelliaSubkeyR(6), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(7),CamelliaSubkeyR(7), + io[0],io[1],il,ir,t0,t1); + + CAMELLIA_FLS(io[0],io[1],io[2],io[3], + CamelliaSubkeyL(8),CamelliaSubkeyR(8), + CamelliaSubkeyL(9),CamelliaSubkeyR(9), + t0,t1,il,ir); + + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(10),CamelliaSubkeyR(10), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(11),CamelliaSubkeyR(11), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(12),CamelliaSubkeyR(12), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(13),CamelliaSubkeyR(13), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(14),CamelliaSubkeyR(14), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(15),CamelliaSubkeyR(15), + io[0],io[1],il,ir,t0,t1); + + CAMELLIA_FLS(io[0],io[1],io[2],io[3], + CamelliaSubkeyL(16),CamelliaSubkeyR(16), + CamelliaSubkeyL(17),CamelliaSubkeyR(17), + t0,t1,il,ir); + + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(18),CamelliaSubkeyR(18), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(19),CamelliaSubkeyR(19), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(20),CamelliaSubkeyR(20), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(21),CamelliaSubkeyR(21), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(22),CamelliaSubkeyR(22), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(23),CamelliaSubkeyR(23), + io[0],io[1],il,ir,t0,t1); + + CAMELLIA_FLS(io[0],io[1],io[2],io[3], + CamelliaSubkeyL(24),CamelliaSubkeyR(24), + CamelliaSubkeyL(25),CamelliaSubkeyR(25), + t0,t1,il,ir); + + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(26),CamelliaSubkeyR(26), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(27),CamelliaSubkeyR(27), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(28),CamelliaSubkeyR(28), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(29),CamelliaSubkeyR(29), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(30),CamelliaSubkeyR(30), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(31),CamelliaSubkeyR(31), + io[0],io[1],il,ir,t0,t1); + + /* post whitening but kw4 */ + io[2] ^= CamelliaSubkeyL(32); + io[3] ^= CamelliaSubkeyR(32); + + t0 = io[0]; + t1 = io[1]; + io[0] = io[2]; + io[1] = io[3]; + io[2] = t0; + io[3] = t1; + + return; +} + +void camellia_decrypt256(const u32 *subkey, u32 *io) +{ + u32 il,ir,t0,t1; /* temporary valiables */ + + /* pre whitening but absorb kw2*/ + io[0] ^= CamelliaSubkeyL(32); + io[1] ^= CamelliaSubkeyR(32); + + /* main iteration */ + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(31),CamelliaSubkeyR(31), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(30),CamelliaSubkeyR(30), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(29),CamelliaSubkeyR(29), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(28),CamelliaSubkeyR(28), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(27),CamelliaSubkeyR(27), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(26),CamelliaSubkeyR(26), + io[0],io[1],il,ir,t0,t1); + + CAMELLIA_FLS(io[0],io[1],io[2],io[3], + CamelliaSubkeyL(25),CamelliaSubkeyR(25), + CamelliaSubkeyL(24),CamelliaSubkeyR(24), + t0,t1,il,ir); + + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(23),CamelliaSubkeyR(23), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(22),CamelliaSubkeyR(22), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(21),CamelliaSubkeyR(21), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(20),CamelliaSubkeyR(20), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(19),CamelliaSubkeyR(19), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(18),CamelliaSubkeyR(18), + io[0],io[1],il,ir,t0,t1); + + CAMELLIA_FLS(io[0],io[1],io[2],io[3], + CamelliaSubkeyL(17),CamelliaSubkeyR(17), + CamelliaSubkeyL(16),CamelliaSubkeyR(16), + t0,t1,il,ir); + + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(15),CamelliaSubkeyR(15), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(14),CamelliaSubkeyR(14), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(13),CamelliaSubkeyR(13), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(12),CamelliaSubkeyR(12), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(11),CamelliaSubkeyR(11), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(10),CamelliaSubkeyR(10), + io[0],io[1],il,ir,t0,t1); + + CAMELLIA_FLS(io[0],io[1],io[2],io[3], + CamelliaSubkeyL(9),CamelliaSubkeyR(9), + CamelliaSubkeyL(8),CamelliaSubkeyR(8), + t0,t1,il,ir); + + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(7),CamelliaSubkeyR(7), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(6),CamelliaSubkeyR(6), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(5),CamelliaSubkeyR(5), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(4),CamelliaSubkeyR(4), + io[0],io[1],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[0],io[1], + CamelliaSubkeyL(3),CamelliaSubkeyR(3), + io[2],io[3],il,ir,t0,t1); + CAMELLIA_ROUNDSM(io[2],io[3], + CamelliaSubkeyL(2),CamelliaSubkeyR(2), + io[0],io[1],il,ir,t0,t1); + + /* post whitening but kw4 */ + io[2] ^= CamelliaSubkeyL(0); + io[3] ^= CamelliaSubkeyR(0); + + t0 = io[0]; + t1 = io[1]; + io[0] = io[2]; + io[1] = io[3]; + io[2] = t0; + io[3] = t1; + + return; +} + +/*** + * + * API for compatibility + */ + +void Camellia_Ekeygen(const int keyBitLength, + const unsigned char *rawKey, + KEY_TABLE_TYPE keyTable) +{ + switch(keyBitLength) { + case 128: + camellia_setup128(rawKey, keyTable); + break; + case 192: + camellia_setup192(rawKey, keyTable); + break; + case 256: + camellia_setup256(rawKey, keyTable); + break; + default: + break; + } +} + + +void Camellia_EncryptBlock(const int keyBitLength, + const unsigned char *plaintext, + const KEY_TABLE_TYPE keyTable, + unsigned char *ciphertext) +{ + u32 tmp[4]; + + tmp[0] = GETU32(plaintext); + tmp[1] = GETU32(plaintext + 4); + tmp[2] = GETU32(plaintext + 8); + tmp[3] = GETU32(plaintext + 12); + + switch (keyBitLength) { + case 128: + camellia_encrypt128(keyTable, tmp); + break; + case 192: + /* fall through */ + case 256: + camellia_encrypt256(keyTable, tmp); + break; + default: + break; + } + + PUTU32(ciphertext, tmp[0]); + PUTU32(ciphertext + 4, tmp[1]); + PUTU32(ciphertext + 8, tmp[2]); + PUTU32(ciphertext + 12, tmp[3]); +} + +void Camellia_DecryptBlock(const int keyBitLength, + const unsigned char *ciphertext, + const KEY_TABLE_TYPE keyTable, + unsigned char *plaintext) +{ + u32 tmp[4]; + + tmp[0] = GETU32(ciphertext); + tmp[1] = GETU32(ciphertext + 4); + tmp[2] = GETU32(ciphertext + 8); + tmp[3] = GETU32(ciphertext + 12); + + switch (keyBitLength) { + case 128: + camellia_decrypt128(keyTable, tmp); + break; + case 192: + /* fall through */ + case 256: + camellia_decrypt256(keyTable, tmp); + break; + default: + break; + } + PUTU32(plaintext, tmp[0]); + PUTU32(plaintext + 4, tmp[1]); + PUTU32(plaintext + 8, tmp[2]); + PUTU32(plaintext + 12, tmp[3]); +} --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/twofish.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/twofish.c @@ -0,0 +1,991 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* Twofish for GPG + * Copyright (C) 1998, 2002, 2003 Free Software Foundation, Inc. + * Written by Matthew Skala , July 26, 1998 + * 256-bit key length added March 20, 1999 + * Some modifications to reduce the text size by Werner Koch, April, 1998 + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + ******************************************************************** + * + * This code is a "clean room" implementation, written from the paper + * _Twofish: A 128-Bit Block Cipher_ by Bruce Schneier, John Kelsey, + * Doug Whiting, David Wagner, Chris Hall, and Niels Ferguson, available + * through http://www.counterpane.com/twofish.html + * + * For background information on multiplication in finite fields, used for + * the matrix operations in the key schedule, see the book _Contemporary + * Abstract Algebra_ by Joseph A. Gallian, especially chapter 22 in the + * Third Edition. + * + * Only the 128- and 256-bit key sizes are supported. This code is intended + * for GNU C on a 32-bit system, but it should work almost anywhere. Loops + * are unrolled, precomputation tables are used, etc., for maximum speed at + * some cost in memory consumption. */ + + +#include "types.h" /* for byte and u32 typedefs */ +#include "g10lib.h" +#include "cipher.h" + +/* Prototype for the self-test function. */ + +/* Structure for an expanded Twofish key. s contains the key-dependent + * S-boxes composed with the MDS matrix; w contains the eight "whitening" + * subkeys, K[0] through K[7]. k holds the remaining, "round" subkeys. Note + * that k[i] corresponds to what the Twofish paper calls K[i+8]. */ +typedef struct { + u32 s[4][256], w[8], k[32]; +} TWOFISH_context; + +/* These two tables are the q0 and q1 permutations, exactly as described in + * the Twofish paper. */ + +static const byte q0[256] = { + 0xA9, 0x67, 0xB3, 0xE8, 0x04, 0xFD, 0xA3, 0x76, 0x9A, 0x92, 0x80, 0x78, + 0xE4, 0xDD, 0xD1, 0x38, 0x0D, 0xC6, 0x35, 0x98, 0x18, 0xF7, 0xEC, 0x6C, + 0x43, 0x75, 0x37, 0x26, 0xFA, 0x13, 0x94, 0x48, 0xF2, 0xD0, 0x8B, 0x30, + 0x84, 0x54, 0xDF, 0x23, 0x19, 0x5B, 0x3D, 0x59, 0xF3, 0xAE, 0xA2, 0x82, + 0x63, 0x01, 0x83, 0x2E, 0xD9, 0x51, 0x9B, 0x7C, 0xA6, 0xEB, 0xA5, 0xBE, + 0x16, 0x0C, 0xE3, 0x61, 0xC0, 0x8C, 0x3A, 0xF5, 0x73, 0x2C, 0x25, 0x0B, + 0xBB, 0x4E, 0x89, 0x6B, 0x53, 0x6A, 0xB4, 0xF1, 0xE1, 0xE6, 0xBD, 0x45, + 0xE2, 0xF4, 0xB6, 0x66, 0xCC, 0x95, 0x03, 0x56, 0xD4, 0x1C, 0x1E, 0xD7, + 0xFB, 0xC3, 0x8E, 0xB5, 0xE9, 0xCF, 0xBF, 0xBA, 0xEA, 0x77, 0x39, 0xAF, + 0x33, 0xC9, 0x62, 0x71, 0x81, 0x79, 0x09, 0xAD, 0x24, 0xCD, 0xF9, 0xD8, + 0xE5, 0xC5, 0xB9, 0x4D, 0x44, 0x08, 0x86, 0xE7, 0xA1, 0x1D, 0xAA, 0xED, + 0x06, 0x70, 0xB2, 0xD2, 0x41, 0x7B, 0xA0, 0x11, 0x31, 0xC2, 0x27, 0x90, + 0x20, 0xF6, 0x60, 0xFF, 0x96, 0x5C, 0xB1, 0xAB, 0x9E, 0x9C, 0x52, 0x1B, + 0x5F, 0x93, 0x0A, 0xEF, 0x91, 0x85, 0x49, 0xEE, 0x2D, 0x4F, 0x8F, 0x3B, + 0x47, 0x87, 0x6D, 0x46, 0xD6, 0x3E, 0x69, 0x64, 0x2A, 0xCE, 0xCB, 0x2F, + 0xFC, 0x97, 0x05, 0x7A, 0xAC, 0x7F, 0xD5, 0x1A, 0x4B, 0x0E, 0xA7, 0x5A, + 0x28, 0x14, 0x3F, 0x29, 0x88, 0x3C, 0x4C, 0x02, 0xB8, 0xDA, 0xB0, 0x17, + 0x55, 0x1F, 0x8A, 0x7D, 0x57, 0xC7, 0x8D, 0x74, 0xB7, 0xC4, 0x9F, 0x72, + 0x7E, 0x15, 0x22, 0x12, 0x58, 0x07, 0x99, 0x34, 0x6E, 0x50, 0xDE, 0x68, + 0x65, 0xBC, 0xDB, 0xF8, 0xC8, 0xA8, 0x2B, 0x40, 0xDC, 0xFE, 0x32, 0xA4, + 0xCA, 0x10, 0x21, 0xF0, 0xD3, 0x5D, 0x0F, 0x00, 0x6F, 0x9D, 0x36, 0x42, + 0x4A, 0x5E, 0xC1, 0xE0 +}; + +static const byte q1[256] = { + 0x75, 0xF3, 0xC6, 0xF4, 0xDB, 0x7B, 0xFB, 0xC8, 0x4A, 0xD3, 0xE6, 0x6B, + 0x45, 0x7D, 0xE8, 0x4B, 0xD6, 0x32, 0xD8, 0xFD, 0x37, 0x71, 0xF1, 0xE1, + 0x30, 0x0F, 0xF8, 0x1B, 0x87, 0xFA, 0x06, 0x3F, 0x5E, 0xBA, 0xAE, 0x5B, + 0x8A, 0x00, 0xBC, 0x9D, 0x6D, 0xC1, 0xB1, 0x0E, 0x80, 0x5D, 0xD2, 0xD5, + 0xA0, 0x84, 0x07, 0x14, 0xB5, 0x90, 0x2C, 0xA3, 0xB2, 0x73, 0x4C, 0x54, + 0x92, 0x74, 0x36, 0x51, 0x38, 0xB0, 0xBD, 0x5A, 0xFC, 0x60, 0x62, 0x96, + 0x6C, 0x42, 0xF7, 0x10, 0x7C, 0x28, 0x27, 0x8C, 0x13, 0x95, 0x9C, 0xC7, + 0x24, 0x46, 0x3B, 0x70, 0xCA, 0xE3, 0x85, 0xCB, 0x11, 0xD0, 0x93, 0xB8, + 0xA6, 0x83, 0x20, 0xFF, 0x9F, 0x77, 0xC3, 0xCC, 0x03, 0x6F, 0x08, 0xBF, + 0x40, 0xE7, 0x2B, 0xE2, 0x79, 0x0C, 0xAA, 0x82, 0x41, 0x3A, 0xEA, 0xB9, + 0xE4, 0x9A, 0xA4, 0x97, 0x7E, 0xDA, 0x7A, 0x17, 0x66, 0x94, 0xA1, 0x1D, + 0x3D, 0xF0, 0xDE, 0xB3, 0x0B, 0x72, 0xA7, 0x1C, 0xEF, 0xD1, 0x53, 0x3E, + 0x8F, 0x33, 0x26, 0x5F, 0xEC, 0x76, 0x2A, 0x49, 0x81, 0x88, 0xEE, 0x21, + 0xC4, 0x1A, 0xEB, 0xD9, 0xC5, 0x39, 0x99, 0xCD, 0xAD, 0x31, 0x8B, 0x01, + 0x18, 0x23, 0xDD, 0x1F, 0x4E, 0x2D, 0xF9, 0x48, 0x4F, 0xF2, 0x65, 0x8E, + 0x78, 0x5C, 0x58, 0x19, 0x8D, 0xE5, 0x98, 0x57, 0x67, 0x7F, 0x05, 0x64, + 0xAF, 0x63, 0xB6, 0xFE, 0xF5, 0xB7, 0x3C, 0xA5, 0xCE, 0xE9, 0x68, 0x44, + 0xE0, 0x4D, 0x43, 0x69, 0x29, 0x2E, 0xAC, 0x15, 0x59, 0xA8, 0x0A, 0x9E, + 0x6E, 0x47, 0xDF, 0x34, 0x35, 0x6A, 0xCF, 0xDC, 0x22, 0xC9, 0xC0, 0x9B, + 0x89, 0xD4, 0xED, 0xAB, 0x12, 0xA2, 0x0D, 0x52, 0xBB, 0x02, 0x2F, 0xA9, + 0xD7, 0x61, 0x1E, 0xB4, 0x50, 0x04, 0xF6, 0xC2, 0x16, 0x25, 0x86, 0x56, + 0x55, 0x09, 0xBE, 0x91 +}; + +/* These MDS tables are actually tables of MDS composed with q0 and q1, + * because it is only ever used that way and we can save some time by + * precomputing. Of course the main saving comes from precomputing the + * GF(2^8) multiplication involved in the MDS matrix multiply; by looking + * things up in these tables we reduce the matrix multiply to four lookups + * and three XORs. Semi-formally, the definition of these tables is: + * mds[0][i] = MDS (q1[i] 0 0 0)^T mds[1][i] = MDS (0 q0[i] 0 0)^T + * mds[2][i] = MDS (0 0 q1[i] 0)^T mds[3][i] = MDS (0 0 0 q0[i])^T + * where ^T means "transpose", the matrix multiply is performed in GF(2^8) + * represented as GF(2)[x]/v(x) where v(x)=x^8+x^6+x^5+x^3+1 as described + * by Schneier et al, and I'm casually glossing over the byte/word + * conversion issues. */ + +static const u32 mds[4][256] = { + {0xBCBC3275, 0xECEC21F3, 0x202043C6, 0xB3B3C9F4, 0xDADA03DB, 0x02028B7B, + 0xE2E22BFB, 0x9E9EFAC8, 0xC9C9EC4A, 0xD4D409D3, 0x18186BE6, 0x1E1E9F6B, + 0x98980E45, 0xB2B2387D, 0xA6A6D2E8, 0x2626B74B, 0x3C3C57D6, 0x93938A32, + 0x8282EED8, 0x525298FD, 0x7B7BD437, 0xBBBB3771, 0x5B5B97F1, 0x474783E1, + 0x24243C30, 0x5151E20F, 0xBABAC6F8, 0x4A4AF31B, 0xBFBF4887, 0x0D0D70FA, + 0xB0B0B306, 0x7575DE3F, 0xD2D2FD5E, 0x7D7D20BA, 0x666631AE, 0x3A3AA35B, + 0x59591C8A, 0x00000000, 0xCDCD93BC, 0x1A1AE09D, 0xAEAE2C6D, 0x7F7FABC1, + 0x2B2BC7B1, 0xBEBEB90E, 0xE0E0A080, 0x8A8A105D, 0x3B3B52D2, 0x6464BAD5, + 0xD8D888A0, 0xE7E7A584, 0x5F5FE807, 0x1B1B1114, 0x2C2CC2B5, 0xFCFCB490, + 0x3131272C, 0x808065A3, 0x73732AB2, 0x0C0C8173, 0x79795F4C, 0x6B6B4154, + 0x4B4B0292, 0x53536974, 0x94948F36, 0x83831F51, 0x2A2A3638, 0xC4C49CB0, + 0x2222C8BD, 0xD5D5F85A, 0xBDBDC3FC, 0x48487860, 0xFFFFCE62, 0x4C4C0796, + 0x4141776C, 0xC7C7E642, 0xEBEB24F7, 0x1C1C1410, 0x5D5D637C, 0x36362228, + 0x6767C027, 0xE9E9AF8C, 0x4444F913, 0x1414EA95, 0xF5F5BB9C, 0xCFCF18C7, + 0x3F3F2D24, 0xC0C0E346, 0x7272DB3B, 0x54546C70, 0x29294CCA, 0xF0F035E3, + 0x0808FE85, 0xC6C617CB, 0xF3F34F11, 0x8C8CE4D0, 0xA4A45993, 0xCACA96B8, + 0x68683BA6, 0xB8B84D83, 0x38382820, 0xE5E52EFF, 0xADAD569F, 0x0B0B8477, + 0xC8C81DC3, 0x9999FFCC, 0x5858ED03, 0x19199A6F, 0x0E0E0A08, 0x95957EBF, + 0x70705040, 0xF7F730E7, 0x6E6ECF2B, 0x1F1F6EE2, 0xB5B53D79, 0x09090F0C, + 0x616134AA, 0x57571682, 0x9F9F0B41, 0x9D9D803A, 0x111164EA, 0x2525CDB9, + 0xAFAFDDE4, 0x4545089A, 0xDFDF8DA4, 0xA3A35C97, 0xEAEAD57E, 0x353558DA, + 0xEDEDD07A, 0x4343FC17, 0xF8F8CB66, 0xFBFBB194, 0x3737D3A1, 0xFAFA401D, + 0xC2C2683D, 0xB4B4CCF0, 0x32325DDE, 0x9C9C71B3, 0x5656E70B, 0xE3E3DA72, + 0x878760A7, 0x15151B1C, 0xF9F93AEF, 0x6363BFD1, 0x3434A953, 0x9A9A853E, + 0xB1B1428F, 0x7C7CD133, 0x88889B26, 0x3D3DA65F, 0xA1A1D7EC, 0xE4E4DF76, + 0x8181942A, 0x91910149, 0x0F0FFB81, 0xEEEEAA88, 0x161661EE, 0xD7D77321, + 0x9797F5C4, 0xA5A5A81A, 0xFEFE3FEB, 0x6D6DB5D9, 0x7878AEC5, 0xC5C56D39, + 0x1D1DE599, 0x7676A4CD, 0x3E3EDCAD, 0xCBCB6731, 0xB6B6478B, 0xEFEF5B01, + 0x12121E18, 0x6060C523, 0x6A6AB0DD, 0x4D4DF61F, 0xCECEE94E, 0xDEDE7C2D, + 0x55559DF9, 0x7E7E5A48, 0x2121B24F, 0x03037AF2, 0xA0A02665, 0x5E5E198E, + 0x5A5A6678, 0x65654B5C, 0x62624E58, 0xFDFD4519, 0x0606F48D, 0x404086E5, + 0xF2F2BE98, 0x3333AC57, 0x17179067, 0x05058E7F, 0xE8E85E05, 0x4F4F7D64, + 0x89896AAF, 0x10109563, 0x74742FB6, 0x0A0A75FE, 0x5C5C92F5, 0x9B9B74B7, + 0x2D2D333C, 0x3030D6A5, 0x2E2E49CE, 0x494989E9, 0x46467268, 0x77775544, + 0xA8A8D8E0, 0x9696044D, 0x2828BD43, 0xA9A92969, 0xD9D97929, 0x8686912E, + 0xD1D187AC, 0xF4F44A15, 0x8D8D1559, 0xD6D682A8, 0xB9B9BC0A, 0x42420D9E, + 0xF6F6C16E, 0x2F2FB847, 0xDDDD06DF, 0x23233934, 0xCCCC6235, 0xF1F1C46A, + 0xC1C112CF, 0x8585EBDC, 0x8F8F9E22, 0x7171A1C9, 0x9090F0C0, 0xAAAA539B, + 0x0101F189, 0x8B8BE1D4, 0x4E4E8CED, 0x8E8E6FAB, 0xABABA212, 0x6F6F3EA2, + 0xE6E6540D, 0xDBDBF252, 0x92927BBB, 0xB7B7B602, 0x6969CA2F, 0x3939D9A9, + 0xD3D30CD7, 0xA7A72361, 0xA2A2AD1E, 0xC3C399B4, 0x6C6C4450, 0x07070504, + 0x04047FF6, 0x272746C2, 0xACACA716, 0xD0D07625, 0x50501386, 0xDCDCF756, + 0x84841A55, 0xE1E15109, 0x7A7A25BE, 0x1313EF91}, + + {0xA9D93939, 0x67901717, 0xB3719C9C, 0xE8D2A6A6, 0x04050707, 0xFD985252, + 0xA3658080, 0x76DFE4E4, 0x9A084545, 0x92024B4B, 0x80A0E0E0, 0x78665A5A, + 0xE4DDAFAF, 0xDDB06A6A, 0xD1BF6363, 0x38362A2A, 0x0D54E6E6, 0xC6432020, + 0x3562CCCC, 0x98BEF2F2, 0x181E1212, 0xF724EBEB, 0xECD7A1A1, 0x6C774141, + 0x43BD2828, 0x7532BCBC, 0x37D47B7B, 0x269B8888, 0xFA700D0D, 0x13F94444, + 0x94B1FBFB, 0x485A7E7E, 0xF27A0303, 0xD0E48C8C, 0x8B47B6B6, 0x303C2424, + 0x84A5E7E7, 0x54416B6B, 0xDF06DDDD, 0x23C56060, 0x1945FDFD, 0x5BA33A3A, + 0x3D68C2C2, 0x59158D8D, 0xF321ECEC, 0xAE316666, 0xA23E6F6F, 0x82165757, + 0x63951010, 0x015BEFEF, 0x834DB8B8, 0x2E918686, 0xD9B56D6D, 0x511F8383, + 0x9B53AAAA, 0x7C635D5D, 0xA63B6868, 0xEB3FFEFE, 0xA5D63030, 0xBE257A7A, + 0x16A7ACAC, 0x0C0F0909, 0xE335F0F0, 0x6123A7A7, 0xC0F09090, 0x8CAFE9E9, + 0x3A809D9D, 0xF5925C5C, 0x73810C0C, 0x2C273131, 0x2576D0D0, 0x0BE75656, + 0xBB7B9292, 0x4EE9CECE, 0x89F10101, 0x6B9F1E1E, 0x53A93434, 0x6AC4F1F1, + 0xB499C3C3, 0xF1975B5B, 0xE1834747, 0xE66B1818, 0xBDC82222, 0x450E9898, + 0xE26E1F1F, 0xF4C9B3B3, 0xB62F7474, 0x66CBF8F8, 0xCCFF9999, 0x95EA1414, + 0x03ED5858, 0x56F7DCDC, 0xD4E18B8B, 0x1C1B1515, 0x1EADA2A2, 0xD70CD3D3, + 0xFB2BE2E2, 0xC31DC8C8, 0x8E195E5E, 0xB5C22C2C, 0xE9894949, 0xCF12C1C1, + 0xBF7E9595, 0xBA207D7D, 0xEA641111, 0x77840B0B, 0x396DC5C5, 0xAF6A8989, + 0x33D17C7C, 0xC9A17171, 0x62CEFFFF, 0x7137BBBB, 0x81FB0F0F, 0x793DB5B5, + 0x0951E1E1, 0xADDC3E3E, 0x242D3F3F, 0xCDA47676, 0xF99D5555, 0xD8EE8282, + 0xE5864040, 0xC5AE7878, 0xB9CD2525, 0x4D049696, 0x44557777, 0x080A0E0E, + 0x86135050, 0xE730F7F7, 0xA1D33737, 0x1D40FAFA, 0xAA346161, 0xED8C4E4E, + 0x06B3B0B0, 0x706C5454, 0xB22A7373, 0xD2523B3B, 0x410B9F9F, 0x7B8B0202, + 0xA088D8D8, 0x114FF3F3, 0x3167CBCB, 0xC2462727, 0x27C06767, 0x90B4FCFC, + 0x20283838, 0xF67F0404, 0x60784848, 0xFF2EE5E5, 0x96074C4C, 0x5C4B6565, + 0xB1C72B2B, 0xAB6F8E8E, 0x9E0D4242, 0x9CBBF5F5, 0x52F2DBDB, 0x1BF34A4A, + 0x5FA63D3D, 0x9359A4A4, 0x0ABCB9B9, 0xEF3AF9F9, 0x91EF1313, 0x85FE0808, + 0x49019191, 0xEE611616, 0x2D7CDEDE, 0x4FB22121, 0x8F42B1B1, 0x3BDB7272, + 0x47B82F2F, 0x8748BFBF, 0x6D2CAEAE, 0x46E3C0C0, 0xD6573C3C, 0x3E859A9A, + 0x6929A9A9, 0x647D4F4F, 0x2A948181, 0xCE492E2E, 0xCB17C6C6, 0x2FCA6969, + 0xFCC3BDBD, 0x975CA3A3, 0x055EE8E8, 0x7AD0EDED, 0xAC87D1D1, 0x7F8E0505, + 0xD5BA6464, 0x1AA8A5A5, 0x4BB72626, 0x0EB9BEBE, 0xA7608787, 0x5AF8D5D5, + 0x28223636, 0x14111B1B, 0x3FDE7575, 0x2979D9D9, 0x88AAEEEE, 0x3C332D2D, + 0x4C5F7979, 0x02B6B7B7, 0xB896CACA, 0xDA583535, 0xB09CC4C4, 0x17FC4343, + 0x551A8484, 0x1FF64D4D, 0x8A1C5959, 0x7D38B2B2, 0x57AC3333, 0xC718CFCF, + 0x8DF40606, 0x74695353, 0xB7749B9B, 0xC4F59797, 0x9F56ADAD, 0x72DAE3E3, + 0x7ED5EAEA, 0x154AF4F4, 0x229E8F8F, 0x12A2ABAB, 0x584E6262, 0x07E85F5F, + 0x99E51D1D, 0x34392323, 0x6EC1F6F6, 0x50446C6C, 0xDE5D3232, 0x68724646, + 0x6526A0A0, 0xBC93CDCD, 0xDB03DADA, 0xF8C6BABA, 0xC8FA9E9E, 0xA882D6D6, + 0x2BCF6E6E, 0x40507070, 0xDCEB8585, 0xFE750A0A, 0x328A9393, 0xA48DDFDF, + 0xCA4C2929, 0x10141C1C, 0x2173D7D7, 0xF0CCB4B4, 0xD309D4D4, 0x5D108A8A, + 0x0FE25151, 0x00000000, 0x6F9A1919, 0x9DE01A1A, 0x368F9494, 0x42E6C7C7, + 0x4AECC9C9, 0x5EFDD2D2, 0xC1AB7F7F, 0xE0D8A8A8}, + + {0xBC75BC32, 0xECF3EC21, 0x20C62043, 0xB3F4B3C9, 0xDADBDA03, 0x027B028B, + 0xE2FBE22B, 0x9EC89EFA, 0xC94AC9EC, 0xD4D3D409, 0x18E6186B, 0x1E6B1E9F, + 0x9845980E, 0xB27DB238, 0xA6E8A6D2, 0x264B26B7, 0x3CD63C57, 0x9332938A, + 0x82D882EE, 0x52FD5298, 0x7B377BD4, 0xBB71BB37, 0x5BF15B97, 0x47E14783, + 0x2430243C, 0x510F51E2, 0xBAF8BAC6, 0x4A1B4AF3, 0xBF87BF48, 0x0DFA0D70, + 0xB006B0B3, 0x753F75DE, 0xD25ED2FD, 0x7DBA7D20, 0x66AE6631, 0x3A5B3AA3, + 0x598A591C, 0x00000000, 0xCDBCCD93, 0x1A9D1AE0, 0xAE6DAE2C, 0x7FC17FAB, + 0x2BB12BC7, 0xBE0EBEB9, 0xE080E0A0, 0x8A5D8A10, 0x3BD23B52, 0x64D564BA, + 0xD8A0D888, 0xE784E7A5, 0x5F075FE8, 0x1B141B11, 0x2CB52CC2, 0xFC90FCB4, + 0x312C3127, 0x80A38065, 0x73B2732A, 0x0C730C81, 0x794C795F, 0x6B546B41, + 0x4B924B02, 0x53745369, 0x9436948F, 0x8351831F, 0x2A382A36, 0xC4B0C49C, + 0x22BD22C8, 0xD55AD5F8, 0xBDFCBDC3, 0x48604878, 0xFF62FFCE, 0x4C964C07, + 0x416C4177, 0xC742C7E6, 0xEBF7EB24, 0x1C101C14, 0x5D7C5D63, 0x36283622, + 0x672767C0, 0xE98CE9AF, 0x441344F9, 0x149514EA, 0xF59CF5BB, 0xCFC7CF18, + 0x3F243F2D, 0xC046C0E3, 0x723B72DB, 0x5470546C, 0x29CA294C, 0xF0E3F035, + 0x088508FE, 0xC6CBC617, 0xF311F34F, 0x8CD08CE4, 0xA493A459, 0xCAB8CA96, + 0x68A6683B, 0xB883B84D, 0x38203828, 0xE5FFE52E, 0xAD9FAD56, 0x0B770B84, + 0xC8C3C81D, 0x99CC99FF, 0x580358ED, 0x196F199A, 0x0E080E0A, 0x95BF957E, + 0x70407050, 0xF7E7F730, 0x6E2B6ECF, 0x1FE21F6E, 0xB579B53D, 0x090C090F, + 0x61AA6134, 0x57825716, 0x9F419F0B, 0x9D3A9D80, 0x11EA1164, 0x25B925CD, + 0xAFE4AFDD, 0x459A4508, 0xDFA4DF8D, 0xA397A35C, 0xEA7EEAD5, 0x35DA3558, + 0xED7AEDD0, 0x431743FC, 0xF866F8CB, 0xFB94FBB1, 0x37A137D3, 0xFA1DFA40, + 0xC23DC268, 0xB4F0B4CC, 0x32DE325D, 0x9CB39C71, 0x560B56E7, 0xE372E3DA, + 0x87A78760, 0x151C151B, 0xF9EFF93A, 0x63D163BF, 0x345334A9, 0x9A3E9A85, + 0xB18FB142, 0x7C337CD1, 0x8826889B, 0x3D5F3DA6, 0xA1ECA1D7, 0xE476E4DF, + 0x812A8194, 0x91499101, 0x0F810FFB, 0xEE88EEAA, 0x16EE1661, 0xD721D773, + 0x97C497F5, 0xA51AA5A8, 0xFEEBFE3F, 0x6DD96DB5, 0x78C578AE, 0xC539C56D, + 0x1D991DE5, 0x76CD76A4, 0x3EAD3EDC, 0xCB31CB67, 0xB68BB647, 0xEF01EF5B, + 0x1218121E, 0x602360C5, 0x6ADD6AB0, 0x4D1F4DF6, 0xCE4ECEE9, 0xDE2DDE7C, + 0x55F9559D, 0x7E487E5A, 0x214F21B2, 0x03F2037A, 0xA065A026, 0x5E8E5E19, + 0x5A785A66, 0x655C654B, 0x6258624E, 0xFD19FD45, 0x068D06F4, 0x40E54086, + 0xF298F2BE, 0x335733AC, 0x17671790, 0x057F058E, 0xE805E85E, 0x4F644F7D, + 0x89AF896A, 0x10631095, 0x74B6742F, 0x0AFE0A75, 0x5CF55C92, 0x9BB79B74, + 0x2D3C2D33, 0x30A530D6, 0x2ECE2E49, 0x49E94989, 0x46684672, 0x77447755, + 0xA8E0A8D8, 0x964D9604, 0x284328BD, 0xA969A929, 0xD929D979, 0x862E8691, + 0xD1ACD187, 0xF415F44A, 0x8D598D15, 0xD6A8D682, 0xB90AB9BC, 0x429E420D, + 0xF66EF6C1, 0x2F472FB8, 0xDDDFDD06, 0x23342339, 0xCC35CC62, 0xF16AF1C4, + 0xC1CFC112, 0x85DC85EB, 0x8F228F9E, 0x71C971A1, 0x90C090F0, 0xAA9BAA53, + 0x018901F1, 0x8BD48BE1, 0x4EED4E8C, 0x8EAB8E6F, 0xAB12ABA2, 0x6FA26F3E, + 0xE60DE654, 0xDB52DBF2, 0x92BB927B, 0xB702B7B6, 0x692F69CA, 0x39A939D9, + 0xD3D7D30C, 0xA761A723, 0xA21EA2AD, 0xC3B4C399, 0x6C506C44, 0x07040705, + 0x04F6047F, 0x27C22746, 0xAC16ACA7, 0xD025D076, 0x50865013, 0xDC56DCF7, + 0x8455841A, 0xE109E151, 0x7ABE7A25, 0x139113EF}, + + {0xD939A9D9, 0x90176790, 0x719CB371, 0xD2A6E8D2, 0x05070405, 0x9852FD98, + 0x6580A365, 0xDFE476DF, 0x08459A08, 0x024B9202, 0xA0E080A0, 0x665A7866, + 0xDDAFE4DD, 0xB06ADDB0, 0xBF63D1BF, 0x362A3836, 0x54E60D54, 0x4320C643, + 0x62CC3562, 0xBEF298BE, 0x1E12181E, 0x24EBF724, 0xD7A1ECD7, 0x77416C77, + 0xBD2843BD, 0x32BC7532, 0xD47B37D4, 0x9B88269B, 0x700DFA70, 0xF94413F9, + 0xB1FB94B1, 0x5A7E485A, 0x7A03F27A, 0xE48CD0E4, 0x47B68B47, 0x3C24303C, + 0xA5E784A5, 0x416B5441, 0x06DDDF06, 0xC56023C5, 0x45FD1945, 0xA33A5BA3, + 0x68C23D68, 0x158D5915, 0x21ECF321, 0x3166AE31, 0x3E6FA23E, 0x16578216, + 0x95106395, 0x5BEF015B, 0x4DB8834D, 0x91862E91, 0xB56DD9B5, 0x1F83511F, + 0x53AA9B53, 0x635D7C63, 0x3B68A63B, 0x3FFEEB3F, 0xD630A5D6, 0x257ABE25, + 0xA7AC16A7, 0x0F090C0F, 0x35F0E335, 0x23A76123, 0xF090C0F0, 0xAFE98CAF, + 0x809D3A80, 0x925CF592, 0x810C7381, 0x27312C27, 0x76D02576, 0xE7560BE7, + 0x7B92BB7B, 0xE9CE4EE9, 0xF10189F1, 0x9F1E6B9F, 0xA93453A9, 0xC4F16AC4, + 0x99C3B499, 0x975BF197, 0x8347E183, 0x6B18E66B, 0xC822BDC8, 0x0E98450E, + 0x6E1FE26E, 0xC9B3F4C9, 0x2F74B62F, 0xCBF866CB, 0xFF99CCFF, 0xEA1495EA, + 0xED5803ED, 0xF7DC56F7, 0xE18BD4E1, 0x1B151C1B, 0xADA21EAD, 0x0CD3D70C, + 0x2BE2FB2B, 0x1DC8C31D, 0x195E8E19, 0xC22CB5C2, 0x8949E989, 0x12C1CF12, + 0x7E95BF7E, 0x207DBA20, 0x6411EA64, 0x840B7784, 0x6DC5396D, 0x6A89AF6A, + 0xD17C33D1, 0xA171C9A1, 0xCEFF62CE, 0x37BB7137, 0xFB0F81FB, 0x3DB5793D, + 0x51E10951, 0xDC3EADDC, 0x2D3F242D, 0xA476CDA4, 0x9D55F99D, 0xEE82D8EE, + 0x8640E586, 0xAE78C5AE, 0xCD25B9CD, 0x04964D04, 0x55774455, 0x0A0E080A, + 0x13508613, 0x30F7E730, 0xD337A1D3, 0x40FA1D40, 0x3461AA34, 0x8C4EED8C, + 0xB3B006B3, 0x6C54706C, 0x2A73B22A, 0x523BD252, 0x0B9F410B, 0x8B027B8B, + 0x88D8A088, 0x4FF3114F, 0x67CB3167, 0x4627C246, 0xC06727C0, 0xB4FC90B4, + 0x28382028, 0x7F04F67F, 0x78486078, 0x2EE5FF2E, 0x074C9607, 0x4B655C4B, + 0xC72BB1C7, 0x6F8EAB6F, 0x0D429E0D, 0xBBF59CBB, 0xF2DB52F2, 0xF34A1BF3, + 0xA63D5FA6, 0x59A49359, 0xBCB90ABC, 0x3AF9EF3A, 0xEF1391EF, 0xFE0885FE, + 0x01914901, 0x6116EE61, 0x7CDE2D7C, 0xB2214FB2, 0x42B18F42, 0xDB723BDB, + 0xB82F47B8, 0x48BF8748, 0x2CAE6D2C, 0xE3C046E3, 0x573CD657, 0x859A3E85, + 0x29A96929, 0x7D4F647D, 0x94812A94, 0x492ECE49, 0x17C6CB17, 0xCA692FCA, + 0xC3BDFCC3, 0x5CA3975C, 0x5EE8055E, 0xD0ED7AD0, 0x87D1AC87, 0x8E057F8E, + 0xBA64D5BA, 0xA8A51AA8, 0xB7264BB7, 0xB9BE0EB9, 0x6087A760, 0xF8D55AF8, + 0x22362822, 0x111B1411, 0xDE753FDE, 0x79D92979, 0xAAEE88AA, 0x332D3C33, + 0x5F794C5F, 0xB6B702B6, 0x96CAB896, 0x5835DA58, 0x9CC4B09C, 0xFC4317FC, + 0x1A84551A, 0xF64D1FF6, 0x1C598A1C, 0x38B27D38, 0xAC3357AC, 0x18CFC718, + 0xF4068DF4, 0x69537469, 0x749BB774, 0xF597C4F5, 0x56AD9F56, 0xDAE372DA, + 0xD5EA7ED5, 0x4AF4154A, 0x9E8F229E, 0xA2AB12A2, 0x4E62584E, 0xE85F07E8, + 0xE51D99E5, 0x39233439, 0xC1F66EC1, 0x446C5044, 0x5D32DE5D, 0x72466872, + 0x26A06526, 0x93CDBC93, 0x03DADB03, 0xC6BAF8C6, 0xFA9EC8FA, 0x82D6A882, + 0xCF6E2BCF, 0x50704050, 0xEB85DCEB, 0x750AFE75, 0x8A93328A, 0x8DDFA48D, + 0x4C29CA4C, 0x141C1014, 0x73D72173, 0xCCB4F0CC, 0x09D4D309, 0x108A5D10, + 0xE2510FE2, 0x00000000, 0x9A196F9A, 0xE01A9DE0, 0x8F94368F, 0xE6C742E6, + 0xECC94AEC, 0xFDD25EFD, 0xAB7FC1AB, 0xD8A8E0D8} +}; + +/* The exp_to_poly and poly_to_exp tables are used to perform efficient + * operations in GF(2^8) represented as GF(2)[x]/w(x) where + * w(x)=x^8+x^6+x^3+x^2+1. We care about doing that because it's part of the + * definition of the RS matrix in the key schedule. Elements of that field + * are polynomials of degree not greater than 7 and all coefficients 0 or 1, + * which can be represented naturally by bytes (just substitute x=2). In that + * form, GF(2^8) addition is the same as bitwise XOR, but GF(2^8) + * multiplication is inefficient without hardware support. To multiply + * faster, I make use of the fact x is a generator for the nonzero elements, + * so that every element p of GF(2)[x]/w(x) is either 0 or equal to (x)^n for + * some n in 0..254. Note that that caret is exponentiation in GF(2^8), + * *not* polynomial notation. So if I want to compute pq where p and q are + * in GF(2^8), I can just say: + * 1. if p=0 or q=0 then pq=0 + * 2. otherwise, find m and n such that p=x^m and q=x^n + * 3. pq=(x^m)(x^n)=x^(m+n), so add m and n and find pq + * The translations in steps 2 and 3 are looked up in the tables + * poly_to_exp (for step 2) and exp_to_poly (for step 3). To see this + * in action, look at the CALC_S macro. As additional wrinkles, note that + * one of my operands is always a constant, so the poly_to_exp lookup on it + * is done in advance; I included the original values in the comments so + * readers can have some chance of recognizing that this *is* the RS matrix + * from the Twofish paper. I've only included the table entries I actually + * need; I never do a lookup on a variable input of zero and the biggest + * exponents I'll ever see are 254 (variable) and 237 (constant), so they'll + * never sum to more than 491. I'm repeating part of the exp_to_poly table + * so that I don't have to do mod-255 reduction in the exponent arithmetic. + * Since I know my constant operands are never zero, I only have to worry + * about zero values in the variable operand, and I do it with a simple + * conditional branch. I know conditionals are expensive, but I couldn't + * see a non-horrible way of avoiding them, and I did manage to group the + * statements so that each if covers four group multiplications. */ + +static const byte poly_to_exp[255] = { + 0x00, 0x01, 0x17, 0x02, 0x2E, 0x18, 0x53, 0x03, 0x6A, 0x2F, 0x93, 0x19, + 0x34, 0x54, 0x45, 0x04, 0x5C, 0x6B, 0xB6, 0x30, 0xA6, 0x94, 0x4B, 0x1A, + 0x8C, 0x35, 0x81, 0x55, 0xAA, 0x46, 0x0D, 0x05, 0x24, 0x5D, 0x87, 0x6C, + 0x9B, 0xB7, 0xC1, 0x31, 0x2B, 0xA7, 0xA3, 0x95, 0x98, 0x4C, 0xCA, 0x1B, + 0xE6, 0x8D, 0x73, 0x36, 0xCD, 0x82, 0x12, 0x56, 0x62, 0xAB, 0xF0, 0x47, + 0x4F, 0x0E, 0xBD, 0x06, 0xD4, 0x25, 0xD2, 0x5E, 0x27, 0x88, 0x66, 0x6D, + 0xD6, 0x9C, 0x79, 0xB8, 0x08, 0xC2, 0xDF, 0x32, 0x68, 0x2C, 0xFD, 0xA8, + 0x8A, 0xA4, 0x5A, 0x96, 0x29, 0x99, 0x22, 0x4D, 0x60, 0xCB, 0xE4, 0x1C, + 0x7B, 0xE7, 0x3B, 0x8E, 0x9E, 0x74, 0xF4, 0x37, 0xD8, 0xCE, 0xF9, 0x83, + 0x6F, 0x13, 0xB2, 0x57, 0xE1, 0x63, 0xDC, 0xAC, 0xC4, 0xF1, 0xAF, 0x48, + 0x0A, 0x50, 0x42, 0x0F, 0xBA, 0xBE, 0xC7, 0x07, 0xDE, 0xD5, 0x78, 0x26, + 0x65, 0xD3, 0xD1, 0x5F, 0xE3, 0x28, 0x21, 0x89, 0x59, 0x67, 0xFC, 0x6E, + 0xB1, 0xD7, 0xF8, 0x9D, 0xF3, 0x7A, 0x3A, 0xB9, 0xC6, 0x09, 0x41, 0xC3, + 0xAE, 0xE0, 0xDB, 0x33, 0x44, 0x69, 0x92, 0x2D, 0x52, 0xFE, 0x16, 0xA9, + 0x0C, 0x8B, 0x80, 0xA5, 0x4A, 0x5B, 0xB5, 0x97, 0xC9, 0x2A, 0xA2, 0x9A, + 0xC0, 0x23, 0x86, 0x4E, 0xBC, 0x61, 0xEF, 0xCC, 0x11, 0xE5, 0x72, 0x1D, + 0x3D, 0x7C, 0xEB, 0xE8, 0xE9, 0x3C, 0xEA, 0x8F, 0x7D, 0x9F, 0xEC, 0x75, + 0x1E, 0xF5, 0x3E, 0x38, 0xF6, 0xD9, 0x3F, 0xCF, 0x76, 0xFA, 0x1F, 0x84, + 0xA0, 0x70, 0xED, 0x14, 0x90, 0xB3, 0x7E, 0x58, 0xFB, 0xE2, 0x20, 0x64, + 0xD0, 0xDD, 0x77, 0xAD, 0xDA, 0xC5, 0x40, 0xF2, 0x39, 0xB0, 0xF7, 0x49, + 0xB4, 0x0B, 0x7F, 0x51, 0x15, 0x43, 0x91, 0x10, 0x71, 0xBB, 0xEE, 0xBF, + 0x85, 0xC8, 0xA1 +}; + +static const byte exp_to_poly[492] = { + 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x4D, 0x9A, 0x79, 0xF2, + 0xA9, 0x1F, 0x3E, 0x7C, 0xF8, 0xBD, 0x37, 0x6E, 0xDC, 0xF5, 0xA7, 0x03, + 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0xCD, 0xD7, 0xE3, 0x8B, 0x5B, 0xB6, + 0x21, 0x42, 0x84, 0x45, 0x8A, 0x59, 0xB2, 0x29, 0x52, 0xA4, 0x05, 0x0A, + 0x14, 0x28, 0x50, 0xA0, 0x0D, 0x1A, 0x34, 0x68, 0xD0, 0xED, 0x97, 0x63, + 0xC6, 0xC1, 0xCF, 0xD3, 0xEB, 0x9B, 0x7B, 0xF6, 0xA1, 0x0F, 0x1E, 0x3C, + 0x78, 0xF0, 0xAD, 0x17, 0x2E, 0x5C, 0xB8, 0x3D, 0x7A, 0xF4, 0xA5, 0x07, + 0x0E, 0x1C, 0x38, 0x70, 0xE0, 0x8D, 0x57, 0xAE, 0x11, 0x22, 0x44, 0x88, + 0x5D, 0xBA, 0x39, 0x72, 0xE4, 0x85, 0x47, 0x8E, 0x51, 0xA2, 0x09, 0x12, + 0x24, 0x48, 0x90, 0x6D, 0xDA, 0xF9, 0xBF, 0x33, 0x66, 0xCC, 0xD5, 0xE7, + 0x83, 0x4B, 0x96, 0x61, 0xC2, 0xC9, 0xDF, 0xF3, 0xAB, 0x1B, 0x36, 0x6C, + 0xD8, 0xFD, 0xB7, 0x23, 0x46, 0x8C, 0x55, 0xAA, 0x19, 0x32, 0x64, 0xC8, + 0xDD, 0xF7, 0xA3, 0x0B, 0x16, 0x2C, 0x58, 0xB0, 0x2D, 0x5A, 0xB4, 0x25, + 0x4A, 0x94, 0x65, 0xCA, 0xD9, 0xFF, 0xB3, 0x2B, 0x56, 0xAC, 0x15, 0x2A, + 0x54, 0xA8, 0x1D, 0x3A, 0x74, 0xE8, 0x9D, 0x77, 0xEE, 0x91, 0x6F, 0xDE, + 0xF1, 0xAF, 0x13, 0x26, 0x4C, 0x98, 0x7D, 0xFA, 0xB9, 0x3F, 0x7E, 0xFC, + 0xB5, 0x27, 0x4E, 0x9C, 0x75, 0xEA, 0x99, 0x7F, 0xFE, 0xB1, 0x2F, 0x5E, + 0xBC, 0x35, 0x6A, 0xD4, 0xE5, 0x87, 0x43, 0x86, 0x41, 0x82, 0x49, 0x92, + 0x69, 0xD2, 0xE9, 0x9F, 0x73, 0xE6, 0x81, 0x4F, 0x9E, 0x71, 0xE2, 0x89, + 0x5F, 0xBE, 0x31, 0x62, 0xC4, 0xC5, 0xC7, 0xC3, 0xCB, 0xDB, 0xFB, 0xBB, + 0x3B, 0x76, 0xEC, 0x95, 0x67, 0xCE, 0xD1, 0xEF, 0x93, 0x6B, 0xD6, 0xE1, + 0x8F, 0x53, 0xA6, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x4D, + 0x9A, 0x79, 0xF2, 0xA9, 0x1F, 0x3E, 0x7C, 0xF8, 0xBD, 0x37, 0x6E, 0xDC, + 0xF5, 0xA7, 0x03, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0xCD, 0xD7, 0xE3, + 0x8B, 0x5B, 0xB6, 0x21, 0x42, 0x84, 0x45, 0x8A, 0x59, 0xB2, 0x29, 0x52, + 0xA4, 0x05, 0x0A, 0x14, 0x28, 0x50, 0xA0, 0x0D, 0x1A, 0x34, 0x68, 0xD0, + 0xED, 0x97, 0x63, 0xC6, 0xC1, 0xCF, 0xD3, 0xEB, 0x9B, 0x7B, 0xF6, 0xA1, + 0x0F, 0x1E, 0x3C, 0x78, 0xF0, 0xAD, 0x17, 0x2E, 0x5C, 0xB8, 0x3D, 0x7A, + 0xF4, 0xA5, 0x07, 0x0E, 0x1C, 0x38, 0x70, 0xE0, 0x8D, 0x57, 0xAE, 0x11, + 0x22, 0x44, 0x88, 0x5D, 0xBA, 0x39, 0x72, 0xE4, 0x85, 0x47, 0x8E, 0x51, + 0xA2, 0x09, 0x12, 0x24, 0x48, 0x90, 0x6D, 0xDA, 0xF9, 0xBF, 0x33, 0x66, + 0xCC, 0xD5, 0xE7, 0x83, 0x4B, 0x96, 0x61, 0xC2, 0xC9, 0xDF, 0xF3, 0xAB, + 0x1B, 0x36, 0x6C, 0xD8, 0xFD, 0xB7, 0x23, 0x46, 0x8C, 0x55, 0xAA, 0x19, + 0x32, 0x64, 0xC8, 0xDD, 0xF7, 0xA3, 0x0B, 0x16, 0x2C, 0x58, 0xB0, 0x2D, + 0x5A, 0xB4, 0x25, 0x4A, 0x94, 0x65, 0xCA, 0xD9, 0xFF, 0xB3, 0x2B, 0x56, + 0xAC, 0x15, 0x2A, 0x54, 0xA8, 0x1D, 0x3A, 0x74, 0xE8, 0x9D, 0x77, 0xEE, + 0x91, 0x6F, 0xDE, 0xF1, 0xAF, 0x13, 0x26, 0x4C, 0x98, 0x7D, 0xFA, 0xB9, + 0x3F, 0x7E, 0xFC, 0xB5, 0x27, 0x4E, 0x9C, 0x75, 0xEA, 0x99, 0x7F, 0xFE, + 0xB1, 0x2F, 0x5E, 0xBC, 0x35, 0x6A, 0xD4, 0xE5, 0x87, 0x43, 0x86, 0x41, + 0x82, 0x49, 0x92, 0x69, 0xD2, 0xE9, 0x9F, 0x73, 0xE6, 0x81, 0x4F, 0x9E, + 0x71, 0xE2, 0x89, 0x5F, 0xBE, 0x31, 0x62, 0xC4, 0xC5, 0xC7, 0xC3, 0xCB +}; + + +/* The table constants are indices of + * S-box entries, preprocessed through q0 and q1. */ +static byte calc_sb_tbl[512] = { + 0xA9, 0x75, 0x67, 0xF3, 0xB3, 0xC6, 0xE8, 0xF4, + 0x04, 0xDB, 0xFD, 0x7B, 0xA3, 0xFB, 0x76, 0xC8, + 0x9A, 0x4A, 0x92, 0xD3, 0x80, 0xE6, 0x78, 0x6B, + 0xE4, 0x45, 0xDD, 0x7D, 0xD1, 0xE8, 0x38, 0x4B, + 0x0D, 0xD6, 0xC6, 0x32, 0x35, 0xD8, 0x98, 0xFD, + 0x18, 0x37, 0xF7, 0x71, 0xEC, 0xF1, 0x6C, 0xE1, + 0x43, 0x30, 0x75, 0x0F, 0x37, 0xF8, 0x26, 0x1B, + 0xFA, 0x87, 0x13, 0xFA, 0x94, 0x06, 0x48, 0x3F, + 0xF2, 0x5E, 0xD0, 0xBA, 0x8B, 0xAE, 0x30, 0x5B, + 0x84, 0x8A, 0x54, 0x00, 0xDF, 0xBC, 0x23, 0x9D, + 0x19, 0x6D, 0x5B, 0xC1, 0x3D, 0xB1, 0x59, 0x0E, + 0xF3, 0x80, 0xAE, 0x5D, 0xA2, 0xD2, 0x82, 0xD5, + 0x63, 0xA0, 0x01, 0x84, 0x83, 0x07, 0x2E, 0x14, + 0xD9, 0xB5, 0x51, 0x90, 0x9B, 0x2C, 0x7C, 0xA3, + 0xA6, 0xB2, 0xEB, 0x73, 0xA5, 0x4C, 0xBE, 0x54, + 0x16, 0x92, 0x0C, 0x74, 0xE3, 0x36, 0x61, 0x51, + 0xC0, 0x38, 0x8C, 0xB0, 0x3A, 0xBD, 0xF5, 0x5A, + 0x73, 0xFC, 0x2C, 0x60, 0x25, 0x62, 0x0B, 0x96, + 0xBB, 0x6C, 0x4E, 0x42, 0x89, 0xF7, 0x6B, 0x10, + 0x53, 0x7C, 0x6A, 0x28, 0xB4, 0x27, 0xF1, 0x8C, + 0xE1, 0x13, 0xE6, 0x95, 0xBD, 0x9C, 0x45, 0xC7, + 0xE2, 0x24, 0xF4, 0x46, 0xB6, 0x3B, 0x66, 0x70, + 0xCC, 0xCA, 0x95, 0xE3, 0x03, 0x85, 0x56, 0xCB, + 0xD4, 0x11, 0x1C, 0xD0, 0x1E, 0x93, 0xD7, 0xB8, + 0xFB, 0xA6, 0xC3, 0x83, 0x8E, 0x20, 0xB5, 0xFF, + 0xE9, 0x9F, 0xCF, 0x77, 0xBF, 0xC3, 0xBA, 0xCC, + 0xEA, 0x03, 0x77, 0x6F, 0x39, 0x08, 0xAF, 0xBF, + 0x33, 0x40, 0xC9, 0xE7, 0x62, 0x2B, 0x71, 0xE2, + 0x81, 0x79, 0x79, 0x0C, 0x09, 0xAA, 0xAD, 0x82, + 0x24, 0x41, 0xCD, 0x3A, 0xF9, 0xEA, 0xD8, 0xB9, + 0xE5, 0xE4, 0xC5, 0x9A, 0xB9, 0xA4, 0x4D, 0x97, + 0x44, 0x7E, 0x08, 0xDA, 0x86, 0x7A, 0xE7, 0x17, + 0xA1, 0x66, 0x1D, 0x94, 0xAA, 0xA1, 0xED, 0x1D, + 0x06, 0x3D, 0x70, 0xF0, 0xB2, 0xDE, 0xD2, 0xB3, + 0x41, 0x0B, 0x7B, 0x72, 0xA0, 0xA7, 0x11, 0x1C, + 0x31, 0xEF, 0xC2, 0xD1, 0x27, 0x53, 0x90, 0x3E, + 0x20, 0x8F, 0xF6, 0x33, 0x60, 0x26, 0xFF, 0x5F, + 0x96, 0xEC, 0x5C, 0x76, 0xB1, 0x2A, 0xAB, 0x49, + 0x9E, 0x81, 0x9C, 0x88, 0x52, 0xEE, 0x1B, 0x21, + 0x5F, 0xC4, 0x93, 0x1A, 0x0A, 0xEB, 0xEF, 0xD9, + 0x91, 0xC5, 0x85, 0x39, 0x49, 0x99, 0xEE, 0xCD, + 0x2D, 0xAD, 0x4F, 0x31, 0x8F, 0x8B, 0x3B, 0x01, + 0x47, 0x18, 0x87, 0x23, 0x6D, 0xDD, 0x46, 0x1F, + 0xD6, 0x4E, 0x3E, 0x2D, 0x69, 0xF9, 0x64, 0x48, + 0x2A, 0x4F, 0xCE, 0xF2, 0xCB, 0x65, 0x2F, 0x8E, + 0xFC, 0x78, 0x97, 0x5C, 0x05, 0x58, 0x7A, 0x19, + 0xAC, 0x8D, 0x7F, 0xE5, 0xD5, 0x98, 0x1A, 0x57, + 0x4B, 0x67, 0x0E, 0x7F, 0xA7, 0x05, 0x5A, 0x64, + 0x28, 0xAF, 0x14, 0x63, 0x3F, 0xB6, 0x29, 0xFE, + 0x88, 0xF5, 0x3C, 0xB7, 0x4C, 0x3C, 0x02, 0xA5, + 0xB8, 0xCE, 0xDA, 0xE9, 0xB0, 0x68, 0x17, 0x44, + 0x55, 0xE0, 0x1F, 0x4D, 0x8A, 0x43, 0x7D, 0x69, + 0x57, 0x29, 0xC7, 0x2E, 0x8D, 0xAC, 0x74, 0x15, + 0xB7, 0x59, 0xC4, 0xA8, 0x9F, 0x0A, 0x72, 0x9E, + 0x7E, 0x6E, 0x15, 0x47, 0x22, 0xDF, 0x12, 0x34, + 0x58, 0x35, 0x07, 0x6A, 0x99, 0xCF, 0x34, 0xDC, + 0x6E, 0x22, 0x50, 0xC9, 0xDE, 0xC0, 0x68, 0x9B, + 0x65, 0x89, 0xBC, 0xD4, 0xDB, 0xED, 0xF8, 0xAB, + 0xC8, 0x12, 0xA8, 0xA2, 0x2B, 0x0D, 0x40, 0x52, + 0xDC, 0xBB, 0xFE, 0x02, 0x32, 0x2F, 0xA4, 0xA9, + 0xCA, 0xD7, 0x10, 0x61, 0x21, 0x1E, 0xF0, 0xB4, + 0xD3, 0x50, 0x5D, 0x04, 0x0F, 0xF6, 0x00, 0xC2, + 0x6F, 0x16, 0x9D, 0x25, 0x36, 0x86, 0x42, 0x56, + 0x4A, 0x55, 0x5E, 0x09, 0xC1, 0xBE, 0xE0, 0x91 +}; +/* Macro to perform one column of the RS matrix multiplication. The + * parameters a, b, c, and d are the four bytes of output; i is the index + * of the key bytes, and w, x, y, and z, are the column of constants from + * the RS matrix, preprocessed through the poly_to_exp table. */ + +#define CALC_S(a, b, c, d, i, w, x, y, z) \ + if (key[i]) { \ + tmp = poly_to_exp[key[i] - 1]; \ + (a) ^= exp_to_poly[tmp + (w)]; \ + (b) ^= exp_to_poly[tmp + (x)]; \ + (c) ^= exp_to_poly[tmp + (y)]; \ + (d) ^= exp_to_poly[tmp + (z)]; \ + } + +/* Macros to calculate the key-dependent S-boxes for a 128-bit key using + * the S vector from CALC_S. CALC_SB_2 computes a single entry in all + * four S-boxes, where i is the index of the entry to compute, and a and b + * are the index numbers preprocessed through the q0 and q1 tables + * respectively. CALC_SB is simply a convenience to make the code shorter; + * it calls CALC_SB_2 four times with consecutive indices from i to i+3, + * using the remaining parameters two by two. */ + +#define CALC_SB_2(i, a, b) \ + ctx->s[0][i] = mds[0][q0[(a) ^ sa] ^ se]; \ + ctx->s[1][i] = mds[1][q0[(b) ^ sb] ^ sf]; \ + ctx->s[2][i] = mds[2][q1[(a) ^ sc] ^ sg]; \ + ctx->s[3][i] = mds[3][q1[(b) ^ sd] ^ sh] + +#define CALC_SB(i, a, b, c, d, e, f, g, h) \ + CALC_SB_2 (i, a, b); CALC_SB_2 ((i)+1, c, d); \ + CALC_SB_2 ((i)+2, e, f); CALC_SB_2 ((i)+3, g, h) + +/* Macros exactly like CALC_SB and CALC_SB_2, but for 256-bit keys. */ + +#define CALC_SB256_2(i, a, b) \ + ctx->s[0][i] = mds[0][q0[q0[q1[(b) ^ sa] ^ se] ^ si] ^ sm]; \ + ctx->s[1][i] = mds[1][q0[q1[q1[(a) ^ sb] ^ sf] ^ sj] ^ sn]; \ + ctx->s[2][i] = mds[2][q1[q0[q0[(a) ^ sc] ^ sg] ^ sk] ^ so]; \ + ctx->s[3][i] = mds[3][q1[q1[q0[(b) ^ sd] ^ sh] ^ sl] ^ sp]; + +#define CALC_SB256(i, a, b, c, d, e, f, g, h) \ + CALC_SB256_2 (i, a, b); CALC_SB256_2 ((i)+1, c, d); \ + CALC_SB256_2 ((i)+2, e, f); CALC_SB256_2 ((i)+3, g, h) + +/* Macros to calculate the whitening and round subkeys. CALC_K_2 computes the + * last two stages of the h() function for a given index (either 2i or 2i+1). + * a, b, c, and d are the four bytes going into the last two stages. For + * 128-bit keys, this is the entire h() function and a and c are the index + * preprocessed through q0 and q1 respectively; for longer keys they are the + * output of previous stages. j is the index of the first key byte to use. + * CALC_K computes a pair of subkeys for 128-bit Twofish, by calling CALC_K_2 + * twice, doing the Psuedo-Hadamard Transform, and doing the necessary + * rotations. Its parameters are: a, the array to write the results into, + * j, the index of the first output entry, k and l, the preprocessed indices + * for index 2i, and m and n, the preprocessed indices for index 2i+1. + * CALC_K256_2 expands CALC_K_2 to handle 256-bit keys, by doing two + * additional lookup-and-XOR stages. The parameters a and b are the index + * preprocessed through q0 and q1 respectively; j is the index of the first + * key byte to use. CALC_K256 is identical to CALC_K but for using the + * CALC_K256_2 macro instead of CALC_K_2. */ + +#define CALC_K_2(a, b, c, d, j) \ + mds[0][q0[a ^ key[(j) + 8]] ^ key[j]] \ + ^ mds[1][q0[b ^ key[(j) + 9]] ^ key[(j) + 1]] \ + ^ mds[2][q1[c ^ key[(j) + 10]] ^ key[(j) + 2]] \ + ^ mds[3][q1[d ^ key[(j) + 11]] ^ key[(j) + 3]] + +#define CALC_K(a, j, k, l, m, n) \ + x = CALC_K_2 (k, l, k, l, 0); \ + y = CALC_K_2 (m, n, m, n, 4); \ + y = (y << 8) + (y >> 24); \ + x += y; y += x; ctx->a[j] = x; \ + ctx->a[(j) + 1] = (y << 9) + (y >> 23) + +#define CALC_K256_2(a, b, j) \ + CALC_K_2 (q0[q1[b ^ key[(j) + 24]] ^ key[(j) + 16]], \ + q1[q1[a ^ key[(j) + 25]] ^ key[(j) + 17]], \ + q0[q0[a ^ key[(j) + 26]] ^ key[(j) + 18]], \ + q1[q0[b ^ key[(j) + 27]] ^ key[(j) + 19]], j) + +#define CALC_K256(a, j, k, l, m, n) \ + x = CALC_K256_2 (k, l, 0); \ + y = CALC_K256_2 (m, n, 4); \ + y = (y << 8) + (y >> 24); \ + x += y; y += x; ctx->a[j] = x; \ + ctx->a[(j) + 1] = (y << 9) + (y >> 23) + + + +/* Perform the key setup. Note that this works only with 128- and 256-bit + * keys, despite the API that looks like it might support other sizes. */ + +static gcry_err_code_t +do_twofish_setkey (TWOFISH_context *ctx, const byte *key, const unsigned keylen) +{ + int i, j, k; + + /* Temporaries for CALC_K. */ + u32 x, y; + + /* The S vector used to key the S-boxes, split up into individual bytes. + * 128-bit keys use only sa through sh; 256-bit use all of them. */ + byte sa = 0, sb = 0, sc = 0, sd = 0, se = 0, sf = 0, sg = 0, sh = 0; + byte si = 0, sj = 0, sk = 0, sl = 0, sm = 0, sn = 0, so = 0, sp = 0; + + /* Temporary for CALC_S. */ + byte tmp; + + /* Flags for self-test. */ + static int initialized = 0; + static const char *selftest_failed=0; + + /* Check key length. */ + if( ( ( keylen - 16 ) | 16 ) != 16 ) + return GPG_ERR_INV_KEYLEN; + + /* Do self-test if necessary. */ + if (!initialized) + { + initialized = 1; + selftest_failed = selftest (); + if( selftest_failed ) + log_error("%s\n", selftest_failed ); + } + if( selftest_failed ) + return GPG_ERR_SELFTEST_FAILED; + + /* Compute the first two words of the S vector. The magic numbers are + * the entries of the RS matrix, preprocessed through poly_to_exp. The + * numbers in the comments are the original (polynomial form) matrix + * entries. */ + CALC_S (sa, sb, sc, sd, 0, 0x00, 0x2D, 0x01, 0x2D); /* 01 A4 02 A4 */ + CALC_S (sa, sb, sc, sd, 1, 0x2D, 0xA4, 0x44, 0x8A); /* A4 56 A1 55 */ + CALC_S (sa, sb, sc, sd, 2, 0x8A, 0xD5, 0xBF, 0xD1); /* 55 82 FC 87 */ + CALC_S (sa, sb, sc, sd, 3, 0xD1, 0x7F, 0x3D, 0x99); /* 87 F3 C1 5A */ + CALC_S (sa, sb, sc, sd, 4, 0x99, 0x46, 0x66, 0x96); /* 5A 1E 47 58 */ + CALC_S (sa, sb, sc, sd, 5, 0x96, 0x3C, 0x5B, 0xED); /* 58 C6 AE DB */ + CALC_S (sa, sb, sc, sd, 6, 0xED, 0x37, 0x4F, 0xE0); /* DB 68 3D 9E */ + CALC_S (sa, sb, sc, sd, 7, 0xE0, 0xD0, 0x8C, 0x17); /* 9E E5 19 03 */ + CALC_S (se, sf, sg, sh, 8, 0x00, 0x2D, 0x01, 0x2D); /* 01 A4 02 A4 */ + CALC_S (se, sf, sg, sh, 9, 0x2D, 0xA4, 0x44, 0x8A); /* A4 56 A1 55 */ + CALC_S (se, sf, sg, sh, 10, 0x8A, 0xD5, 0xBF, 0xD1); /* 55 82 FC 87 */ + CALC_S (se, sf, sg, sh, 11, 0xD1, 0x7F, 0x3D, 0x99); /* 87 F3 C1 5A */ + CALC_S (se, sf, sg, sh, 12, 0x99, 0x46, 0x66, 0x96); /* 5A 1E 47 58 */ + CALC_S (se, sf, sg, sh, 13, 0x96, 0x3C, 0x5B, 0xED); /* 58 C6 AE DB */ + CALC_S (se, sf, sg, sh, 14, 0xED, 0x37, 0x4F, 0xE0); /* DB 68 3D 9E */ + CALC_S (se, sf, sg, sh, 15, 0xE0, 0xD0, 0x8C, 0x17); /* 9E E5 19 03 */ + + if (keylen == 32) /* 256-bit key */ + { + /* Calculate the remaining two words of the S vector */ + CALC_S (si, sj, sk, sl, 16, 0x00, 0x2D, 0x01, 0x2D); /* 01 A4 02 A4 */ + CALC_S (si, sj, sk, sl, 17, 0x2D, 0xA4, 0x44, 0x8A); /* A4 56 A1 55 */ + CALC_S (si, sj, sk, sl, 18, 0x8A, 0xD5, 0xBF, 0xD1); /* 55 82 FC 87 */ + CALC_S (si, sj, sk, sl, 19, 0xD1, 0x7F, 0x3D, 0x99); /* 87 F3 C1 5A */ + CALC_S (si, sj, sk, sl, 20, 0x99, 0x46, 0x66, 0x96); /* 5A 1E 47 58 */ + CALC_S (si, sj, sk, sl, 21, 0x96, 0x3C, 0x5B, 0xED); /* 58 C6 AE DB */ + CALC_S (si, sj, sk, sl, 22, 0xED, 0x37, 0x4F, 0xE0); /* DB 68 3D 9E */ + CALC_S (si, sj, sk, sl, 23, 0xE0, 0xD0, 0x8C, 0x17); /* 9E E5 19 03 */ + CALC_S (sm, sn, so, sp, 24, 0x00, 0x2D, 0x01, 0x2D); /* 01 A4 02 A4 */ + CALC_S (sm, sn, so, sp, 25, 0x2D, 0xA4, 0x44, 0x8A); /* A4 56 A1 55 */ + CALC_S (sm, sn, so, sp, 26, 0x8A, 0xD5, 0xBF, 0xD1); /* 55 82 FC 87 */ + CALC_S (sm, sn, so, sp, 27, 0xD1, 0x7F, 0x3D, 0x99); /* 87 F3 C1 5A */ + CALC_S (sm, sn, so, sp, 28, 0x99, 0x46, 0x66, 0x96); /* 5A 1E 47 58 */ + CALC_S (sm, sn, so, sp, 29, 0x96, 0x3C, 0x5B, 0xED); /* 58 C6 AE DB */ + CALC_S (sm, sn, so, sp, 30, 0xED, 0x37, 0x4F, 0xE0); /* DB 68 3D 9E */ + CALC_S (sm, sn, so, sp, 31, 0xE0, 0xD0, 0x8C, 0x17); /* 9E E5 19 03 */ + + /* Compute the S-boxes. */ + for(i=j=0,k=1; i < 256; i++, j += 2, k += 2 ) + { + CALC_SB256_2( i, calc_sb_tbl[j], calc_sb_tbl[k] ); + } + + /* Calculate whitening and round subkeys. The constants are + * indices of subkeys, preprocessed through q0 and q1. */ + CALC_K256 (w, 0, 0xA9, 0x75, 0x67, 0xF3); + CALC_K256 (w, 2, 0xB3, 0xC6, 0xE8, 0xF4); + CALC_K256 (w, 4, 0x04, 0xDB, 0xFD, 0x7B); + CALC_K256 (w, 6, 0xA3, 0xFB, 0x76, 0xC8); + CALC_K256 (k, 0, 0x9A, 0x4A, 0x92, 0xD3); + CALC_K256 (k, 2, 0x80, 0xE6, 0x78, 0x6B); + CALC_K256 (k, 4, 0xE4, 0x45, 0xDD, 0x7D); + CALC_K256 (k, 6, 0xD1, 0xE8, 0x38, 0x4B); + CALC_K256 (k, 8, 0x0D, 0xD6, 0xC6, 0x32); + CALC_K256 (k, 10, 0x35, 0xD8, 0x98, 0xFD); + CALC_K256 (k, 12, 0x18, 0x37, 0xF7, 0x71); + CALC_K256 (k, 14, 0xEC, 0xF1, 0x6C, 0xE1); + CALC_K256 (k, 16, 0x43, 0x30, 0x75, 0x0F); + CALC_K256 (k, 18, 0x37, 0xF8, 0x26, 0x1B); + CALC_K256 (k, 20, 0xFA, 0x87, 0x13, 0xFA); + CALC_K256 (k, 22, 0x94, 0x06, 0x48, 0x3F); + CALC_K256 (k, 24, 0xF2, 0x5E, 0xD0, 0xBA); + CALC_K256 (k, 26, 0x8B, 0xAE, 0x30, 0x5B); + CALC_K256 (k, 28, 0x84, 0x8A, 0x54, 0x00); + CALC_K256 (k, 30, 0xDF, 0xBC, 0x23, 0x9D); + } + else + { + /* Compute the S-boxes. */ + for(i=j=0,k=1; i < 256; i++, j += 2, k += 2 ) + { + CALC_SB_2( i, calc_sb_tbl[j], calc_sb_tbl[k] ); + } + + /* Calculate whitening and round subkeys. The constants are + * indices of subkeys, preprocessed through q0 and q1. */ + CALC_K (w, 0, 0xA9, 0x75, 0x67, 0xF3); + CALC_K (w, 2, 0xB3, 0xC6, 0xE8, 0xF4); + CALC_K (w, 4, 0x04, 0xDB, 0xFD, 0x7B); + CALC_K (w, 6, 0xA3, 0xFB, 0x76, 0xC8); + CALC_K (k, 0, 0x9A, 0x4A, 0x92, 0xD3); + CALC_K (k, 2, 0x80, 0xE6, 0x78, 0x6B); + CALC_K (k, 4, 0xE4, 0x45, 0xDD, 0x7D); + CALC_K (k, 6, 0xD1, 0xE8, 0x38, 0x4B); + CALC_K (k, 8, 0x0D, 0xD6, 0xC6, 0x32); + CALC_K (k, 10, 0x35, 0xD8, 0x98, 0xFD); + CALC_K (k, 12, 0x18, 0x37, 0xF7, 0x71); + CALC_K (k, 14, 0xEC, 0xF1, 0x6C, 0xE1); + CALC_K (k, 16, 0x43, 0x30, 0x75, 0x0F); + CALC_K (k, 18, 0x37, 0xF8, 0x26, 0x1B); + CALC_K (k, 20, 0xFA, 0x87, 0x13, 0xFA); + CALC_K (k, 22, 0x94, 0x06, 0x48, 0x3F); + CALC_K (k, 24, 0xF2, 0x5E, 0xD0, 0xBA); + CALC_K (k, 26, 0x8B, 0xAE, 0x30, 0x5B); + CALC_K (k, 28, 0x84, 0x8A, 0x54, 0x00); + CALC_K (k, 30, 0xDF, 0xBC, 0x23, 0x9D); + } + + return 0; +} + +static gcry_err_code_t +twofish_setkey (void *context, const byte *key, unsigned int keylen) +{ + TWOFISH_context *ctx = context; + int rc = do_twofish_setkey (ctx, key, keylen); + _gcry_burn_stack (23+6*sizeof(void*)); + return rc; +} + + + +/* Macros to compute the g() function in the encryption and decryption + * rounds. G1 is the straight g() function; G2 includes the 8-bit + * rotation for the high 32-bit word. */ + +#define G1(a) \ + (ctx->s[0][(a) & 0xFF]) ^ (ctx->s[1][((a) >> 8) & 0xFF]) \ + ^ (ctx->s[2][((a) >> 16) & 0xFF]) ^ (ctx->s[3][(a) >> 24]) + +#define G2(b) \ + (ctx->s[1][(b) & 0xFF]) ^ (ctx->s[2][((b) >> 8) & 0xFF]) \ + ^ (ctx->s[3][((b) >> 16) & 0xFF]) ^ (ctx->s[0][(b) >> 24]) + +/* Encryption and decryption Feistel rounds. Each one calls the two g() + * macros, does the PHT, and performs the XOR and the appropriate bit + * rotations. The parameters are the round number (used to select subkeys), + * and the four 32-bit chunks of the text. */ + +#define ENCROUND(n, a, b, c, d) \ + x = G1 (a); y = G2 (b); \ + x += y; y += x + ctx->k[2 * (n) + 1]; \ + (c) ^= x + ctx->k[2 * (n)]; \ + (c) = ((c) >> 1) + ((c) << 31); \ + (d) = (((d) << 1)+((d) >> 31)) ^ y + +#define DECROUND(n, a, b, c, d) \ + x = G1 (a); y = G2 (b); \ + x += y; y += x; \ + (d) ^= y + ctx->k[2 * (n) + 1]; \ + (d) = ((d) >> 1) + ((d) << 31); \ + (c) = (((c) << 1)+((c) >> 31)); \ + (c) ^= (x + ctx->k[2 * (n)]) + +/* Encryption and decryption cycles; each one is simply two Feistel rounds + * with the 32-bit chunks re-ordered to simulate the "swap" */ + +#define ENCCYCLE(n) \ + ENCROUND (2 * (n), a, b, c, d); \ + ENCROUND (2 * (n) + 1, c, d, a, b) + +#define DECCYCLE(n) \ + DECROUND (2 * (n) + 1, c, d, a, b); \ + DECROUND (2 * (n), a, b, c, d) + +/* Macros to convert the input and output bytes into 32-bit words, + * and simultaneously perform the whitening step. INPACK packs word + * number n into the variable named by x, using whitening subkey number m. + * OUTUNPACK unpacks word number n from the variable named by x, using + * whitening subkey number m. */ + +#define INPACK(n, x, m) \ + x = in[4 * (n)] ^ (in[4 * (n) + 1] << 8) \ + ^ (in[4 * (n) + 2] << 16) ^ (in[4 * (n) + 3] << 24) ^ ctx->w[m] + +#define OUTUNPACK(n, x, m) \ + x ^= ctx->w[m]; \ + out[4 * (n)] = x; out[4 * (n) + 1] = x >> 8; \ + out[4 * (n) + 2] = x >> 16; out[4 * (n) + 3] = x >> 24 + +/* Encrypt one block. in and out may be the same. */ + +static void +do_twofish_encrypt (const TWOFISH_context *ctx, byte *out, const byte *in) +{ + /* The four 32-bit chunks of the text. */ + u32 a, b, c, d; + + /* Temporaries used by the round function. */ + u32 x, y; + + /* Input whitening and packing. */ + INPACK (0, a, 0); + INPACK (1, b, 1); + INPACK (2, c, 2); + INPACK (3, d, 3); + + /* Encryption Feistel cycles. */ + ENCCYCLE (0); + ENCCYCLE (1); + ENCCYCLE (2); + ENCCYCLE (3); + ENCCYCLE (4); + ENCCYCLE (5); + ENCCYCLE (6); + ENCCYCLE (7); + + /* Output whitening and unpacking. */ + OUTUNPACK (0, c, 4); + OUTUNPACK (1, d, 5); + OUTUNPACK (2, a, 6); + OUTUNPACK (3, b, 7); +} + +static void +twofish_encrypt (void *context, byte *out, const byte *in) +{ + TWOFISH_context *ctx = context; + do_twofish_encrypt (ctx, out, in); + _gcry_burn_stack (24+3*sizeof (void*)); +} + + +/* Decrypt one block. in and out may be the same. */ + +static void +do_twofish_decrypt (const TWOFISH_context *ctx, byte *out, const byte *in) +{ + /* The four 32-bit chunks of the text. */ + u32 a, b, c, d; + + /* Temporaries used by the round function. */ + u32 x, y; + + /* Input whitening and packing. */ + INPACK (0, c, 4); + INPACK (1, d, 5); + INPACK (2, a, 6); + INPACK (3, b, 7); + + /* Encryption Feistel cycles. */ + DECCYCLE (7); + DECCYCLE (6); + DECCYCLE (5); + DECCYCLE (4); + DECCYCLE (3); + DECCYCLE (2); + DECCYCLE (1); + DECCYCLE (0); + + /* Output whitening and unpacking. */ + OUTUNPACK (0, a, 0); + OUTUNPACK (1, b, 1); + OUTUNPACK (2, c, 2); + OUTUNPACK (3, d, 3); +} + +static void +twofish_decrypt (void *context, byte *out, const byte *in) +{ + TWOFISH_context *ctx = context; + + do_twofish_decrypt (ctx, out, in); + _gcry_burn_stack (24+3*sizeof (void*)); +} + + +/* Test a single encryption and decryption with each key size. */ + + +/* More complete test program. This does 1000 encryptions and decryptions + * with each of 250 128-bit keys and 2000 encryptions and decryptions with + * each of 125 256-bit keys, using a feedback scheme similar to a Feistel + * cipher, so as to be sure of testing all the table entries pretty + * thoroughly. We keep changing the keys so as to get a more meaningful + * performance number, since the key setup is non-trivial for Twofish. */ + +#ifdef TEST + + +int +main() +{ + TWOFISH_context ctx; /* Expanded key. */ + int i, j; /* Loop counters. */ + + const char *encrypt_msg; /* Message to print regarding encryption test; + * the printf is done outside the loop to avoid + * stuffing up the timing. */ + clock_t timer; /* For computing elapsed time. */ + + /* Test buffer. */ + byte buffer[4][16] = { + {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, + 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF}, + {0x0F, 0x1E, 0x2D, 0x3C, 0x4B, 0x5A, 0x69, 0x78, + 0x87, 0x96, 0xA5, 0xB4, 0xC3, 0xD2 ,0xE1, 0xF0}, + {0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, + 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54 ,0x32, 0x10}, + {0x01, 0x23, 0x45, 0x67, 0x76, 0x54 ,0x32, 0x10, + 0x89, 0xAB, 0xCD, 0xEF, 0xFE, 0xDC, 0xBA, 0x98} + }; + + /* Expected outputs for the million-operation test */ + static const byte test_encrypt[4][16] = { + {0xC8, 0x23, 0xB8, 0xB7, 0x6B, 0xFE, 0x91, 0x13, + 0x2F, 0xA7, 0x5E, 0xE6, 0x94, 0x77, 0x6F, 0x6B}, + {0x90, 0x36, 0xD8, 0x29, 0xD5, 0x96, 0xC2, 0x8E, + 0xE4, 0xFF, 0x76, 0xBC, 0xE5, 0x77, 0x88, 0x27}, + {0xB8, 0x78, 0x69, 0xAF, 0x42, 0x8B, 0x48, 0x64, + 0xF7, 0xE9, 0xF3, 0x9C, 0x42, 0x18, 0x7B, 0x73}, + {0x7A, 0x88, 0xFB, 0xEB, 0x90, 0xA4, 0xB4, 0xA8, + 0x43, 0xA3, 0x1D, 0xF1, 0x26, 0xC4, 0x53, 0x57} + }; + static const byte test_decrypt[4][16] = { + {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, + 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF}, + {0x0F, 0x1E, 0x2D, 0x3C, 0x4B, 0x5A, 0x69, 0x78, + 0x87, 0x96, 0xA5, 0xB4, 0xC3, 0xD2 ,0xE1, 0xF0}, + {0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, + 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54 ,0x32, 0x10}, + {0x01, 0x23, 0x45, 0x67, 0x76, 0x54 ,0x32, 0x10, + 0x89, 0xAB, 0xCD, 0xEF, 0xFE, 0xDC, 0xBA, 0x98} + }; + + /* Start the timer ticking. */ + timer = clock (); + + /* Encryption test. */ + for (i = 0; i < 125; i++) + { + twofish_setkey (&ctx, buffer[0], sizeof (buffer[0])); + for (j = 0; j < 1000; j++) + twofish_encrypt (&ctx, buffer[2], buffer[2]); + twofish_setkey (&ctx, buffer[1], sizeof (buffer[1])); + for (j = 0; j < 1000; j++) + twofish_encrypt (&ctx, buffer[3], buffer[3]); + twofish_setkey (&ctx, buffer[2], sizeof (buffer[2])*2); + for (j = 0; j < 1000; j++) { + twofish_encrypt (&ctx, buffer[0], buffer[0]); + twofish_encrypt (&ctx, buffer[1], buffer[1]); + } + } + encrypt_msg = memcmp (buffer, test_encrypt, sizeof (test_encrypt)) ? + "encryption failure!\n" : "encryption OK!\n"; + + /* Decryption test. */ + for (i = 0; i < 125; i++) + { + twofish_setkey (&ctx, buffer[2], sizeof (buffer[2])*2); + for (j = 0; j < 1000; j++) { + twofish_decrypt (&ctx, buffer[0], buffer[0]); + twofish_decrypt (&ctx, buffer[1], buffer[1]); + } + twofish_setkey (&ctx, buffer[1], sizeof (buffer[1])); + for (j = 0; j < 1000; j++) + twofish_decrypt (&ctx, buffer[3], buffer[3]); + twofish_setkey (&ctx, buffer[0], sizeof (buffer[0])); + for (j = 0; j < 1000; j++) + twofish_decrypt (&ctx, buffer[2], buffer[2]); + } + + /* Stop the timer, and print results. */ + timer = clock () - timer; + printf (encrypt_msg); + printf (memcmp (buffer, test_decrypt, sizeof (test_decrypt)) ? + "decryption failure!\n" : "decryption OK!\n"); + printf ("elapsed time: %.1f s.\n", (float) timer / CLOCKS_PER_SEC); + + return 0; +} + +#endif /* TEST */ + + + +gcry_cipher_spec_t _gcry_cipher_spec_twofish = + { + "TWOFISH", NULL, NULL, 16, 256, sizeof (TWOFISH_context), + twofish_setkey, twofish_encrypt, twofish_decrypt + }; + +gcry_cipher_spec_t _gcry_cipher_spec_twofish128 = + { + "TWOFISH128", NULL, NULL, 16, 128, sizeof (TWOFISH_context), + twofish_setkey, twofish_encrypt, twofish_decrypt + }; + + +GRUB_MOD_INIT(gcry_twofish) +{ + grub_cipher_register (&_gcry_cipher_spec_twofish); + grub_cipher_register (&_gcry_cipher_spec_twofish128); +} + +GRUB_MOD_FINI(gcry_twofish) +{ + grub_cipher_unregister (&_gcry_cipher_spec_twofish); + grub_cipher_unregister (&_gcry_cipher_spec_twofish128); +} --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/ChangeLog +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/ChangeLog @@ -0,0 +1,4212 @@ +2010-11-30 Automatic import tool + + Imported ciphers to GRUB + + * md.c: Removed + * rijndael.c: Removed including of config.h + Removed including of stdio.h + Removed including of stdlib.h + Removed including of string.h + (elftest): Removed declaration. + (_gcry_aes_cfb_enc): Removed. + (_gcry_aes_cbc_enc): Removed. + (_gcry_aes_cfb_dec): Removed. + (_gcry_aes_cbc_dec): Removed. + (selftest_basic_128): Removed. + (selftest_basic_192): Removed. + (selftest_basic_256): Removed. + (selftest): Removed. + (selftest_fips_128_38a): Removed. + (selftest_fips_128): Removed. + (selftest_fips_192): Removed. + (selftest_fips_256): Removed. + (run_selftests): Removed. + (_gcry_cipher_extraspec_aes): Removed. + (_gcry_cipher_extraspec_aes192): Removed. + (_gcry_cipher_extraspec_aes256): Removed. + (GRUB_MOD_INIT(gcry_rijndael)): New function + + Register cipher _gcry_cipher_spec_aes + Register cipher _gcry_cipher_spec_aes192 + Register cipher _gcry_cipher_spec_aes256 + (GRUB_MOD_FINI(gcry_rijndael)): New function + + Unregister cipher _gcry_cipher_spec_aes + Unregister cipher _gcry_cipher_spec_aes192 + Unregister cipher _gcry_cipher_spec_aes256 + * sha512.c: Removed including of config.h + Removed including of string.h + (selftests_sha384): Removed. + (selftests_sha512): Removed. + (run_selftests): Removed. + (_gcry_digest_extraspec_sha512): Removed. + (_gcry_digest_extraspec_sha384): Removed. + (GRUB_MOD_INIT(gcry_sha512)): New function + + Register digest _gcry_digest_spec_sha512 + Register digest _gcry_digest_spec_sha384 + (GRUB_MOD_FINI(gcry_sha512)): New function + + Unregister MD _gcry_digest_spec_sha512 + Unregister MD _gcry_digest_spec_sha384 + * ac.c: Removed + * camellia.h: Removed including of config.h + * seed.c: Removed including of config.h + Removed including of stdio.h + Removed including of stdlib.h + (elftest): Removed declaration. + (selftest): Removed. + (GRUB_MOD_INIT(gcry_seed)): New function + + Register cipher _gcry_cipher_spec_seed + (GRUB_MOD_FINI(gcry_seed)): New function + + Unregister cipher _gcry_cipher_spec_seed + * cipher.c: Removed + * dsa.c: Removed including of config.h + Removed including of stdio.h + Removed including of stdlib.h + Removed including of string.h + (selftest_sign_1024): Removed. + (selftests_dsa): Removed. + (run_selftests): Removed. + * md4.c: Removed including of config.h + Removed including of stdio.h + Removed including of stdlib.h + Removed including of string.h + (GRUB_MOD_INIT(gcry_md4)): New function + + Register digest _gcry_digest_spec_md4 + (GRUB_MOD_FINI(gcry_md4)): New function + + Unregister MD _gcry_digest_spec_md4 + * tiger.c: Removed including of config.h + Removed including of stdio.h + Removed including of stdlib.h + Removed including of string.h + (GRUB_MOD_INIT(gcry_tiger)): New function + + Register digest _gcry_digest_spec_tiger + (GRUB_MOD_FINI(gcry_tiger)): New function + + Unregister MD _gcry_digest_spec_tiger + * elgamal.c: Removed including of config.h + Removed including of stdio.h + Removed including of stdlib.h + Removed including of string.h + * ecc.c: Removed including of config.h + Removed including of stdio.h + Removed including of stdlib.h + Removed including of string.h + (selftests_ecdsa): Removed. + (run_selftests): Removed. + * crc.c: Removed including of config.h + Removed including of stdio.h + Removed including of stdlib.h + Removed including of string.h + (GRUB_MOD_INIT(gcry_crc)): New function + + Register digest _gcry_digest_spec_crc32 + Register digest _gcry_digest_spec_crc32_rfc1510 + Register digest _gcry_digest_spec_crc24_rfc2440 + (GRUB_MOD_FINI(gcry_crc)): New function + + Unregister MD _gcry_digest_spec_crc32 + Unregister MD _gcry_digest_spec_crc32_rfc1510 + Unregister MD _gcry_digest_spec_crc24_rfc2440 + * hmac-tests.c: Removed + * md5.c: Removed including of config.h + Removed including of stdio.h + Removed including of stdlib.h + Removed including of string.h + (GRUB_MOD_INIT(gcry_md5)): New function + + Register digest _gcry_digest_spec_md5 + (GRUB_MOD_FINI(gcry_md5)): New function + + Unregister MD _gcry_digest_spec_md5 + * camellia.c: Removed including of string.h + Removed including of stdlib.h + * serpent.c: Removed including of config.h + Removed including of string.h + Removed including of stdio.h + (GRUB_MOD_INIT(gcry_serpent)): New function + + Register cipher _gcry_cipher_spec_serpent128 + Register cipher _gcry_cipher_spec_serpent192 + Register cipher _gcry_cipher_spec_serpent256 + (GRUB_MOD_FINI(gcry_serpent)): New function + + Unregister cipher _gcry_cipher_spec_serpent128 + Unregister cipher _gcry_cipher_spec_serpent192 + Unregister cipher _gcry_cipher_spec_serpent256 + * arcfour.c: Removed including of config.h + Removed including of stdio.h + Removed including of stdlib.h + Removed including of string.h + (elftest): Removed declaration. + (selftest): Removed. + (GRUB_MOD_INIT(gcry_arcfour)): New function + + Register cipher _gcry_cipher_spec_arcfour + (GRUB_MOD_FINI(gcry_arcfour)): New function + + Unregister cipher _gcry_cipher_spec_arcfour + * whirlpool.c: Removed including of config.h + Removed including of stdio.h + Removed including of stdlib.h + Removed including of string.h + (GRUB_MOD_INIT(gcry_whirlpool)): New function + + Register digest _gcry_digest_spec_whirlpool + (GRUB_MOD_FINI(gcry_whirlpool)): New function + + Unregister MD _gcry_digest_spec_whirlpool + * des.c: Removed including of config.h + Removed including of stdio.h + Removed including of string.h + (elftest): Removed declaration. + (weak_keys_chksum): Removed. + (tripledes_set2keys): Removed. + (selftest): Removed. + (do_tripledes_set_extra_info): Removed. + (selftest_fips): Removed. + (run_selftests): Removed. + (_gcry_cipher_extraspec_tripledes): Removed. + (GRUB_MOD_INIT(gcry_des)): New function + + Register cipher _gcry_cipher_spec_des + Register cipher _gcry_cipher_spec_tripledes + (GRUB_MOD_FINI(gcry_des)): New function + + Unregister cipher _gcry_cipher_spec_des + Unregister cipher _gcry_cipher_spec_tripledes + * sha256.c: Removed including of config.h + Removed including of stdio.h + Removed including of stdlib.h + Removed including of string.h + (selftests_sha224): Removed. + (selftests_sha256): Removed. + (run_selftests): Removed. + (_gcry_digest_extraspec_sha224): Removed. + (_gcry_digest_extraspec_sha256): Removed. + (GRUB_MOD_INIT(gcry_sha256)): New function + + Register digest _gcry_digest_spec_sha224 + Register digest _gcry_digest_spec_sha256 + (GRUB_MOD_FINI(gcry_sha256)): New function + + Unregister MD _gcry_digest_spec_sha224 + Unregister MD _gcry_digest_spec_sha256 + * pubkey.c: Removed + * twofish.c: Removed including of config.h + Removed including of stdio.h + Removed including of stdlib.h + Removed including of string.h + (elftest): Removed declaration. + (selftest): Removed. + Removed including of stdio.h + Removed including of string.h + Removed including of time.h + (GRUB_MOD_INIT(gcry_twofish)): New function + + Register cipher _gcry_cipher_spec_twofish + Register cipher _gcry_cipher_spec_twofish128 + (GRUB_MOD_FINI(gcry_twofish)): New function + + Unregister cipher _gcry_cipher_spec_twofish + Unregister cipher _gcry_cipher_spec_twofish128 + * cast5.c: Removed including of config.h + Removed including of stdio.h + Removed including of stdlib.h + Removed including of string.h + (selftest): Removed. + (GRUB_MOD_INIT(gcry_cast5)): New function + + Register cipher _gcry_cipher_spec_cast5 + (GRUB_MOD_FINI(gcry_cast5)): New function + + Unregister cipher _gcry_cipher_spec_cast5 + * rsa.c: Removed including of config.h + Removed including of stdio.h + Removed including of stdlib.h + Removed including of string.h + Removed including of errno.h + (selftest_sign_1024): Removed. + (selftest_encr_1024): Removed. + (selftests_rsa): Removed. + (run_selftests): Removed. + * sha1.c: Removed including of config.h + Removed including of stdio.h + Removed including of stdlib.h + Removed including of string.h + (_gcry_sha1_hash_buffer): Removed. + (selftests_sha1): Removed. + (run_selftests): Removed. + (_gcry_digest_extraspec_sha1): Removed. + (GRUB_MOD_INIT(gcry_sha1)): New function + + Register digest _gcry_digest_spec_sha1 + (GRUB_MOD_FINI(gcry_sha1)): New function + + Unregister MD _gcry_digest_spec_sha1 + * blowfish.c: Removed including of config.h + Removed including of stdio.h + Removed including of stdlib.h + Removed including of string.h + (selftest): Removed. + (GRUB_MOD_INIT(gcry_blowfish)): New function + + Register cipher _gcry_cipher_spec_blowfish + (GRUB_MOD_FINI(gcry_blowfish)): New function + + Unregister cipher _gcry_cipher_spec_blowfish + * camellia-glue.c: Removed including of config.h + Removed including of config.h + (elftest): Removed declaration. + (selftest): Removed. + (GRUB_MOD_INIT(gcry_camellia)): New function + + Register cipher _gcry_cipher_spec_camellia128 + Register cipher _gcry_cipher_spec_camellia192 + Register cipher _gcry_cipher_spec_camellia256 + (GRUB_MOD_FINI(gcry_camellia)): New function + + Unregister cipher _gcry_cipher_spec_camellia128 + Unregister cipher _gcry_cipher_spec_camellia192 + Unregister cipher _gcry_cipher_spec_camellia256 + * hash-common.c: Removed + * rmd160.c: Removed including of config.h + Removed including of stdio.h + Removed including of stdlib.h + Removed including of string.h + (_gcry_rmd160_hash_buffer): Removed. + (GRUB_MOD_INIT(gcry_rmd160)): New function + + Register digest _gcry_digest_spec_rmd160 + (GRUB_MOD_FINI(gcry_rmd160)): New function + + Unregister MD _gcry_digest_spec_rmd160 + * rfc2268.c: Removed including of config.h + Removed including of stdio.h + Removed including of stdlib.h + Removed including of string.h + (elftest): Removed declaration. + (selftest): Removed. + (GRUB_MOD_INIT(gcry_rfc2268)): New function + + Register cipher _gcry_cipher_spec_rfc2268_40 + (GRUB_MOD_FINI(gcry_rfc2268)): New function + + Unregister cipher _gcry_cipher_spec_rfc2268_40 + * primegen.c: Removed including of config.h + Removed including of stdio.h + Removed including of stdlib.h + Removed including of string.h + Removed including of errno.h + * crypto.lst: New file. + * types.h: New file. + * memory.h: New file. + * cipher.h: Likewise. + * g10lib.h: Likewise. + +2009-01-22 Werner Koch + + * ecc.c (compute_keygrip): Remove superfluous const. + +2009-01-06 Werner Koch + + * rmd160.c (oid_spec_rmd160): Add TeleTrust identifier. + +2008-12-10 Werner Koch + + * dsa.c (generate): Add arg DOMAIN and use it if specified. + (generate_fips186): Ditto. + (dsa_generate_ext): Parse and check the optional "domain" + parameter and pass them to the generate functions. + + * rijndael.c (rijndael_names): Add "AES128" and "AES-128". + (rijndael192_names): Add "AES-192". + (rijndael256_names): Add "AES-256". + +2008-12-05 Werner Koch + + * dsa.c (generate): Add arg TRANSIENT_KEY and use it to detrmine + the RNG quality needed. + (dsa_generate_ext): Parse the transient-key flag und pass it to + generate. + +2008-11-28 Werner Koch + + * dsa.c (generate_fips186): Add arg DERIVEPARMS and use the seed + value if available. + + * primegen.c (_gcry_generate_fips186_2_prime): Fix inner p loop. + +2008-11-26 Werner Koch + + * primegen.c (_gcry_generate_fips186_3_prime): New. + * dsa.c (generate_fips186): Add arg USE_FIPS186_2. + (dsa_generate_ext): Parse new flag use-fips183-2. + +2008-11-25 Werner Koch + + * dsa.c (generate_fips186): New. + (dsa_generate_ext): Use new function if derive-parms are given or + if in FIPS mode. + * primegen.c (_gcry_generate_fips186_2_prime): New. + +2008-11-24 Werner Koch + + * pubkey.c (gcry_pk_genkey): Insert code to output extrainfo. + (pubkey_generate): Add arg R_EXTRAINFO and pass it to the extended + key generation function. + * rsa.c (gen_x931_parm_xp, gen_x931_parm_xi): New. + (generate_x931): Generate params if not given. + (rsa_generate_ext): Parse use-x931 flag. Return p-q-swapped + indicator. + * dsa.c (dsa_generate_ext): Put RETFACTORS into R_EXTRAINFO if + possible. + + * pubkey.c (gcry_pk_genkey): Remove parsing of almost all + parameters and pass the parameter S-expression to pubkey_generate. + (pubkey_generate): Simplify by requitring modules to parse the + parameters. Remove the special cases for Elgamal and ECC. + (sexp_elements_extract_ecc): Add arg EXTRASPEC and use it. Fix + small memory leak. + (sexp_to_key): Pass EXTRASPEC to sexp_elements_extract_ecc. + (pubkey_table) [USE_ELGAMAL]: Add real extraspec. + * rsa.c (rsa_generate_ext): Adjust for new calling convention. + * dsa.c (dsa_generate_ext): Ditto. + * elgamal.c (_gcry_elg_generate): Ditto. Rename to elg_generate_ext. + (elg_generate): New. + (_gcry_elg_generate_using_x): Remove after merging code with + elg_generate_ext. + (_gcry_pubkey_extraspec_elg): New. + (_gcry_elg_check_secret_key, _gcry_elg_encrypt, _gcry_elg_sign) + (_gcry_elg_verify, _gcry_elg_get_nbits): Make static and remove + _gcry_ prefix. + * ecc.c (_gcry_ecc_generate): Rename to ecc_generate_ext and + adjust for new calling convention. + (_gcry_ecc_get_param): Rename to ecc_get_param and make static. + (_gcry_pubkey_extraspec_ecdsa): Add ecc_generate_ext and + ecc_get_param. + +2008-11-20 Werner Koch + + * pubkey.c (pubkey_generate): Add arg DERIVEPARMS. + (gcry_pk_genkey): Parse derive-parms and pass it to above. + * rsa.c (generate_x931): New. + (rsa_generate_ext): Add arg DERIVEPARMS and call new function in + fips mode or if DERIVEPARMS is given. + * primegen.c (_gcry_derive_x931_prime, find_x931_prime): New. + +2008-11-19 Werner Koch + + * rsa.c (rsa_decrypt): Use gcry_create_nonce for blinding. + (generate): Rename to generate_std. + +2008-11-05 Werner Koch + + * md.c (md_open): Use a switch to set the Bsize. + (prepare_macpads): Fix long key case for SHA384 and SHA512. + + * cipher.c (gcry_cipher_handle): Add field EXTRASPEC. + (gcry_cipher_open): Set it. + (gcry_cipher_ctl): Add private control code to disable weak key + detection and to return the current input block. + * des.c (_tripledes_ctx): Add field FLAGS. + (do_tripledes_set_extra_info): New. + (_gcry_cipher_extraspec_tripledes): Add new function. + (do_tripledes_setkey): Disable weak key detection. + +2008-10-24 Werner Koch + + * md.c (digest_table): Allow MD5 in fips mode. + (md_register_default): Take special action for MD5. + (md_enable, gcry_md_hash_buffer): Ditto. + +2008-09-30 Werner Koch + + * rijndael.c (do_setkey): Properly align "t" and "tk". + (prepare_decryption): Properly align "w". Fixes bug #936. + +2008-09-18 Werner Koch + + * pubkey.c (gcry_pk_genkey): Parse domain parameter. + (pubkey_generate): Add new arg DOMAIN and remove special case for + DSA with qbits. + * rsa.c (rsa_generate): Add dummy args QBITS, NAME and DOMAIN and + rename to rsa_generate_ext. Change caller. + (_gcry_rsa_generate, _gcry_rsa_check_secret_key) + (_gcry_rsa_encrypt, _gcry_rsa_decrypt, _gcry_rsa_sign) + (_gcry_rsa_verify, _gcry_rsa_get_nbits): Make static and remove + _gcry_ prefix. + (_gcry_pubkey_spec_rsa, _gcry_pubkey_extraspec_rsa): Adjust names. + * dsa.c (dsa_generate_ext): New. + (_gcry_dsa_generate): Replace code by a call to dsa_generate. + (_gcry_dsa_check_secret_key, _gcry_dsa_sign, _gcry_dsa_verify) + (_gcry_dsa_get_nbits): Make static and remove _gcry prefix. + (_gcry_dsa_generate2): Remove. + (_gcry_pubkey_spec_dsa): Adjust to name changes. + (_gcry_pubkey_extraspec_rsa): Add dsa_generate_ext. + +2008-09-16 Werner Koch + + * ecc.c (run_selftests): Add arg EXTENDED. + +2008-09-12 Werner Koch + + * rsa.c (test_keys): Do a bad case signature check. + * dsa.c (test_keys): Do a bad case check. + + * cipher.c (_gcry_cipher_selftest): Add arg EXTENDED and pass it + to the called tests. + * md.c (_gcry_md_selftest): Ditto. + * pubkey.c (_gcry_pk_selftest): Ditto. + * rijndael.c (run_selftests): Add arg EXTENDED and pass it to the + called tests. + (selftest_fips_128): Add arg EXTENDED and run only one test + non-extended mode. + (selftest_fips_192): Add dummy arg EXTENDED. + (selftest_fips_256): Ditto. + * hmac-tests.c (_gcry_hmac_selftest): Ditto. + (run_selftests): Ditto. + (selftests_sha1): Add arg EXTENDED and run only one test + non-extended mode. + (selftests_sha224, selftests_sha256): Ditto. + (selftests_sha384, selftests_sha512): Ditto. + * sha1.c (run_selftests): Add arg EXTENDED and pass it to the + called test. + (selftests_sha1): Add arg EXTENDED and run only one test + non-extended mode. + * sha256.c (run_selftests): Add arg EXTENDED and pass it to the + called tests. + (selftests_sha224): Add arg EXTENDED and run only one test + non-extended mode. + (selftests_sha256): Ditto. + * sha512.c (run_selftests): Add arg EXTENDED and pass it to the + called tests. + (selftests_sha384): Add arg EXTENDED and run only one test + non-extended mode. + (selftests_sha512): Ditto. + * des.c (run_selftests): Add arg EXTENDED and pass it to the + called test. + (selftest_fips): Add dummy arg EXTENDED. + * rsa.c (run_selftests): Add dummy arg EXTENDED. + + * dsa.c (run_selftests): Add dummy arg EXTENDED. + + * rsa.c (extract_a_from_sexp): New. + (selftest_encr_1024): Check that the ciphertext does not match the + plaintext. + (test_keys): Improve tests and return an error status. + (generate): Return an error if test_keys fails. + * dsa.c (test_keys): Add comments and return an error status. + (generate): Return an error if test_keys failed. + +2008-09-11 Werner Koch + + * rsa.c (_gcry_rsa_decrypt): Return an error instead of calling + BUG in case of a practically impossible condition. + (sample_secret_key, sample_public_key): New. + (selftest_sign_1024, selftest_encr_1024): New. + (selftests_rsa): Implement tests. + * dsa.c (sample_secret_key, sample_public_key): New. + (selftest_sign_1024): New. + (selftests_dsa): Implement tests. + +2008-09-09 Werner Koch + + * hmac-tests.c (selftests_sha1): Add tests. + (selftests_sha224, selftests_sha384, selftests_sha512): Make up tests. + + * hash-common.c, hash-common.h: New. + * sha1.c (selftests_sha1): Add 3 tests. + * sha256.c (selftests_sha256, selftests_sha224): Ditto. + * sha512.c (selftests_sha512, selftests_sha384): Ditto. + +2008-08-29 Werner Koch + + * pubkey.c (gcry_pk_get_keygrip): Remove the special case for RSA + and check whether a custom computation function has been setup. + * rsa.c (compute_keygrip): New. + (_gcry_pubkey_extraspec_rsa): Setup this function. + * ecc.c (compute_keygrip): New. + (_gcry_pubkey_extraspec_ecdsa): Setup this function. + +2008-08-28 Werner Koch + + * cipher.c (cipher_decrypt, cipher_encrypt): Return an error if + mode NONE is used. + (gcry_cipher_open): Allow mode NONE only with a debug flag set and + if not in FIPS mode. + +2008-08-26 Werner Koch + + * pubkey.c (pubkey_generate): Add arg KEYGEN_FLAGS. + (gcry_pk_genkey): Implement new parameter "transient-key" and + pass it as flags to pubkey_generate. + (pubkey_generate): Make use of an ext_generate function. + * rsa.c (generate): Add new arg transient_key and pass appropriate + args to the prime generator. + (_gcry_rsa_generate): Factor all code out to ... + (rsa_generate): .. new func with extra arg KEYGEN_FLAGS. + (_gcry_pubkey_extraspec_ecdsa): Setup rsa_generate. + * primegen.c (_gcry_generate_secret_prime) + (_gcry_generate_public_prime): Add new arg RANDOM_LEVEL. + +2008-08-21 Werner Koch + + * primegen.c (_gcry_generate_secret_prime) + (_gcry_generate_public_prime): Use a constant macro for the random + level. + +2008-08-19 Werner Koch + + * pubkey.c (sexp_elements_extract_ecc) [!USE_ECC]: Do not allow + allow "curve" parameter. + +2008-08-15 Werner Koch + + * pubkey.c (_gcry_pk_selftest): New. + * dsa.c (selftests_dsa, run_selftests): New. + * rsa.c (selftests_rsa, run_selftests): New. + * ecc.c (selftests_ecdsa, run_selftests): New. + + * md.c (_gcry_md_selftest): New. + * sha1.c (run_selftests, selftests_sha1): New. + * sha256.c (selftests_sha224, selftests_sha256, run_selftests): New. + * sha512.c (selftests_sha384, selftests_sha512, run_selftests): New. + + * des.c (selftest): Remove static variable form selftest. + (des_setkey): No on-the-fly self test in fips mode. + (tripledes_set3keys): Ditto. + + * cipher.c (_gcry_cipher_setkey, _gcry_cipher_setiv): + + * dsa.c (generate): Bail out in fips mode if NBITS is less than 1024. + * rsa.c (generate): Return an error code if the the requested size + is less than 1024 and we are in fpis mode. + (_gcry_rsa_generate): Take care of that error code. + + * ecc.c (generate_curve): In fips mode enable only NIST curves. + + * cipher.c (_gcry_cipher_selftest): New. + + * sha512.c (_gcry_digest_extraspec_sha384) + (_gcry_digest_extraspec_sha512): New. + * sha256.c (_gcry_digest_extraspec_sha224) + (_gcry_digest_extraspec_sha256): New. + * sha1.c (_gcry_digest_extraspec_sha1): New. + * ecc.c (_gcry_pubkey_extraspec_ecdsa): New. + * dsa.c (_gcry_pubkey_extraspec_dsa): New. + * rsa.c (_gcry_pubkey_extraspec_rsa): New. + * rijndael.c (_gcry_cipher_extraspec_aes) + (_gcry_cipher_extraspec_aes192, _gcry_cipher_extraspec_aes256): New. + * des.c (_gcry_cipher_extraspec_tripledes): New. + + * cipher.c (gcry_cipher_register): Rename to _gcry_cipher_register. + Add arg EXTRASPEC. + (dummy_extra_spec): New. + (cipher_table_entry): Add extraspec field. + * md.c (_gcry_md_register): Rename to _gcry_md_register. Add + arg EXTRASPEC. + (dummy_extra_spec): New. + (digest_table_entry): Add extraspec field. + * pubkey.c (gcry_pk_register): Rename to _gcry_pk_register. Add + arg EXTRASPEC. + (dummy_extra_spec): New. + (pubkey_table_entry): Add extraspec field. + + * ac.c: Let most public functions return GPG_ERR_UNSUPPORTED in + fips mode. + + * pubkey.c (pubkey_table_entry): Add field FIPS_ALLOWED and mark + appropriate algorithms. + (dummy_generate, dummy_check_secret_key, dummy_encrypt) + (dummy_decrypt, dummy_sign, dummy_verify, dummy_get_nbits): Signal + a fips error when used. + (gcry_pk_register): In fips mode do not allow to register new + algorithms. + + * md.c (digest_table): Add field FIPS_ALLOWED and mark appropriate + algorithms. + (md_register_default): In fips mode register only fips algorithms. + (gcry_md_register): In fips mode do not allow to register new + algorithms. + (gcry_md_get): Signal a fips error if called. + (gcry_md_hash_buffer): Do not allow rmd160 when not in fips mode. + (md_start_debug): Disable in fips_mode. + + * md.c (gcry_md_register_default): Rename to .. + (md_register_default): .. this. + (md_digest): Remove this commented fucntion. + * pubkey.c (gcry_pk_register_default): Rename to .. + (pk_register_default): .. this. + + * cipher.c (cipher_table_entry): Add field FIPS_ALLOWED. + (gcry_cipher_register_default): Register only fips approved + algorithms. + (gcry_cipher_register): Do not allow to register new ciphers. + (cipher_setiv): Signal fips error. + + * cipher (gcry_cipher_register_default): Rename to .. + (cipher_register_default): .. this. + (REGISTER_DEFAULT_CIPHERS): Adjust for that change. + +2008-07-05 Werner Koch + + * random-daemon.c, random.h, rndhw.c, rndunix.c, rand-internal.h + * random.c, rndegd.c, rndlinux.c, rndw32.c: Move to ../cipher. + * Makefile.am: Remove random stuff. + +2008-06-24 Szakats Istvan (wk) + + * ac.c (_gcry_ac_key_destroy, _gcry_ac_key_pair_generate): Relase + some more memory. + +2008-04-22 Werner Koch + + * rijndael.c (_gcry_aes_cfb_enc, _gcry_aes_cbc_enc) + (_gcry_aes_cfb_dec, _gcry_aes_cbc_dec): Use Padlock if possible. + +2008-04-18 Werner Koch + + * sha1.c (transform_aligned): Remove. That is will obviosuly not + work because we need a scratch working area and our internal API + does not allow to modify the buffers. + + * rijndael.c: Factor tables out to .. + * rijndael-tables.h: .. new. + + * ac.c (ac_data_extract): Make static. + + * camellia.h [HAVE_CONFIG_H]: Include config.h. + + * rndw32.c (registry_poll): Only print the performance data + problem warning once. Suggested by Simon Josefsson. + +2008-03-19 Werner Koch + + * cipher.c (gcry_cipher_open) [USE_AES]: Init bulk encryption only + if requested. Suggested by Dirk Stoecker. + +2008-03-18 Werner Koch + + * sha1.c: Include stdint.h. + (transform): Add arg NBLOCKS so that we can work on more than one + block and avoid updates of the chaining variables. Changed all + callers to use 1. + (sha1_write): Replace loop around transform. + (transform_aligned) [WORDS_BIGENDIAN]: New. + (TRANSFORM): New macro to replace all direct calls of transform. + +2008-03-17 Werner Koch + + * rijndael.c (_gcry_aes_cfb_dec): New. + (do_encrypt): Factor code out to .. + (do_encrypt_aligned): .. New. + (_gcry_aes_cfb_enc, _gcry_aes_cfb_dec): Use new function. + (do_decrypt): Factor code out to .. + (do_decrypt_aligned): .. new. + (_gcry_aes_cbc_enc, _gcry_aes_cbc_dec): New. + * cipher.c (struct gcry_cipher_handle): Put field IV into new + union U_IV to enforce proper alignment. Change all users. + (do_cfb_decrypt): Optimize. + (do_cbc_encrypt, do_cbc_decrypt): Optimize. + +2008-03-15 Werner Koch + + * rijndael.c (_gcry_aes_cfb_enc): New. + * cipher.c (struct gcry_cipher_handle): Add field ALGO and BULK. + (gcry_cipher_open): Set ALGO and BULK. + (do_cfb_encrypt): Optimize. + +2008-02-18 Werner Koch + + * rsa.c (_gcry_rsa_verify) [IS_DEVELOPMENT_VERSION]: Print + intermediate results. + +2008-01-08 Werner Koch + + * random.c (add_randomness): Do not just increment + POOL_FILLED_COUNTER but update it by the actual amount of data. + +2007-12-13 Werner Koch + + * pubkey.c (sexp_data_to_mpi): Support SHA-224. + +2007-12-05 Werner Koch + + * rijndael.c (USE_PADLOCK): Depend on ENABLE_PADLOCK_SUPPORT. + * rndhw.c (USE_PADLOCK): Ditto + + * rsa.c (secret): Fixed condition test for using CRT. Reported by + Dean Scarff. Fixes bug#864. + (_gcry_rsa_check_secret_key): Return an erro if the optional + parameters are missing. + * pubkey.c (sexp_elements_extract): Add arg ALGO_NAME. Changed all + callers to pass NULL. Add hack to allow for optional RSA + parameters. + (sexp_to_key): Pass algo name to sexp_elements_extract. + +2007-12-03 Werner Koch + + * random.c (gcry_random_add_bytes): Implement it. + * rand-internal.h (RANDOM_ORIGIN_EXTERNAL): New. + +2007-11-30 Werner Koch + + * rndhw.c: New. + * rndlinux.c (_gcry_rndlinux_gather_random): Try to read 50% + directly from the hwrng. + * random.c (do_fast_random_poll): Also run the hw rng fast poll. + (_gcry_random_dump_stats): Tell whether the hw rng failed. + +2007-11-29 Werner Koch + + * rijndael.c (USE_PADLOCK): Define new macro used for ia32. + (RIJNDAEL_context) [USE_PADLOCK]: Add fields USE_PADLOCK and + PADLOCK_KEY. + (do_setkey) [USE_PADLOCK]: Enable padlock if available for 128 bit + AES. + (do_padlock) [USE_PADLOCK]: New. + (rijndael_encrypt, rijndael_decrypt) [USE_PADLOCK]: Divert to + do_padlock. + * cipher.c (cipher_context_alignment_t): New. Use it in this + module in place of PROPERLY_ALIGNED_TYPE. + (NEED_16BYTE_ALIGNED_CONTEXT): Define macro for ia32. + (struct gcry_cipher_handle): Add field HANDLE_OFFSET. + (gcry_cipher_open): Take care of increased alignment requirements. + (gcry_cipher_close): Ditto. + +2007-11-28 Werner Koch + + * sha256.c (asn224): Fixed wrong template. It happened due to a + bug in RFC4880. SHA-224 is not in the stable version of libgcrypt + so the consequences are limited to users of this devel version. + +2007-10-31 Werner Koch + + * ac.c (gcry_ac_data_new): Remove due to the visibility wrapper. + (gcry_ac_data_destroy, gcry_ac_data_copy, gcry_ac_data_length) + (gcry_ac_data_set, gcry_ac_data_get_name, gcry_ac_data_get_index) + (gcry_ac_data_to_sexp, gcry_ac_data_from_sexp) + (gcry_ac_data_clear, gcry_ac_io_init, gcry_ac_open) + (gcry_ac_close, gcry_ac_key_init, gcry_ac_key_pair_generate) + (gcry_ac_key_pair_extract, gcry_ac_key_destroy) + (gcry_ac_key_pair_destroy, gcry_ac_key_data_get) + (gcry_ac_key_test, gcry_ac_key_get_nbits, gcry_ac_key_get_grip) + (gcry_ac_data_encrypt, gcry_ac_data_decrypt, gcry_ac_data_sign) + (gcry_ac_data_verify, gcry_ac_data_encode, gcry_ac_data_decode) + (gcry_ac_mpi_to_os, gcry_ac_mpi_to_os_alloc, gcry_ac_os_to_mpi) + (gcry_ac_data_encrypt_scheme, gcry_ac_data_decrypt_scheme) + (gcry_ac_data_sign_scheme, gcry_ac_data_verify_scheme) + (gcry_ac_io_init_va): Ditto. + (gcry_ac_id_to_name, gcry_ac_name_to_id): Remove as these + deprecated functions are now implemented by visibility.c. + +2007-10-26 Werner Koch + + * rndw32.c: Disable debug flag. + +2007-10-25 Werner Koch + + * rndw32.c: Updated from current cryptlib snapshot and modified + for our use. Removed support from pre NT systems. + (slow_gatherer_windows95): Remove. + (_gcry_rndw32_gather_random): Require an NT platform. + (init_system_rng, read_system_rng, read_mbm_data): New. + (slow_gatherer_windowsNT): Rename to ... + (slow_gatherer): .. this. Read system RNG and MBM. + (registry_poll): New with code factored out from slow_gatherer. + +2007-08-23 Werner Koch + + * random.c (pool_filled_counter): New. + (add_randomness): Use it. + +2007-08-22 Werner Koch + + * rndw32.c, rndunix.c: Switched to LGPL. + +2007-05-30 Werner Koch + + * camellia.h, camellia.c: Replace by new LGPL version and adjusted + camellia.h. + +2007-05-09 Marcus Brinkmann + + * ac.c (_gcry_ac_io_init_va, _gcry_ac_io_write, _gcry_ac_io_read): + Adjust users of gcry_ac_io_t because union is not anonymous + anymore. + +2007-05-02 Werner Koch + + * camellia-glue.c (camellia_setkey, camellia_encrypt) + (camellia_decrypt): Recalculated used stack size in called + functions. + * camellia.h: Redefine external symbols. + +2007-05-02 David Shaw + + * Makefile.am, cipher.c: Add Camellia. + + * camellia-glue.c: New. The necessary glue to interface libgcrypt + to the stock NTT Camellia distribution. + + * camellia.h, camellia.c: The stock NTT Camellia distribution + (GPL). + +2007-04-30 David Shaw + + * cipher.c: Use #if instead of #ifdef as configure defines the + USE_cipher defines as 0 for disabled. + +2007-04-30 Werner Koch + + * rndegd.c (_gcry_rndegd_set_socket_name): New. + +2007-04-30 Marcus Brinkmann + + * ecc.c (ec2os): Fix relocation of short numbers. + + * ecc.c (generate_key): Do not allocate D, which will be allocated + by GEN_K. Remove G. Fix test if g_x, g_y resp. q_x, q_y are + requested. + (_gcry_ecc_generate): Release unneeded members of SK. + * pubkey.c (sexp_to_key): Release NAME. + +2007-04-28 Marcus Brinkmann + + * ac.c (gcry_ac_mpi): Remove member NAME_PROVIDED. + (ac_data_mpi_copy, _gcry_ac_data_set, _gcry_ac_data_get_name) + (_gcry_ac_data_get_index, ac_data_construct): Adjust handling of + NAME accordingly. + +2007-04-20 Werner Koch + + * ecc.c (domain_parms): Add standard brainpool curves. + +2007-04-18 Werner Koch + + * ecc.c (generate_curve): Implement alias mechanism. + + * pubkey.c (sexp_elements_extract_ecc): New. + (sexp_to_key): Add special case for ecc. + (sexp_to_key, sexp_to_sig, sexp_to_enc, gcry_pk_genkey): Replace + name_terminated stuff by a call to _gcry_sexp_nth_string. + (gcry_pk_get_keygrip): Ditto. + +2007-04-16 Werner Koch + + * ecc.c (_gcry_ecc_generate): Renamed DUMMY to CURVE and use it. + +2007-04-13 Marcus Brinkmann + + * ac.c (ac_data_construct): Cast const away to suppress compiler + warning. + + * ecc.c (ecc_generate): Avoid compiler warning for unused argument + DUMMY. + (ecc_verify): Avoid compiler warning for unused arguments CMP and + OPAQUEV. + +2007-04-06 Werner Koch + + * sha1.c (oid_spec_sha1): Add another oid from X9.62. + +2007-03-28 Werner Koch + + * pubkey.c (gcry_pk_genkey): Do not issue misc-key-info if it is + empty. + (gcry_pk_genkey): New parameter "curve". + + * ecc.c: Entirely rewritten with only a few traces of the old + code left. + (_gcry_ecc_generate): New. + (generate_key) New arg NAME. + (generate_curve): Ditto. Return actual number of NBITS. + +2007-03-26 Werner Koch + + * pubkey.c (gcry_pk_genkey): Increase size of SKEY array and add a + runtime bounds check. + +2007-03-23 Werner Koch + + * ecc.c (ecc_ctx_init, ecc_ctx_free, ecc_mod, ecc_mulm): New. + (duplicate_point, sum_points, escalar_mult): Don't use a + copy of base->p. Replaced all mpi_mulm by ecc_mulm so that we can + experiment with different algorithms. + (generate_key, check_secret_key, sign, verify): Initialize a + computation context for use by ecc_mulm. + +2007-03-22 Werner Koch + + * pubkey.c (pubkey_table): Initialize ECC. + * Makefile.am (EXTRA_libcipher_la_SOURCES): Add ecc.c. + * ecc.c: New. Heavily reformatted and changed for use in libgcrypt. + (point_init): New. + (escalar_mult): Make arg R the first arg to be similar to the mpi + functions. + (duplicate_point): Ditto + (sum_points): Ditto + (sign, verify): Remove unneeded copy operations. + (sum_points): Removed memory leaks and optimized some compares. + (verify): Simplified input check. + +2007-03-14 Werner Koch + + * random.c (MASK_LEVEL): Removed macro as it was used only at one + place. Open coded it there. + (gcry_randomize, _gcry_update_random_seed_file) + (_gcry_fast_random_poll): Factor lock code out to .. + (lock_pool, unlock_pool): .. new. + (initialize): Look the pool while allocating. + (read_random_source, do_fast_random_poll): Moved intialization to ... + (initialize): .. here. + (_gcry_enable_quick_random_gen): No more need for initialization. + (is_initialized): Moved this global flag to .. + (initialize): .. here and changed all users to unconditionally call + initialize. + (add_randomness): Remove initalization here. It simply can't + happen. + + * random.c (enum random_origins): Moved to .. + * rand-internal.h: .. here. + * rndunix.c (_gcry_rndunix_gather_random): Use enum in prototype + for ORIGIN and renamed REQUESTOR to ORIGIN. + * rndegd.c (_gcry_rndegd_gather_random): Ditto. + * rndlinux.c (_gcry_rndlinux_gather_random): Ditto. + * rndw32.c (_gcry_rndw32_gather_random): Ditto. + (_gcry_rndw32_gather_random_fast): Ditto. + +2007-03-13 Werner Koch + + * random.c (enum random_origins): New. + (add_randomness): Renamed arg SOURCE to ORIGIN. + (read_random_source): Renamed arg REQUESTOR to ORIGIN. + (getfnc_gather_random): Removed static variable because this + function is only called one and thus we don't need this + optimization. + (_gcry_quick_random_gen): Removed and replaced by.. + (_gcry_enable_quick_random_gen): .. this. It is onlyu used to + enable it and it does not make sense to disable it later. Changed + the only one caller too. + (get_random_bytes): Removed. + (gcry_random_bytes, gcry_random_bytes_secure): Implement in terms + of gcry_randomize. + * random-daemon.c (_gcry_daemon_get_random_bytes): Removed. + +2007-02-23 Werner Koch + + * elgamal.c (generate): Removed unused variable TEMP. + (test_keys): New arg NODIE. + (generate_using_x, _gcry_elg_generate_using_x): New. + * pubkey.c (pubkey_generate): New arg XVALUE and direct call to + the new elgamal generate fucntion. + (gcry_pk_genkey): Parse the new "xvalue" tag. + +2007-02-22 Werner Koch + + * pubkey.c (sexp_data_to_mpi): Handle dynamically allocated + algorithms. Suggested by Neil Dunbar. Fixes bug#596. + + * rndw32.c (_gcry_rndw32_gather_random_fast): Make it return void. + + * cipher.c (gcry_cipher_algo_name): Simplified. + + * random.c: Use the daemon only if compiled with USE_RANDOM_DAEMON. + + * Makefile.am (libcipher_la_SOURCES): Build random-daemon support + only if requested. + +2007-02-21 Werner Koch + + * random.c (rndpool, keypool): Make unsigned. + (mix_pool): Change char* variables to unsigned char*. + (gcry_randomize): Make arg BUFFER a void*. + (gcry_create_nonce): Ditto. + + * rmd160.c (gcry_rmd160_mixblock): Make BUFFER a void*. + (_gcry_rmd160_hash_buffer): Make OUTBUF and BUFFER void*. + * sha1.c (_gcry_sha1_hash_buffer): Ditto. + + * cipher.c (gcry_cipher_encrypt, cry_cipher_decrypt): Change + buffer args to void*. + (gcry_cipher_register): Make ALGORITHM_ID a int *. + + * md.c (md_start_debug): Make SUFFIX a const char*. Use snprintf. + (gcry_md_debug): New. + (gcry_md_ctl): Changed arg BUFFER from unsigned char*. + + * md.c (md_write): Make INBUF a const void*. + (gcry_md_write): Remove needless cast. + * crc.c (crc32_write): Make INBUF a const void* + (update_crc32, crc24rfc2440_write): Ditto. + * sha512.c (sha512_write, transform): Ditto. + * sha256.c (sha256_write, transform): Ditto. + * rmd160.c (rmd160_write, transform): Ditto. + * md5.c (md5_write, transform): Ditto. + * md4.c (md4_write, transform): Ditto. + * sha1.c (sha1_write, transform): Ditto. + + * tiger.c (tiger_write, transform): Ditto. + * whirlpool.c (whirlpool_write, whirlpool_add, transform): Ditto. + + * elgamal.c (elg_names): Change to a const*. + * dsa.c (dsa_names): Ditto. + * rsa.c (rsa_names): Ditto. + * pubkey.c (gcry_pk_lookup_func_name): Make ALIASES a const. + +2007-02-20 Werner Koch + + * rndlinux.c (open_device): Remove unsused arg MINOR. + +2007-01-30 Werner Koch + + * sha256.c (oid_spec_sha256): Add alias from pkcs#1. + * sha512.c (oid_spec_sha512): Ditto. + (oid_spec_sha384): Ditto. + +2006-12-18 Werner Koch + + * rndlinux.c (set_cloexec_flag): New. + (open_device): Set close-on-exit flags. Suggested by Max + Kellermann. Fixes Debian#403613. + + * Makefile.am (AM_CPPFLAGS, AM_CFLAGS): Splitted and merged + Moritz' changes. + (INCLUDES): Removed. + +2006-11-30 Werner Koch + + * serpent.c (byte_swap_32): Remove trailing semicolon. + +2006-11-15 Werner Koch + + * Makefile.am (INCLUDES): Include ../src/ + +2006-11-03 Werner Koch + + * random.c [HAVE_GETTIMEOFDAY]: Included sys/time.h and not + sys/times.h. Reported by Rafaël Carré. + +2006-11-05 Moritz Schulte + + * Makefile.am (AM_CFLAGS): Added -I$(top_builddir)/src so that the + new gcrypt.h is used, not the one installed in the system. + +2006-10-25 Werner Koch + + * primegen.c (prime_generate_internal): Tweaked use of secure + memory and entropy use. Safe unused primes from the pool. Allocate + at least a pool of 30. + (save_pool_prime, get_pool_prime): New. + +2006-10-23 Werner Koch + + * ac.c (_gcry_ac_data_from_sexp): Reset sexp_tmp for failsafe + means. Release sexp_cur if needed. Reported by Dirk Stoecker. + + * pubkey.c (pubkeys_registered_lock): Intialized it. It is not + realy needed because this is a mere initialization to 0 anyway. + Noted by Victor Stinner. + +2006-10-17 Werner Koch + + * dsa.c (_gcry_dsa_generate2): New. + (generate): New arg QBITS. Add sanity checks for reasonable qbits + and nbits. + * pubkey.c (gcry_pk_genkey): Parse an qbits element. + (pubkey_generate): New arg QBITS. Pass it to the DSA generation. + +2006-10-05 Werner Koch + + * md.c (gcry_md_algo_info) : Check that the algo is + available. + +2006-10-04 David Shaw (wk) + + * tiger.c (round): Rename to tiger_round as gcc 4 has a built-in + round function that this conflicts with. + +2006-09-11 Werner Koch + + * rndw32.c (slow_gatherer_windowsNT): While adding data use the + size of the diskPerformance and not its address. Has been fixed in + GnuPG more than a year ago. Noted by Lee Fisher. + +2006-08-30 Werner Koch + + * pubkey.c (sexp_data_to_mpi): Need to allow "ripemd160" here as + this is the canonical name. + +2006-08-29 Hye-Shik Chang (wk) + + * seed.c: New. + +2006-08-03 Werner Koch + + * random-daemon.c (_gcry_daemon_initialize_basics): Don't + initialize the socket. Remove arg SOCKETNAME. + (connect_to_socket): Make sure that daemon is set to -1 on error. + (call_daemon): Initialize the socket on the first call. + (_gcry_daemon_randomize, _gcry_daemon_get_random_bytes) + (_gcry_daemon_create_nonce): New arg SOCKETNAME. + * random.c (initialize): Call new daemon initializator. + (get_random_bytes, gcry_randomize, gcry_create_nonce): Pass socket + name to daemon call and reset allow_daemon on failure. + +2006-07-26 Werner Koch + + * rmd160.c (_gcry_rmd160_mixblock): Add cast to transform call. + + * blowfish.c (selftest): Cast string to usnigned char*. + + * primegen.c (prime_generate_internal): Cast unsigned/char* + mismatch in calling m_out_of_n. + (is_prime): Changed COUNT to unsigned int *. + + * ac.c (_gcry_ac_data_copy): Initialize DATA_MPIS. + + * random.c (gcry_create_nonce): Update the pid after a fork. + Reported by Uoti Urpala. + +2006-07-04 Marcus Brinkmann + + * sha512.c: Fix typo in copyright notice. + +2006-06-21 Werner Koch + + * rsa.c (_gcry_rsa_generate): Replace xcalloc by calloc. + * pubkey.c (gcry_pk_encrypt, gcry_pk_sign): Ditto. + (sexp_to_key, sexp_to_sig, sexp_to_enc, gcry_pk_encrypt) + (gcry_pk_sign, gcry_pk_genkey, gcry_pk_get_keygrip): Ditto. + * md.c (md_copy): Ditto. + +2006-04-22 Moritz Schulte + + * random-daemon.c (_gcry_daemon_initialize_basics): New argument: + SOCKETNAME. Passing on to connect_to_socket() if non-NULL. + (connect_to_socket, writen, readn, call_daemon): New functions. + (_gcry_daemon_randomize, _gcry_daemon_get_random_bytes) + (_gcry_daemon_create_nonce): Call call_daemon(). + (RANDOM_DAEMON_SOCKET): New symbol. + (daemon_socket): New static variable. + + * random.h (_gcry_daemon_initialize_basics): New parameter: + SOCKETNAME. + (_gcry_set_random_daemon_socket): New declaration. + + * random.c (initialize_basics): Pass DAEMON_SOCKET_NAME to + _gcry_daemon_initialize_basics. + (_gcry_set_random_daemon_socket): New function, setting + DAEMON_SOCKET_NAME. + +2006-04-01 Moritz Schulte + + * ac.c (eme_pkcs_v1_5_encode): Use KEY_SIZE directly, no need to + call gcry_ac_key_get_nbits. + (eme_pkcs_v1_5_decode): Likewise. + (ac_es_dencode_prepare_pkcs_v1_5): Fill options_em structure with + key_size. + (_gcry_ac_data_dump, gcry_ac_data_dump): New functions. + (_gcry_ac_data_to_sexp, _gcry_ac_data_from_sexp): More or less + rewritten; changed S-Expression format so that it matches the one + used in pubkey.c. + +2006-03-15 Werner Koch + + * random-daemon.c: New. + * random.c (_gcry_use_random_daemon): New. + (get_random_bytes, gcry_randomize, gcry_create_nonce): Try + diverting to the daemon functions. + +2006-03-14 Werner Koch + + * random.c (lock_seed_file): New. + (read_seed_file, _gcry_update_random_seed_file): Use it. + + * random.c (gcry_create_nonce): Detect a fork and re-seed. + (read_pool): Fixed the fork detection; it used to work only for + multi-threaded processes. + +2006-03-12 Brad Hards (wk) + + * md.c (md_open): Use new variable macpads_Bsize instead of + hardwiring the block size. Changed at all places. + +2006-03-10 Brad Hards (wk, patch 2005-04-22) + + * md.c, sha256.c: Add support for SHA-224. + (sha224_init): New. + +2006-01-18 Brad Hards (wk 2006-03-07) + + * cipher.c (cipher_encrypt, cipher_decrypt, do_ofb_encrypt) + (do_ofb_decrypt, gcry_cipher_open): Implement Output Feedback Mode. + +2005-11-02 Moritz Schulte + + * pubkey.c (gcry_pk_algo_name): Return "?" instead of NULL for + unknown algorithm IDs. + * cipher.c (cipher_algo_to_string): Likewise. + +2005-11-01 Moritz Schulte + + * pubkey.c (gcry_pk_algo_info): Don't forget to break after switch + case. + +2005-09-19 Werner Koch + + * dsa.c (generate): Add preliminary support for 2 and 4 keys. + Return an error code if the key size is not supported. + (_gcry_dsa_generate): Return an error. + +2005-08-22 Werner Koch + + * primegen.c (check_prime): New arg RM_ROUNDS. + (prime_generate_internal): Call it here with 5 rounds as used + before. + (gcry_prime_check): But here with 64 rounds. + (is_prime): Make sure never to use less than 5 rounds. + +2005-04-16 Moritz Schulte + + * ac.c (_gcry_ac_init): New function. + +2005-04-12 Moritz Schulte + + * ac.c (_gcry_ac_io_write, _gcry_ac_io_read): Initialize err to + make the compiler happy. + Always use errno, now that gcry_malloc() is guaranteed to set + errno on failure. + (_gcry_ac_data_to_sexp): Don't forget to goto out after error in + loop. + (_gcry_ac_data_to_sexp): Remove unused variable: mpi_list; + (_gcry_ac_data_to_sexp): Always deallocate sexp_buffer. + (_gcry_ac_data_from_sexp): Don't forget to initialize data_set_new. + (_gcry_ac_data_from_sexp): Handle special case, which is + necessary, since gcry_sexp_nth() does not distinguish between + "element does not exist" and "element is the empty list". + (_gcry_ac_io_init_va): Use assert to make sure that mode and type + are correct. + Use gcry_error_t types where gcry_err_code_t types have been used + before. + +2005-04-11 Moritz Schulte + + * ac.c (_gcry_ac_data_sign_scheme): Don't forget to initialize + buffer. + + * whirlpool.c: New file. + * md.c (digest_table): Add whirlpool. + * Makefile.am (EXTRA_libcipher_la_SOURCES): Added: whirlpool.c. + +2005-03-30 Moritz Schulte + + * ac.c (_gcry_ac_data_from_sexp): Use length of SEXP_CUR, not + length of SEXP; do not forget to set SEXP_TMP to NULL after it has + been released. + + (struct gcry_ac_mpi): New member: name_provided. + (_gcry_ac_data_set): Rename variable `name_final' to `name_cp'; + remove const qualifier; change code to not cast away const + qualifiers; use name_provided member as well. + (_gcry_ac_data_set, _gcry_ac_data_get_name): Use name_provided + member of named mpi structure. + + (gcry_ac_name_to_id): Do not forget to initialize err. + (_gcry_ac_data_get_index): Do not forget to initialize mpi_return; + use gcry_free() instead of free(); remove unnecessary cast; rename + mpi_return and name_return to mpi_cp and name_cp; adjust code. + (ac_data_mpi_copy): Do not cast away const qualifier. + (ac_data_values_destroy): Likewise. + (ac_data_construct): Likewise. + + (ac_data_mpi_copy): Initialize flags to GCRY_AC_FLAG_DEALLOC. + (ac_data_extract): Use GCRY_AC_FLAG_DEALLOC instead of + GCRY_AC_FLAG_COPY. + + (_gcry_ac_io_init_va, _gcry_ac_io_init, gcry_ac_io_init) + (gcry_ac_io_init_va, _gcry_ac_io_write, _gcry_ac_io_read) + (_gcry_ac_io_read_all, _gcry_ac_io_process): New functions. + (gry_ac_em_dencode_t): Use gcry_ac_io_t in prototype instead of + memroy strings directly; adjust encode/decode functions to use io + objects. + (emsa_pkcs_v1_5_encode_data_cb): New function ... + (emsa_pkcs_v1_5_encode): ... use it here. + (ac_data_dencode): Use io objects. + (_gcry_ac_data_encode, _gcry_ac_data_decode, gcry_ac_data_encode) + (gcry_ac_data_decode): Likewise. + (_gcry_ac_data_encrypt_scheme, gcry_ac_data_encrypt_scheme) + (_gcry_ac_data_decrypt_scheme, gcry_ac_data_decrypt_scheme) + (_gcry_ac_data_sign_scheme, gcry_ac_data_sign_scheme) + (_gcry_ac_data_verify_scheme, gcry_ac_data_verify_scheme): + Likewise. + +2005-03-23 Werner Koch + + * rndw32.c (_gcry_rndw32_gather_random_fast): While adding data + use the size of the object and not the one of its address. Bug + reported by Sascha Kiefer. + +2005-03-19 Moritz Schulte + + * cipher.c (do_cbc_encrypt): Be careful to not overwrite data, + which is to be used later on. This happend, in case CTS is + enabled and OUTBUF is equal to INBUF. + +2005-02-25 Werner Koch + + * pubkey.c (gcry_pk_get_keygrip): Allow for shadowed-private-key. + +2005-02-13 Moritz Schulte + + * serpent.c: Updated from 1.2 branch: + + s/u32_t/u32/ and s/byte_t/byte/. Too match what we have always + used and are using in all other files too + (serpent_test): Moved prototype out of a fucntion. + +2005-02-07 Moritz Schulte + + * ac.c: Major parts rewritten. + * pubkey.c (_gcry_pk_get_elements): New function. + +2004-12-09 Werner Koch + + * serpent.c (serpent_setkey): Moved prototype of serpent_test to + outer scope. + +2004-09-11 Moritz Schulte + + * pubkey.c (pubkey_table): Added an alias entry for GCRY_PK_ELG_E. + +2004-08-23 Moritz Schulte + + * ac.c: Do not include . + * rndegd.c: Likewise. + * sha1.c: Likewise. + * rndunix.c: Likewise. + * rndlinux.c: Likewise. + * rmd160.c: Likewise. + * md5.c: Likewise. + * md4.c: Likewise. + * cipher.c: Likewise. + * crc.c: Likewise. + * blowfish.c: Likewise. + + * pubkey.c (dummy_generate, dummy_check_secret_key) + (dummy_encrypt, dummy_decrypt, dummy_sign, dummy_verify): Return + err code GPG_ERR_NOT_IMPLEMENTED instead of aborting through + log_bug(). + (dummy_get_nbits): Return 0 instead of aborting though log_bug(). + +2004-08-19 Werner Koch + + * pubkey.c (sexp_data_to_mpi): Changed the zero random byte + substituting code to actually do clever things. Thanks to + Matthias Urlichs for noting the implementation problem. + +2004-08-09 Moritz Schulte + + * pubkey.c (gcry_pk_sign): Fixed memory leak; fix provided by + Modestas Vainius. + +2004-07-16 Werner Koch + + * rijndael.c (do_encrypt): Fix alignment problem. Bugs found by + Matthias Urlichs. + (do_decrypt): Ditto. + (keySched, keySched2): Use 2 macros along with unions in the key + schedule context. + +2004-07-14 Moritz Schulte + + * rsa.c (_gcry_rsa_decrypt): Don't forget to free "a". Thanks to + Nikos Mavroyanopoulos. + +2004-05-09 Werner Koch + + * random.c (read_pool): Mix the PID in to better protect after a + fork. + +2004-07-04 Moritz Schulte + + * serpent.c: Use "u32_t" instead of "unsigned long", do not + declare S-Box variables as "register". Fixes failure on + OpenBSD/sparc64, reported by Nikolay Sturm. + +2004-05-07 Werner Koch + + * random.c (initialize): Factored out some code to .. + (initialize_basics): .. new function. + (_gcry_random_initialize): Just call initialize_basics unless the + new arg FULL is set to TRUE. + (_gcry_fast_random_poll): Don't do anything unless the random + system has been really initialized. + +2004-05-07 Moritz Schulte + + * ac.c (gcry_ac_open): Do not dereference NULL pointer. Reported + by Umberto Salsi. + +2004-02-20 Werner Koch + + * primegen.c (check_prime): New args CB_FUNC and CB_ARG; call them + at different stages. Pass these arguments through all callers. + +2004-02-06 Werner Koch + + * des.c: Add a new OID as used by pkcs#12. + + * rfc2268.c: New. Taken from libgcrypt. + * cipher.c: Setup the rfc2268 algorithm. + +2004-01-25 Moritz Schulte + + * primegen.c (prime_generate_internal): Do not forget to free + `q_factor'; fixed by Brieuc Jeunhomme. + (prime_generate_internal): Do not forget to free `prime'. + +2004-01-14 Moritz Schulte + + * ac.c (gcry_ac_data_set): New argument: flags; slightly + rewritten. + (gcry_ac_data_get_name, gcry_ac_data_get_index): Likewise. + (gcry_ac_key_pair_generate): New argument: misc_data; modified + order of arguments. + (gcry_ac_key_test): New argument: handle. + (gcry_ac_key_get_nbits, gcry_ac_key_get_grip): Likewise. + Use GCRY_AC_FLAG_NO_BLINDING instead of + GCRY_AC_DATA_FLAG_NO_BLINDING. + (gcry_ac_mpi): New member: flags. + (gcry_ac_data_search, gcry_ac_data_add): Removed functions. + +2003-12-22 Werner Koch + + * primegen.c (is_prime): Release A2. + +2003-12-19 Werner Koch + + * md.c: Moved a couple of functions down below the data structure + definitions. + (struct gcry_md_context): New field ACTUAL_HANDLE_SIZE. + (md_open): Set it here. + (strcut gcry_md_list): New field ACTUAL_STRUCT_SIZE. + (md_enable): Set it here. + (md_close): Wipe the context memory. + secure memory. + * cipher.c (struct gcry_cipher_handle): New field ACTUAL_HANDLE_SIZE. + (gcry_cipher_open): Set it here. + (gcry_cipher_close): Use it to always wipe out the handle data. + + * ac.c (gcry_ac_open): Make sure HANDLE gets initialized even when + the function is not successful. + (gcry_ac_close): Allow a NULL handle. + (gcry_ac_key_destroy, gcry_ac_key_pair_destroy): Ditto. + (gcry_ac_key_get_grip): Return INV_OBJ on error. + + * primegen.c (prime_generate_internal): Fixed error code for + failed malloc. Replaced the !err if chain by gotos. + (gcry_prime_group_generator): Remove the extra sanity check. + + * md.c: Minor code and comment cleanups. + +2003-12-16 Werner Koch + + * primegen.c (gen_prime): Doc fix. Thanks to Newton Hammet. + +2003-12-11 Werner Koch + + * rndunix.c (slow_poll): Don't use #warning but #error. + + * rndegd.c: Changed indentation. + (my_make_filename): Removd the var_arg cruft becuase we + don't need it here. Changed caller. + + * rndlinux.c: Changed indentation. + (open_device): Remove the superfluous stat call and clarify + comment. + + * rsa.c: Changed indentation. + (secret): Use the standard algorithm if p, q and u are not + available. + (rsa_blind, rsa_unblind): Renamed from _gcry_rsa_blind, + _gcry_rsa_unblind and moved more to the top. + + * md4.c: Changed indentation. Removed unnecessary casts. + * md5.c, rmd160.c, sha1.c, tiger.c: Ditto. + * rijndael.c, twofish.c: Ditto. + * serpent.c: Removed unnecessary casts. + * sha256.c, sha512.c: Ditto. + +2003-12-09 Werner Koch + + * dsa.c: Unified indentation style. + * elgamal.c: Ditto. + * des.c (des_key_schedule): Code beautifications. + * blowfish.c: Changed indentation style. + * cast5.c (do_cast_setkey): Ditto. + + * pubkey.c (gcry_pk_encrypt): Replaced the chain of if(!err) tests + by straightforward gotos. Other cleanups. + (gcry_pk_decrypt): Ditto. + (gcry_pk_sign): Ditto. + (gcry_pk_verify): Ditto. + (gcry_pk_genkey): Ditto. Use strtoul instead of strtol. + (gcry_pk_ctl): Use GPG_ERR_INV_ARG to indicate bad arguments. + +2003-12-07 Werner Koch + + * pubkey.c (gcry_pk_register_default): Undef the helper macro. + (gcry_pk_map_name): Allow NULL for string. + (sexp_to_key): Use memcpy and not strncpy. Use gcry_free and not + free. + (sexp_to_sig): Ditto. + (sexp_to_enc): Ditto. Replaced the chain of if(!err) tests by + straightforward gotos. + +2003-12-05 Werner Koch + + * cipher.c: Documentation cleanups. + (gcry_cipher_mode_from_oid): Allow NULL for STRING. + +2003-12-03 Werner Koch + + * elgamal.c (sign, do_encrypt, gen_k): Make sure that a small K is + only used for encryption. + +2003-11-18 Werner Koch + + * random.h (rndw32_set_dll_name): Removed unused prototype. + + * Makefile.am (EXTRA_DIST): Added Manifest. + +2003-11-11 Werner Koch + + * Manifest: New. + +2003-11-04 Werner Koch + + * md.c (gcry_md_hash_buffer): Use shortcut for SHA1 + * sha1.c (_gcry_sha1_hash_buffer): New. + + * random.c: Reformatted most functions. + (mix_pool): Moved the failsafe_digest from global + scope to here. + (do_fast_random_poll): Use the generic fucntions even if a fast + gathering function has been used. + (read_pool): Detect a fork and retry. + (gcry_randomize, get_random_bytes): Don't distinguish anymore + between weak and strong random. + (gcry_create_nonce): New. + +2003-10-31 Werner Koch + + * rndw32.c (slow_gatherer_windowsNT): Use a plain buffer for the + disk performance values and not the W32 API structure. + + * dsa.c (verify): s/exp/ex/ due to shadowing of a builtin. + * elgamal.c (verify): Ditto. + + * ac.c (gcry_ac_data_get_index): s/index/idx/ + (gcry_ac_data_copy_internal): Remove the cast in _gcry_malloc. + (gcry_ac_data_add): Must use gcry_realloc instead of realloc. + * pubkey.c (sexp_elements_extract): s/index/idx/ as tribute to the + forehackers. + (gcry_pk_encrypt): Removed shadowed definition of I. Reordered + arguments to malloc for clarity. + (gcry_pk_sign, gcry_pk_genkey): Ditto. + * primegen.c (prime_generate_internal): s/random/randomlevel/. + +2003-10-27 Moritz Schulte + + * pubkey.c (gcry_pk_encrypt): Don't forget to deallocate pkey. + +2003-10-27 Werner Koch + + * random.c (gcry_random_add_bytes): Return if buflen is zero to + avoid gcc warning about unsed parameter. + (MASK_LEVEL): Simplified; does now work for signed and unsigned + w/o warnings. + + * md.c (md_start_debug): Removed the const from SUFFIX, because + this function is called from the control fucntion which does not + require const. + + Prefixed all (pubkey,digest,cipher}_spec_* globale variables with + _gcry_. + + * ac.c (ac_key_identifiers): Made static. + + * random.c (getfnc_gather_random,getfnc_fast_random_poll): Move + prototypes to .. + * rand-internal.h: .. here + * random.c (getfnc_gather_random): Include rndw32 gatherer. + * rndunix.c, rndw32.c, rndegd.c: Include them here. + * rndlinux.c (_gcry_rndlinux_gather_random): Prepend the _gcry_ + prefix. Changed all callers. + * rndegd.c (_gcry_rndegd_gather_random): Likewise. + (_gcry_rndegd_connect_socket): Likewise. + * rndunix.c (_gcry_rndunix_gather_random): Likewise. + (waitpid): Made static. + * rndw32.c: Removed the old and unused winseed.dll cruft. + (_gcry_rndw32_gather_random_fast): Renamed from + gather_random_fast. + (_gcry_rndw32_gather_random): Renamed from gather_random. Note, + that the changes 2003-04-08 somehow got lost. + + * sha512.c (sha512_init, sha384_init): Made static. + + * cipher.c (do_ctr_decrypt): Removed "return" from this void + function. + +2003-10-24 Moritz Schulte + + * serpent.c: Fix an issue on big-endian systems. + + * rndw32.c: Removed IS_MODULE -cruft. + * rndlinux.c (rndlinux_gather_random): Likewise. + +2003-10-10 Werner Koch + + * primegen.c (gen_prime): Bail out if NBITS is less than 16. + (prime_generate_internal): Initialize prime variable to suppress + compiler warning. Check pbits, initialize qbits when passed as + zero. + + * primegen.c (prime_generate_internal): New arg + ALL_FACTORS. Changed all callers. + (gcry_prime_generate): Make the factors arg optional. Request + all_factors. Make sure PRIME is set to NULL even on error. + (gcry_prime_group_generator): New. + (gcry_prime_release_factors): New. + +2003-10-06 Werner Koch + + * primegen.c (gen_prime): Assert that NBITS is never zero, it + would cause a segv. + +2003-09-28 Moritz Schulte + + * ac.c: Include "cipher.h". + +2003-09-27 Moritz Schulte + + * rndegd.c (do_read): Return nread instead of nbytes; thanks to + Michael Caerwyn. + +2003-09-04 Werner Koch + + * pubkey.c (_gcry_pk_aliased_algo_name): New. + * ac.c (gcry_ac_open): Use it here. + + * Makefile.am (EXTRA_libcipher_la_SOURCES): Add serpent.c + +2003-09-02 Moritz Schulte + + * primegen.c (gcry_prime_check, gcry_prime_generate): New + functions. + (prime_generate_internal): New function, based on + _gcry_generate_elg_prime. + (_gcry_generate_elg_prime): Rewritten as a wrapper for + prime_generate_internal. + +2003-08-28 Werner Koch + + * pubkey.c (gcry_pk_encrypt): Don't include the flags list in the + return value. This does not make sense and breaks any programs + parsing the output strictly (e.g. current gpgsm). + (gcry_pk_encrypt): If aliases for the algorithm name exists, take + the first one instead of the regular name to adhere to SPKI + conventions. + (gcry_pk_genkey): Ditto. + (gcry_pk_sign): Ditto. Removed unused KEY_ALGO_NAME. + +2003-08-19 Moritz Schulte + + * cipher.c: Add support for Serpent + * serpent.c: New file. + +2003-08-10 Moritz Schulte + + * rsa.c (_gcry_rsa_blind, _gcry_rsa_unblind): Declare static. + +2003-08-09 Timo Schulz + + * random.c (getfnc_gather_random): Don't check NAME_OF_DEV_RANDOM + two times, but also the NAME_OF_DEV_URANDOM device. + +2003-08-08 Moritz Schulte + + * pubkey.c (sexp_to_enc): Fixed extraction of S-Expression: do not + fail if no `flags' sub S-Expression is found. + +2003-07-27 Werner Koch + + * md.c (gcry_md_lookup_func_oid): Allow for empty OID lists. + +2003-07-23 Moritz Schulte + + * ac.c (gcry_ac_data_construct): New argument: include_flags, only + include `flags' S-expression, if include_flags is true. Adjust + callers. Thanks for triggering a bug caused by `flags' + sub-S-expression where they are not expected to Ralf Schneider. + +2003-07-21 Moritz Schulte + + * pubkey.c (gcry_pk_lookup_func_name): Use new member name + `aliases' instead of `sexp_names'. + + * ac.c (gcry_ac_key_data_get): New function. + + * cipher.c (gcry_cipher_lookup_func_name): Fix return value. + +2003-07-20 Moritz Schulte + + * blowfish.c: Adjusted for new gcry_cipher_spec_t structure. + * cast5.c: Likewise. + * twofish.c: Likewise. + * arcfour.c: Likewise. + * rijndael.c (rijndael_oids, rijndael192_oids, rijndael256_oids): + New variables, adjust for new gcry_cipher_spec_t structure. + * des.c (oids_tripledes): New variable, adjust for new + gcry_cipher_spec_t structure. + + * md.c (oid_table): Removed. + + * tiger.c (oid_spec_tiger): New variable. + (digest_spec_tiger): Adjusted for new gry_md_spec_t structure. + + * sha512.c (oid_spec_sha512): New variable. + (digest_spec_sha512): Adjusted for new gry_md_spec_t structure. + + * sha512.c (oid_spec_sha384): New variable. + (digest_spec_sha384): Adjusted for new gry_md_spec_t structure. + + * sha256.c (oid_spec_sha256): New variable. + (digest_spec_sha256): Adjusted for new gry_md_spec_t structure. + + * sha1.c (oid_spec_sha1): New variable. + (digest_spec_sha1): Adjusted for new gry_md_spec_t structure. + + * rmd160.c (oid_spec_rmd160): New variable. + (digest_spec_rnd160): Adjusted for new gry_md_spec_t structure. + + * md5.c (oid_spec_md5): New variable. + (digest_spec_md5): Adjusted for new gry_md_spec_t structure. + + * md4.c (oid_spec_md4): New variable. + (digest_spec_md4): Adjusted for new gry_md_spec_t structure. + + * crc.c (digest_spec_crc32, digest_spec_crc32_rfc1510, + digest_spec_crc32_rfc2440): Adjusted for new gry_md_spec_t + structure. + +2003-07-19 Moritz Schulte + + * md.c (gcry_md_lookup_func_oid): New function. + (search_oid): New function, copied from cipher.c. + (gcry_md_map_name): Adjust for new search_oid_interface. + + * cipher.c (oid_table): Removed table. + (gcry_cipher_lookup_func_oid): New function. + (search_oid): Rewritten to use the module functions. + (gcry_cipher_map_name): Adjust for new search_oid interface. + (gcry_cipher_mode_from_oid): Likewise. + +2003-07-18 Werner Koch + + * md.c (gcry_md_hash_buffer): Convert ERR to gpg_error_t in + gpg_strerror. + +2003-07-14 Moritz Schulte + + * cipher.c (gcry_cipher_lookup_func_name): Also check the cipher + name aliases, not just the primary name. + (gcry_cipher_map_name): Remove kludge for aliasing Rijndael to + AES. + + * arcfour.c, blowfish.c, cast5.c, des.c, twofish.c: Adjust cipher + specification structures. + + * rijndael.c (rijndael_names, rijndael192_names, + rijndael256_names): New variables, use them in the cipher + specifications. + + * rmd160test.c: Removed file. + + * ac.c, arcfour.c, blowfish.c, cast5.c, cipher.c, des.c, dsa.c, + elgamal.c, md.c, pubkey.c, random.c, rijndael.c, rsa.c, twofish.c: + Used gcry_err* wrappers for libgpg symbols. + + * primegen.c (gen_prime): Correct the order arguments to + extra_check. + +2003-07-12 Moritz Schulte + + * ac.c: Replaced all public occurences of gpg_error_t with + gcry_error_t. + * cipher.c: Likewise. + * md.c: Likewise. + * pubkey.c: Likewise. + * random.c: Likewise. + + * cipher.c: Added support for TWOFISH128. + +2003-07-08 Moritz Schulte + + * ac.c (gcry_ac_data_copy_internal): New function, based on + gcry_ac_data_copy. + (gcry_ac_data_copy): Made public, use gcry_ac_data_copy_internal. + (gcry_ac_key_init): Use gcry_ac_data_copy_internal. + +2003-07-07 Moritz Schulte + + * ac.c (gcry_ac_data_set): Only release old MPI value if it is + different from the new value. Bug reported by Simon Josefsson + . + + * pubkey.c (gcry_pk_list): New function. + * md.c (gcry_md_list): New function. + + * ac.c (gcry_ac_key_pair_generate): Fix calculation of format + string size. + +2003-07-05 Moritz Schulte + + * md.c: Named struct of digest_table `digest_table_entry'. + (digest_table_entry): New member: algorithm; filled in. + (digest_table_entry): Removed unused member: flags. + (gcry_md_register): New argument: algorithm_id, filled in. + (gcry_md_register_default): Used algorithm ID from module + structure. + (gcry_md_map_name): Likewise. + (md_enable): Likewise. + (md_read): Likewise. + (gcry_md_info): Likewise. + + * pubkey.c: Named truct for pubkey_table `pubkey_table_entry'. + (pubkey_table_entry): New member: algorithm; filled in. + (gcry_pk_register_default): Used algorithm ID from pubkey_table. + (gcry_pk_register): New argument: algorithm_id, filled in. + (gcry_pk_map_name): Used algorithm ID from module structure. + (gcry_pk_decrypt): Likewise. + (gcry_pk_encrypt): Likewise. + (gcry_pk_verify): Likewise. + (gcry_pk_sign): Likewise. + (gcry_pk_testkey): Likewise. + (gcry_pk_genkey): Likewise. + (gcry_pk_get_nbits): Likewise. + (sexp_to_key): Removed unused variable: algo. + (sexp_to_sig): Likewise. + + * cipher.c: Named struct for cipher_table `cipher_table_entry'. + (cipher_table_entry): New member: algorithm; filled in. + (gcry_cipher_register_default): Used algorithm ID from + cipher_table. + (gcry_cipher_register): New argument: algorithm_id, filled in. + (gcry_cipher_map_name): Used algorithm ID from module structure. + + * arcfour.c (cipher_spec_arcfour): Removed algorithm ID. + * blowfish.c (cipher_spec_blowfish): Likewise. + * cast5.c (cipher_spec_cast5): Likewise. + * crc.c (digest_spec_crc32): Likewise. + * crc.c (digest_spec_crc32_rfc1510): Likewise. + * crc.c (digest_spec_crc32_rfc2440): Likewise. + * des.c (cipher_spec_des): Likewise. + * des.c (cipher_spec_tripledes): Likewise. + * dsa.c (pubkey_spec_dsa): Likewise. + * elgamal.c (pubkey_spec_elg): Likewise. + * md4.c (digest_spec_md4): Likewise. + * md5.c (digest_spec_md5): Likewise. + * aes.c (cipher_spec_aes): Likewise. + * aes.c (cipher_spec_aes192): Likewise. + * aes.c (cipher_spec_aes256): Likewise. + * rsa.c (pubkey_spec_rsa): Likewise. + * sha1.c (digest_spec_sha1): Likewise. + * sha256.c (digest_spec_sha256): Likewise. + * sha512.c (digest_spec_sha512): Likewise. + * tiger.c (digest_spec_tiger): Likewise. + * twofish.c (cipher_spec_twofish): Likewise. + * twofish.c (cipher_spec_twofish128): Likewise. + + * Makefile.am (EXTRA_libcipher_la_SOURCES): Fix list of source + files; reported by Simon Josefsson . + + * pubkey.c: Replaced all occurences of `id' with `algorithm', + since `id' is a keyword in obj-c. + * md.c: Likewise. + * cipher.c: Likewise. + + * crc.c, md4.c, md5.c, rmd160.c, sha1.c, sha256.c, tiger.c: + Replaced all occurences of gcry_digest_spec_t with gcry_md_spec_t. + + * dsa.c, rsa.c, elgamal.c: Replaced all occurencens of + gcry_pubkey_spec_t with gcry_pk_spec_t. + + * md.c: Replaced all occurences of gcry_digest_spec_t with + gcry_md_spec_t. + (gcry_digest_register_default): Renamed to ... + (gcry_md_register_default): ... this; adjusted callers. + (gcry_digest_lookup_func_name): Renamed to ... + (gcry_md_lookup_func_name): ... this; adjusted callers. + (gcry_digest_lookup_name): Renamed to ... + (gcry_md_lookup_name): ... this; adjusted callers. + (gcry_digest_register): Renamed to ... + (gcry_md_register): ... this. + (gcry_digest_unregister): Renamed to ... + (gcry_md_unregister): ... this. + + * pubkey.c (gcry_pubkey_register): Renamed to ... + (gcry_pk_register): ... this. + (gcry_pubkey_unregister): Renamed to ... + (gcry_pk_unregister): ... this. + Replaced all occurences of gcry_pubkey_spec_t with gcry_pk_spec_t. + (gcry_pubkey_register_default): Renamed to ... + (gcry_pk_register_default): ... this; adjusted callers. + (gcry_pubkey_lookup_func_name): Renamed to ... + (gcry_pk_lookup_func_name): ... this; adjusted callers. + (gcry_pubkey_lookup_name): Renamed to ... + (gcry_pk_lookup_name): ... this; adjusted callers. + + * md.c (gcry_md_hash_buffer): Fix error checking. Thanks to Simon + Josefsson . + +2003-07-04 Moritz Schulte + + * cipher.c (gcry_cipher_list): New function. + +2003-07-01 Moritz Schulte + + * pubkey.c (sexp_to_sig): Accept a `flags' S-expression to be more + consistent with sexp_to_enc. + +2003-06-30 Moritz Schulte + + * Makefile.am (libcipher_la_SOURCES): Added: ac.c. + + * pubkey.c (_gcry_pk_module_lookup): New function. + (_gcry_pk_module_release): New function. + +2003-06-29 Moritz Schulte + + * ac.c: New file. + +2003-06-26 Werner Koch + + * md.c (gcry_md_hash_buffer): Trigger BUG correcly with new API. + +2003-06-19 Werner Koch + + * md.c (gcry_md_is_enabled): Fixed. + +2003-06-18 Werner Koch + + * cipher.c (gcry_cipher_get_algo_keylen): New. + (gcry_cipher_get_algo_blklen): New. + +2003-06-18 Moritz Schulte + + * arcfour.c, cipher.c, blowfish.c, md.c, cast5.c, pubkey.c, crc.c, + des.c, dsa.c, elgamal.c, md4.c, md5.c, random.c, rijndael.c, + rmd160.c, rsa.c, sha1.c, sha256.c, sha512.c, tiger.c, twofish.c: + Replaced older types GcryDigestSpec, GcryCipherSpec and + GcryPubkeySpec with newer types: gcry_digest_spec_t, + gcry_cipher_spec_t and gcry_pubkey_spec_t. + + * md.c (gcry_digest_id_new): Removed function. + (gcry_digest_register): Removed code for generating a new module + ID. + + * pubkey.c (gcry_pubkey_id_new): Removed function. + (gcry_pubkey_register): Removed code for generating a new module + ID. + + * cipher.c, md.c, pubkey.c: Replace old type GcryModule with newer + one: gcry_module_t. + (gcry_cipher_id_new): Removed function. + (gcry_cipher_register): Removed code for generating a new module + ID. + + * cipher.c (gcry_cipher_register): Adjust call to + _gcry_module_add. + (gcry_cipher_register_default): Likewise. + * pubkey.c (gcry_pubkey_register_default): Likewise. + (gcry_pubkey_register): Likewise. + * md.c (gcry_digest_register_default): Likewise. + (gcry_digest_register): Likewise. + + * md.c (gcry_digest_lookup_func_id): Removed function. + (gcry_digest_lookup_id): Likewise. + (gcry_digest_id_new): Use _gcry_module_lookup_id instead of + gcry_digest_lookup_id. + (digest_algo_to_string): Likewise. + (check_digest_algo): Likewise. + (md_enable): Likewise. + (md_digest_length): Likewise. + (md_asn_oid): Likewise. + + * pubkey.c (gcry_pubkey_lookup_id): Removed function. + (gcry_pubkey_lookup_func_id): Likewise. + (gcry_pubkey_id_new): Use _gcry_module_lookup_id instead of + gcry_pubkey_id_new. + (gcry_pk_algo_name): Likewise. + (disable_pubkey_algo): Likewise. + (check_pubkey_algo): Likewise. + (pubkey_get_npkey): Likewise. + (pubkey_get_nskey): Likewise. + (pubkey_get_nsig): Likewise. + (pubkey_get_nenc): Likewise. + (pubkey_generate): Likewise. + (pubkey_check_secret_key): Likewise. + (pubkey_encrypt): Likewise. + (pubkey_decrypt): Likewise. + (pubkey_sign): Likewise. + (pubkey_verify): Likewise. + (gcry_pk_algo_info): Likewise. + + * cipher.c (gcry_cipher_lookup_func_id): Removed function. + (gcry_cipher_lookup_id): Likewise. + (cipher_algo_to_string): use _gcry_module_lookup_id instead of + gcry_cipher_lookup_id. + (disable_cipher_algo): Likewise. + (check_cipher_algo): Likewise. + (cipher_get_blocksize): Likewise. + (gcry_cipher_open): Likewise. + (gcry_cipher_id_new): Likewise. + +2003-06-17 Moritz Schulte + + * Makefile.am (GCRYPT_MODULES): Set to @GCRYPT_CIPHERS@, + @GCRYPT_PUBKEY_CIPHERS@, @GCRYPT_DIGESTS@ and @GCRYPT_RANDOM@. + (libcipher_la_DEPENDENCIES): Set to $(GCRYPT_MODULES). + (libcipher_la_LIBADD): Likewise. + (AM_CFLAGS): Added: @GPG_ERROR_CFLAGS@. + (EXTRA_libcipher_la_SOURCES): Added all conditional sources. + + * md.c (md_open): Use _gcry_fast_random_poll instead of + fast_random_poll. + * cipher.c (gcry_cipher_open): Likewise. + + * random.h (fast_random_poll): Removed macro. + + * blowfish.c, md4.c, md5.c, rmd160.c, sha1.c, sha256.c, sha512.c, + tiger.c: Use Autoconf's WORDS_BIGENDIAN instead of our own + BIG_ENDIAN_HOST. + +2003-06-16 Moritz Schulte + + * random.c (getfnc_gather_random): Do not special-case + USE_ALL_RANDOM_MODULES, make it the default. + + * dsa.c: Replace last occurences of old type names with newer + names (i.e. replace MPI with gcry_mpi_t). + * elgamal.c: Likewise. + * primegen.c: Likewise. + * pubkey.c: Likewise. + * rsa.c: Likewise. + +2003-06-14 Moritz Schulte + + * des.c (des_setkey): Add selftest check. + (tripledes_set3keys): Likewise. + (do_tripledes_setkey): Remove selftest check. + (do_des_setkey): Likewise. + +2003-06-11 Moritz Schulte + + * md.c (_gcry_md_init): New function. + * cipher.c (_gcry_cipher_init): New function. + * pubkey.c (_gcry_pk_init): New function. + +2003-06-13 Werner Koch + + * md.c (gcry_md_get_algo): Reverted to old API. This is a + convenience function anyway and error checking is not approriate. + (gcry_md_is_secure): New. + (gcry_md_is_enabled): New. + +2003-06-12 Werner Koch + + * cipher.c (gcry_cipher_open): Make sure HANDLE is set to NULL on + error. + +2003-06-11 Werner Koch + + * md.c (gcry_md_open): Make sure H receives either NULL or an + valid handle. + (gcry_md_copy): Swapped arguments so that it is more in lione with + md_open and most other API fucntions like memcpy (destination + comes first). Make sure HANDLE is set to NULL on error. + + * rijndael.c (do_encrypt): Hack to force correct alignment. It + seems not to be not sufficient, though. We should rework this + fucntions and remove all these ugly casts. Let the compiler + optimize or have an assembler implementation. + +2003-06-09 Moritz Schulte + + * Makefile.am: Removed rules serpent, since that is not commited + yet. + +2003-06-08 Moritz Schulte + + * pubkey.c (gcry_pk_encrypt): Improve calculation for size of the + format string. + +2003-06-07 Moritz Schulte + + * arcfour.c, bithelp.h, blowfish.c, cast5.c, cipher.c, crc.c, + des.c, dsa.c, elgamal.c, md4.c, md5.c, md.c, primegen.c, pubkey.c, + rand-internal.h, random.c, random.h, rijndael.c, rmd160.c, + rmd160test.c, rmd.h, rndeged.c, rndlinux.c, rndunix.c, rndw32.c, + rsa.c, sha1.c, sha256.c, sha512.c, tiger.c, twofish.c: Edited all + preprocessor instructions to remove whitespace before the '#'. + This is not required by C89, but there are some compilers out + there that don't like it. Replaced any occurence of the now + deprecated type names with the new ones. + +2003-06-04 Moritz Schulte + + * pubkey.c (gcry_pk_encrypt): Construct an arg_list and use + gcry_sexp_build_array instead of gcry_sexp_build. + (gcry_pk_sign): Likewise. + (gcry_pk_genkey): Likewise. + +2003-06-01 Moritz Schulte + + * dsa.c (_gcry_dsa_generate): Do not check wether the algorithm ID + does indeed belong to DSA. + (_gcry_dsa_sign): Likewise. + (_gcry_dsa_verify): Likewise. + (_gcry_dsa_get_nbits): Likewise. + + * elgamal.c (_gcry_elg_check_secret_key): Do not check wether the + algorithm ID does indeed belong to ElGamal. + (_gcry_elg_encrypt): Likewise. + (_gcry_elg_decrypt): Likewise. + (_gcry_elg_sign): Likewise. + (_gcry_elg_verify): Likewise. + (_gcry_elg_get_nbits): Likewise. + (_gcry_elg_generate): Likewise. + + * rsa.c (_gcry_rsa_generate): Do not check wether the algorithm ID + does indeed belong to RSA. + (_gcry_rsa_encrypt): Likewise. + (_gcry_rsa_decrypt): Likewise. + (_gcry_rsa_sign): Likewise. + (_gcry_rsa_verify): Likewise. + (_gcry_rsa_get_nbits): Likewise. + +2003-05-30 Moritz Schulte + + * md.c (md_get_algo): Return zero in case to algorithm is enabled. + + * md.c (gcry_md_info): Adjusted for new no-errno-API. + (md_final): Likewise. + (gcry_md_get_algo): Likewise. + * pubkey.c (gcry_pk_get_keygrip): Likewise. + (gcry_pk_ctl): Likewise. + (gcry_pk_algo_info): Likewise. + * des.c (selftest): Likewise. + +2003-05-29 Moritz Schulte + + * md.c (md_enable): Do not forget to release module on error. + (gcry_md_open): Adjusted for new no-errno-API. + (md_open): Likewise. + (md_copy): Likewise. + (gcry_md_copy): Likewise. + (gcry_md_setkey): Likewise. + (gcry_md_algo_info): Likewise. + + * cipher.c (gcry_cipher_open): Adjusted for new no-errno-API and + also fixed a locking bug. + (gcry_cipher_encrypt): Adjusted for new no-errno-API. + (gcry_cipher_decrypt): Likewise. + (gcry_cipher_ctl): Likewise. + (gcry_cipher_info): Likewise. + (gcry_cipher_algo_info): Likewise. + +2003-05-28 Moritz Schulte + + * md.c (md_enable): Adjusted for libgpg-error. + (gcry_md_enable): Likewise. + (gcry_digest_register_default): Likewise. + (gcry_digest_register): Likewise. + (check_digest_algo): Likewise. + (prepare_macpads): Likewise. + (gcry_md_setkey): Likewise. + (gcry_md_ctl): Likewise. + (gcry_md_get): Likewise. + (gcry_md_algo_info): Likewise. + (gcry_md_info): Likewise. + * dsa.c (_gcry_dsa_generate): Likewise. + (_gcry_dsa_check_secret_key): Likewise. + (_gcry_dsa_sign): Likewie. + (_gcry_dsa_verify): Likewise. + * twofish.c (do_twofish_setkey): Likewise. + (twofish_setkey): Likewise. + * cipher.c (gcry_cipher_register): Likewise. + +2003-05-25 Moritz Schulte + + * rijndael.c (do_setkey): Adjusted for libgpg-error. + (rijndael_setkey): Likewise. + * random.c (gcry_random_add_bytes): Likewise. + * elgamal.c (_gcry_elg_generate): Likewise. + (_gcry_elg_check_secret_key): Likewise. + (_gcry_elg_encrypt): Likewise. + (_gcry_elg_decrypt): Likewise. + (_gcry_elg_sign): Likewise. + (_gcry_elg_verify): Likewise. + * rsa.c (_gcry_rsa_generate): Likewise. + (_gcry_rsa_check_secret_key): Likewise. + (_gcry_rsa_encrypt): Likewise. + (_gcry_rsa_decrypt): Likewise. + (_gcry_rsa_sign): Likewise. + (_gcry_rsa_verify): Likewise. + * pubkey.c (dummy_generate, dummy_check_secret_key, dummy_encrypt, + dummy_decrypt, dummy_sign, dummy_verify): Likewise. + (gcry_pubkey_register): Likewise. + (check_pubkey_algo): Likewise. + (pubkey_generate): Likewise. + (pubkey_check_secret_key): Likewise. + (pubkey_encrypt): Likewise. + (pubkey_decrypt): Likewise. + (pubkey_sign): Likewise. + (pubkey_verify): Likewise. + (sexp_elements_extract): Likewise. + (sexp_to_key): Likewise. + (sexp_to_sig): Likewise. + (sexp_to_enc): Likewise. + (sexp_data_to_mpi): Likewise. + (gcry_pk_encrypt): Likewise. + (gcry_pk_decrypt): Likewise. + (gcry_pk_sign): Likewise. + (gcry_pk_verify): Likewise. + (gcry_pk_testkey): Likewise. + (gcry_pk_genkey): Likewise. + (gcry_pk_ctl): Likewise. + * cipher.c (dummy_setkey): Likewise. + (check_cipher_algo): Likewise. + (gcry_cipher_open): Likewise. + (cipher_setkey): Likewise. + (gcry_cipher_ctl): Likewise. + (cipher_encrypt): Likewise. + (gcry_cipher_encrypt): Likewise. + (cipher_decrypt): Likewise. + (gcry_cipher_decrypt): Likewise. + (gcry_cipher_info): Likewise. + (gcry_cipher_algo_info): Likewise. + * cast5.c (cast_setkey): Likewise. + (do_cast_setkey): Likewise. + * arcfour.c (arcfour_setkey): Likewise. + (do_arcfour_setkey): Likewise. + * blowfish.c (do_bf_setkey): Likewise. + (bf_setkey): Likewise. + * des.c (do_des_setkey): Likewise. + (do_tripledes_setkey): Likewise. + +2003-05-22 Moritz Schulte + + * tiger.c: Merged code ussing the U64_C macro from GnuPG. + + * sha512.c: Likewise. + +2003-05-17 Moritz Schulte + + * pubkey.c (gcry_pk_genkey): Fix type: acquire a lock, instead of + releasing it. + +2003-05-11 Moritz Schulte + + * pubkey.c (gcry_pk_testkey): Call REGISTER_DEFAULT_CIPHERS. + (gcry_pk_ctl): Likewise. + +2003-04-27 Moritz Schulte + + * pubkey.c (gcry_pk_genkey): Release sexp after extracted data has + been used. + + * md.c (gcry_md_get_algo_dlen): Simplified, simply call + md_digest_length to do the job. + + * des.c (do_des_setkey): Check for selftest failure not only + during initialization. + (do_tripledes_setkey): Include check for selftest failure. + + * pubkey.c (gcry_pubkey_register_default): New macro + `pubkey_use_dummy', use it. + + * elgamal.c (elg_names): New variable. + (pubkey_spec_elg): Include elg_names. + + * dsa.c (dsa_names): New variable. + (pubkey_spec_dsa): Include dsa_names. + + * rsa.c (rsa_names): New variable. + (pubkey_spec_rsa): Include rsa_names. + + * pubkey.c (gcry_pubkey_lookup_func_name): Compare name also with + the names listed in `sexp_names'. + +2003-04-24 Moritz Schulte + + * pubkey.c (sexp_to_key): New variables: module, pubkey. Adjusted + to new module interface. + (sexp_to_key): Changend type of argument `retalgo' from `int *' to + `GcryModule **'. Adjusted all callers. Removed argument: + r_algotblidx. + (sexp_to_sig): Changend type of argument `retalgo' from `int *' to + `GcryModule **'. Adjusted all callers. + (sexp_to_enc): Likewise. + + (pubkey_get_npkey, pubkey_get_nskey, pubkey_get_nsig, + pubkey_get_nenc): Use strlen to find out the number. + + * rsa.c: Adjust pubkey_spec_rsa to new internal interface. + * dsa.c: Likewise. + * elgamal.c: Likewise. + +2003-04-17 Moritz Schulte + + * pubkey.c (sexp_elements_extract): New function. + * pubkey.c (sexp_to_key): Removed variable `idx', added `err', use + sexp_elements_extract. + (sexp_to_sig): Likewise. + (sexp_to_enc): Likewise. + + * pubkey.c: Terminate list correctly. + * md.c: Include sha512/sha384 in digest_table. + +2003-04-16 Moritz Schulte + + * Makefile.am: Include support for sha512.c. + + * sha512.c: New file, merged from GnuPG, with few modifications + for libgcrypt. + + * rand-internal.h: Removed declarations for constructor functions. + + * md.c (md_copy): Call _gcry_module_use for incrementing the usage + counter of the digest modules. + + * rsa.c: Do not include "rsa.h". + * dsa.c: Do not include "dsa.h". + * elgamal.c: Do not include "elgamal.h". + * des.c: Do not include "des.h". + * cast5.c: Do not include "cast5.h". + * blowfish.c: Do not include "blowfish.h". + * arcfour.c: Do not include "arcfour.h". + + * Makefile.am (libcipher_la_DEPENDENCIES): Removed. + (libcipher_la_LIBADD): Removed. + Use Automake conditionals for conditional compilation. + +2003-04-13 Moritz Schulte + + * cipher.c (gcry_cipher_open): Call REGISTER_DEFAULT_CIPHERS. + + * md.c (gcry_md_list): New member: module. + (md_enable): New variable: module, changed use of module and + digest. + (md_enable): Initialize member: module. + (md_close): Call _gcry_module_release. + + * cipher.c (gcry_cipher_open): New variable: module, changed use of + module and cipher. + (struct gcry_cipher_handle): New member: module. + (gcry_cipher_open): Initialize member: module. + (gcry_cipher_close): Call _gcry_module_release. + +2003-04-09 Moritz Schulte + + * cipher.c: Include "ath.h". + * md.c: Likewise. + * pubkey.c: Likewise. + + * cipher.c (ciphers_registered_lock): New variable. + * md.c (digests_registered_lock): New variable. + * pubkey.c (pubkeys_registered_lock): New variable. + + * rndlinux.c (gnupgext_version, func_table): Removed definitions. + (gnupgext_enum_func): Removed function. + (_gcry_rndlinux_constructor): Removed function. + + * rndegd.c (gnupgext_version, func_table): Removed definitions. + (gnupgext_enum_func): Removed function. + (_gcry_rndegd_constructor): Removed function. + + * rndunix.c (gnupgext_version, func_table): Removed definitions. + (gnupgext_enum_func): Removed function. + (_gcry_rndunix_constructor): Removed function. + + * rndw32.c (gnupgext_version, func_table): Removed definitions. + (gnupgext_enum_func): Removed function. + (_gcry_rndw32_constructor): Removed function. + + * rndegd.c (rndegd_connect_socket): Simplify code for creating the + egd socket address. + (rndegd_connect_socket): Call log_fatal use instead of + g10_log_fatal. + (egd_gather_random): Renamed to ... + (rndegd_gather_random): ... here. + +2003-04-08 Moritz Schulte + + * rndlinux.c: Do not include "dynload.h". + * rndunix.c: Likewise. + * rndw32.c: Likewise. + + * rndegd.c (rndegd_connect_socket): Factored out from ... + (egd_gather_random): here; call it. + (egd_socket): New variable. + (egd_gather_random): Initialize fd with egd_socket, do not declare + fd static. + (do_read): Merged few changes from GnuPG. FIXME - not finished? + Do not include "dynload.h". + + * rndw32.c (gather_random): Renamed to rndw32_gather_random, do + not declare static. + (gather_random_fast): Renamed to rndw32_gather_random_fast, do not + declare static. + + * rndunix.c (gather_random): Renamed to rndunix_gather_random, do + not declare static. + * rndegd.c (gather_random): Renamed to rndegd_gather_random, do + not declare static. + * rndlinux.c (gather_random): Renamed to rndlinux_gather_random, + do not declare static. + +2003-04-07 Moritz Schulte + + * Makefile.am (libcipher_la_SOURCES): Removed construct.c. + (libcipher_la_SOURCES): Added sha1.c, sha256.c, rmd160.c, md4.c, + md5.c, tiger.c and crc.c + (EXTRA_PROGRAMS): Removed sha1, sha256, rmd160, md4, md5, tiger + and crc. Removed definitions: EXTRA_md4_SOURCES, + EXTRA_md5_SOURCES, EXTRA_rmd160_SOURCES, EXTRA_sha1_SOURCES, + EXTRA_sha256_SOURCES, EXTRA_tiger_SOURCES and EXTRA_crc_SOURCES, + BUILT_SOURCES, DISTCLEANFILES. + + * pubkey.c: Do not include "elgamal.h", "dsa.h" and "rsa.h". + + * Makefile.am (libcipher_la_SOURCES): Removed rsa.h, elgamal.h, + dsa.h, des.h, cast5.h, arcfour.h and blowfish.h. + + * rsa.h: Removed file. + * elgamal.h: Removed file. + * dsa.h: Removed file. + * des.h: Removed file. + * cast5.h: Removed file. + * arcfour.h: Removed file. + * blowfish.h: Removed file. + + * Makefile.am (libcipher_la_SOURCES): Removed dynload.c and + dynload.h. + + * rsa.c (pubkey_spec_rsa): New variable. + * dsa.c (pubkey_spec_rsa): New variable. + * elgamal.c (pubkey_spec_elg): New variable. + + * rsa.c (_gcry_rsa_get_info): Removed function. + * elgamal.c (_gcry_elg_get_info): Removed function. + * dsa.c (_gcry_dsa_get_info): Removed function. + + * tiger.c (tiger_get_info): Removed function. + (gnupgext_version, func_table): Removed definitions. + (gnupgext_enum_func): Removed function. + (_gcry_tiger_constructor): Removed function. + + * sha1.c (sha1_get_info): Removed function. + (gnupgext_version, func_table): Removed definitions. + (gnupgext_enum_func): Removed function. + (_gcry_sha1_constructor): Removed function. + + * sha256.c (sha256_get_info): Removed function. + (gnupgext_version, func_table): Removed definitions. + (gnupgext_enum_func): Removed function. + (_gcry_sha256_constructor): Removed function. + + * rmd160.c (rmd160_get_info): Removed function. + (gnupgext_version, func_table): Removed definitions. + (gnupgext_enum_func): Removed function. + (_gcry_rmd160_constructor): Removed function. + + * md5.c (md5_get_info): Removed function. + (gnupgext_version, func_table): Removed definitions. + (gnupgext_enum_func): Removed function. + (_gcry_md5_constructor): Removed function. + + * md4.c (md4_get_info): Removed function. + (gnupgext_version, func_table): Removed definitions. + (gnupgext_enum_func): Removed function. + (_gcry_md4_constructor): Removed function. + + * crc.c (crc_get_info): Removed function. + + * arcfour.c (do_arcfour_setkey): Changed type of context argument + to `void *', added local variable for cast, adjusted callers. + (arcfour_setkey): Likewise. + (encrypt_stream): Likewise. + * cast5.c (cast_setkey): Likewise. + (encrypt_block): Likewise. + * rijndael.c (rijndael_setkey): Likewise. + (rijndael_encrypt): Likewise. + (rijndael_decrypt): Likewise. + * twofish.c (twofish_setkey): Likewise. + (twofish_encrypt): Likewise. + (twofish_decrypt): Likewise. + * des.c (do_des_setkey): Likewise. + (do_des_encrypt): Likewise. + (do_des_encrypt): Likewise. + (do_tripledes_encrypt): Likewise. + (do_tripledes_encrypt): Likewise. + * blowfish.c (bf_setkey: Likewise. + (encrypt_block): Likewise. + (decrypt_block): Likewise. + + * arcfour.c (encrypt_stream): Likewise. + + * rijndael.c (gnupgext_version, func_table): Removed definitions. + (gnupgext_enum_func) Removed function. + + * twofish.c (gnupgext_version, func_table): Removed definitions. + (gnupgext_enum_func) Removed function. + + * cast5.c (CIPHER_ALGO_CAST5): Removed. + + * blowfish.c (FNCCAST_SETKEY, FNCCAST_CRYPT): Removed macros. + (CIPHER_ALGO_BLOWFISH): Removed symbol. + * cast5.c (FNCCAST_SETKEY, FNCCAST_CRYPT): Likewise. + * des.c (selftest_failed): Removed. + (initialized): New variable. + (do_des_setkey): Run selftest, if not yet done. + (FNCCAST_SETKEY, FNCCAST_CRYPT): Removed macros. + + * arcfour.c (_gcry_arcfour_get_info): Removed function. + * blowfish.c (_gcry_blowfish_get_info): Removed function. + * cast5.c (_gcry_cast5_get_info): Removed function. + * des.c (_gcry_des_get_info): Removed function. + * rijndael.c (_gcry_rijndael_get_info): Removed function. + * twofish.c (_gcry_twofish_get_info): Removed function. + + * arcfour.c (cipher_spec_arcfour): New variable. + * twofish.c (cipher_spec_twofish, cipher_spec_twofish128): New + variables. + * rijndael.c (cipher_spec_aes, cipher_spec_aes192, + cipher_spec256): New variables. + * des.c (cipher_spec_des, cipher_spec_tripledes): New variables. + * cast5.c (cipher_spec_cast5): New variable. + * blowfish.c (cipher_spec_blowfish): Likewise. + + * twofish.c: Do not include "dynload.h". + * rijndael.c: Likewise. + * des.c: Likewise. + * cast5.c: Likewise. + * blowfish.c: Likewise. + * cipher.c: Likewise. + * crc.c: Likewise. + * md4.c: Likewise. + * md5.c: Likewise. + * md.c: Likewise. + * pubkey.c: Likewise. + * rijndael.c: Likewise. + * sha1.c: Likewise. + * sha256.c: Likewise. + + * arcfour.c: Include "cipher.h". + * twofish.c: Likewise. + * rijndael.c: Likewise. + * des.c: Likewise. + * cast5.c: Likewise. + * blowfish.c: Likewise. + + * twofish.c (twofish_setkey): Declared argument `key' const. + (twofish_encrypt): Declared argument `inbuf' const. + (twofish_decrypt): Likewise. + + * rijndael.c (rijndael_setkey): Declared argument `key' const. + (rijndael_encrypt): Declared argument `inbuf' const. + (rijndael_decrypt): Likewise. + + * des.c (do_des_setkey): Declared argument `key' const. + (do_tripledes_setkey): Likewise. + (do_des_encrypt): Declared argument `inbuf' const. + (do_des_decrypt): Likewise. + (do_tripledes_encrypt): Likewise. + (do_tripledes_decrypt): Likewise. + + * cast5.c (encrypt_block): Declared argument `inbuf' const. + (decrypt_block): Likewise. + (cast_setkey): Declared argument `key' const. + + * blowfish.c (do_bf_setkey): Declared argument `key' const. + (encrypt_block): Declared argument `inbuf' const. + (encrypt_block): Likewise. + + + + * cipher.c: Remove CIPHER_ALGO_DUMMY related code. + Removed struct cipher_table_s. + Changed definition of cipher_table. + Removed definition of disabled_algos. + (ciphers_registered, default_ciphers_registered): New variables. + (REGISTER_DEFAULT_CIPHERS): New macro. + (dummy_setkey): Declared argument `key' const. + (dummy_encrypt_block): Declared argument `inbuf' const. + (dummy_encrypt_block): Likewise. + (dummy_encrypt_stream): Likewise. + (dummy_encrypt_stream): Likewise. + (dummy_setkey): Use `unsigned char' instead of `byte'. + (dummy_encrypt_block): Likewise. + (dummy_decrypt_block): Likewise. + (dummy_encrypt_stream): Likewise. + (dummy_decrypt_stream): Likewise. + (gcry_cipher_register_default): New function. + (gcry_cipher_lookup_func_id): New function. + (gcry_cipher_lookup_func_name): New function. + (gcry_cipher_lookup_id): New function. + (gcry_cipher_lookup_name): New function. + (gcry_cipher_id_new): New function. + (gcry_cipher_register): New function. + (gcry_cipher_unregister): New function. + (setup_cipher_table): Removed function. + (load_cipher_modules): Removed function. + (gcry_cipher_map_name): Adjusted to use new module management. + (cipher_algo_to_string): Likewise. + (disable_cipher_algo): Likewise. + (check_cipher_algo): Likewise. + (cipher_get_keylen): Likewise. + (cipher_get_blocksize): Likewise. + (gcry_cipher_open): Likewise. + (struct gcry_cipher_handle): Replaced members algo, algo_index, + blocksize, setkey, encrypt, decrypt, stencrypt, stdecrypt with one + member: cipher. + (gcry_cipher_open): Adjusted code for new handle structure. + (cipher_setkey): Likewise. + (cipher_setiv): Likewise. + (cipher_reset): Likewise. + (do_ecb_encrypt): Likewise. + (do_ecb_decrypt): Likewise. + (do_cbc_encrypt): Likewise. + (do_cbc_decrypt): Likewise. + (do_cfb_encrypt): Likewise. + (do_cfb_decrypt): Likewise. + (do_ctr_encrypt): Likewise. + (cipher_encrypt): Likewise. + (gcry_cipher_encrypt): Likewise. + (cipher_decrypt): Likewise. + (gcry_cipher_decrypt): Likewise. + (cipher_sync): Likewise. + (gcry_cipher_ctl): Likewise. + + * pubkey.c: Removed struct pubkey_table_s. + Changed definition of pubkey_table. + Removed definition of disabled_algos. + (pubkeys_registered, default_pubkeys_registered): New variables. + (REGISTER_DEFAULT_PUBKEYS): New macro. + (setup_pubkey_table): Removed function. + (load_pubkey_modules): Removed function. + (gcry_pubkey_register_default): New function. + (gcry_pubkey_lookup_func_id): New function. + (gcry_pubkey_lookup_func_name): New function. + (gcry_pubkey_lookup_id): New function. + (gcry_pubkey_lookup_name): New function. + (gcry_pubkey_id_new): New function. + (gcry_pubkey_register): New function. + (gcry_pubkey_unregister): New function. + (gcry_pk_map_name): Adjusted to use new module management. + (gcry_pk_algo_name): Likewise. + (disable_pubkey_algo): Likewise. + (check_pubkey_algo): Likewise. + (pubkey_get_npkey): Likewise. + (pubkey_get_nskey): Likewise. + (pubkey_get_nsig): Likewise. + (pubkey_get_nenc): Likewise. + (pubkey_generate): Likewise. + (pubkey_check_secret_key): Likewise. + (pubkey_encrypt): Likewise. + (pubkey_decrypt): Likewise. + (pubkey_sign): Likewise. + (pubkey_verify): Likewise. + (gcry_pk_get_nbits): Likewise. + (gcry_pk_algo_info): Likewise. + + * md.c: Removed struct md_digest_list_s. + (digest_list): Changed definition. + (digests_registered, default_digests_registered): New variables. + (REGISTER_DEFAULT_DIGESTS): New macro. + (new_list_item): Removed function. + (setup_md_table): Removed function. + (load_digest_module): Removed function. + (gcry_digest_register_default): New function. + (gcry_digest_lookup_func_id): New function. + (gcry_digest_lookup_func_name): New function. + (gcry_digest_lookup_id): New function. + (gcry_digest_lookup_name): New function. + (gcry_digest_id_new): New function. + (gcry_digest_register): New function. + (gcry_digest_unregister): New function. + (GcryDigestEntry): New type. + (struct gcry_md_context): Adjusted type of `list'. + (gcry_md_map_name): Adjusted to use new module management. + (digest_algo_to_string): Likewise. + (check_digest_algo): Likewise. + (md_enable): Likewise. + (md_digest_length): Likewise. + (md_asn_oid): Likewise. + +2003-04-07 Moritz Schulte + + * pubkey.c: Replaced PUBKEY_ALGO_DSA with GCRY_PK_DSA, + PUBKEY_ALGO_RSA with GCRY_PK_RSA and PUBKEY_ALGO_ELGAMAL with + GCRY_PK_ELG. + + * dsa.c: Replaced PUBKEY_ALGO_DSA with GCRY_PK_DSA. + +2003-04-01 Moritz Schulte + + * des.c: Removed checks for GCRY_CIPHER_3DES and GCRY_CIPHER_DES. + +2003-03-31 Moritz Schulte + + * tiger.c (tiger_get_info): Do not declare static. + * sha256.c (sha256_get_info): Likewise. + * sha1.c (sha1_get_info): Likewise. + * rmd160.c (rmd160_get_info): Likewise. + * md5.c (md5_get_info): Likewise. + * md4.c (md4_get_info): Likewise. + * crc.c (crc_get_info): Likewise. + + * md.c (load_digest_module): Call setup_md_table during + initialization. + (new_list_item): Link new element into digest_list. + + * cipher.c (do_ctr_decrypt): Made do_ctr_encrypt act as a wrapper + for do_ctr_encrypt, since these functions are identical. + +2003-03-30 Simon Josefsson + + * cipher.c (struct gcry_cipher_handle): Add counter field. + (gcry_cipher_open): Add CTR. + (cipher_reset): Clear counter field. + (do_ctr_encrypt, do_ctr_decrypt): New functions. + (cipher_encrypt, cipher_decrypt): Call CTR functions. + (gcry_cipher_ctl): Add SET_CTR to set counter. + +2003-03-30 Moritz Schulte + + * rsa.c (_gcry_rsa_blind): New function. + (_gcry_rsa_unblind): New function. + (_gcry_rsa_decrypt): Use _gcry_rsa_blind and _gcry_rsa_decrypt. + +2003-03-26 Moritz Schulte + + * dynload.c (_gcry_enum_gnupgext_pubkeys): Adjust `encrypt' and + `decrypt' function arguments. + (_gcry_enum_gnupgext_pubkeys): Likewise. + * dynload.h: Likewise. + + * pubkey.c (dummy_decrypt): Add argument: int flags. + (dummy_encrypt): Likewise. + + * elgamal.c (_gcry_elg_encrypt): Add argument: int flags. + (_gcry_elg_decrypt): Likewise. + + * rsa.c (_gcry_rsa_encrypt): Add argument: int flags. + (_gcry_rsa_decrypt): Likewise. + + * pubkey.c: Add `flags' argument to members `encrypt' and + `decrypt' of struct `pubkey_table_s'. + + * rsa.h: Add `flags' argument to function declarations. + * elgamal.h: Likewise. + + * pubkey.c (sexp_data_to_mpi): New variable: int parsed_flags. + (sexp_data_to_mpi): Set `parsed_flags'. + (sexp_data_to_mpi): New argument: int *flags. + (gcry_pk_encrypt): New variable: int flags. + (gcry_pk_encrypt): Pass `flags' to pubkey_encrypt. + (pubkey_encrypt): New variable: int flags. + (pubkey_encrypt): Pass `flags' to pubkey encrypt function. + (pubkey_decrypt): Likewise. + (pubkey_decrypt): Pass `flags' to pubkey encrypt function. + (gcry_pk_encrypt): Include `flags' s-exp in return list. + (sexp_to_enc): New argument: int *flags. + (gcry_pk_decrypt): New variable: int flags. + (gcry_pk_decrypt): Pass `flags' to pubkey_decrypt. + (sexp_to_enc): New variable: int parsed_flags. + (sexp_to_enc): Set `parsed_flags'. + +2003-03-22 Simon Josefsson + + * cipher.c (gcry_cipher_open, do_cbc_encrypt) + (gcry_cipher_encrypt): Support GCRY_CIPHER_CBC_MAC. + (gcry_cipher_ctl): Support GCRYCTL_SET_CBC_MAC. + +2003-03-19 Werner Koch + + * primegen.c (gen_prime): New args EXTRA_CHECK and EXTRA_CHECK_ARG + to allow for a user callback. Changed all callers. + (_gcry_generate_secret_prime) + (_gcry_generate_public_prime): Ditto, pass them to gen_prime. + * rsa.c (check_exponent): New. + (generate): Use a callback to ensure that a given exponent is + actually generated. + +2003-03-12 Moritz Schulte + + * primegen.c: Initialize `no_of_small_prime_numbers' statically. + (gen_prime): Remove calculation of `no_of_small_prime_numbers'. + +2003-03-03 Moritz Schulte + + * md.c (gcry_md_ctl): Rewritten to use same style like the other + functions dispatchers. + +2003-03-02 Moritz Schulte + + * cipher.c (struct gcry_cipher_handle): New member: algo_index. + (gcry_cipher_open): Allocate memory for two cipher contexts. + Initialize algo_index. + (cipher_setkey): Duplicate context into reserved memory. + (cipher_reset): New function, which resets the context and clear + the IV. + (gcry_cipher_ctl): Call cipher_reset. + +2003-02-23 Moritz Schulte + + * cipher.c: Remove (bogus) `digitp' macro definition. + * md.c: Likewise. + + * blowfish.c (burn_stack): Removed. + * arcfour.c (burn_stack): Likewise. + * cast5.c (burn_stack): Likewise. + * des.c (burn_stack): Likewise. + * md4.c (burn_stack): Likewise. + * md5.c (burn_stack): Likewise. + * random.c (burn_stack): Likewise. + * rijndael.c (burn_stack): Likewise. + * rmd160.c (burn_stack): Likewise. + * sha1.c (burn_stack): Likewise. + * sha256.c (burn_stack): Likewise. + * tiger.c (burn_stack): Likewise. + * twofish.c (burn_stack): Likewise. + + * blowfish.c: Changed all occurences of burn_stack to + _gcry_burn_stack. + * arcfour.c: Likewise. + * cast5.c: Likewise. + * des.c: Likewise. + * md4.c: Likewise. + * md5.c: Likewise. + * random.c: Likewise. + * rijndael.c: Likewise. + * rmd160.c: Likewise. + * sha1.c: Likewise. + * sha256.c: Likewise. + * tiger.c: Likewise. + * twofish.c: Likewise. + + * arcfour.c (_gcry_arcfour_get_info): Use GCRY_CIPHER_ARCFOUR + instead of hard-coded value `301'. + +2003-01-24 Werner Koch + + * random.c (_gcry_register_random_progress): New. + (_gcry_random_progress): New. + + * rndlinux.c (gather_random): Call the random progress function. + +2003-01-23 Werner Koch + + * rsa.c (generate): New arg USE_E to request a specific public + exponent. + (_gcry_rsa_generate): Ditto. + * elgamal.c (_gcry_elg_generate): Must add an dummy argument + instead of USE_E. + * dsa.c (_gcry_dsa_generate): Ditto. + * pubkey.c (dummy_generate): Ditto. + (pubkey_generate): Add USE_E arg and pass it down. + (gcry_pk_genkey): Detect "rsa-use-e" parameter and pass it to generate. + + * pubkey.c (sexp_to_enc): New arg RET_MODERN. + (gcry_pk_decrypt): Make use of it to return a real S-expression. + Return better error codes. + (gcry_pk_verify): Return better error codes. + +2003-01-21 Werner Koch + + * random.c (gcry_random_add_bytes): Add QUALITY argument, let + function return an error code and disable its core for now. + +2003-01-21 Timo Schulz + + * random.c (gcry_random_add_bytes): New. Function to add external + random to the pool. + +2003-01-20 Simon Josefsson + + * crc.c: New. + * Makefile.am (EXTRA_PROGRAMS, EXTRA_crc_SOURCES): Add crc.c. + * md.c (gcry_md_get_algo_dlen): Add values for CRC. + +2003-01-20 Werner Koch + + * sha256.c: New. + * bithelp.h (ror): New. + * Makfile.am: Add sha256.c. + * md.c (oid_table): Add values for SHA256 et al. + (gcry_md_get_algo_dlen): Likewise + +2003-01-20 Werner Koch + + * pubkey.c (gcry_pk_get_keygrip): Implemented keygrips for DSA + and ElGamal. + +2003-01-17 Werner Koch + + * cipher.c (gcry_cipher_encrypt): Reworked so that the output will + never contain the plaintext even if the caller did not checked the + return value. + + * md.c (gcry_md_get_algo): Changed error code to GCRYERR_GENERAL + because we don't have an invalid md algo but no algorithm enabled. + + * pubkey.c (gcry_pk_genkey): Changed error code for bounds check + of table parameters to GCRYERR_INTERNAL. + + * md.c (gcry_md_open): Partly reverted Timo's change from + 2002-10-10 by removing the check for the algorithm. An algorithm + of 0 is allowed and anyway we should not double check it or check + it using a different function. Also fixed the flags check. + + * pubkey.c (gcry_pk_encrypt): Make sure that R_CIPH points to NULL + on error. + (gcry_pk_decrypt): Ditto for R_PLAIN. + (gcry_pk_sign): Ditto for R_SIG. + (gcry_pk_genkey): Ditto for R_KEY. + +2003-01-16 Werner Koch + + * md.c (gcry_md_write): Changed 2nd argument type to void*. + (gcry_md_hash_buffer): Changed type of boths buffers to void*. + (gcry_md_setkey): Changed 2nd argument type to void*. + +2003-01-15 Werner Koch + + * pubkey.c (sexp_data_to_mpi): New. This handles pkcs1 padding. + (gcry_pk_sign, gcry_pk_verify): Use it here. + (gcry_pk_encrypt): And here. + (pubkey_verify): Add debug code. + (sexp_to_enc): Handle flags in the input and return the pkcs1 flag + in a new parameter. + (gcry_pk_decrypt): Prepare for future pkcs1 handling. + +2002-12-19 Werner Koch + + * random.c (_gcry_random_initialize): New. + +2002-12-16 Werner Koch + + * cipher.c: Added a Teletrust specific OID for 3DES. + +2002-12-12 Werner Koch + + * md.c: Added another oddball OIW OID (sha-1WithRSAEncryption). + +2002-11-23 Werner Koch + + * md.c (load_digest_module): Enlarged checked_algos bitmap. + * md4.c (func_table): Fixed entry for md4. + Both by Simon Josephson. + (transform): Copy data to get the alignment straight. Tested only + on i386. + +2002-11-10 Simon Josefsson + + * cipher.c (gcry_cipher_open): Don't reject CTS flag. + (do_cbc_encrypt, do_cbc_decrypt, cipher_encrypt) + (gcry_cipher_encrypt, cipher_decrypt) + (gcry_cipher_decrypt): Support CTS flag. + (gcry_cipher_ctl): Toggle CTS flag. + +2002-11-10 Werner Koch + + * md4.c: New. By Simon Josefsson. + * Makefile.am (EXTRA_PROGRAMS): Add md4.c. + * md.c (oid_table,gcry_md_get_algo_dlen): MD4 support. + +2002-10-14 Werner Koch + + * arcfour.c (do_encrypt_stream): Don't use increment op when + assigning to the same variable. + +2002-10-10 Timo Schulz + + * pubkey.c (gcry_pk_genkey): Check boundaries. + + * md.c (gcry_md_open): Check that algo is available and only + valid flag values are used. + (gcry_md_get_algo): Add error handling. + +2002-09-26 Werner Koch + + * md.c: Include an OID for TIGER. + * tiger.c (tiger_get_info): Use a regular OID. + +2002-09-17 Werner Koch + + * random.c: Replaced mutex.h by the new ath.h. Changed all calls. + +2002-09-16 Werner Koch + + * arcfour.c (do_encrypt_stream): Use register modifier and modulo. + According to Nikos Mavroyanopoulos this increases perfromace on + i386 system noticable. And I always tought gcc is clever enough. + * md5.c (transform): Use register modifier. + * rmd160.c (transform): Ditto. + * sha1.c (transform): Ditto. We hope that there are 6 free registers. + * random.c (gcry_randomize): Rewrote to avoid malloc calls. + + * rndlinux.c (gather_random): Replaced remaining fprintfs by log_*. + * arcfour.c (do_arcfour_setkey): Ditto. + * twofish.c (do_twofish_setkey): Ditto. + * rndegd.c (gather_random): Ditto. + * rijndael.c (do_setkey): Ditto. + * random.c (_gcry_random_dump_stats): Ditto. + * primegen.c (_gcry_generate_elg_prime): Ditto. + * des.c (_gcry_des_get_info): Ditto. + * cast5.c (do_cast_setkey): Ditto. + * blowfish.c (do_bf_setkey): Ditto. + +2002-08-26 Werner Koch + + * des.c (weak_keys): Fixed one entry in the table and compared + all entries against the literature. + (selftest): Checksum the weak key table. + +2002-08-21 Werner Koch + + * pubkey.c: Enable keygrip calculation for "openpgp-rsa". + +2002-08-17 Werner Koch + + * cipher.c (setup_cipher_table): Don't overwrite the DES entry + with the entry for DUMMY. + +2002-08-14 Werner Koch + + * des.c (do_des_setkey,do_des_encrypt, do_des_decrypt): New. + (_gcry_des_get_info): Support plain old DES. + * cipher.c (setup_cipher_table): Put DES into the table. + +2002-07-25 Werner Koch + + * rndunix.c (_gcry_rndunix_constructor): Prefixed with _gcry_. + Noted by Stephan Austermuehle. + +2002-07-08 Timo Schulz + + * rndw32.c: Replaced the m_ memory functions with the real + gcry_ functions. Renamed all g10_ prefixed functions to log_. + +2002-06-12 Werner Koch + + * rsa.c (generate): Use e = 65537 for now. + +2002-06-11 Werner Koch + + * pubkey.c (gcry_pk_get_keygrip): Allow a "protected-private-key". + +2002-06-05 Timo Schulz + + * cipher.c (gcry_cipher_encrypt, gcry_cipher_decrypt): + Check that the input size is a multiple of the blocksize. + +2002-05-23 Werner Koch + + * md.c (oid_table): Add an rsadsi OID for MD5. + +2002-05-21 Werner Koch + + * primegen.c, elgamal.c, dsa.c (progress): Do not print anything + by default. Pass an extra identifying string to the callback and + reserved 2 argumenst for current and total counters. Changed the + register function prototype. + +2002-05-17 Werner Koch + + * rndegd.c (rndegd_constructor): Fixed name of register function + and prefixed the function name with _gcry_. + * rndw32.c (rndw32_constructor): Ditto. + * tiger.c (tiger_constructor): Ditto. + + * Makefile.am: Removed all dynamic loading stuff. + * dynload.c: Ditto. Now only used for the constructor system. + +2002-05-15 Werner Koch + + * random.c (gcry_random_bytes,gcry_random_bytes_secure) + (gcry_randomize): Make sure we are initialized. + +2002-05-14 Werner Koch + + Changed license of most files to the LGPL. + +2002-05-02 Werner Koch + + * random.c (_gcry_fast_random_poll): Initialize the module so the + mutex can be used. + + * primegen.c (small_prime_numbers): Moved table from smallprime.c + * smallprime.c: File removed. + + * des.c (leftkey_swap, rightkey_swap, working_memcmp): Made static. + + * cipher.c (gcry_cipher_map_name): Map "RIJNDAEL" to "AES". + * rijndael.c (rijndael_get_info): We do only support a 128 bit + blocksize so it makes sense to change the algorithm strings to + AES. + + * tiger.c (tiger_final): Removed superfluous token pasting operators. + * md5.c (md5_final): Ditto. + +2002-04-30 Werner Koch + + * cipher.c: Fixed list of copyright years. + +2002-03-18 Werner Koch + + * random.c (initialize): Initialize the new pool lock mutex. + (_gcry_fast_random_poll): Add locking and moved main + code out to... + (do_fast_random_poll): new function. + (read_pool): Use the new function here. + (get_random_bytes): Add locking. + (_gcry_update_random_seed_file): Ditto. + +2002-03-11 Werner Koch + + * md.c: Add rsaSignatureWithripemd160 to OID table. + +2002-02-20 Werner Koch + + * sha1.c: Removed a left over comment note. The code has been + rewritten from scratch in 1998. Thanks to Niels Möller for + reporting this misleading comment. + +2002-02-18 Werner Koch + + * rndunix.c (rndunix_constructor): Use the the new prefixed + function name. Reported by Jordi Mallach. + +2002-02-10 Werner Koch + + * random.c (mix_pool): Carry an extra failsafe_digest buffer + around to make the function more robust. + +2002-02-08 Werner Koch + + * random.c (add_randomness): Xor new data into the pool and not + just copy it. This avoids any choosen input attacks which are not + serious in our setting because an outsider won't be able to mix + data in and even then we keep going with a PRNG. Thanks to Stefan + Keller for pointing this out. + +2002-01-04 Werner Koch + + * pubkey.c (gcry_pk_genkey): Do not release skey - it is static. + + * primegen.c (gen_prime): Of course we should use set_bit + and not set_highbit to set the second high bit. + +2001-12-18 Werner Koch + + * rsa.c (generate): Loop until we find the exact modulus size. + Changed the exponent to 41. + (rsa_get_info): s/usage/r_usage/ to avoid shadow warnings. + * primegen.c (gen_prime): Set 2 high order bits for secret primes. + + * Makefile.am (DISTCLEANFILES): Include construct.c. + +2001-12-17 Werner Koch + + * pubkey.c (gcry_pk_get_keygrip): New - experimental. + +2001-12-11 Werner Koch + + * cipher.c: Added OIDs for AES. + (gcry_cipher_mode_from_oid): New. + (gcry_cipher_map_name): Moved OID search code to .. + (search_oid): .. new function. + +2001-12-10 Werner Koch + + * pubkey.c (gcry_pk_encrypt): Find the signature algorithm by name + and not by number. + + * pubkey.c (gcry_pk_encrypt,gcry_pk_decrypt,gcry_pk_sign) + (gcry_pk_verify,gcry_pk_testkey, gcry_pk_genkey) + (gcry_pk_get_nbits): Release the arrays. Noted by Nikos + Mavroyanopoulos. + +2001-12-06 Werner Koch + + * cipher.c (gcry_cipher_map_name): Look also for OIDs prefixed + with "oid." or "OID.". + +2001-12-05 Werner Koch + + * pubkey.c (algo_info_table): Fixed entry for openpgp-rsa. + +2001-11-24 Werner Koch + + * pubkey.c: Added the rsaEncryption OID to the tables. + (sexp_to_key): Add an arg to return the index of the algorithm, + changed all callers. + (gcry_pk_sign): Find the signature algorithm by name and not by + number. + (gcry_pk_get_nbits): Fixed so that we can now really pass a secret + key to get the result. + + * md.c (gcry_md_map_name): Look also for OIDs prefixed with "oid." + or "OID." so that an OID string can be used as an S-Exp token. + +2001-11-20 Werner Koch + + * md.c (gcry_md_map_name): Lookup by OID if the the name begins + with a digit. + (oid_table): New. + +2001-11-16 Werner Koch + + * md.c (gcry_md_info): New operator GCRYCTL_IS_ALGO_ENABLED. + +2001-11-07 Werner Koch + + * md.c (gcry_md_hash_buffer): Close the handle which was left open + for algorithms other than rmd160. + +2001-08-08 Werner Koch + + * rndw32.c (gather_random): Use toolhelp in addition to the NT + gatherer for Windows2000. Suggested by Sami Tolvanen. + + * random.c (read_pool): Fixed length check, this used to be one + byte to strict. Made an assert out of it because the caller has + already made sure that only poolsize bytes are requested. + Reported by Marcus Brinkmann. + +2001-08-03 Werner Koch + + * cipher.c (cipher_encrypt, cipher_decrypt): Prepare to return + errors. We have to change the interface to all ciphers to make + this really work but we should do so to prepare for hardware + encryption modules. + (gcry_cipher_encrypt, gcry_cipher_decrypt): Return the error and + set lasterr. + (gcry_cipher_ctl): Make sure that errors from setkey are returned. + +2001-08-02 Werner Koch + + * rndlinux.c (gather_random): casted a size_t arg to int so that + the format string is correct. Casting is okay here and avoids + translation changes. + + * random.c (fast_random_poll): Do not check the return code of + getrusage. + + * rndunix.c: Add a signal.h header to avoid warnings on Solaris 7 + and 8. + + * tiger.c (print_abc,print_data): Removed. + + * rijndael.c, des.c, blowfish.c, twofish.c, cast5.c, arcfour.c + (burn_stack): New. Add wrappers for most functions to be able to + call burn_stack after the function invocation. This methods seems + to be the most portable way to zeroise the stack used. It does + only work on stack frame based machines but it is highly portable + and has no side effects. Just setting the automatic variables at + the end of a function to zero does not work well because the + compiler will optimize them away - marking them as volatile would + be bad for performance. + * md5.c, sha1.c, rmd160.c, tiger.c (burn_stack): Likewise. + * random.c (burn_stack): New. + (mix_pool): Use it here to burn the stack of the mixblock function. + + * primegen.c (_gcry_generate_elg_prime): Freed q at 3 places. + Thanks to Tommi Komulainen. + + * arcfour.c (arcfour_setkey): Check the minimim keylength against + bytes and not bits. + (selftest): Must reset the key before decryption. + +2001-05-31 Werner Koch + + * sha1.c (sha1_init): Made static. + + Changed all g10_ prefixed function names as well as some mpi_ + function names to cope with the introduced naming changes. + + * md.c (prepare_macpads): Made key const. + +2001-05-28 Werner Koch + + * rndegd.c (gather_random): Removed the use of tty_printf. + +2001-03-29 Werner Koch + + * md5.c (md5_final): Fixed calculation of hashed length. Thanks + to disastry@saiknes.lv for pointing out that it was horrible wrong + for more than 512MB of input. + * sha1.c (sha1_final): Ditto. + * rmd160.c (rmd160_final): Ditto. + * tiger.c (tiger_final): Ditto. + + * blowfish.c (encrypt,do_encrypt): Changed name to do_encrypt to + avoid name clashes with an encrypt function in stdlib.h of + Dynix/PIX. Thanks to Gene Carter. + * elgamal.c (encrypt,do_encrypt): Ditto. + + * twofish.c (gnupgext_enum_func): Use only when when compiled as a + module. + * rijndael.c (gnupgext_enum_func): Ditto. + + * tiger.c (tiger_get_info): Return "TIGER192" and not just + "TIGER". By Edwin Woudt. + + * random.c: Always include time.h - standard requirement. Thanks + to James Troup. + + * rndw32.c: Fixes to the macros. + +2001-01-11 Werner Koch + + * cipher.c (cipher_encrypt,gcry_cipher_encrypt): Use blocksize and + not 8. + +2000-12-19 Werner Koch + + Major change: + Removed all GnuPG stuff and renamed this piece of software + to gcrypt. + +2000-11-14 Werner Koch + + * dsa.c (test_keys): Replaced mpi_alloc by gcry_mpi_new and + mpi_free by gcry_mpi_release. + * elgamal.c (test_keys,generate): Ditto, also for mpi_alloc_secure. + * rsa.c (test_keys,generate,rsa_verify): Ditto. + * primegen.c (generate_elg_prime): Ditto. + (gen_prime): Ditto and removed nlimbs. + + * rsa.c (generate): Allocate 2 more vars in secure memory. + + * Makefile.am (OMIT_DEPENDENCIES): Hack to work around dependency + problems. + +2000-10-09 Werner Koch + + * arcfour.c, arcfour.h: New. + * cipher.c (cipher_encrypt, cipher_decrypt): Add stream mode. + (setup_cipher_table): Add Arcfour. + (gcry_cipher_open): Kludge to allow stream mode. + +Wed Oct 4 13:16:18 CEST 2000 Werner Koch + + * sha1.c (transform): Use rol() macro. Actually this is not needed + for a newer gcc but there are still aoter compilers. + + * rsa.c (test_keys): Use new random function. + + * md.c (gcry_md_setkey): New function to overcome problems with + const conflics. + (gcry_md_ctl): Pass set key to the new functions. + + * rijndael.c: New. + * cipher.c: Add Rijndael support. + +Mon Sep 18 16:35:45 CEST 2000 Werner Koch + + * rndlinux.c (open_device): Loose random device checking. + By Nils Ellmenreich. + + * random.c (fast_random_poll): Check ENOSYS for getrusage. + * rndunix.c: Add 2 sources for QNX. By Sam Roberts. + + * pubkey.c (gcry_pk_algo_info): Add GCRYCTL_GET_ALGO_USAGE. + + * rsa.c: Changed the comment about the patent. + (secret): Speed up by using the CRT. For a 2k keys this + is about 3 times faster. + (stronger_key_check): New but unused code to check the secret key. + * Makefile.am: Included rsa.[ch]. + * pubkey.c: Enabled RSA support. + (pubkey_get_npkey): Removed RSA workaround. + +Mon Jul 31 10:04:47 CEST 2000 Werner Koch + + * pubkey.c: Replaced all gcry_sexp_{car,cdr}_{data,mpi} by the new + gcry_sexp_nth_{data,mpi} functions. + +Tue Jul 25 17:44:15 CEST 2000 Werner Koch + + * pubkey.c (exp_to_key,sexp_to_sig,sexp_to_enc,gcry_pk_encrypt, + gcry_pk_decrypt,gcry_pk_sign,gcry_pk_genkey): Changed to work with + the new S-Exp interface. + +Mon Jul 17 16:35:47 CEST 2000 Werner Koch + + * random.c (gather_faked): Replaced make_timestamp by time(2) again. + +Fri Jul 14 19:38:23 CEST 2000 Werner Koch + + * md.c (gcry_md_ctl): Support GCRYCTL_{START,STOP}_DUMP. + + * Makefile.am: Never compile mingw32 as module. + + * Makefile.am: Tweaked module build and removed libtool + + * Makefile.am: Replaced -O1 by -O. Suggested by Alec Habig. + + * elgamal.c (sign): Removed inactive code. + + * rsa.c, rsa.h: New based on the old module version (only in CVS for now). + * pubkey.c (setup_pubkey_table): Added commented support for RSA. + + * rndunix.c (waitpid): New. For UTS 2.1. All by Dave Dykstra. + (my_popen): Do the FD_CLOEXEC only if it is available + (start_gatherer): Cope with missing _SC_OPEN_MAX + + * rndunix.c: Add some more headers for QNX. By Sam Roberts. + + * rndegd.c (gather_random): Shortcut level 0. + * rndunix.c (gather_random): Ditto. + * rndw32.c (gather_random): Ditto. + + * rndw32.c: Replaced with code from Cryptlib and commented the old stuff. + * rndw32.c: Add some debuging code enabled by an environment variable. + + * random.c (read_seed_file): Binary open for DOSish system + (update_random_seed_file): Ditto. + * random.c [MINGW32]: Include process.h for getpid. + * random.c (fast_random_poll): Add clock_gettime() as fallback for + system which support this POSIX.4 fucntion. By Sam Roberts. + + * random.c (read_seed_file): Removed the S_ISLNK test becuase it + is already covered by !S_ISREG and is not defined in Unixware. + Reported by Dave Dykstra. + (update_random_seed_file): Silently ignore update request when pool + is not filled. + + * random.c (read_seed_file): New. + (set_random_seed_file): New. + (read_pool): Try to read the seeding file. + (update_random_seed_file): New. + + (read_pool): Do an initial extra seeding when level 2 quality random + is requested the first time. This requestes at least POOLSIZE/2 bytes + of entropy. Compined with the seeding file this should make normal + random bytes cheaper and increase the quality of the random bytes + used for key generation. + + * random.c (read_pool): Print a more friendly error message in + cases when too much random is requested in one call. + + * random.c (fast_random_poll): Check whether RUSAGE_SELF is defined; + this is not the case for some ESIX and Unixware, although they have + getrusage(). + + * primegen.c (generate_elg_prime): All primes are now generated with + the lowest random quality level. Because they are public anyway we + don't need stronger random and by this we do not drain the systems + entropy so much. + + * primegen.c (register_primegen_progress): New. + * dsa.c (register_pk_dsa_progress): New. + * elgamal.c (register_pk_elg_progress): New. + + * elgamal.c (wiener_map): New. + (gen_k): Use a much smaller k. + (generate): Calculate the qbits using the wiener map and + choose an x at a size comparable to the one choosen in gen_k + + * rmd160.c (rmd160_get_info): Moved casting to the left side due to a + problem with UTS4.3. Suggested by Dave Dykstra. + * sha1.c (sha1_get_info): Ditto. + * tiger.c (tiger_get_info): Ditto. + * md5.c (md5_get_info): Ditto + * des.c (des_get_info): Ditto. + * blowfish.c (blowfish_get_info): Ditto. + * cast5.c (cast5_get_info): Ditto. + * twofish.c (twofish_get_info): Ditto. + +Fri Mar 24 11:25:45 CET 2000 Werner Koch + + * md.c (md_open): Add hmac arg and allocate space for the pads. + (md_finalize): Add HMAC support. + (md_copy): Ditto. + (md_close): Ditto. + (gcry_md_reset): Ditto. + (gcry_md_ctl): Ditto. + (prepare_macpdas): New. + +Mon Mar 13 19:22:46 CET 2000 Werner Koch + + * md.c (gcry_md_hash_buffer): Add support for the other algorithms. + +Mon Jan 31 16:37:34 CET 2000 Werner Koch + + * genprime.c (generate_elg_prime): Fixed returned factors which never + worked for non-DSA keys. + +Thu Jan 27 18:00:44 CET 2000 Werner Koch + + * pubkey.c (sexp_to_key): Fixed mem leaks in case of errors. + +Mon Jan 24 22:24:38 CET 2000 Werner Koch + + * pubkey.c (gcry_pk_decrypt): Implemented. + (gcry_pk_encrypt): Implemented. + (gcry_pk_testkey): New. + (gcry_pk_genkey): New. + (pubkey_decrypt): Made static. + (pubkey_encrypt): Ditto. + (pubkey_check_secret_key): Ditto. + (pubkey_generate): Ditto. + +Mon Jan 24 13:04:28 CET 2000 Werner Koch + + * pubkey.c (pubkey_nbits): Removed and replaced by ... + (gcry_pk_get_nbits): this new one. + +Wed Dec 8 21:58:32 CET 1999 Werner Koch + + * dsa.c: s/mpi_powm/gcry_mpi_powm/g + * elgamal.c: Ditto. + * primegen.c: Ditto. + + * : Replaced g10_opt_verbose by g10_log_verbosity(). + + * Makefile.am (INCLUDES): removed intl, add ../gcrypt + +Fri Nov 19 17:15:20 CET 1999 Werner Koch + + * dynload.c (cmp_filenames): New to replaced compare_filename() in + module. + (register_cipher_extension): Removed the tilde expansion stuff. + * rndeg.c (my_make_filename): New. + + * : Replaced header util.h by g10lib.h + + * random.c (gather_faked): Replaced make_timestamp by time(2). + Disabled wrning printed with tty_printf. + * rndlinux.c (gather_random): Always use fprintf instead of tty_xxx; + this should be replaced by a callback function. + + * primegen.c (gen_prime): Use gcry_mpi_randomize. + (is_prime): Ditto. + * elgamal.c (test_keys): Ditto. + * dsa.c (test_keys): Ditto. + + * cipher.c (gcry_cipher_close): Die on invalid handle. + +Mon Nov 15 21:36:02 CET 1999 Werner Koch + + * elgamal.c (gen_k): Use the new random API. + (generate): Ditto. + * dsa.c (gen_k): Ditto. + (generate): Ditto. + +Sat Nov 13 17:44:23 CET 1999 Werner Koch + + * pubkey.c (disable_pubkey_algo): Made static. + (gcry_pk_ctl): New. + + * random.c (get_random_bits): Renamed to ... + (get_random_bytes): ... this and made static. + (gcry_random_bytes): New. + (gcry_random_bytes_secure): New. + (randomize_buffer): Renamed to ... + (gcry_randomize): ...this. + + * md.c (gcry_md_hash_buffer): New. + + * pubkey.c (gcry_pk_algo_info): 4 new commands. + (pubkey_get_npkey): Made static. + (pubkey_get_nskey): Made static. + (pubkey_get_nsig): Made static. + (pubkey_get_nenc): Made static. + + * pubkey.c: Removed all G10ERR_xxx. + * cipher.c: Changed all GCRYERR_INV_ALGO to GCRYERR_INV_CIPHER_ALGO. + * md.c: Changed all GCRYERR_INV_ALGO to GCRYERR_INV_MD_ALGO. + * cast5.c (cast_setkey): Changed errocodes to GCRYERR_xxx. + * blowfish.c: Ditto. + * des.c: Ditto. + * twofish.c: Ditto. + * dsa.c: Ditto. + * elgamal.c: Ditto. + + * g10c.c: Removed + + * cipher.c (gcry_cipher_open): Replaced alloc functions and return NULL + if we are out of core. + * dynload.c: Replaced all memory allocation functions. + * md.c: Ditto. + * primegen.c: Ditto. + * pubkey.c: Ditto. + * random.c: Ditto. + * rndw32.c: Ditto. + * elgamal.c: Ditto. + * dsa.c: Ditto. + +Tue Oct 26 14:10:21 CEST 1999 Werner Koch + + * elgamal.c (sign): Hugh found strange code here. Replaced by BUG(). + + * cipher.c: Merged with gcrypt/symapi.c. + + * pubkey.c (string_to_pubkey_algo): Renamed function to ... + (gcry_pk_map_name): ... this. + (pubkey_algo_to_string): Renamed function to ... + (gcry_pk_algo_name): ... this. + (gcry_pk_algo_info): New. + * pubkey.c: Merged with gcrypt/pkapi.c. + + * md.c (md_reset): Clear finalized; thanks to Ulf Moeller for + fixing this bug. + + * md.c: Merged with gcrypt/mdapi.c + +Wed Sep 15 14:39:59 CEST 1999 Michael Roth + + * des.c: Various speed improvements: One bit pre rotation + trick after initial permutation (Richard Outerbridge). + Finished test of SSLeay Tripple-DES patterns. + +Wed Sep 15 16:22:17 CEST 1999 Werner Koch + + * rndw32.c: New. + +Mon Sep 13 10:51:29 CEST 1999 Werner Koch + + * bithelp.h: New. + * rmd160.h, sha1.h, md5.h: Use the rol macro from bithelp.h + +Tue Sep 7 16:23:36 CEST 1999 Werner Koch + + * Makefile.am: Fixed seds for latest egcc. By Ollivier Robert. + +Mon Sep 6 19:59:08 CEST 1999 Werner Koch + + * des.c (selftest): Add some testpattern + +Mon Aug 30 20:38:33 CEST 1999 Werner Koch + + * cipher.c (do_cbc_encrypt): Fixed serious bug occuring when not using + in place encryption. Pointed out by Frank Stajano. + +Mon Jul 26 09:34:46 CEST 1999 Werner Koch + + * md5.c (md5_final): Fix for a SCO cpp bug. + +Thu Jul 15 10:15:35 CEST 1999 Werner Koch + + * elgamal.c (elg_check_secret_key,elg_encrypt + elg_decrypt,elg_sign,elg_verify): Sanity check on the args. + * dsa.c (dsa_check_secret_key,dsa_sign,dsa_verify): Ditto. + + * pubkey.c (disable_pubkey_algo): New. + (check_pubkey_algo2): Look at disabled algo table. + * cipher.c (disable_cipher_algo): New. + (check_cipher_algo): Look at disabled algo table. + +Wed Jul 7 13:08:40 CEST 1999 Werner Koch + + * Makefile.am: Support for libtool. + +Fri Jul 2 11:45:54 CEST 1999 Werner Koch + + * dsa.c (gen_k): Changed algorithm to consume less random bytes + * elgamal.c (gen_k): Ditto. + + * random.c (random_dump_stats): New. + +Thu Jul 1 12:47:31 CEST 1999 Werner Koch + + * primegen.c, elgamal.c, dsa.c (progess): New and replaced all + fputc with a call to this function. + +Sat Jun 26 12:15:59 CEST 1999 Werner Koch + + * rndegd.c (do_write): s/ssize_t/int/ due to SunOS 4.1 probs. + + * cipher.c (do_cbc_encrypt, do_cbc_decrypt): New. + + * dynload.c (HAVE_DL_SHL_LOAD): Map hpux API to dlopen (Dave Dykstra). + * Makefile.am (install-exec-hook): Removed. + +Sun May 23 14:20:22 CEST 1999 Werner Koch + + * cipher.c (setup_cipher_table): Enable Twofish + + * random.c (fast_random_poll): Disable use of times() for mingw32. + +Mon May 17 21:54:43 CEST 1999 Werner Koch + + * dynload.c (register_internal_cipher_extension): Minor init fix. + +Tue May 4 15:47:53 CEST 1999 Werner Koch + + * primegen.c (gen_prime): Readded the Fermat test. Fixed the bug + that we didn't correct for step when passing the prime to the + Rabin-Miller test which led to bad performance (Stefan Keller). + (check_prime): Add a first Fermat test. + +Sun Apr 18 10:11:28 CEST 1999 Werner Koch + + * cipher.c (cipher_setiv): Add ivlen arg, changed all callers. + + * random.c (randomize_buffer): alway use secure memory because + we can't use m_is_secure() on a statically allocated buffer. + + * twofish.c: Replaced some macros by a loop to reduce text size. + * Makefile.am (twofish): No more need for sed editing. + +Fri Apr 9 12:26:25 CEST 1999 Werner Koch + + * cipher.c (cipher_open): Reversed the changes for AUTO_CFB. + + * blowfish.c: Dropped the Blowfish 160 mode. + * cipher.c (cipher_open): Ditto. + (setup_cipher_table): Ditto. And removed support of twofish128 + +Wed Apr 7 20:51:39 CEST 1999 Werner Koch + + * random.c (get_random_bits): Can now handle requests > POOLSIZE + + * cipher.c (cipher_open): Now uses standard CFB for automode if + the blocksize is gt 8 (according to rfc2440). + + * twofish.c: Applied Matthew Skala's patches for 256 bit key. + +Tue Apr 6 19:58:12 CEST 1999 Werner Koch + + * random.c (get_random_bits): Can now handle requests > POOLSIZE + + * cipher.c (cipher_open): Now uses standard CFB for automode if + the blocksize is gt 8 (according to rfc2440). + +Sat Mar 20 11:44:21 CET 1999 Werner Koch + + * rndlinux.c (tty_printf) [IS_MODULE]: Removed. + + * rndegd.c (gather_random): Some fixes. + +Wed Mar 17 13:09:03 CET 1999 Werner Koch + + * rndegd.c (do_read): New. + (gather_random): Changed the implementation. + +Mon Mar 8 20:47:17 CET 1999 Werner Koch + + * dynload.c (DLSYM_NEEDS_UNDERSCORE): Renamed. + +Fri Feb 26 17:55:41 CET 1999 Werner Koch + + * md.c: Nearly a total rewrote. + +Wed Feb 24 11:07:27 CET 1999 Werner Koch + + * cipher.c (context): Fixed alignment + * md.c: Ditto. + + * rndegd.c: New + +Mon Feb 22 20:04:00 CET 1999 Werner Koch + + * rndegd.c: New. + +Wed Feb 10 17:15:39 CET 1999 Werner Koch + + * Makefile.am: Modules are now figured out by configure + * construct.c: New. Generated by configure. Changed all modules + to work with that. + * sha1.h: Removed. + * md5.h: Removed. + + * twofish.c: Changed interface to allow Twofish/256 + + * rndunix.c (start_gatherer): Die on SIGPIPE. + +Wed Jan 20 18:59:49 CET 1999 Werner Koch + + * rndunix.c (gather_random): Fix to avoid infinite loop. + +Sun Jan 17 11:04:33 CET 1999 Werner Koch + + * des.c (is_weak_key): Replace system memcmp due to bugs + in SunOS's memcmp. + (des_get_info): Return error on failed selftest. + * twofish.c (twofish_setkey): Return error on failed selftest or + invalid keylength. + * cast5.c (cast_setkey): Ditto. + * blowfish.c (bf_setkey): Return error on failed selftest. + +Tue Jan 12 11:17:18 CET 1999 Werner Koch + + * random.c (random_is_faked): New. + + * tiger.c: Only compile if we have the u64 type + +Sat Jan 9 16:02:23 CET 1999 Werner Koch + + * rndunix.c (gather_random): check for setuid. + + * Makefile.am: Add a way to staically link random modules + +Thu Jan 7 18:00:58 CET 1999 Werner Koch + + * md.c (md_stop_debug): Do a flush first. + (md_open): size of buffer now depends on the secure parameter + +Sun Jan 3 15:28:44 CET 1999 Werner Koch + + * rndunix.c (start_gatherer): Fixed stupid ==/= bug + +1998-12-31 Geoff Keating + + * des.c (is_weak_key): Rewrite loop end condition. + +Tue Dec 29 14:41:47 CET 1998 Werner Koch + + * random.c: add unistd.h for getpid(). + (RAND_MAX): Fallback value for Sun. + +Wed Dec 23 17:12:24 CET 1998 Werner Koch + + * md.c (md_copy): Reset debug. + +Mon Dec 14 21:18:49 CET 1998 Werner Koch + + * random.c (read_random_source): Changed the interface to the + random gathering function. + (gather_faked): Use new interface. + * dynload.c (dynload_getfnc_fast_random_poll): Ditto. + (dynload_getfnc_gather_random): Ditto. + * rndlinux.c (gather_random): Ditto. + * rndunix.c (gather_random): Ditto. + +Sat Dec 12 18:40:32 CET 1998 Werner Koch + + * dynload.c (SYMBOL_VERSION): New to cope with system which needs + underscores. + + * rndunix.c: Rewrote large parts + +Thu Dec 10 20:15:36 CET 1998 Werner Koch + + * dynload.c (load_extension): increased needed verbosity level. + + * random.c (fast_random_poll): Fallback to a default fast random + poll function. + (read_random_source): Always use the faked entroy gatherer if no + gather module is available. + * rndlinux.c (fast_poll): Removed. + * rndunix.c (fast_poll): Removed. + + +Wed Nov 25 12:33:41 1998 Werner Koch (wk@isil.d.shuttle.de) + + * rand-*.c: Removed. + * rndlinux.c : New. + * rndunix.c : New. + * random.c : Restructured the interface to the gather modules. + (intialize): Call constructor functions + (read_radnom_source): Moved to here. + * dynload.c (dynload_getfnc_gather_random): New. + (dynload_getfnc_fast_random_poll): New. + (register_internal_cipher_extension): New. + (register_cipher_extension): Support of internal modules. + +Sun Nov 8 17:44:36 1998 Werner Koch (wk@isil.d.shuttle.de) + + * rand-unix.c (read_random_source): Removed the assert. + +Mon Oct 19 18:34:30 1998 me,,, (wk@tobold) + + * pubkey.c: Hack to allow us to give some info about RSA keys back. + +Thu Oct 15 11:47:57 1998 Werner Koch (wk@isil.d.shuttle.de) + + * dynload.c: Support for DLD + +Wed Oct 14 12:13:07 1998 Werner Koch (wk@isil.d.shuttle.de) + + * rand-unix.c: Now uses names from configure for /dev/random. + +1998-10-10 SL Baur + + * Makefile.am: fix sed -O substitutions to catch -O6, etc. + +Tue Oct 6 10:06:32 1998 Werner Koch (wk@isil.d.shuttle.de) + + * rand-unix.c (HAVE_GETTIMEOFDAY): Fixed (was ..GETTIMEOFTIME :-) + * rand-dummy.c (HAVE_GETTIMEOFDAY): Ditto. + +Mon Sep 28 13:23:09 1998 Werner Koch (wk@isil.d.shuttle.de) + + * md.c (md_digest): New. + (md_reset): New. + +Wed Sep 23 12:27:02 1998 Werner Koch (wk@isil.d.shuttle.de) + + * tiger.c (TIGER_CONTEXT): moved "buf", so that it is 64 bit aligned. + +Mon Sep 21 06:22:53 1998 Werner Koch (wk@(none)) + + * des.c: Some patches from Michael. + +Thu Sep 17 19:00:06 1998 Werner Koch (wk@(none)) + + * des.c : New file from Michael Roth + +Mon Sep 14 11:10:55 1998 Werner Koch (wk@(none)) + + * blowfish.c (bf_setkey): Niklas Hernaeus patch to detect weak keys. + +Mon Sep 14 09:19:25 1998 Werner Koch (wk@(none)) + + * dynload.c (RTLD_NOW): Now defined to 1 if it is undefined. + +Mon Sep 7 17:04:33 1998 Werner Koch (wk@(none)) + + * Makefile.am: Fixes to allow a different build directory + +Thu Aug 6 17:25:38 1998 Werner Koch,mobil,,, (wk@tobold) + + * random.c (get_random_byte): Removed and changed all callers + to use get_random_bits() + +Mon Jul 27 10:30:22 1998 Werner Koch (wk@(none)) + + * cipher.c : Support for other blocksizes + (cipher_get_blocksize): New. + * twofish.c: New. + * Makefile.am: Add twofish module. + +Mon Jul 13 21:30:52 1998 Werner Koch (wk@isil.d.shuttle.de) + + * random.c (read_pool): Simple alloc if secure_alloc is not set. + (get_random_bits): Ditto. + +Thu Jul 9 13:01:14 1998 Werner Koch (wk@isil.d.shuttle.de) + + * dynload.c (load_extension): Function now nbails out if + the program is run setuid. + +Wed Jul 8 18:58:23 1998 Werner Koch (wk@isil.d.shuttle.de) + + * rmd160.c (rmd160_hash_buffer): New. + +Thu Jul 2 10:50:30 1998 Werner Koch (wk@isil.d.shuttle.de) + + * cipher.c (cipher_open): algos >=100 use standard CFB + +Thu Jun 25 11:18:25 1998 Werner Koch (wk@isil.d.shuttle.de) + + * Makefile.am: Support for extensions + +Thu Jun 18 12:09:38 1998 Werner Koch (wk@isil.d.shuttle.de) + + * random.c (mix_pool): simpler handling for level 0 + +Mon Jun 15 14:40:48 1998 Werner Koch (wk@isil.d.shuttle.de) + + * tiger.c: Removed from dist, will reappear as dynload module + +Sat Jun 13 14:16:57 1998 Werner Koch (wk@isil.d.shuttle.de) + + * pubkey.c: Major changes to allow extensions. Changed the inteface + of all public key ciphers and added the ability to load extensions + on demand. + + * misc.c: Removed. + +Wed Jun 10 07:52:08 1998 Werner Koch,mobil,,, (wk@tobold) + + * dynload.c: New. + * cipher.c: Major changes to allow extensions. + +Mon Jun 8 22:43:00 1998 Werner Koch (wk@isil.d.shuttle.de) + + * cipher.c: Major internal chnages to support extensions. + * blowfish.c (blowfish_get_info): New and made all internal + functions static, changed heder. + * cast5.c (cast5_get_info): Likewise. + +Mon Jun 8 12:27:52 1998 Werner Koch (wk@isil.d.shuttle.de) + + * tiger.c (transform): Fix for big endian + + * cipher.c (do_cfb_decrypt): Big endian fix. + +Fri May 22 07:30:39 1998 Werner Koch (wk@isil.d.shuttle.de) + + * md.c (md_get_oid): Add a new one for TIGER. + +Thu May 21 13:24:52 1998 Werner Koch (wk@isil.d.shuttle.de) + + * cipher.c: Add support for a dummy cipher + +Thu May 14 15:40:36 1998 Werner Koch (wk@isil.d.shuttle.de) + + * rmd160.c (transform): fixed sigbus - I should better + add Christian von Roques's new implemenation of rmd160_write. + +Fri May 8 18:07:44 1998 Werner Koch (wk@isil.d.shuttle.de) + + * rand-internal.h, rand-unix.c, rand-w32.c, rand_dummy.c: New + * random.c: Moved system specific functions to rand-****.c + +Fri May 8 14:01:17 1998 Werner Koch (wk@isil.d.shuttle.de) + + * random.c (fast_random_poll): add call to gethrtime. + +Tue May 5 21:28:55 1998 Werner Koch (wk@isil.d.shuttle.de) + + * elgamal.c (elg_generate): choosing x was not correct, could + yield 6 bytes which are not from the random pool, tsss, tsss.. + +Tue May 5 14:09:06 1998 Werner Koch (wk@isil.d.shuttle.de) + + * primegen.c (generate_elg_prime): Add arg mode, changed all + callers and implemented mode 1. + +Mon Apr 27 14:41:58 1998 Werner Koch (wk@isil.d.shuttle.de) + + * cipher.c (cipher_get_keylen): New. + +Sun Apr 26 14:44:52 1998 Werner Koch (wk@isil.d.shuttle.de) + + * tiger.c, tiger.h: New. + +Wed Apr 8 14:57:11 1998 Werner Koch (wk@isil.d.shuttle.de) + + * misc.c (check_pubkey_algo2): New. + +Tue Apr 7 18:46:49 1998 Werner Koch (wk@isil.d.shuttle.de) + + * cipher.c: New + * misc.c (check_cipher_algo): Moved to cipher.c + * cast5.c: Moved many functions to cipher.c + * blowfish.c: Likewise. + +Sat Apr 4 19:52:08 1998 Werner Koch (wk@isil.d.shuttle.de) + + * cast5.c: Implemented and tested. + +Wed Apr 1 16:38:27 1998 Werner Koch (wk@isil.d.shuttle.de) + + * elgamal.c (elg_generate): Faster generation of x in some cases. + +Thu Mar 19 13:54:48 1998 Werner Koch (wk@isil.d.shuttle.de) + + * blowfish.c (blowfish_decode_cfb): changed XOR operation + (blowfish_encode_cfb): Ditto. + +Thu Mar 12 14:04:05 1998 Werner Koch (wk@isil.d.shuttle.de) + + * sha1.c (transform): Rewrote + + * blowfish.c (encrypt): Unrolled for rounds == 16 + (decrypt): Ditto. + +Tue Mar 10 16:32:08 1998 Werner Koch (wk@isil.d.shuttle.de) + + * rmd160.c (transform): Unrolled the loop. + +Tue Mar 10 13:05:14 1998 Werner Koch (wk@isil.d.shuttle.de) + + * random.c (read_pool): Add pool_balance stuff. + (get_random_bits): New. + + * elgamal.c (elg_generate): Now uses get_random_bits to generate x. + + +Tue Mar 10 11:33:51 1998 Werner Koch (wk@isil.d.shuttle.de) + + * md.c (md_digest_length): New. + +Tue Mar 10 11:27:41 1998 Werner Koch (wk@isil.d.shuttle.de) + + * dsa.c (dsa_verify): Works. + +Mon Mar 9 12:59:08 1998 Werner Koch (wk@isil.d.shuttle.de) + + * dsa.c, dsa.h: Removed some unused code. + +Wed Mar 4 10:39:22 1998 Werner Koch (wk@isil.d.shuttle.de) + + * md.c (md_open): Add call to fast_random_poll. + blowfish.c (blowfish_setkey): Ditto. + +Tue Mar 3 13:32:54 1998 Werner Koch (wk@isil.d.shuttle.de) + + * rmd160.c (rmd160_mixblock): New. + * random.c: Restructured to start with a new RNG implementation. + * random.h: New. + +Mon Mar 2 19:21:46 1998 Werner Koch (wk@isil.d.shuttle.de) + + * gost.c, gost.h: Removed because they did only contain trash. + +Sun Mar 1 16:42:29 1998 Werner Koch (wk@isil.d.shuttle.de) + + * random.c (fill_buffer): removed error message if n == -1. + +Fri Feb 27 16:39:34 1998 Werner Koch (wk@isil.d.shuttle.de) + + * md.c (md_enable): No init if called twice. + +Thu Feb 26 07:57:02 1998 Werner Koch (wk@isil.d.shuttle.de) + + * primegen.c (generate_elg_prime): Changed the progress printing. + (gen_prime): Ditto. + +Tue Feb 24 12:28:42 1998 Werner Koch (wk@isil.d.shuttle.de) + + * md5.c, md.5 : Replaced by a modified version of md5.c from + GNU textutils 1.22. + +Wed Feb 18 14:08:30 1998 Werner Koch (wk@isil.d.shuttle.de) + + * md.c, md.h : New debugging support + +Mon Feb 16 10:08:47 1998 Werner Koch (wk@isil.d.shuttle.de) + + * misc.c (cipher_algo_to_string): New + (pubkey_algo_to_string): New. + (digest_algo_to_string): New. + + + Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006 + 2007, 2008, 2009 Free Software Foundation, Inc. + + This file is free software; as a special exception the author gives + unlimited permission to copy and/or distribute it, with or without + modifications, as long as this notice is preserved. + + This file is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY, to the extent permitted by law; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/seed.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/seed.c @@ -0,0 +1,456 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* SEED for libgcrypt + * Copyright (C) 2006 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + * + * -- + * This implementation was provided for libgcrypt in public domain + * by Hye-Shik Chang , July 2006. + */ + + +#include "types.h" /* for byte and u32 typedefs */ +#include "g10lib.h" +#include "cipher.h" + +#define NUMKC 16 + +#define GETU32(pt) (((u32)(pt)[0] << 24) ^ ((u32)(pt)[1] << 16) ^ \ + ((u32)(pt)[2] << 8) ^ ((u32)(pt)[3])) +#define PUTU32(ct, st) { (ct)[0] = (byte)((st) >> 24); \ + (ct)[1] = (byte)((st) >> 16); \ + (ct)[2] = (byte)((st) >> 8); \ + (ct)[3] = (byte)(st); } + +union wordbuf +{ + u32 w; + byte b[4]; +}; + +#ifdef WORDS_BIGENDIAN +#define b0 b[3] +#define b1 b[2] +#define b2 b[1] +#define b3 b[0] +#else +#define b0 b[0] +#define b1 b[1] +#define b2 b[2] +#define b3 b[3] +#endif + + +typedef struct +{ + u32 keyschedule[32]; +} SEED_context; + +static const u32 SS0[256] = { + 0x2989a1a8, 0x05858184, 0x16c6d2d4, 0x13c3d3d0, 0x14445054, 0x1d0d111c, + 0x2c8ca0ac, 0x25052124, 0x1d4d515c, 0x03434340, 0x18081018, 0x1e0e121c, + 0x11415150, 0x3cccf0fc, 0x0acac2c8, 0x23436360, 0x28082028, 0x04444044, + 0x20002020, 0x1d8d919c, 0x20c0e0e0, 0x22c2e2e0, 0x08c8c0c8, 0x17071314, + 0x2585a1a4, 0x0f8f838c, 0x03030300, 0x3b4b7378, 0x3b8bb3b8, 0x13031310, + 0x12c2d2d0, 0x2ecee2ec, 0x30407070, 0x0c8c808c, 0x3f0f333c, 0x2888a0a8, + 0x32023230, 0x1dcdd1dc, 0x36c6f2f4, 0x34447074, 0x2ccce0ec, 0x15859194, + 0x0b0b0308, 0x17475354, 0x1c4c505c, 0x1b4b5358, 0x3d8db1bc, 0x01010100, + 0x24042024, 0x1c0c101c, 0x33437370, 0x18889098, 0x10001010, 0x0cccc0cc, + 0x32c2f2f0, 0x19c9d1d8, 0x2c0c202c, 0x27c7e3e4, 0x32427270, 0x03838380, + 0x1b8b9398, 0x11c1d1d0, 0x06868284, 0x09c9c1c8, 0x20406060, 0x10405050, + 0x2383a3a0, 0x2bcbe3e8, 0x0d0d010c, 0x3686b2b4, 0x1e8e929c, 0x0f4f434c, + 0x3787b3b4, 0x1a4a5258, 0x06c6c2c4, 0x38487078, 0x2686a2a4, 0x12021210, + 0x2f8fa3ac, 0x15c5d1d4, 0x21416160, 0x03c3c3c0, 0x3484b0b4, 0x01414140, + 0x12425250, 0x3d4d717c, 0x0d8d818c, 0x08080008, 0x1f0f131c, 0x19899198, + 0x00000000, 0x19091118, 0x04040004, 0x13435350, 0x37c7f3f4, 0x21c1e1e0, + 0x3dcdf1fc, 0x36467274, 0x2f0f232c, 0x27072324, 0x3080b0b0, 0x0b8b8388, + 0x0e0e020c, 0x2b8ba3a8, 0x2282a2a0, 0x2e4e626c, 0x13839390, 0x0d4d414c, + 0x29496168, 0x3c4c707c, 0x09090108, 0x0a0a0208, 0x3f8fb3bc, 0x2fcfe3ec, + 0x33c3f3f0, 0x05c5c1c4, 0x07878384, 0x14041014, 0x3ecef2fc, 0x24446064, + 0x1eced2dc, 0x2e0e222c, 0x0b4b4348, 0x1a0a1218, 0x06060204, 0x21012120, + 0x2b4b6368, 0x26466264, 0x02020200, 0x35c5f1f4, 0x12829290, 0x0a8a8288, + 0x0c0c000c, 0x3383b3b0, 0x3e4e727c, 0x10c0d0d0, 0x3a4a7278, 0x07474344, + 0x16869294, 0x25c5e1e4, 0x26062224, 0x00808080, 0x2d8da1ac, 0x1fcfd3dc, + 0x2181a1a0, 0x30003030, 0x37073334, 0x2e8ea2ac, 0x36063234, 0x15051114, + 0x22022220, 0x38083038, 0x34c4f0f4, 0x2787a3a4, 0x05454144, 0x0c4c404c, + 0x01818180, 0x29c9e1e8, 0x04848084, 0x17879394, 0x35053134, 0x0bcbc3c8, + 0x0ecec2cc, 0x3c0c303c, 0x31417170, 0x11011110, 0x07c7c3c4, 0x09898188, + 0x35457174, 0x3bcbf3f8, 0x1acad2d8, 0x38c8f0f8, 0x14849094, 0x19495158, + 0x02828280, 0x04c4c0c4, 0x3fcff3fc, 0x09494148, 0x39093138, 0x27476364, + 0x00c0c0c0, 0x0fcfc3cc, 0x17c7d3d4, 0x3888b0b8, 0x0f0f030c, 0x0e8e828c, + 0x02424240, 0x23032320, 0x11819190, 0x2c4c606c, 0x1bcbd3d8, 0x2484a0a4, + 0x34043034, 0x31c1f1f0, 0x08484048, 0x02c2c2c0, 0x2f4f636c, 0x3d0d313c, + 0x2d0d212c, 0x00404040, 0x3e8eb2bc, 0x3e0e323c, 0x3c8cb0bc, 0x01c1c1c0, + 0x2a8aa2a8, 0x3a8ab2b8, 0x0e4e424c, 0x15455154, 0x3b0b3338, 0x1cccd0dc, + 0x28486068, 0x3f4f737c, 0x1c8c909c, 0x18c8d0d8, 0x0a4a4248, 0x16465254, + 0x37477374, 0x2080a0a0, 0x2dcde1ec, 0x06464244, 0x3585b1b4, 0x2b0b2328, + 0x25456164, 0x3acaf2f8, 0x23c3e3e0, 0x3989b1b8, 0x3181b1b0, 0x1f8f939c, + 0x1e4e525c, 0x39c9f1f8, 0x26c6e2e4, 0x3282b2b0, 0x31013130, 0x2acae2e8, + 0x2d4d616c, 0x1f4f535c, 0x24c4e0e4, 0x30c0f0f0, 0x0dcdc1cc, 0x08888088, + 0x16061214, 0x3a0a3238, 0x18485058, 0x14c4d0d4, 0x22426260, 0x29092128, + 0x07070304, 0x33033330, 0x28c8e0e8, 0x1b0b1318, 0x05050104, 0x39497178, + 0x10809090, 0x2a4a6268, 0x2a0a2228, 0x1a8a9298, +}; + +static const u32 SS1[256] = { + 0x38380830, 0xe828c8e0, 0x2c2d0d21, 0xa42686a2, 0xcc0fcfc3, 0xdc1eced2, + 0xb03383b3, 0xb83888b0, 0xac2f8fa3, 0x60204060, 0x54154551, 0xc407c7c3, + 0x44044440, 0x6c2f4f63, 0x682b4b63, 0x581b4b53, 0xc003c3c3, 0x60224262, + 0x30330333, 0xb43585b1, 0x28290921, 0xa02080a0, 0xe022c2e2, 0xa42787a3, + 0xd013c3d3, 0x90118191, 0x10110111, 0x04060602, 0x1c1c0c10, 0xbc3c8cb0, + 0x34360632, 0x480b4b43, 0xec2fcfe3, 0x88088880, 0x6c2c4c60, 0xa82888a0, + 0x14170713, 0xc404c4c0, 0x14160612, 0xf434c4f0, 0xc002c2c2, 0x44054541, + 0xe021c1e1, 0xd416c6d2, 0x3c3f0f33, 0x3c3d0d31, 0x8c0e8e82, 0x98188890, + 0x28280820, 0x4c0e4e42, 0xf436c6f2, 0x3c3e0e32, 0xa42585a1, 0xf839c9f1, + 0x0c0d0d01, 0xdc1fcfd3, 0xd818c8d0, 0x282b0b23, 0x64264662, 0x783a4a72, + 0x24270723, 0x2c2f0f23, 0xf031c1f1, 0x70324272, 0x40024242, 0xd414c4d0, + 0x40014141, 0xc000c0c0, 0x70334373, 0x64274763, 0xac2c8ca0, 0x880b8b83, + 0xf437c7f3, 0xac2d8da1, 0x80008080, 0x1c1f0f13, 0xc80acac2, 0x2c2c0c20, + 0xa82a8aa2, 0x34340430, 0xd012c2d2, 0x080b0b03, 0xec2ecee2, 0xe829c9e1, + 0x5c1d4d51, 0x94148490, 0x18180810, 0xf838c8f0, 0x54174753, 0xac2e8ea2, + 0x08080800, 0xc405c5c1, 0x10130313, 0xcc0dcdc1, 0x84068682, 0xb83989b1, + 0xfc3fcff3, 0x7c3d4d71, 0xc001c1c1, 0x30310131, 0xf435c5f1, 0x880a8a82, + 0x682a4a62, 0xb03181b1, 0xd011c1d1, 0x20200020, 0xd417c7d3, 0x00020202, + 0x20220222, 0x04040400, 0x68284860, 0x70314171, 0x04070703, 0xd81bcbd3, + 0x9c1d8d91, 0x98198991, 0x60214161, 0xbc3e8eb2, 0xe426c6e2, 0x58194951, + 0xdc1dcdd1, 0x50114151, 0x90108090, 0xdc1cccd0, 0x981a8a92, 0xa02383a3, + 0xa82b8ba3, 0xd010c0d0, 0x80018181, 0x0c0f0f03, 0x44074743, 0x181a0a12, + 0xe023c3e3, 0xec2ccce0, 0x8c0d8d81, 0xbc3f8fb3, 0x94168692, 0x783b4b73, + 0x5c1c4c50, 0xa02282a2, 0xa02181a1, 0x60234363, 0x20230323, 0x4c0d4d41, + 0xc808c8c0, 0x9c1e8e92, 0x9c1c8c90, 0x383a0a32, 0x0c0c0c00, 0x2c2e0e22, + 0xb83a8ab2, 0x6c2e4e62, 0x9c1f8f93, 0x581a4a52, 0xf032c2f2, 0x90128292, + 0xf033c3f3, 0x48094941, 0x78384870, 0xcc0cccc0, 0x14150511, 0xf83bcbf3, + 0x70304070, 0x74354571, 0x7c3f4f73, 0x34350531, 0x10100010, 0x00030303, + 0x64244460, 0x6c2d4d61, 0xc406c6c2, 0x74344470, 0xd415c5d1, 0xb43484b0, + 0xe82acae2, 0x08090901, 0x74364672, 0x18190911, 0xfc3ecef2, 0x40004040, + 0x10120212, 0xe020c0e0, 0xbc3d8db1, 0x04050501, 0xf83acaf2, 0x00010101, + 0xf030c0f0, 0x282a0a22, 0x5c1e4e52, 0xa82989a1, 0x54164652, 0x40034343, + 0x84058581, 0x14140410, 0x88098981, 0x981b8b93, 0xb03080b0, 0xe425c5e1, + 0x48084840, 0x78394971, 0x94178793, 0xfc3cccf0, 0x1c1e0e12, 0x80028282, + 0x20210121, 0x8c0c8c80, 0x181b0b13, 0x5c1f4f53, 0x74374773, 0x54144450, + 0xb03282b2, 0x1c1d0d11, 0x24250521, 0x4c0f4f43, 0x00000000, 0x44064642, + 0xec2dcde1, 0x58184850, 0x50124252, 0xe82bcbe3, 0x7c3e4e72, 0xd81acad2, + 0xc809c9c1, 0xfc3dcdf1, 0x30300030, 0x94158591, 0x64254561, 0x3c3c0c30, + 0xb43686b2, 0xe424c4e0, 0xb83b8bb3, 0x7c3c4c70, 0x0c0e0e02, 0x50104050, + 0x38390931, 0x24260622, 0x30320232, 0x84048480, 0x68294961, 0x90138393, + 0x34370733, 0xe427c7e3, 0x24240420, 0xa42484a0, 0xc80bcbc3, 0x50134353, + 0x080a0a02, 0x84078783, 0xd819c9d1, 0x4c0c4c40, 0x80038383, 0x8c0f8f83, + 0xcc0ecec2, 0x383b0b33, 0x480a4a42, 0xb43787b3, +}; + +static const u32 SS2[256] = { + 0xa1a82989, 0x81840585, 0xd2d416c6, 0xd3d013c3, 0x50541444, 0x111c1d0d, + 0xa0ac2c8c, 0x21242505, 0x515c1d4d, 0x43400343, 0x10181808, 0x121c1e0e, + 0x51501141, 0xf0fc3ccc, 0xc2c80aca, 0x63602343, 0x20282808, 0x40440444, + 0x20202000, 0x919c1d8d, 0xe0e020c0, 0xe2e022c2, 0xc0c808c8, 0x13141707, + 0xa1a42585, 0x838c0f8f, 0x03000303, 0x73783b4b, 0xb3b83b8b, 0x13101303, + 0xd2d012c2, 0xe2ec2ece, 0x70703040, 0x808c0c8c, 0x333c3f0f, 0xa0a82888, + 0x32303202, 0xd1dc1dcd, 0xf2f436c6, 0x70743444, 0xe0ec2ccc, 0x91941585, + 0x03080b0b, 0x53541747, 0x505c1c4c, 0x53581b4b, 0xb1bc3d8d, 0x01000101, + 0x20242404, 0x101c1c0c, 0x73703343, 0x90981888, 0x10101000, 0xc0cc0ccc, + 0xf2f032c2, 0xd1d819c9, 0x202c2c0c, 0xe3e427c7, 0x72703242, 0x83800383, + 0x93981b8b, 0xd1d011c1, 0x82840686, 0xc1c809c9, 0x60602040, 0x50501040, + 0xa3a02383, 0xe3e82bcb, 0x010c0d0d, 0xb2b43686, 0x929c1e8e, 0x434c0f4f, + 0xb3b43787, 0x52581a4a, 0xc2c406c6, 0x70783848, 0xa2a42686, 0x12101202, + 0xa3ac2f8f, 0xd1d415c5, 0x61602141, 0xc3c003c3, 0xb0b43484, 0x41400141, + 0x52501242, 0x717c3d4d, 0x818c0d8d, 0x00080808, 0x131c1f0f, 0x91981989, + 0x00000000, 0x11181909, 0x00040404, 0x53501343, 0xf3f437c7, 0xe1e021c1, + 0xf1fc3dcd, 0x72743646, 0x232c2f0f, 0x23242707, 0xb0b03080, 0x83880b8b, + 0x020c0e0e, 0xa3a82b8b, 0xa2a02282, 0x626c2e4e, 0x93901383, 0x414c0d4d, + 0x61682949, 0x707c3c4c, 0x01080909, 0x02080a0a, 0xb3bc3f8f, 0xe3ec2fcf, + 0xf3f033c3, 0xc1c405c5, 0x83840787, 0x10141404, 0xf2fc3ece, 0x60642444, + 0xd2dc1ece, 0x222c2e0e, 0x43480b4b, 0x12181a0a, 0x02040606, 0x21202101, + 0x63682b4b, 0x62642646, 0x02000202, 0xf1f435c5, 0x92901282, 0x82880a8a, + 0x000c0c0c, 0xb3b03383, 0x727c3e4e, 0xd0d010c0, 0x72783a4a, 0x43440747, + 0x92941686, 0xe1e425c5, 0x22242606, 0x80800080, 0xa1ac2d8d, 0xd3dc1fcf, + 0xa1a02181, 0x30303000, 0x33343707, 0xa2ac2e8e, 0x32343606, 0x11141505, + 0x22202202, 0x30383808, 0xf0f434c4, 0xa3a42787, 0x41440545, 0x404c0c4c, + 0x81800181, 0xe1e829c9, 0x80840484, 0x93941787, 0x31343505, 0xc3c80bcb, + 0xc2cc0ece, 0x303c3c0c, 0x71703141, 0x11101101, 0xc3c407c7, 0x81880989, + 0x71743545, 0xf3f83bcb, 0xd2d81aca, 0xf0f838c8, 0x90941484, 0x51581949, + 0x82800282, 0xc0c404c4, 0xf3fc3fcf, 0x41480949, 0x31383909, 0x63642747, + 0xc0c000c0, 0xc3cc0fcf, 0xd3d417c7, 0xb0b83888, 0x030c0f0f, 0x828c0e8e, + 0x42400242, 0x23202303, 0x91901181, 0x606c2c4c, 0xd3d81bcb, 0xa0a42484, + 0x30343404, 0xf1f031c1, 0x40480848, 0xc2c002c2, 0x636c2f4f, 0x313c3d0d, + 0x212c2d0d, 0x40400040, 0xb2bc3e8e, 0x323c3e0e, 0xb0bc3c8c, 0xc1c001c1, + 0xa2a82a8a, 0xb2b83a8a, 0x424c0e4e, 0x51541545, 0x33383b0b, 0xd0dc1ccc, + 0x60682848, 0x737c3f4f, 0x909c1c8c, 0xd0d818c8, 0x42480a4a, 0x52541646, + 0x73743747, 0xa0a02080, 0xe1ec2dcd, 0x42440646, 0xb1b43585, 0x23282b0b, + 0x61642545, 0xf2f83aca, 0xe3e023c3, 0xb1b83989, 0xb1b03181, 0x939c1f8f, + 0x525c1e4e, 0xf1f839c9, 0xe2e426c6, 0xb2b03282, 0x31303101, 0xe2e82aca, + 0x616c2d4d, 0x535c1f4f, 0xe0e424c4, 0xf0f030c0, 0xc1cc0dcd, 0x80880888, + 0x12141606, 0x32383a0a, 0x50581848, 0xd0d414c4, 0x62602242, 0x21282909, + 0x03040707, 0x33303303, 0xe0e828c8, 0x13181b0b, 0x01040505, 0x71783949, + 0x90901080, 0x62682a4a, 0x22282a0a, 0x92981a8a, +}; + +static const u32 SS3[256] = { + 0x08303838, 0xc8e0e828, 0x0d212c2d, 0x86a2a426, 0xcfc3cc0f, 0xced2dc1e, + 0x83b3b033, 0x88b0b838, 0x8fa3ac2f, 0x40606020, 0x45515415, 0xc7c3c407, + 0x44404404, 0x4f636c2f, 0x4b63682b, 0x4b53581b, 0xc3c3c003, 0x42626022, + 0x03333033, 0x85b1b435, 0x09212829, 0x80a0a020, 0xc2e2e022, 0x87a3a427, + 0xc3d3d013, 0x81919011, 0x01111011, 0x06020406, 0x0c101c1c, 0x8cb0bc3c, + 0x06323436, 0x4b43480b, 0xcfe3ec2f, 0x88808808, 0x4c606c2c, 0x88a0a828, + 0x07131417, 0xc4c0c404, 0x06121416, 0xc4f0f434, 0xc2c2c002, 0x45414405, + 0xc1e1e021, 0xc6d2d416, 0x0f333c3f, 0x0d313c3d, 0x8e828c0e, 0x88909818, + 0x08202828, 0x4e424c0e, 0xc6f2f436, 0x0e323c3e, 0x85a1a425, 0xc9f1f839, + 0x0d010c0d, 0xcfd3dc1f, 0xc8d0d818, 0x0b23282b, 0x46626426, 0x4a72783a, + 0x07232427, 0x0f232c2f, 0xc1f1f031, 0x42727032, 0x42424002, 0xc4d0d414, + 0x41414001, 0xc0c0c000, 0x43737033, 0x47636427, 0x8ca0ac2c, 0x8b83880b, + 0xc7f3f437, 0x8da1ac2d, 0x80808000, 0x0f131c1f, 0xcac2c80a, 0x0c202c2c, + 0x8aa2a82a, 0x04303434, 0xc2d2d012, 0x0b03080b, 0xcee2ec2e, 0xc9e1e829, + 0x4d515c1d, 0x84909414, 0x08101818, 0xc8f0f838, 0x47535417, 0x8ea2ac2e, + 0x08000808, 0xc5c1c405, 0x03131013, 0xcdc1cc0d, 0x86828406, 0x89b1b839, + 0xcff3fc3f, 0x4d717c3d, 0xc1c1c001, 0x01313031, 0xc5f1f435, 0x8a82880a, + 0x4a62682a, 0x81b1b031, 0xc1d1d011, 0x00202020, 0xc7d3d417, 0x02020002, + 0x02222022, 0x04000404, 0x48606828, 0x41717031, 0x07030407, 0xcbd3d81b, + 0x8d919c1d, 0x89919819, 0x41616021, 0x8eb2bc3e, 0xc6e2e426, 0x49515819, + 0xcdd1dc1d, 0x41515011, 0x80909010, 0xccd0dc1c, 0x8a92981a, 0x83a3a023, + 0x8ba3a82b, 0xc0d0d010, 0x81818001, 0x0f030c0f, 0x47434407, 0x0a12181a, + 0xc3e3e023, 0xcce0ec2c, 0x8d818c0d, 0x8fb3bc3f, 0x86929416, 0x4b73783b, + 0x4c505c1c, 0x82a2a022, 0x81a1a021, 0x43636023, 0x03232023, 0x4d414c0d, + 0xc8c0c808, 0x8e929c1e, 0x8c909c1c, 0x0a32383a, 0x0c000c0c, 0x0e222c2e, + 0x8ab2b83a, 0x4e626c2e, 0x8f939c1f, 0x4a52581a, 0xc2f2f032, 0x82929012, + 0xc3f3f033, 0x49414809, 0x48707838, 0xccc0cc0c, 0x05111415, 0xcbf3f83b, + 0x40707030, 0x45717435, 0x4f737c3f, 0x05313435, 0x00101010, 0x03030003, + 0x44606424, 0x4d616c2d, 0xc6c2c406, 0x44707434, 0xc5d1d415, 0x84b0b434, + 0xcae2e82a, 0x09010809, 0x46727436, 0x09111819, 0xcef2fc3e, 0x40404000, + 0x02121012, 0xc0e0e020, 0x8db1bc3d, 0x05010405, 0xcaf2f83a, 0x01010001, + 0xc0f0f030, 0x0a22282a, 0x4e525c1e, 0x89a1a829, 0x46525416, 0x43434003, + 0x85818405, 0x04101414, 0x89818809, 0x8b93981b, 0x80b0b030, 0xc5e1e425, + 0x48404808, 0x49717839, 0x87939417, 0xccf0fc3c, 0x0e121c1e, 0x82828002, + 0x01212021, 0x8c808c0c, 0x0b13181b, 0x4f535c1f, 0x47737437, 0x44505414, + 0x82b2b032, 0x0d111c1d, 0x05212425, 0x4f434c0f, 0x00000000, 0x46424406, + 0xcde1ec2d, 0x48505818, 0x42525012, 0xcbe3e82b, 0x4e727c3e, 0xcad2d81a, + 0xc9c1c809, 0xcdf1fc3d, 0x00303030, 0x85919415, 0x45616425, 0x0c303c3c, + 0x86b2b436, 0xc4e0e424, 0x8bb3b83b, 0x4c707c3c, 0x0e020c0e, 0x40505010, + 0x09313839, 0x06222426, 0x02323032, 0x84808404, 0x49616829, 0x83939013, + 0x07333437, 0xc7e3e427, 0x04202424, 0x84a0a424, 0xcbc3c80b, 0x43535013, + 0x0a02080a, 0x87838407, 0xc9d1d819, 0x4c404c0c, 0x83838003, 0x8f838c0f, + 0xcec2cc0e, 0x0b33383b, 0x4a42480a, 0x87b3b437, +}; + +static const u32 KC[NUMKC] = { + 0x9e3779b9, 0x3c6ef373, 0x78dde6e6, 0xf1bbcdcc, + 0xe3779b99, 0xc6ef3733, 0x8dde6e67, 0x1bbcdccf, + 0x3779b99e, 0x6ef3733c, 0xdde6e678, 0xbbcdccf1, + 0x779b99e3, 0xef3733c6, 0xde6e678d, 0xbcdccf1b, +}; + + + +/* Perform the key setup. + */ +static gcry_err_code_t +do_setkey (SEED_context *ctx, const byte *key, const unsigned keylen) +{ + static int initialized = 0; + static const char *selftest_failed=0; + u32 x1, x2, x3, x4; + union wordbuf t0, t1; + u32 *keyout = ctx->keyschedule; + int i; + + if (!initialized) + { + initialized = 1; + selftest_failed = selftest (); + if( selftest_failed ) + log_error ("%s\n", selftest_failed ); + } + if (selftest_failed) + return GPG_ERR_SELFTEST_FAILED; + + if (keylen != 16) + return GPG_ERR_INV_KEYLEN; + + x1 = GETU32 (key); + x2 = GETU32 (key+4); + x3 = GETU32 (key+8); + x4 = GETU32 (key+12); + + for (i = 0; i < NUMKC; i++) + { + t0.w = x1 + x3 - KC[i]; + t1.w = x2 + KC[i] - x4; + *(keyout++) = SS0[t0.b0] ^ SS1[t0.b1] ^ SS2[t0.b2] ^ SS3[t0.b3]; + *(keyout++) = SS0[t1.b0] ^ SS1[t1.b1] ^ SS2[t1.b2] ^ SS3[t1.b3]; + + if (i % 2 == 0) + { + t0.w = x1; + x1 = (x1>>8) ^ (x2<<24); + x2 = (x2>>8) ^ (t0.w<<24); + } + else + { + t0.w = x3; + x3 = (x3<<8) ^ (x4>>24); + x4 = (x4<<8) ^ (t0.w>>24); + } + } + + return 0; +} + +static gcry_err_code_t +seed_setkey (void *context, const byte *key, const unsigned keylen) +{ + SEED_context *ctx = context; + + int rc = do_setkey (ctx, key, keylen); + _gcry_burn_stack (4*6 + sizeof(void*)*2 + sizeof(int)*2); + return rc; +} + + + +#define OP(X1, X2, X3, X4, rbase) \ + t0.w = X3 ^ ctx->keyschedule[rbase]; \ + t1.w = X4 ^ ctx->keyschedule[rbase+1]; \ + t1.w ^= t0.w; \ + t1.w = SS0[t1.b0] ^ SS1[t1.b1] ^ SS2[t1.b2] ^ SS3[t1.b3]; \ + t0.w += t1.w; \ + t0.w = SS0[t0.b0] ^ SS1[t0.b1] ^ SS2[t0.b2] ^ SS3[t0.b3]; \ + t1.w += t0.w; \ + t1.w = SS0[t1.b0] ^ SS1[t1.b1] ^ SS2[t1.b2] ^ SS3[t1.b3]; \ + t0.w += t1.w; \ + X1 ^= t0.w; \ + X2 ^= t1.w; + +/* Encrypt one block. inbuf and outbuf may be the same. */ +static void +do_encrypt (const SEED_context *ctx, byte *outbuf, const byte *inbuf) +{ + u32 x1, x2, x3, x4; + union wordbuf t0, t1; + + x1 = GETU32 (inbuf); + x2 = GETU32 (inbuf+4); + x3 = GETU32 (inbuf+8); + x4 = GETU32 (inbuf+12); + + OP (x1, x2, x3, x4, 0); + OP (x3, x4, x1, x2, 2); + OP (x1, x2, x3, x4, 4); + OP (x3, x4, x1, x2, 6); + OP (x1, x2, x3, x4, 8); + OP (x3, x4, x1, x2, 10); + OP (x1, x2, x3, x4, 12); + OP (x3, x4, x1, x2, 14); + OP (x1, x2, x3, x4, 16); + OP (x3, x4, x1, x2, 18); + OP (x1, x2, x3, x4, 20); + OP (x3, x4, x1, x2, 22); + OP (x1, x2, x3, x4, 24); + OP (x3, x4, x1, x2, 26); + OP (x1, x2, x3, x4, 28); + OP (x3, x4, x1, x2, 30); + + PUTU32 (outbuf, x3); + PUTU32 (outbuf+4, x4); + PUTU32 (outbuf+8, x1); + PUTU32 (outbuf+12, x2); +} + +static void +seed_encrypt (void *context, byte *outbuf, const byte *inbuf) +{ + SEED_context *ctx = context; + + do_encrypt (ctx, outbuf, inbuf); + _gcry_burn_stack (4*6); +} + + + +/* Decrypt one block. inbuf and outbuf may be the same. */ +static void +do_decrypt (SEED_context *ctx, byte *outbuf, const byte *inbuf) +{ + u32 x1, x2, x3, x4; + union wordbuf t0, t1; + + x1 = GETU32 (inbuf); + x2 = GETU32 (inbuf+4); + x3 = GETU32 (inbuf+8); + x4 = GETU32 (inbuf+12); + + OP (x1, x2, x3, x4, 30); + OP (x3, x4, x1, x2, 28); + OP (x1, x2, x3, x4, 26); + OP (x3, x4, x1, x2, 24); + OP (x1, x2, x3, x4, 22); + OP (x3, x4, x1, x2, 20); + OP (x1, x2, x3, x4, 18); + OP (x3, x4, x1, x2, 16); + OP (x1, x2, x3, x4, 14); + OP (x3, x4, x1, x2, 12); + OP (x1, x2, x3, x4, 10); + OP (x3, x4, x1, x2, 8); + OP (x1, x2, x3, x4, 6); + OP (x3, x4, x1, x2, 4); + OP (x1, x2, x3, x4, 2); + OP (x3, x4, x1, x2, 0); + + PUTU32 (outbuf, x3); + PUTU32 (outbuf+4, x4); + PUTU32 (outbuf+8, x1); + PUTU32 (outbuf+12, x2); +} + +static void +seed_decrypt (void *context, byte *outbuf, const byte *inbuf) +{ + SEED_context *ctx = context; + + do_decrypt (ctx, outbuf, inbuf); + _gcry_burn_stack (4*6); +} + + +/* Test a single encryption and decryption with each key size. */ + + + +static gcry_cipher_oid_spec_t seed_oids[] = + { + { "1.2.410.200004.1.3", GCRY_CIPHER_MODE_ECB }, + { "1.2.410.200004.1.4", GCRY_CIPHER_MODE_CBC }, + { "1.2.410.200004.1.5", GCRY_CIPHER_MODE_CFB }, + { "1.2.410.200004.1.6", GCRY_CIPHER_MODE_OFB }, + { NULL } + }; + +gcry_cipher_spec_t _gcry_cipher_spec_seed = + { + "SEED", NULL, seed_oids, 16, 128, sizeof (SEED_context), + seed_setkey, seed_encrypt, seed_decrypt, + }; + + +GRUB_MOD_INIT(gcry_seed) +{ + grub_cipher_register (&_gcry_cipher_spec_seed); +} + +GRUB_MOD_FINI(gcry_seed) +{ + grub_cipher_unregister (&_gcry_cipher_spec_seed); +} --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/serpent.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/serpent.c @@ -0,0 +1,992 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* serpent.c - Implementation of the Serpent encryption algorithm. + * Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser general Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + */ + + + +#include "types.h" +#include "g10lib.h" +#include "cipher.h" +#include "bithelp.h" + +/* Number of rounds per Serpent encrypt/decrypt operation. */ +#define ROUNDS 32 + +/* Magic number, used during generating of the subkeys. */ +#define PHI 0x9E3779B9 + +/* Serpent works on 128 bit blocks. */ +typedef u32 serpent_block_t[4]; + +/* Serpent key, provided by the user. If the original key is shorter + than 256 bits, it is padded. */ +typedef u32 serpent_key_t[8]; + +/* The key schedule consists of 33 128 bit subkeys. */ +typedef u32 serpent_subkeys_t[ROUNDS + 1][4]; + +/* A Serpent context. */ +typedef struct serpent_context +{ + serpent_subkeys_t keys; /* Generated subkeys. */ +} serpent_context_t; + + +/* A prototype. */ +static const char *serpent_test (void); + + +#define byte_swap_32(x) \ + (0 \ + | (((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) \ + | (((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24)) + +/* These are the S-Boxes of Serpent. They are copied from Serpents + reference implementation (the optimized one, contained in + `floppy2') and are therefore: + + Copyright (C) 1998 Ross Anderson, Eli Biham, Lars Knudsen. + + To quote the Serpent homepage + (http://www.cl.cam.ac.uk/~rja14/serpent.html): + + "Serpent is now completely in the public domain, and we impose no + restrictions on its use. This was announced on the 21st August at + the First AES Candidate Conference. The optimised implementations + in the submission package are now under the GNU PUBLIC LICENSE + (GPL), although some comments in the code still say otherwise. You + are welcome to use Serpent for any application." */ + +#define SBOX0(a, b, c, d, w, x, y, z) \ + { \ + u32 t02, t03, t05, t06, t07, t08, t09; \ + u32 t11, t12, t13, t14, t15, t17, t01; \ + t01 = b ^ c ; \ + t02 = a | d ; \ + t03 = a ^ b ; \ + z = t02 ^ t01; \ + t05 = c | z ; \ + t06 = a ^ d ; \ + t07 = b | c ; \ + t08 = d & t05; \ + t09 = t03 & t07; \ + y = t09 ^ t08; \ + t11 = t09 & y ; \ + t12 = c ^ d ; \ + t13 = t07 ^ t11; \ + t14 = b & t06; \ + t15 = t06 ^ t13; \ + w = ~ t15; \ + t17 = w ^ t14; \ + x = t12 ^ t17; \ + } + +#define SBOX0_INVERSE(a, b, c, d, w, x, y, z) \ + { \ + u32 t02, t03, t04, t05, t06, t08, t09, t10; \ + u32 t12, t13, t14, t15, t17, t18, t01; \ + t01 = c ^ d ; \ + t02 = a | b ; \ + t03 = b | c ; \ + t04 = c & t01; \ + t05 = t02 ^ t01; \ + t06 = a | t04; \ + y = ~ t05; \ + t08 = b ^ d ; \ + t09 = t03 & t08; \ + t10 = d | y ; \ + x = t09 ^ t06; \ + t12 = a | t05; \ + t13 = x ^ t12; \ + t14 = t03 ^ t10; \ + t15 = a ^ c ; \ + z = t14 ^ t13; \ + t17 = t05 & t13; \ + t18 = t14 | t17; \ + w = t15 ^ t18; \ + } + +#define SBOX1(a, b, c, d, w, x, y, z) \ + { \ + u32 t02, t03, t04, t05, t06, t07, t08; \ + u32 t10, t11, t12, t13, t16, t17, t01; \ + t01 = a | d ; \ + t02 = c ^ d ; \ + t03 = ~ b ; \ + t04 = a ^ c ; \ + t05 = a | t03; \ + t06 = d & t04; \ + t07 = t01 & t02; \ + t08 = b | t06; \ + y = t02 ^ t05; \ + t10 = t07 ^ t08; \ + t11 = t01 ^ t10; \ + t12 = y ^ t11; \ + t13 = b & d ; \ + z = ~ t10; \ + x = t13 ^ t12; \ + t16 = t10 | x ; \ + t17 = t05 & t16; \ + w = c ^ t17; \ + } + +#define SBOX1_INVERSE(a, b, c, d, w, x, y, z) \ + { \ + u32 t02, t03, t04, t05, t06, t07, t08; \ + u32 t09, t10, t11, t14, t15, t17, t01; \ + t01 = a ^ b ; \ + t02 = b | d ; \ + t03 = a & c ; \ + t04 = c ^ t02; \ + t05 = a | t04; \ + t06 = t01 & t05; \ + t07 = d | t03; \ + t08 = b ^ t06; \ + t09 = t07 ^ t06; \ + t10 = t04 | t03; \ + t11 = d & t08; \ + y = ~ t09; \ + x = t10 ^ t11; \ + t14 = a | y ; \ + t15 = t06 ^ x ; \ + z = t01 ^ t04; \ + t17 = c ^ t15; \ + w = t14 ^ t17; \ + } + +#define SBOX2(a, b, c, d, w, x, y, z) \ + { \ + u32 t02, t03, t05, t06, t07, t08; \ + u32 t09, t10, t12, t13, t14, t01; \ + t01 = a | c ; \ + t02 = a ^ b ; \ + t03 = d ^ t01; \ + w = t02 ^ t03; \ + t05 = c ^ w ; \ + t06 = b ^ t05; \ + t07 = b | t05; \ + t08 = t01 & t06; \ + t09 = t03 ^ t07; \ + t10 = t02 | t09; \ + x = t10 ^ t08; \ + t12 = a | d ; \ + t13 = t09 ^ x ; \ + t14 = b ^ t13; \ + z = ~ t09; \ + y = t12 ^ t14; \ + } + +#define SBOX2_INVERSE(a, b, c, d, w, x, y, z) \ + { \ + u32 t02, t03, t04, t06, t07, t08, t09; \ + u32 t10, t11, t12, t15, t16, t17, t01; \ + t01 = a ^ d ; \ + t02 = c ^ d ; \ + t03 = a & c ; \ + t04 = b | t02; \ + w = t01 ^ t04; \ + t06 = a | c ; \ + t07 = d | w ; \ + t08 = ~ d ; \ + t09 = b & t06; \ + t10 = t08 | t03; \ + t11 = b & t07; \ + t12 = t06 & t02; \ + z = t09 ^ t10; \ + x = t12 ^ t11; \ + t15 = c & z ; \ + t16 = w ^ x ; \ + t17 = t10 ^ t15; \ + y = t16 ^ t17; \ + } + +#define SBOX3(a, b, c, d, w, x, y, z) \ + { \ + u32 t02, t03, t04, t05, t06, t07, t08; \ + u32 t09, t10, t11, t13, t14, t15, t01; \ + t01 = a ^ c ; \ + t02 = a | d ; \ + t03 = a & d ; \ + t04 = t01 & t02; \ + t05 = b | t03; \ + t06 = a & b ; \ + t07 = d ^ t04; \ + t08 = c | t06; \ + t09 = b ^ t07; \ + t10 = d & t05; \ + t11 = t02 ^ t10; \ + z = t08 ^ t09; \ + t13 = d | z ; \ + t14 = a | t07; \ + t15 = b & t13; \ + y = t08 ^ t11; \ + w = t14 ^ t15; \ + x = t05 ^ t04; \ + } + +#define SBOX3_INVERSE(a, b, c, d, w, x, y, z) \ + { \ + u32 t02, t03, t04, t05, t06, t07, t09; \ + u32 t11, t12, t13, t14, t16, t01; \ + t01 = c | d ; \ + t02 = a | d ; \ + t03 = c ^ t02; \ + t04 = b ^ t02; \ + t05 = a ^ d ; \ + t06 = t04 & t03; \ + t07 = b & t01; \ + y = t05 ^ t06; \ + t09 = a ^ t03; \ + w = t07 ^ t03; \ + t11 = w | t05; \ + t12 = t09 & t11; \ + t13 = a & y ; \ + t14 = t01 ^ t05; \ + x = b ^ t12; \ + t16 = b | t13; \ + z = t14 ^ t16; \ + } + +#define SBOX4(a, b, c, d, w, x, y, z) \ + { \ + u32 t02, t03, t04, t05, t06, t08, t09; \ + u32 t10, t11, t12, t13, t14, t15, t16, t01; \ + t01 = a | b ; \ + t02 = b | c ; \ + t03 = a ^ t02; \ + t04 = b ^ d ; \ + t05 = d | t03; \ + t06 = d & t01; \ + z = t03 ^ t06; \ + t08 = z & t04; \ + t09 = t04 & t05; \ + t10 = c ^ t06; \ + t11 = b & c ; \ + t12 = t04 ^ t08; \ + t13 = t11 | t03; \ + t14 = t10 ^ t09; \ + t15 = a & t05; \ + t16 = t11 | t12; \ + y = t13 ^ t08; \ + x = t15 ^ t16; \ + w = ~ t14; \ + } + +#define SBOX4_INVERSE(a, b, c, d, w, x, y, z) \ + { \ + u32 t02, t03, t04, t05, t06, t07, t09; \ + u32 t10, t11, t12, t13, t15, t01; \ + t01 = b | d ; \ + t02 = c | d ; \ + t03 = a & t01; \ + t04 = b ^ t02; \ + t05 = c ^ d ; \ + t06 = ~ t03; \ + t07 = a & t04; \ + x = t05 ^ t07; \ + t09 = x | t06; \ + t10 = a ^ t07; \ + t11 = t01 ^ t09; \ + t12 = d ^ t04; \ + t13 = c | t10; \ + z = t03 ^ t12; \ + t15 = a ^ t04; \ + y = t11 ^ t13; \ + w = t15 ^ t09; \ + } + +#define SBOX5(a, b, c, d, w, x, y, z) \ + { \ + u32 t02, t03, t04, t05, t07, t08, t09; \ + u32 t10, t11, t12, t13, t14, t01; \ + t01 = b ^ d ; \ + t02 = b | d ; \ + t03 = a & t01; \ + t04 = c ^ t02; \ + t05 = t03 ^ t04; \ + w = ~ t05; \ + t07 = a ^ t01; \ + t08 = d | w ; \ + t09 = b | t05; \ + t10 = d ^ t08; \ + t11 = b | t07; \ + t12 = t03 | w ; \ + t13 = t07 | t10; \ + t14 = t01 ^ t11; \ + y = t09 ^ t13; \ + x = t07 ^ t08; \ + z = t12 ^ t14; \ + } + +#define SBOX5_INVERSE(a, b, c, d, w, x, y, z) \ + { \ + u32 t02, t03, t04, t05, t07, t08, t09; \ + u32 t10, t12, t13, t15, t16, t01; \ + t01 = a & d ; \ + t02 = c ^ t01; \ + t03 = a ^ d ; \ + t04 = b & t02; \ + t05 = a & c ; \ + w = t03 ^ t04; \ + t07 = a & w ; \ + t08 = t01 ^ w ; \ + t09 = b | t05; \ + t10 = ~ b ; \ + x = t08 ^ t09; \ + t12 = t10 | t07; \ + t13 = w | x ; \ + z = t02 ^ t12; \ + t15 = t02 ^ t13; \ + t16 = b ^ d ; \ + y = t16 ^ t15; \ + } + +#define SBOX6(a, b, c, d, w, x, y, z) \ + { \ + u32 t02, t03, t04, t05, t07, t08, t09, t10; \ + u32 t11, t12, t13, t15, t17, t18, t01; \ + t01 = a & d ; \ + t02 = b ^ c ; \ + t03 = a ^ d ; \ + t04 = t01 ^ t02; \ + t05 = b | c ; \ + x = ~ t04; \ + t07 = t03 & t05; \ + t08 = b & x ; \ + t09 = a | c ; \ + t10 = t07 ^ t08; \ + t11 = b | d ; \ + t12 = c ^ t11; \ + t13 = t09 ^ t10; \ + y = ~ t13; \ + t15 = x & t03; \ + z = t12 ^ t07; \ + t17 = a ^ b ; \ + t18 = y ^ t15; \ + w = t17 ^ t18; \ + } + +#define SBOX6_INVERSE(a, b, c, d, w, x, y, z) \ + { \ + u32 t02, t03, t04, t05, t06, t07, t08, t09; \ + u32 t12, t13, t14, t15, t16, t17, t01; \ + t01 = a ^ c ; \ + t02 = ~ c ; \ + t03 = b & t01; \ + t04 = b | t02; \ + t05 = d | t03; \ + t06 = b ^ d ; \ + t07 = a & t04; \ + t08 = a | t02; \ + t09 = t07 ^ t05; \ + x = t06 ^ t08; \ + w = ~ t09; \ + t12 = b & w ; \ + t13 = t01 & t05; \ + t14 = t01 ^ t12; \ + t15 = t07 ^ t13; \ + t16 = d | t02; \ + t17 = a ^ x ; \ + z = t17 ^ t15; \ + y = t16 ^ t14; \ + } + +#define SBOX7(a, b, c, d, w, x, y, z) \ + { \ + u32 t02, t03, t04, t05, t06, t08, t09, t10; \ + u32 t11, t13, t14, t15, t16, t17, t01; \ + t01 = a & c ; \ + t02 = ~ d ; \ + t03 = a & t02; \ + t04 = b | t01; \ + t05 = a & b ; \ + t06 = c ^ t04; \ + z = t03 ^ t06; \ + t08 = c | z ; \ + t09 = d | t05; \ + t10 = a ^ t08; \ + t11 = t04 & z ; \ + x = t09 ^ t10; \ + t13 = b ^ x ; \ + t14 = t01 ^ x ; \ + t15 = c ^ t05; \ + t16 = t11 | t13; \ + t17 = t02 | t14; \ + w = t15 ^ t17; \ + y = a ^ t16; \ + } + +#define SBOX7_INVERSE(a, b, c, d, w, x, y, z) \ + { \ + u32 t02, t03, t04, t06, t07, t08, t09; \ + u32 t10, t11, t13, t14, t15, t16, t01; \ + t01 = a & b ; \ + t02 = a | b ; \ + t03 = c | t01; \ + t04 = d & t02; \ + z = t03 ^ t04; \ + t06 = b ^ t04; \ + t07 = d ^ z ; \ + t08 = ~ t07; \ + t09 = t06 | t08; \ + t10 = b ^ d ; \ + t11 = a | d ; \ + x = a ^ t09; \ + t13 = c ^ t06; \ + t14 = c & t11; \ + t15 = d | x ; \ + t16 = t01 | t10; \ + w = t13 ^ t15; \ + y = t14 ^ t16; \ + } + +/* XOR BLOCK1 into BLOCK0. */ +#define BLOCK_XOR(block0, block1) \ + { \ + block0[0] ^= block1[0]; \ + block0[1] ^= block1[1]; \ + block0[2] ^= block1[2]; \ + block0[3] ^= block1[3]; \ + } + +/* Copy BLOCK_SRC to BLOCK_DST. */ +#define BLOCK_COPY(block_dst, block_src) \ + { \ + block_dst[0] = block_src[0]; \ + block_dst[1] = block_src[1]; \ + block_dst[2] = block_src[2]; \ + block_dst[3] = block_src[3]; \ + } + +/* Apply SBOX number WHICH to to the block found in ARRAY0 at index + INDEX, writing the output to the block found in ARRAY1 at index + INDEX. */ +#define SBOX(which, array0, array1, index) \ + SBOX##which (array0[index + 0], array0[index + 1], \ + array0[index + 2], array0[index + 3], \ + array1[index + 0], array1[index + 1], \ + array1[index + 2], array1[index + 3]); + +/* Apply inverse SBOX number WHICH to to the block found in ARRAY0 at + index INDEX, writing the output to the block found in ARRAY1 at + index INDEX. */ +#define SBOX_INVERSE(which, array0, array1, index) \ + SBOX##which##_INVERSE (array0[index + 0], array0[index + 1], \ + array0[index + 2], array0[index + 3], \ + array1[index + 0], array1[index + 1], \ + array1[index + 2], array1[index + 3]); + +/* Apply the linear transformation to BLOCK. */ +#define LINEAR_TRANSFORMATION(block) \ + { \ + block[0] = rol (block[0], 13); \ + block[2] = rol (block[2], 3); \ + block[1] = block[1] ^ block[0] ^ block[2]; \ + block[3] = block[3] ^ block[2] ^ (block[0] << 3); \ + block[1] = rol (block[1], 1); \ + block[3] = rol (block[3], 7); \ + block[0] = block[0] ^ block[1] ^ block[3]; \ + block[2] = block[2] ^ block[3] ^ (block[1] << 7); \ + block[0] = rol (block[0], 5); \ + block[2] = rol (block[2], 22); \ + } + +/* Apply the inverse linear transformation to BLOCK. */ +#define LINEAR_TRANSFORMATION_INVERSE(block) \ + { \ + block[2] = ror (block[2], 22); \ + block[0] = ror (block[0] , 5); \ + block[2] = block[2] ^ block[3] ^ (block[1] << 7); \ + block[0] = block[0] ^ block[1] ^ block[3]; \ + block[3] = ror (block[3], 7); \ + block[1] = ror (block[1], 1); \ + block[3] = block[3] ^ block[2] ^ (block[0] << 3); \ + block[1] = block[1] ^ block[0] ^ block[2]; \ + block[2] = ror (block[2], 3); \ + block[0] = ror (block[0], 13); \ + } + +/* Apply a Serpent round to BLOCK, using the SBOX number WHICH and the + subkeys contained in SUBKEYS. Use BLOCK_TMP as temporary storage. + This macro increments `round'. */ +#define ROUND(which, subkeys, block, block_tmp) \ + { \ + BLOCK_XOR (block, subkeys[round]); \ + round++; \ + SBOX (which, block, block_tmp, 0); \ + LINEAR_TRANSFORMATION (block_tmp); \ + BLOCK_COPY (block, block_tmp); \ + } + +/* Apply the last Serpent round to BLOCK, using the SBOX number WHICH + and the subkeys contained in SUBKEYS. Use BLOCK_TMP as temporary + storage. The result will be stored in BLOCK_TMP. This macro + increments `round'. */ +#define ROUND_LAST(which, subkeys, block, block_tmp) \ + { \ + BLOCK_XOR (block, subkeys[round]); \ + round++; \ + SBOX (which, block, block_tmp, 0); \ + BLOCK_XOR (block_tmp, subkeys[round]); \ + round++; \ + } + +/* Apply an inverse Serpent round to BLOCK, using the SBOX number + WHICH and the subkeys contained in SUBKEYS. Use BLOCK_TMP as + temporary storage. This macro increments `round'. */ +#define ROUND_INVERSE(which, subkey, block, block_tmp) \ + { \ + LINEAR_TRANSFORMATION_INVERSE (block); \ + SBOX_INVERSE (which, block, block_tmp, 0); \ + BLOCK_XOR (block_tmp, subkey[round]); \ + round--; \ + BLOCK_COPY (block, block_tmp); \ + } + +/* Apply the first Serpent round to BLOCK, using the SBOX number WHICH + and the subkeys contained in SUBKEYS. Use BLOCK_TMP as temporary + storage. The result will be stored in BLOCK_TMP. This macro + increments `round'. */ +#define ROUND_FIRST_INVERSE(which, subkeys, block, block_tmp) \ + { \ + BLOCK_XOR (block, subkeys[round]); \ + round--; \ + SBOX_INVERSE (which, block, block_tmp, 0); \ + BLOCK_XOR (block_tmp, subkeys[round]); \ + round--; \ + } + +/* Convert the user provided key KEY of KEY_LENGTH bytes into the + internally used format. */ +static void +serpent_key_prepare (const byte *key, unsigned int key_length, + serpent_key_t key_prepared) +{ + int i; + + /* Copy key. */ + for (i = 0; i < key_length / 4; i++) + { +#ifdef WORDS_BIGENDIAN + key_prepared[i] = byte_swap_32 (((u32 *) key)[i]); +#else + key_prepared[i] = ((u32 *) key)[i]; +#endif + } + + if (i < 8) + { + /* Key must be padded according to the Serpent + specification. */ + key_prepared[i] = 0x00000001; + + for (i++; i < 8; i++) + key_prepared[i] = 0; + } +} + +/* Derive the 33 subkeys from KEY and store them in SUBKEYS. */ +static void +serpent_subkeys_generate (serpent_key_t key, serpent_subkeys_t subkeys) +{ + u32 w_real[140]; /* The `prekey'. */ + u32 k[132]; + u32 *w = &w_real[8]; + int i, j; + + /* Initialize with key values. */ + for (i = 0; i < 8; i++) + w[i - 8] = key[i]; + + /* Expand to intermediate key using the affine recurrence. */ + for (i = 0; i < 132; i++) + w[i] = rol (w[i - 8] ^ w[i - 5] ^ w[i - 3] ^ w[i - 1] ^ PHI ^ i, 11); + + /* Calculate subkeys via S-Boxes, in bitslice mode. */ + SBOX (3, w, k, 0); + SBOX (2, w, k, 4); + SBOX (1, w, k, 8); + SBOX (0, w, k, 12); + SBOX (7, w, k, 16); + SBOX (6, w, k, 20); + SBOX (5, w, k, 24); + SBOX (4, w, k, 28); + SBOX (3, w, k, 32); + SBOX (2, w, k, 36); + SBOX (1, w, k, 40); + SBOX (0, w, k, 44); + SBOX (7, w, k, 48); + SBOX (6, w, k, 52); + SBOX (5, w, k, 56); + SBOX (4, w, k, 60); + SBOX (3, w, k, 64); + SBOX (2, w, k, 68); + SBOX (1, w, k, 72); + SBOX (0, w, k, 76); + SBOX (7, w, k, 80); + SBOX (6, w, k, 84); + SBOX (5, w, k, 88); + SBOX (4, w, k, 92); + SBOX (3, w, k, 96); + SBOX (2, w, k, 100); + SBOX (1, w, k, 104); + SBOX (0, w, k, 108); + SBOX (7, w, k, 112); + SBOX (6, w, k, 116); + SBOX (5, w, k, 120); + SBOX (4, w, k, 124); + SBOX (3, w, k, 128); + + /* Renumber subkeys. */ + for (i = 0; i < ROUNDS + 1; i++) + for (j = 0; j < 4; j++) + subkeys[i][j] = k[4 * i + j]; +} + +/* Initialize CONTEXT with the key KEY of KEY_LENGTH bits. */ +static void +serpent_setkey_internal (serpent_context_t *context, + const byte *key, unsigned int key_length) +{ + serpent_key_t key_prepared; + + serpent_key_prepare (key, key_length, key_prepared); + serpent_subkeys_generate (key_prepared, context->keys); + _gcry_burn_stack (272 * sizeof (u32)); +} + +/* Initialize CTX with the key KEY of KEY_LENGTH bytes. */ +static gcry_err_code_t +serpent_setkey (void *ctx, + const byte *key, unsigned int key_length) +{ + serpent_context_t *context = ctx; + static const char *serpent_test_ret; + static int serpent_init_done; + gcry_err_code_t ret = GPG_ERR_NO_ERROR; + + if (! serpent_init_done) + { + /* Execute a self-test the first time, Serpent is used. */ + serpent_test_ret = serpent_test (); + if (serpent_test_ret) + log_error ("Serpent test failure: %s\n", serpent_test_ret); + serpent_init_done = 1; + } + + if (serpent_test_ret) + ret = GPG_ERR_SELFTEST_FAILED; + else + { + serpent_setkey_internal (context, key, key_length); + _gcry_burn_stack (sizeof (serpent_key_t)); + } + + return ret; +} + +static void +serpent_encrypt_internal (serpent_context_t *context, + const serpent_block_t input, serpent_block_t output) +{ + serpent_block_t b, b_next; + int round = 0; + +#ifdef WORDS_BIGENDIAN + b[0] = byte_swap_32 (input[0]); + b[1] = byte_swap_32 (input[1]); + b[2] = byte_swap_32 (input[2]); + b[3] = byte_swap_32 (input[3]); +#else + b[0] = input[0]; + b[1] = input[1]; + b[2] = input[2]; + b[3] = input[3]; +#endif + + ROUND (0, context->keys, b, b_next); + ROUND (1, context->keys, b, b_next); + ROUND (2, context->keys, b, b_next); + ROUND (3, context->keys, b, b_next); + ROUND (4, context->keys, b, b_next); + ROUND (5, context->keys, b, b_next); + ROUND (6, context->keys, b, b_next); + ROUND (7, context->keys, b, b_next); + ROUND (0, context->keys, b, b_next); + ROUND (1, context->keys, b, b_next); + ROUND (2, context->keys, b, b_next); + ROUND (3, context->keys, b, b_next); + ROUND (4, context->keys, b, b_next); + ROUND (5, context->keys, b, b_next); + ROUND (6, context->keys, b, b_next); + ROUND (7, context->keys, b, b_next); + ROUND (0, context->keys, b, b_next); + ROUND (1, context->keys, b, b_next); + ROUND (2, context->keys, b, b_next); + ROUND (3, context->keys, b, b_next); + ROUND (4, context->keys, b, b_next); + ROUND (5, context->keys, b, b_next); + ROUND (6, context->keys, b, b_next); + ROUND (7, context->keys, b, b_next); + ROUND (0, context->keys, b, b_next); + ROUND (1, context->keys, b, b_next); + ROUND (2, context->keys, b, b_next); + ROUND (3, context->keys, b, b_next); + ROUND (4, context->keys, b, b_next); + ROUND (5, context->keys, b, b_next); + ROUND (6, context->keys, b, b_next); + + ROUND_LAST (7, context->keys, b, b_next); + +#ifdef WORDS_BIGENDIAN + output[0] = byte_swap_32 (b_next[0]); + output[1] = byte_swap_32 (b_next[1]); + output[2] = byte_swap_32 (b_next[2]); + output[3] = byte_swap_32 (b_next[3]); +#else + output[0] = b_next[0]; + output[1] = b_next[1]; + output[2] = b_next[2]; + output[3] = b_next[3]; +#endif +} + +static void +serpent_decrypt_internal (serpent_context_t *context, + const serpent_block_t input, serpent_block_t output) +{ + serpent_block_t b, b_next; + int round = ROUNDS; + +#ifdef WORDS_BIGENDIAN + b_next[0] = byte_swap_32 (input[0]); + b_next[1] = byte_swap_32 (input[1]); + b_next[2] = byte_swap_32 (input[2]); + b_next[3] = byte_swap_32 (input[3]); +#else + b_next[0] = input[0]; + b_next[1] = input[1]; + b_next[2] = input[2]; + b_next[3] = input[3]; +#endif + + ROUND_FIRST_INVERSE (7, context->keys, b_next, b); + + ROUND_INVERSE (6, context->keys, b, b_next); + ROUND_INVERSE (5, context->keys, b, b_next); + ROUND_INVERSE (4, context->keys, b, b_next); + ROUND_INVERSE (3, context->keys, b, b_next); + ROUND_INVERSE (2, context->keys, b, b_next); + ROUND_INVERSE (1, context->keys, b, b_next); + ROUND_INVERSE (0, context->keys, b, b_next); + ROUND_INVERSE (7, context->keys, b, b_next); + ROUND_INVERSE (6, context->keys, b, b_next); + ROUND_INVERSE (5, context->keys, b, b_next); + ROUND_INVERSE (4, context->keys, b, b_next); + ROUND_INVERSE (3, context->keys, b, b_next); + ROUND_INVERSE (2, context->keys, b, b_next); + ROUND_INVERSE (1, context->keys, b, b_next); + ROUND_INVERSE (0, context->keys, b, b_next); + ROUND_INVERSE (7, context->keys, b, b_next); + ROUND_INVERSE (6, context->keys, b, b_next); + ROUND_INVERSE (5, context->keys, b, b_next); + ROUND_INVERSE (4, context->keys, b, b_next); + ROUND_INVERSE (3, context->keys, b, b_next); + ROUND_INVERSE (2, context->keys, b, b_next); + ROUND_INVERSE (1, context->keys, b, b_next); + ROUND_INVERSE (0, context->keys, b, b_next); + ROUND_INVERSE (7, context->keys, b, b_next); + ROUND_INVERSE (6, context->keys, b, b_next); + ROUND_INVERSE (5, context->keys, b, b_next); + ROUND_INVERSE (4, context->keys, b, b_next); + ROUND_INVERSE (3, context->keys, b, b_next); + ROUND_INVERSE (2, context->keys, b, b_next); + ROUND_INVERSE (1, context->keys, b, b_next); + ROUND_INVERSE (0, context->keys, b, b_next); + + +#ifdef WORDS_BIGENDIAN + output[0] = byte_swap_32 (b_next[0]); + output[1] = byte_swap_32 (b_next[1]); + output[2] = byte_swap_32 (b_next[2]); + output[3] = byte_swap_32 (b_next[3]); +#else + output[0] = b_next[0]; + output[1] = b_next[1]; + output[2] = b_next[2]; + output[3] = b_next[3]; +#endif +} + +static void +serpent_encrypt (void *ctx, byte *buffer_out, const byte *buffer_in) +{ + serpent_context_t *context = ctx; + + serpent_encrypt_internal (context, + (const u32 *) buffer_in, (u32 *) buffer_out); + _gcry_burn_stack (2 * sizeof (serpent_block_t)); +} + +static void +serpent_decrypt (void *ctx, byte *buffer_out, const byte *buffer_in) +{ + serpent_context_t *context = ctx; + + serpent_decrypt_internal (context, + (const u32 *) buffer_in, + (u32 *) buffer_out); + _gcry_burn_stack (2 * sizeof (serpent_block_t)); +} + + + +/* Serpent test. */ + +static const char * +serpent_test (void) +{ + serpent_context_t context; + unsigned char scratch[16]; + unsigned int i; + + static struct test + { + int key_length; + unsigned char key[32]; + unsigned char text_plain[16]; + unsigned char text_cipher[16]; + } test_data[] = + { + { + 16, + "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", + "\xD2\x9D\x57\x6F\xCE\xA3\xA3\xA7\xED\x90\x99\xF2\x92\x73\xD7\x8E", + "\xB2\x28\x8B\x96\x8A\xE8\xB0\x86\x48\xD1\xCE\x96\x06\xFD\x99\x2D" + }, + { + 24, + "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00", + "\xD2\x9D\x57\x6F\xCE\xAB\xA3\xA7\xED\x98\x99\xF2\x92\x7B\xD7\x8E", + "\x13\x0E\x35\x3E\x10\x37\xC2\x24\x05\xE8\xFA\xEF\xB2\xC3\xC3\xE9" + }, + { + 32, + "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", + "\xD0\x95\x57\x6F\xCE\xA3\xE3\xA7\xED\x98\xD9\xF2\x90\x73\xD7\x8E", + "\xB9\x0E\xE5\x86\x2D\xE6\x91\x68\xF2\xBD\xD5\x12\x5B\x45\x47\x2B" + }, + { + 32, + "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", + "\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00", + "\x20\x61\xA4\x27\x82\xBD\x52\xEC\x69\x1E\xC3\x83\xB0\x3B\xA7\x7C" + }, + { + 0 + }, + }; + + for (i = 0; test_data[i].key_length; i++) + { + serpent_setkey_internal (&context, test_data[i].key, + test_data[i].key_length); + serpent_encrypt_internal (&context, + (const u32 *) test_data[i].text_plain, + (u32 *) scratch); + + if (memcmp (scratch, test_data[i].text_cipher, sizeof (serpent_block_t))) + switch (test_data[i].key_length) + { + case 16: + return "Serpent-128 test encryption failed."; + case 24: + return "Serpent-192 test encryption failed."; + case 32: + return "Serpent-256 test encryption failed."; + } + + serpent_decrypt_internal (&context, + (const u32 *) test_data[i].text_cipher, + (u32 *) scratch); + if (memcmp (scratch, test_data[i].text_plain, sizeof (serpent_block_t))) + switch (test_data[i].key_length) + { + case 16: + return "Serpent-128 test decryption failed."; + case 24: + return "Serpent-192 test decryption failed."; + case 32: + return "Serpent-256 test decryption failed."; + } + } + + return NULL; +} + + + +/* "SERPENT" is an alias for "SERPENT128". */ +static const char *cipher_spec_serpent128_aliases[] = + { + "SERPENT", + NULL + }; + +gcry_cipher_spec_t _gcry_cipher_spec_serpent128 = + { + "SERPENT128", cipher_spec_serpent128_aliases, NULL, 16, 128, + sizeof (serpent_context_t), + serpent_setkey, serpent_encrypt, serpent_decrypt + }; + +gcry_cipher_spec_t _gcry_cipher_spec_serpent192 = + { + "SERPENT192", NULL, NULL, 16, 192, + sizeof (serpent_context_t), + serpent_setkey, serpent_encrypt, serpent_decrypt + }; + +gcry_cipher_spec_t _gcry_cipher_spec_serpent256 = + { + "SERPENT256", NULL, NULL, 16, 256, + sizeof (serpent_context_t), + serpent_setkey, serpent_encrypt, serpent_decrypt + }; + + +GRUB_MOD_INIT(gcry_serpent) +{ + grub_cipher_register (&_gcry_cipher_spec_serpent128); + grub_cipher_register (&_gcry_cipher_spec_serpent192); + grub_cipher_register (&_gcry_cipher_spec_serpent256); +} + +GRUB_MOD_FINI(gcry_serpent) +{ + grub_cipher_unregister (&_gcry_cipher_spec_serpent128); + grub_cipher_unregister (&_gcry_cipher_spec_serpent192); + grub_cipher_unregister (&_gcry_cipher_spec_serpent256); +} --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/cast5.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/cast5.c @@ -0,0 +1,584 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* cast5.c - CAST5 cipher (RFC2144) + * Copyright (C) 1998, 2001, 2002, 2003 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser general Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +/* Test vectors: + * + * 128-bit key = 01 23 45 67 12 34 56 78 23 45 67 89 34 56 78 9A + * plaintext = 01 23 45 67 89 AB CD EF + * ciphertext = 23 8B 4F E5 84 7E 44 B2 + * + * 80-bit key = 01 23 45 67 12 34 56 78 23 45 + * = 01 23 45 67 12 34 56 78 23 45 00 00 00 00 00 00 + * plaintext = 01 23 45 67 89 AB CD EF + * ciphertext = EB 6A 71 1A 2C 02 27 1B + * + * 40-bit key = 01 23 45 67 12 + * = 01 23 45 67 12 00 00 00 00 00 00 00 00 00 00 00 + * plaintext = 01 23 45 67 89 AB CD EF + * ciphertext = 7A C8 16 D1 6E 9B 30 2E + */ + +#include "g10lib.h" +#include "types.h" +#include "cipher.h" + +#define CAST5_BLOCKSIZE 8 + +typedef struct { + u32 Km[16]; + byte Kr[16]; +} CAST5_context; + +static gcry_err_code_t cast_setkey (void *c, const byte *key, unsigned keylen); +static void encrypt_block (void *c, byte *outbuf, const byte *inbuf); +static void decrypt_block (void *c, byte *outbuf, const byte *inbuf); + + + + +static const u32 s1[256] = { +0x30fb40d4, 0x9fa0ff0b, 0x6beccd2f, 0x3f258c7a, 0x1e213f2f, 0x9c004dd3, 0x6003e540, 0xcf9fc949, +0xbfd4af27, 0x88bbbdb5, 0xe2034090, 0x98d09675, 0x6e63a0e0, 0x15c361d2, 0xc2e7661d, 0x22d4ff8e, +0x28683b6f, 0xc07fd059, 0xff2379c8, 0x775f50e2, 0x43c340d3, 0xdf2f8656, 0x887ca41a, 0xa2d2bd2d, +0xa1c9e0d6, 0x346c4819, 0x61b76d87, 0x22540f2f, 0x2abe32e1, 0xaa54166b, 0x22568e3a, 0xa2d341d0, +0x66db40c8, 0xa784392f, 0x004dff2f, 0x2db9d2de, 0x97943fac, 0x4a97c1d8, 0x527644b7, 0xb5f437a7, +0xb82cbaef, 0xd751d159, 0x6ff7f0ed, 0x5a097a1f, 0x827b68d0, 0x90ecf52e, 0x22b0c054, 0xbc8e5935, +0x4b6d2f7f, 0x50bb64a2, 0xd2664910, 0xbee5812d, 0xb7332290, 0xe93b159f, 0xb48ee411, 0x4bff345d, +0xfd45c240, 0xad31973f, 0xc4f6d02e, 0x55fc8165, 0xd5b1caad, 0xa1ac2dae, 0xa2d4b76d, 0xc19b0c50, +0x882240f2, 0x0c6e4f38, 0xa4e4bfd7, 0x4f5ba272, 0x564c1d2f, 0xc59c5319, 0xb949e354, 0xb04669fe, +0xb1b6ab8a, 0xc71358dd, 0x6385c545, 0x110f935d, 0x57538ad5, 0x6a390493, 0xe63d37e0, 0x2a54f6b3, +0x3a787d5f, 0x6276a0b5, 0x19a6fcdf, 0x7a42206a, 0x29f9d4d5, 0xf61b1891, 0xbb72275e, 0xaa508167, +0x38901091, 0xc6b505eb, 0x84c7cb8c, 0x2ad75a0f, 0x874a1427, 0xa2d1936b, 0x2ad286af, 0xaa56d291, +0xd7894360, 0x425c750d, 0x93b39e26, 0x187184c9, 0x6c00b32d, 0x73e2bb14, 0xa0bebc3c, 0x54623779, +0x64459eab, 0x3f328b82, 0x7718cf82, 0x59a2cea6, 0x04ee002e, 0x89fe78e6, 0x3fab0950, 0x325ff6c2, +0x81383f05, 0x6963c5c8, 0x76cb5ad6, 0xd49974c9, 0xca180dcf, 0x380782d5, 0xc7fa5cf6, 0x8ac31511, +0x35e79e13, 0x47da91d0, 0xf40f9086, 0xa7e2419e, 0x31366241, 0x051ef495, 0xaa573b04, 0x4a805d8d, +0x548300d0, 0x00322a3c, 0xbf64cddf, 0xba57a68e, 0x75c6372b, 0x50afd341, 0xa7c13275, 0x915a0bf5, +0x6b54bfab, 0x2b0b1426, 0xab4cc9d7, 0x449ccd82, 0xf7fbf265, 0xab85c5f3, 0x1b55db94, 0xaad4e324, +0xcfa4bd3f, 0x2deaa3e2, 0x9e204d02, 0xc8bd25ac, 0xeadf55b3, 0xd5bd9e98, 0xe31231b2, 0x2ad5ad6c, +0x954329de, 0xadbe4528, 0xd8710f69, 0xaa51c90f, 0xaa786bf6, 0x22513f1e, 0xaa51a79b, 0x2ad344cc, +0x7b5a41f0, 0xd37cfbad, 0x1b069505, 0x41ece491, 0xb4c332e6, 0x032268d4, 0xc9600acc, 0xce387e6d, +0xbf6bb16c, 0x6a70fb78, 0x0d03d9c9, 0xd4df39de, 0xe01063da, 0x4736f464, 0x5ad328d8, 0xb347cc96, +0x75bb0fc3, 0x98511bfb, 0x4ffbcc35, 0xb58bcf6a, 0xe11f0abc, 0xbfc5fe4a, 0xa70aec10, 0xac39570a, +0x3f04442f, 0x6188b153, 0xe0397a2e, 0x5727cb79, 0x9ceb418f, 0x1cacd68d, 0x2ad37c96, 0x0175cb9d, +0xc69dff09, 0xc75b65f0, 0xd9db40d8, 0xec0e7779, 0x4744ead4, 0xb11c3274, 0xdd24cb9e, 0x7e1c54bd, +0xf01144f9, 0xd2240eb1, 0x9675b3fd, 0xa3ac3755, 0xd47c27af, 0x51c85f4d, 0x56907596, 0xa5bb15e6, +0x580304f0, 0xca042cf1, 0x011a37ea, 0x8dbfaadb, 0x35ba3e4a, 0x3526ffa0, 0xc37b4d09, 0xbc306ed9, +0x98a52666, 0x5648f725, 0xff5e569d, 0x0ced63d0, 0x7c63b2cf, 0x700b45e1, 0xd5ea50f1, 0x85a92872, +0xaf1fbda7, 0xd4234870, 0xa7870bf3, 0x2d3b4d79, 0x42e04198, 0x0cd0ede7, 0x26470db8, 0xf881814c, +0x474d6ad7, 0x7c0c5e5c, 0xd1231959, 0x381b7298, 0xf5d2f4db, 0xab838653, 0x6e2f1e23, 0x83719c9e, +0xbd91e046, 0x9a56456e, 0xdc39200c, 0x20c8c571, 0x962bda1c, 0xe1e696ff, 0xb141ab08, 0x7cca89b9, +0x1a69e783, 0x02cc4843, 0xa2f7c579, 0x429ef47d, 0x427b169c, 0x5ac9f049, 0xdd8f0f00, 0x5c8165bf +}; +static const u32 s2[256] = { +0x1f201094, 0xef0ba75b, 0x69e3cf7e, 0x393f4380, 0xfe61cf7a, 0xeec5207a, 0x55889c94, 0x72fc0651, +0xada7ef79, 0x4e1d7235, 0xd55a63ce, 0xde0436ba, 0x99c430ef, 0x5f0c0794, 0x18dcdb7d, 0xa1d6eff3, +0xa0b52f7b, 0x59e83605, 0xee15b094, 0xe9ffd909, 0xdc440086, 0xef944459, 0xba83ccb3, 0xe0c3cdfb, +0xd1da4181, 0x3b092ab1, 0xf997f1c1, 0xa5e6cf7b, 0x01420ddb, 0xe4e7ef5b, 0x25a1ff41, 0xe180f806, +0x1fc41080, 0x179bee7a, 0xd37ac6a9, 0xfe5830a4, 0x98de8b7f, 0x77e83f4e, 0x79929269, 0x24fa9f7b, +0xe113c85b, 0xacc40083, 0xd7503525, 0xf7ea615f, 0x62143154, 0x0d554b63, 0x5d681121, 0xc866c359, +0x3d63cf73, 0xcee234c0, 0xd4d87e87, 0x5c672b21, 0x071f6181, 0x39f7627f, 0x361e3084, 0xe4eb573b, +0x602f64a4, 0xd63acd9c, 0x1bbc4635, 0x9e81032d, 0x2701f50c, 0x99847ab4, 0xa0e3df79, 0xba6cf38c, +0x10843094, 0x2537a95e, 0xf46f6ffe, 0xa1ff3b1f, 0x208cfb6a, 0x8f458c74, 0xd9e0a227, 0x4ec73a34, +0xfc884f69, 0x3e4de8df, 0xef0e0088, 0x3559648d, 0x8a45388c, 0x1d804366, 0x721d9bfd, 0xa58684bb, +0xe8256333, 0x844e8212, 0x128d8098, 0xfed33fb4, 0xce280ae1, 0x27e19ba5, 0xd5a6c252, 0xe49754bd, +0xc5d655dd, 0xeb667064, 0x77840b4d, 0xa1b6a801, 0x84db26a9, 0xe0b56714, 0x21f043b7, 0xe5d05860, +0x54f03084, 0x066ff472, 0xa31aa153, 0xdadc4755, 0xb5625dbf, 0x68561be6, 0x83ca6b94, 0x2d6ed23b, +0xeccf01db, 0xa6d3d0ba, 0xb6803d5c, 0xaf77a709, 0x33b4a34c, 0x397bc8d6, 0x5ee22b95, 0x5f0e5304, +0x81ed6f61, 0x20e74364, 0xb45e1378, 0xde18639b, 0x881ca122, 0xb96726d1, 0x8049a7e8, 0x22b7da7b, +0x5e552d25, 0x5272d237, 0x79d2951c, 0xc60d894c, 0x488cb402, 0x1ba4fe5b, 0xa4b09f6b, 0x1ca815cf, +0xa20c3005, 0x8871df63, 0xb9de2fcb, 0x0cc6c9e9, 0x0beeff53, 0xe3214517, 0xb4542835, 0x9f63293c, +0xee41e729, 0x6e1d2d7c, 0x50045286, 0x1e6685f3, 0xf33401c6, 0x30a22c95, 0x31a70850, 0x60930f13, +0x73f98417, 0xa1269859, 0xec645c44, 0x52c877a9, 0xcdff33a6, 0xa02b1741, 0x7cbad9a2, 0x2180036f, +0x50d99c08, 0xcb3f4861, 0xc26bd765, 0x64a3f6ab, 0x80342676, 0x25a75e7b, 0xe4e6d1fc, 0x20c710e6, +0xcdf0b680, 0x17844d3b, 0x31eef84d, 0x7e0824e4, 0x2ccb49eb, 0x846a3bae, 0x8ff77888, 0xee5d60f6, +0x7af75673, 0x2fdd5cdb, 0xa11631c1, 0x30f66f43, 0xb3faec54, 0x157fd7fa, 0xef8579cc, 0xd152de58, +0xdb2ffd5e, 0x8f32ce19, 0x306af97a, 0x02f03ef8, 0x99319ad5, 0xc242fa0f, 0xa7e3ebb0, 0xc68e4906, +0xb8da230c, 0x80823028, 0xdcdef3c8, 0xd35fb171, 0x088a1bc8, 0xbec0c560, 0x61a3c9e8, 0xbca8f54d, +0xc72feffa, 0x22822e99, 0x82c570b4, 0xd8d94e89, 0x8b1c34bc, 0x301e16e6, 0x273be979, 0xb0ffeaa6, +0x61d9b8c6, 0x00b24869, 0xb7ffce3f, 0x08dc283b, 0x43daf65a, 0xf7e19798, 0x7619b72f, 0x8f1c9ba4, +0xdc8637a0, 0x16a7d3b1, 0x9fc393b7, 0xa7136eeb, 0xc6bcc63e, 0x1a513742, 0xef6828bc, 0x520365d6, +0x2d6a77ab, 0x3527ed4b, 0x821fd216, 0x095c6e2e, 0xdb92f2fb, 0x5eea29cb, 0x145892f5, 0x91584f7f, +0x5483697b, 0x2667a8cc, 0x85196048, 0x8c4bacea, 0x833860d4, 0x0d23e0f9, 0x6c387e8a, 0x0ae6d249, +0xb284600c, 0xd835731d, 0xdcb1c647, 0xac4c56ea, 0x3ebd81b3, 0x230eabb0, 0x6438bc87, 0xf0b5b1fa, +0x8f5ea2b3, 0xfc184642, 0x0a036b7a, 0x4fb089bd, 0x649da589, 0xa345415e, 0x5c038323, 0x3e5d3bb9, +0x43d79572, 0x7e6dd07c, 0x06dfdf1e, 0x6c6cc4ef, 0x7160a539, 0x73bfbe70, 0x83877605, 0x4523ecf1 +}; +static const u32 s3[256] = { +0x8defc240, 0x25fa5d9f, 0xeb903dbf, 0xe810c907, 0x47607fff, 0x369fe44b, 0x8c1fc644, 0xaececa90, +0xbeb1f9bf, 0xeefbcaea, 0xe8cf1950, 0x51df07ae, 0x920e8806, 0xf0ad0548, 0xe13c8d83, 0x927010d5, +0x11107d9f, 0x07647db9, 0xb2e3e4d4, 0x3d4f285e, 0xb9afa820, 0xfade82e0, 0xa067268b, 0x8272792e, +0x553fb2c0, 0x489ae22b, 0xd4ef9794, 0x125e3fbc, 0x21fffcee, 0x825b1bfd, 0x9255c5ed, 0x1257a240, +0x4e1a8302, 0xbae07fff, 0x528246e7, 0x8e57140e, 0x3373f7bf, 0x8c9f8188, 0xa6fc4ee8, 0xc982b5a5, +0xa8c01db7, 0x579fc264, 0x67094f31, 0xf2bd3f5f, 0x40fff7c1, 0x1fb78dfc, 0x8e6bd2c1, 0x437be59b, +0x99b03dbf, 0xb5dbc64b, 0x638dc0e6, 0x55819d99, 0xa197c81c, 0x4a012d6e, 0xc5884a28, 0xccc36f71, +0xb843c213, 0x6c0743f1, 0x8309893c, 0x0feddd5f, 0x2f7fe850, 0xd7c07f7e, 0x02507fbf, 0x5afb9a04, +0xa747d2d0, 0x1651192e, 0xaf70bf3e, 0x58c31380, 0x5f98302e, 0x727cc3c4, 0x0a0fb402, 0x0f7fef82, +0x8c96fdad, 0x5d2c2aae, 0x8ee99a49, 0x50da88b8, 0x8427f4a0, 0x1eac5790, 0x796fb449, 0x8252dc15, +0xefbd7d9b, 0xa672597d, 0xada840d8, 0x45f54504, 0xfa5d7403, 0xe83ec305, 0x4f91751a, 0x925669c2, +0x23efe941, 0xa903f12e, 0x60270df2, 0x0276e4b6, 0x94fd6574, 0x927985b2, 0x8276dbcb, 0x02778176, +0xf8af918d, 0x4e48f79e, 0x8f616ddf, 0xe29d840e, 0x842f7d83, 0x340ce5c8, 0x96bbb682, 0x93b4b148, +0xef303cab, 0x984faf28, 0x779faf9b, 0x92dc560d, 0x224d1e20, 0x8437aa88, 0x7d29dc96, 0x2756d3dc, +0x8b907cee, 0xb51fd240, 0xe7c07ce3, 0xe566b4a1, 0xc3e9615e, 0x3cf8209d, 0x6094d1e3, 0xcd9ca341, +0x5c76460e, 0x00ea983b, 0xd4d67881, 0xfd47572c, 0xf76cedd9, 0xbda8229c, 0x127dadaa, 0x438a074e, +0x1f97c090, 0x081bdb8a, 0x93a07ebe, 0xb938ca15, 0x97b03cff, 0x3dc2c0f8, 0x8d1ab2ec, 0x64380e51, +0x68cc7bfb, 0xd90f2788, 0x12490181, 0x5de5ffd4, 0xdd7ef86a, 0x76a2e214, 0xb9a40368, 0x925d958f, +0x4b39fffa, 0xba39aee9, 0xa4ffd30b, 0xfaf7933b, 0x6d498623, 0x193cbcfa, 0x27627545, 0x825cf47a, +0x61bd8ba0, 0xd11e42d1, 0xcead04f4, 0x127ea392, 0x10428db7, 0x8272a972, 0x9270c4a8, 0x127de50b, +0x285ba1c8, 0x3c62f44f, 0x35c0eaa5, 0xe805d231, 0x428929fb, 0xb4fcdf82, 0x4fb66a53, 0x0e7dc15b, +0x1f081fab, 0x108618ae, 0xfcfd086d, 0xf9ff2889, 0x694bcc11, 0x236a5cae, 0x12deca4d, 0x2c3f8cc5, +0xd2d02dfe, 0xf8ef5896, 0xe4cf52da, 0x95155b67, 0x494a488c, 0xb9b6a80c, 0x5c8f82bc, 0x89d36b45, +0x3a609437, 0xec00c9a9, 0x44715253, 0x0a874b49, 0xd773bc40, 0x7c34671c, 0x02717ef6, 0x4feb5536, +0xa2d02fff, 0xd2bf60c4, 0xd43f03c0, 0x50b4ef6d, 0x07478cd1, 0x006e1888, 0xa2e53f55, 0xb9e6d4bc, +0xa2048016, 0x97573833, 0xd7207d67, 0xde0f8f3d, 0x72f87b33, 0xabcc4f33, 0x7688c55d, 0x7b00a6b0, +0x947b0001, 0x570075d2, 0xf9bb88f8, 0x8942019e, 0x4264a5ff, 0x856302e0, 0x72dbd92b, 0xee971b69, +0x6ea22fde, 0x5f08ae2b, 0xaf7a616d, 0xe5c98767, 0xcf1febd2, 0x61efc8c2, 0xf1ac2571, 0xcc8239c2, +0x67214cb8, 0xb1e583d1, 0xb7dc3e62, 0x7f10bdce, 0xf90a5c38, 0x0ff0443d, 0x606e6dc6, 0x60543a49, +0x5727c148, 0x2be98a1d, 0x8ab41738, 0x20e1be24, 0xaf96da0f, 0x68458425, 0x99833be5, 0x600d457d, +0x282f9350, 0x8334b362, 0xd91d1120, 0x2b6d8da0, 0x642b1e31, 0x9c305a00, 0x52bce688, 0x1b03588a, +0xf7baefd5, 0x4142ed9c, 0xa4315c11, 0x83323ec5, 0xdfef4636, 0xa133c501, 0xe9d3531c, 0xee353783 +}; +static const u32 s4[256] = { +0x9db30420, 0x1fb6e9de, 0xa7be7bef, 0xd273a298, 0x4a4f7bdb, 0x64ad8c57, 0x85510443, 0xfa020ed1, +0x7e287aff, 0xe60fb663, 0x095f35a1, 0x79ebf120, 0xfd059d43, 0x6497b7b1, 0xf3641f63, 0x241e4adf, +0x28147f5f, 0x4fa2b8cd, 0xc9430040, 0x0cc32220, 0xfdd30b30, 0xc0a5374f, 0x1d2d00d9, 0x24147b15, +0xee4d111a, 0x0fca5167, 0x71ff904c, 0x2d195ffe, 0x1a05645f, 0x0c13fefe, 0x081b08ca, 0x05170121, +0x80530100, 0xe83e5efe, 0xac9af4f8, 0x7fe72701, 0xd2b8ee5f, 0x06df4261, 0xbb9e9b8a, 0x7293ea25, +0xce84ffdf, 0xf5718801, 0x3dd64b04, 0xa26f263b, 0x7ed48400, 0x547eebe6, 0x446d4ca0, 0x6cf3d6f5, +0x2649abdf, 0xaea0c7f5, 0x36338cc1, 0x503f7e93, 0xd3772061, 0x11b638e1, 0x72500e03, 0xf80eb2bb, +0xabe0502e, 0xec8d77de, 0x57971e81, 0xe14f6746, 0xc9335400, 0x6920318f, 0x081dbb99, 0xffc304a5, +0x4d351805, 0x7f3d5ce3, 0xa6c866c6, 0x5d5bcca9, 0xdaec6fea, 0x9f926f91, 0x9f46222f, 0x3991467d, +0xa5bf6d8e, 0x1143c44f, 0x43958302, 0xd0214eeb, 0x022083b8, 0x3fb6180c, 0x18f8931e, 0x281658e6, +0x26486e3e, 0x8bd78a70, 0x7477e4c1, 0xb506e07c, 0xf32d0a25, 0x79098b02, 0xe4eabb81, 0x28123b23, +0x69dead38, 0x1574ca16, 0xdf871b62, 0x211c40b7, 0xa51a9ef9, 0x0014377b, 0x041e8ac8, 0x09114003, +0xbd59e4d2, 0xe3d156d5, 0x4fe876d5, 0x2f91a340, 0x557be8de, 0x00eae4a7, 0x0ce5c2ec, 0x4db4bba6, +0xe756bdff, 0xdd3369ac, 0xec17b035, 0x06572327, 0x99afc8b0, 0x56c8c391, 0x6b65811c, 0x5e146119, +0x6e85cb75, 0xbe07c002, 0xc2325577, 0x893ff4ec, 0x5bbfc92d, 0xd0ec3b25, 0xb7801ab7, 0x8d6d3b24, +0x20c763ef, 0xc366a5fc, 0x9c382880, 0x0ace3205, 0xaac9548a, 0xeca1d7c7, 0x041afa32, 0x1d16625a, +0x6701902c, 0x9b757a54, 0x31d477f7, 0x9126b031, 0x36cc6fdb, 0xc70b8b46, 0xd9e66a48, 0x56e55a79, +0x026a4ceb, 0x52437eff, 0x2f8f76b4, 0x0df980a5, 0x8674cde3, 0xedda04eb, 0x17a9be04, 0x2c18f4df, +0xb7747f9d, 0xab2af7b4, 0xefc34d20, 0x2e096b7c, 0x1741a254, 0xe5b6a035, 0x213d42f6, 0x2c1c7c26, +0x61c2f50f, 0x6552daf9, 0xd2c231f8, 0x25130f69, 0xd8167fa2, 0x0418f2c8, 0x001a96a6, 0x0d1526ab, +0x63315c21, 0x5e0a72ec, 0x49bafefd, 0x187908d9, 0x8d0dbd86, 0x311170a7, 0x3e9b640c, 0xcc3e10d7, +0xd5cad3b6, 0x0caec388, 0xf73001e1, 0x6c728aff, 0x71eae2a1, 0x1f9af36e, 0xcfcbd12f, 0xc1de8417, +0xac07be6b, 0xcb44a1d8, 0x8b9b0f56, 0x013988c3, 0xb1c52fca, 0xb4be31cd, 0xd8782806, 0x12a3a4e2, +0x6f7de532, 0x58fd7eb6, 0xd01ee900, 0x24adffc2, 0xf4990fc5, 0x9711aac5, 0x001d7b95, 0x82e5e7d2, +0x109873f6, 0x00613096, 0xc32d9521, 0xada121ff, 0x29908415, 0x7fbb977f, 0xaf9eb3db, 0x29c9ed2a, +0x5ce2a465, 0xa730f32c, 0xd0aa3fe8, 0x8a5cc091, 0xd49e2ce7, 0x0ce454a9, 0xd60acd86, 0x015f1919, +0x77079103, 0xdea03af6, 0x78a8565e, 0xdee356df, 0x21f05cbe, 0x8b75e387, 0xb3c50651, 0xb8a5c3ef, +0xd8eeb6d2, 0xe523be77, 0xc2154529, 0x2f69efdf, 0xafe67afb, 0xf470c4b2, 0xf3e0eb5b, 0xd6cc9876, +0x39e4460c, 0x1fda8538, 0x1987832f, 0xca007367, 0xa99144f8, 0x296b299e, 0x492fc295, 0x9266beab, +0xb5676e69, 0x9bd3ddda, 0xdf7e052f, 0xdb25701c, 0x1b5e51ee, 0xf65324e6, 0x6afce36c, 0x0316cc04, +0x8644213e, 0xb7dc59d0, 0x7965291f, 0xccd6fd43, 0x41823979, 0x932bcdf6, 0xb657c34d, 0x4edfd282, +0x7ae5290c, 0x3cb9536b, 0x851e20fe, 0x9833557e, 0x13ecf0b0, 0xd3ffb372, 0x3f85c5c1, 0x0aef7ed2 +}; +static const u32 s5[256] = { +0x7ec90c04, 0x2c6e74b9, 0x9b0e66df, 0xa6337911, 0xb86a7fff, 0x1dd358f5, 0x44dd9d44, 0x1731167f, +0x08fbf1fa, 0xe7f511cc, 0xd2051b00, 0x735aba00, 0x2ab722d8, 0x386381cb, 0xacf6243a, 0x69befd7a, +0xe6a2e77f, 0xf0c720cd, 0xc4494816, 0xccf5c180, 0x38851640, 0x15b0a848, 0xe68b18cb, 0x4caadeff, +0x5f480a01, 0x0412b2aa, 0x259814fc, 0x41d0efe2, 0x4e40b48d, 0x248eb6fb, 0x8dba1cfe, 0x41a99b02, +0x1a550a04, 0xba8f65cb, 0x7251f4e7, 0x95a51725, 0xc106ecd7, 0x97a5980a, 0xc539b9aa, 0x4d79fe6a, +0xf2f3f763, 0x68af8040, 0xed0c9e56, 0x11b4958b, 0xe1eb5a88, 0x8709e6b0, 0xd7e07156, 0x4e29fea7, +0x6366e52d, 0x02d1c000, 0xc4ac8e05, 0x9377f571, 0x0c05372a, 0x578535f2, 0x2261be02, 0xd642a0c9, +0xdf13a280, 0x74b55bd2, 0x682199c0, 0xd421e5ec, 0x53fb3ce8, 0xc8adedb3, 0x28a87fc9, 0x3d959981, +0x5c1ff900, 0xfe38d399, 0x0c4eff0b, 0x062407ea, 0xaa2f4fb1, 0x4fb96976, 0x90c79505, 0xb0a8a774, +0xef55a1ff, 0xe59ca2c2, 0xa6b62d27, 0xe66a4263, 0xdf65001f, 0x0ec50966, 0xdfdd55bc, 0x29de0655, +0x911e739a, 0x17af8975, 0x32c7911c, 0x89f89468, 0x0d01e980, 0x524755f4, 0x03b63cc9, 0x0cc844b2, +0xbcf3f0aa, 0x87ac36e9, 0xe53a7426, 0x01b3d82b, 0x1a9e7449, 0x64ee2d7e, 0xcddbb1da, 0x01c94910, +0xb868bf80, 0x0d26f3fd, 0x9342ede7, 0x04a5c284, 0x636737b6, 0x50f5b616, 0xf24766e3, 0x8eca36c1, +0x136e05db, 0xfef18391, 0xfb887a37, 0xd6e7f7d4, 0xc7fb7dc9, 0x3063fcdf, 0xb6f589de, 0xec2941da, +0x26e46695, 0xb7566419, 0xf654efc5, 0xd08d58b7, 0x48925401, 0xc1bacb7f, 0xe5ff550f, 0xb6083049, +0x5bb5d0e8, 0x87d72e5a, 0xab6a6ee1, 0x223a66ce, 0xc62bf3cd, 0x9e0885f9, 0x68cb3e47, 0x086c010f, +0xa21de820, 0xd18b69de, 0xf3f65777, 0xfa02c3f6, 0x407edac3, 0xcbb3d550, 0x1793084d, 0xb0d70eba, +0x0ab378d5, 0xd951fb0c, 0xded7da56, 0x4124bbe4, 0x94ca0b56, 0x0f5755d1, 0xe0e1e56e, 0x6184b5be, +0x580a249f, 0x94f74bc0, 0xe327888e, 0x9f7b5561, 0xc3dc0280, 0x05687715, 0x646c6bd7, 0x44904db3, +0x66b4f0a3, 0xc0f1648a, 0x697ed5af, 0x49e92ff6, 0x309e374f, 0x2cb6356a, 0x85808573, 0x4991f840, +0x76f0ae02, 0x083be84d, 0x28421c9a, 0x44489406, 0x736e4cb8, 0xc1092910, 0x8bc95fc6, 0x7d869cf4, +0x134f616f, 0x2e77118d, 0xb31b2be1, 0xaa90b472, 0x3ca5d717, 0x7d161bba, 0x9cad9010, 0xaf462ba2, +0x9fe459d2, 0x45d34559, 0xd9f2da13, 0xdbc65487, 0xf3e4f94e, 0x176d486f, 0x097c13ea, 0x631da5c7, +0x445f7382, 0x175683f4, 0xcdc66a97, 0x70be0288, 0xb3cdcf72, 0x6e5dd2f3, 0x20936079, 0x459b80a5, +0xbe60e2db, 0xa9c23101, 0xeba5315c, 0x224e42f2, 0x1c5c1572, 0xf6721b2c, 0x1ad2fff3, 0x8c25404e, +0x324ed72f, 0x4067b7fd, 0x0523138e, 0x5ca3bc78, 0xdc0fd66e, 0x75922283, 0x784d6b17, 0x58ebb16e, +0x44094f85, 0x3f481d87, 0xfcfeae7b, 0x77b5ff76, 0x8c2302bf, 0xaaf47556, 0x5f46b02a, 0x2b092801, +0x3d38f5f7, 0x0ca81f36, 0x52af4a8a, 0x66d5e7c0, 0xdf3b0874, 0x95055110, 0x1b5ad7a8, 0xf61ed5ad, +0x6cf6e479, 0x20758184, 0xd0cefa65, 0x88f7be58, 0x4a046826, 0x0ff6f8f3, 0xa09c7f70, 0x5346aba0, +0x5ce96c28, 0xe176eda3, 0x6bac307f, 0x376829d2, 0x85360fa9, 0x17e3fe2a, 0x24b79767, 0xf5a96b20, +0xd6cd2595, 0x68ff1ebf, 0x7555442c, 0xf19f06be, 0xf9e0659a, 0xeeb9491d, 0x34010718, 0xbb30cab8, +0xe822fe15, 0x88570983, 0x750e6249, 0xda627e55, 0x5e76ffa8, 0xb1534546, 0x6d47de08, 0xefe9e7d4 +}; +static const u32 s6[256] = { +0xf6fa8f9d, 0x2cac6ce1, 0x4ca34867, 0xe2337f7c, 0x95db08e7, 0x016843b4, 0xeced5cbc, 0x325553ac, +0xbf9f0960, 0xdfa1e2ed, 0x83f0579d, 0x63ed86b9, 0x1ab6a6b8, 0xde5ebe39, 0xf38ff732, 0x8989b138, +0x33f14961, 0xc01937bd, 0xf506c6da, 0xe4625e7e, 0xa308ea99, 0x4e23e33c, 0x79cbd7cc, 0x48a14367, +0xa3149619, 0xfec94bd5, 0xa114174a, 0xeaa01866, 0xa084db2d, 0x09a8486f, 0xa888614a, 0x2900af98, +0x01665991, 0xe1992863, 0xc8f30c60, 0x2e78ef3c, 0xd0d51932, 0xcf0fec14, 0xf7ca07d2, 0xd0a82072, +0xfd41197e, 0x9305a6b0, 0xe86be3da, 0x74bed3cd, 0x372da53c, 0x4c7f4448, 0xdab5d440, 0x6dba0ec3, +0x083919a7, 0x9fbaeed9, 0x49dbcfb0, 0x4e670c53, 0x5c3d9c01, 0x64bdb941, 0x2c0e636a, 0xba7dd9cd, +0xea6f7388, 0xe70bc762, 0x35f29adb, 0x5c4cdd8d, 0xf0d48d8c, 0xb88153e2, 0x08a19866, 0x1ae2eac8, +0x284caf89, 0xaa928223, 0x9334be53, 0x3b3a21bf, 0x16434be3, 0x9aea3906, 0xefe8c36e, 0xf890cdd9, +0x80226dae, 0xc340a4a3, 0xdf7e9c09, 0xa694a807, 0x5b7c5ecc, 0x221db3a6, 0x9a69a02f, 0x68818a54, +0xceb2296f, 0x53c0843a, 0xfe893655, 0x25bfe68a, 0xb4628abc, 0xcf222ebf, 0x25ac6f48, 0xa9a99387, +0x53bddb65, 0xe76ffbe7, 0xe967fd78, 0x0ba93563, 0x8e342bc1, 0xe8a11be9, 0x4980740d, 0xc8087dfc, +0x8de4bf99, 0xa11101a0, 0x7fd37975, 0xda5a26c0, 0xe81f994f, 0x9528cd89, 0xfd339fed, 0xb87834bf, +0x5f04456d, 0x22258698, 0xc9c4c83b, 0x2dc156be, 0x4f628daa, 0x57f55ec5, 0xe2220abe, 0xd2916ebf, +0x4ec75b95, 0x24f2c3c0, 0x42d15d99, 0xcd0d7fa0, 0x7b6e27ff, 0xa8dc8af0, 0x7345c106, 0xf41e232f, +0x35162386, 0xe6ea8926, 0x3333b094, 0x157ec6f2, 0x372b74af, 0x692573e4, 0xe9a9d848, 0xf3160289, +0x3a62ef1d, 0xa787e238, 0xf3a5f676, 0x74364853, 0x20951063, 0x4576698d, 0xb6fad407, 0x592af950, +0x36f73523, 0x4cfb6e87, 0x7da4cec0, 0x6c152daa, 0xcb0396a8, 0xc50dfe5d, 0xfcd707ab, 0x0921c42f, +0x89dff0bb, 0x5fe2be78, 0x448f4f33, 0x754613c9, 0x2b05d08d, 0x48b9d585, 0xdc049441, 0xc8098f9b, +0x7dede786, 0xc39a3373, 0x42410005, 0x6a091751, 0x0ef3c8a6, 0x890072d6, 0x28207682, 0xa9a9f7be, +0xbf32679d, 0xd45b5b75, 0xb353fd00, 0xcbb0e358, 0x830f220a, 0x1f8fb214, 0xd372cf08, 0xcc3c4a13, +0x8cf63166, 0x061c87be, 0x88c98f88, 0x6062e397, 0x47cf8e7a, 0xb6c85283, 0x3cc2acfb, 0x3fc06976, +0x4e8f0252, 0x64d8314d, 0xda3870e3, 0x1e665459, 0xc10908f0, 0x513021a5, 0x6c5b68b7, 0x822f8aa0, +0x3007cd3e, 0x74719eef, 0xdc872681, 0x073340d4, 0x7e432fd9, 0x0c5ec241, 0x8809286c, 0xf592d891, +0x08a930f6, 0x957ef305, 0xb7fbffbd, 0xc266e96f, 0x6fe4ac98, 0xb173ecc0, 0xbc60b42a, 0x953498da, +0xfba1ae12, 0x2d4bd736, 0x0f25faab, 0xa4f3fceb, 0xe2969123, 0x257f0c3d, 0x9348af49, 0x361400bc, +0xe8816f4a, 0x3814f200, 0xa3f94043, 0x9c7a54c2, 0xbc704f57, 0xda41e7f9, 0xc25ad33a, 0x54f4a084, +0xb17f5505, 0x59357cbe, 0xedbd15c8, 0x7f97c5ab, 0xba5ac7b5, 0xb6f6deaf, 0x3a479c3a, 0x5302da25, +0x653d7e6a, 0x54268d49, 0x51a477ea, 0x5017d55b, 0xd7d25d88, 0x44136c76, 0x0404a8c8, 0xb8e5a121, +0xb81a928a, 0x60ed5869, 0x97c55b96, 0xeaec991b, 0x29935913, 0x01fdb7f1, 0x088e8dfa, 0x9ab6f6f5, +0x3b4cbf9f, 0x4a5de3ab, 0xe6051d35, 0xa0e1d855, 0xd36b4cf1, 0xf544edeb, 0xb0e93524, 0xbebb8fbd, +0xa2d762cf, 0x49c92f54, 0x38b5f331, 0x7128a454, 0x48392905, 0xa65b1db8, 0x851c97bd, 0xd675cf2f +}; +static const u32 s7[256] = { +0x85e04019, 0x332bf567, 0x662dbfff, 0xcfc65693, 0x2a8d7f6f, 0xab9bc912, 0xde6008a1, 0x2028da1f, +0x0227bce7, 0x4d642916, 0x18fac300, 0x50f18b82, 0x2cb2cb11, 0xb232e75c, 0x4b3695f2, 0xb28707de, +0xa05fbcf6, 0xcd4181e9, 0xe150210c, 0xe24ef1bd, 0xb168c381, 0xfde4e789, 0x5c79b0d8, 0x1e8bfd43, +0x4d495001, 0x38be4341, 0x913cee1d, 0x92a79c3f, 0x089766be, 0xbaeeadf4, 0x1286becf, 0xb6eacb19, +0x2660c200, 0x7565bde4, 0x64241f7a, 0x8248dca9, 0xc3b3ad66, 0x28136086, 0x0bd8dfa8, 0x356d1cf2, +0x107789be, 0xb3b2e9ce, 0x0502aa8f, 0x0bc0351e, 0x166bf52a, 0xeb12ff82, 0xe3486911, 0xd34d7516, +0x4e7b3aff, 0x5f43671b, 0x9cf6e037, 0x4981ac83, 0x334266ce, 0x8c9341b7, 0xd0d854c0, 0xcb3a6c88, +0x47bc2829, 0x4725ba37, 0xa66ad22b, 0x7ad61f1e, 0x0c5cbafa, 0x4437f107, 0xb6e79962, 0x42d2d816, +0x0a961288, 0xe1a5c06e, 0x13749e67, 0x72fc081a, 0xb1d139f7, 0xf9583745, 0xcf19df58, 0xbec3f756, +0xc06eba30, 0x07211b24, 0x45c28829, 0xc95e317f, 0xbc8ec511, 0x38bc46e9, 0xc6e6fa14, 0xbae8584a, +0xad4ebc46, 0x468f508b, 0x7829435f, 0xf124183b, 0x821dba9f, 0xaff60ff4, 0xea2c4e6d, 0x16e39264, +0x92544a8b, 0x009b4fc3, 0xaba68ced, 0x9ac96f78, 0x06a5b79a, 0xb2856e6e, 0x1aec3ca9, 0xbe838688, +0x0e0804e9, 0x55f1be56, 0xe7e5363b, 0xb3a1f25d, 0xf7debb85, 0x61fe033c, 0x16746233, 0x3c034c28, +0xda6d0c74, 0x79aac56c, 0x3ce4e1ad, 0x51f0c802, 0x98f8f35a, 0x1626a49f, 0xeed82b29, 0x1d382fe3, +0x0c4fb99a, 0xbb325778, 0x3ec6d97b, 0x6e77a6a9, 0xcb658b5c, 0xd45230c7, 0x2bd1408b, 0x60c03eb7, +0xb9068d78, 0xa33754f4, 0xf430c87d, 0xc8a71302, 0xb96d8c32, 0xebd4e7be, 0xbe8b9d2d, 0x7979fb06, +0xe7225308, 0x8b75cf77, 0x11ef8da4, 0xe083c858, 0x8d6b786f, 0x5a6317a6, 0xfa5cf7a0, 0x5dda0033, +0xf28ebfb0, 0xf5b9c310, 0xa0eac280, 0x08b9767a, 0xa3d9d2b0, 0x79d34217, 0x021a718d, 0x9ac6336a, +0x2711fd60, 0x438050e3, 0x069908a8, 0x3d7fedc4, 0x826d2bef, 0x4eeb8476, 0x488dcf25, 0x36c9d566, +0x28e74e41, 0xc2610aca, 0x3d49a9cf, 0xbae3b9df, 0xb65f8de6, 0x92aeaf64, 0x3ac7d5e6, 0x9ea80509, +0xf22b017d, 0xa4173f70, 0xdd1e16c3, 0x15e0d7f9, 0x50b1b887, 0x2b9f4fd5, 0x625aba82, 0x6a017962, +0x2ec01b9c, 0x15488aa9, 0xd716e740, 0x40055a2c, 0x93d29a22, 0xe32dbf9a, 0x058745b9, 0x3453dc1e, +0xd699296e, 0x496cff6f, 0x1c9f4986, 0xdfe2ed07, 0xb87242d1, 0x19de7eae, 0x053e561a, 0x15ad6f8c, +0x66626c1c, 0x7154c24c, 0xea082b2a, 0x93eb2939, 0x17dcb0f0, 0x58d4f2ae, 0x9ea294fb, 0x52cf564c, +0x9883fe66, 0x2ec40581, 0x763953c3, 0x01d6692e, 0xd3a0c108, 0xa1e7160e, 0xe4f2dfa6, 0x693ed285, +0x74904698, 0x4c2b0edd, 0x4f757656, 0x5d393378, 0xa132234f, 0x3d321c5d, 0xc3f5e194, 0x4b269301, +0xc79f022f, 0x3c997e7e, 0x5e4f9504, 0x3ffafbbd, 0x76f7ad0e, 0x296693f4, 0x3d1fce6f, 0xc61e45be, +0xd3b5ab34, 0xf72bf9b7, 0x1b0434c0, 0x4e72b567, 0x5592a33d, 0xb5229301, 0xcfd2a87f, 0x60aeb767, +0x1814386b, 0x30bcc33d, 0x38a0c07d, 0xfd1606f2, 0xc363519b, 0x589dd390, 0x5479f8e6, 0x1cb8d647, +0x97fd61a9, 0xea7759f4, 0x2d57539d, 0x569a58cf, 0xe84e63ad, 0x462e1b78, 0x6580f87e, 0xf3817914, +0x91da55f4, 0x40a230f3, 0xd1988f35, 0xb6e318d2, 0x3ffa50bc, 0x3d40f021, 0xc3c0bdae, 0x4958c24c, +0x518f36b2, 0x84b1d370, 0x0fedce83, 0x878ddada, 0xf2a279c7, 0x94e01be8, 0x90716f4b, 0x954b8aa3 +}; +static const u32 s8[256] = { +0xe216300d, 0xbbddfffc, 0xa7ebdabd, 0x35648095, 0x7789f8b7, 0xe6c1121b, 0x0e241600, 0x052ce8b5, +0x11a9cfb0, 0xe5952f11, 0xece7990a, 0x9386d174, 0x2a42931c, 0x76e38111, 0xb12def3a, 0x37ddddfc, +0xde9adeb1, 0x0a0cc32c, 0xbe197029, 0x84a00940, 0xbb243a0f, 0xb4d137cf, 0xb44e79f0, 0x049eedfd, +0x0b15a15d, 0x480d3168, 0x8bbbde5a, 0x669ded42, 0xc7ece831, 0x3f8f95e7, 0x72df191b, 0x7580330d, +0x94074251, 0x5c7dcdfa, 0xabbe6d63, 0xaa402164, 0xb301d40a, 0x02e7d1ca, 0x53571dae, 0x7a3182a2, +0x12a8ddec, 0xfdaa335d, 0x176f43e8, 0x71fb46d4, 0x38129022, 0xce949ad4, 0xb84769ad, 0x965bd862, +0x82f3d055, 0x66fb9767, 0x15b80b4e, 0x1d5b47a0, 0x4cfde06f, 0xc28ec4b8, 0x57e8726e, 0x647a78fc, +0x99865d44, 0x608bd593, 0x6c200e03, 0x39dc5ff6, 0x5d0b00a3, 0xae63aff2, 0x7e8bd632, 0x70108c0c, +0xbbd35049, 0x2998df04, 0x980cf42a, 0x9b6df491, 0x9e7edd53, 0x06918548, 0x58cb7e07, 0x3b74ef2e, +0x522fffb1, 0xd24708cc, 0x1c7e27cd, 0xa4eb215b, 0x3cf1d2e2, 0x19b47a38, 0x424f7618, 0x35856039, +0x9d17dee7, 0x27eb35e6, 0xc9aff67b, 0x36baf5b8, 0x09c467cd, 0xc18910b1, 0xe11dbf7b, 0x06cd1af8, +0x7170c608, 0x2d5e3354, 0xd4de495a, 0x64c6d006, 0xbcc0c62c, 0x3dd00db3, 0x708f8f34, 0x77d51b42, +0x264f620f, 0x24b8d2bf, 0x15c1b79e, 0x46a52564, 0xf8d7e54e, 0x3e378160, 0x7895cda5, 0x859c15a5, +0xe6459788, 0xc37bc75f, 0xdb07ba0c, 0x0676a3ab, 0x7f229b1e, 0x31842e7b, 0x24259fd7, 0xf8bef472, +0x835ffcb8, 0x6df4c1f2, 0x96f5b195, 0xfd0af0fc, 0xb0fe134c, 0xe2506d3d, 0x4f9b12ea, 0xf215f225, +0xa223736f, 0x9fb4c428, 0x25d04979, 0x34c713f8, 0xc4618187, 0xea7a6e98, 0x7cd16efc, 0x1436876c, +0xf1544107, 0xbedeee14, 0x56e9af27, 0xa04aa441, 0x3cf7c899, 0x92ecbae6, 0xdd67016d, 0x151682eb, +0xa842eedf, 0xfdba60b4, 0xf1907b75, 0x20e3030f, 0x24d8c29e, 0xe139673b, 0xefa63fb8, 0x71873054, +0xb6f2cf3b, 0x9f326442, 0xcb15a4cc, 0xb01a4504, 0xf1e47d8d, 0x844a1be5, 0xbae7dfdc, 0x42cbda70, +0xcd7dae0a, 0x57e85b7a, 0xd53f5af6, 0x20cf4d8c, 0xcea4d428, 0x79d130a4, 0x3486ebfb, 0x33d3cddc, +0x77853b53, 0x37effcb5, 0xc5068778, 0xe580b3e6, 0x4e68b8f4, 0xc5c8b37e, 0x0d809ea2, 0x398feb7c, +0x132a4f94, 0x43b7950e, 0x2fee7d1c, 0x223613bd, 0xdd06caa2, 0x37df932b, 0xc4248289, 0xacf3ebc3, +0x5715f6b7, 0xef3478dd, 0xf267616f, 0xc148cbe4, 0x9052815e, 0x5e410fab, 0xb48a2465, 0x2eda7fa4, +0xe87b40e4, 0xe98ea084, 0x5889e9e1, 0xefd390fc, 0xdd07d35b, 0xdb485694, 0x38d7e5b2, 0x57720101, +0x730edebc, 0x5b643113, 0x94917e4f, 0x503c2fba, 0x646f1282, 0x7523d24a, 0xe0779695, 0xf9c17a8f, +0x7a5b2121, 0xd187b896, 0x29263a4d, 0xba510cdf, 0x81f47c9f, 0xad1163ed, 0xea7b5965, 0x1a00726e, +0x11403092, 0x00da6d77, 0x4a0cdd61, 0xad1f4603, 0x605bdfb0, 0x9eedc364, 0x22ebe6a8, 0xcee7d28a, +0xa0e736a0, 0x5564a6b9, 0x10853209, 0xc7eb8f37, 0x2de705ca, 0x8951570f, 0xdf09822b, 0xbd691a6c, +0xaa12e4f2, 0x87451c0f, 0xe0f6a27a, 0x3ada4819, 0x4cf1764f, 0x0d771c2b, 0x67cdb156, 0x350d8384, +0x5938fa0f, 0x42399ef3, 0x36997b07, 0x0e84093d, 0x4aa93e61, 0x8360d87b, 0x1fa98b0c, 0x1149382c, +0xe97625a5, 0x0614d1b7, 0x0e25244b, 0x0c768347, 0x589e8d82, 0x0d2059d1, 0xa466bb1e, 0xf8da0a82, +0x04f19130, 0xba6e4ec0, 0x99265164, 0x1ee7230d, 0x50b2ad80, 0xeaee6801, 0x8db2a283, 0xea8bf59e +}; + + +#if defined(__GNUC__) && defined(__i386__) +static inline u32 +rol(int n, u32 x) +{ + __asm__("roll %%cl,%0" + :"=r" (x) + :"0" (x),"c" (n)); + return x; +} +#else +#define rol(n,x) ( ((x) << (n)) | ((x) >> (32-(n))) ) +#endif + +#define F1(D,m,r) ( (I = ((m) + (D))), (I=rol((r),I)), \ + (((s1[I >> 24] ^ s2[(I>>16)&0xff]) - s3[(I>>8)&0xff]) + s4[I&0xff]) ) +#define F2(D,m,r) ( (I = ((m) ^ (D))), (I=rol((r),I)), \ + (((s1[I >> 24] - s2[(I>>16)&0xff]) + s3[(I>>8)&0xff]) ^ s4[I&0xff]) ) +#define F3(D,m,r) ( (I = ((m) - (D))), (I=rol((r),I)), \ + (((s1[I >> 24] + s2[(I>>16)&0xff]) ^ s3[(I>>8)&0xff]) - s4[I&0xff]) ) + +static void +do_encrypt_block( CAST5_context *c, byte *outbuf, const byte *inbuf ) +{ + u32 l, r, t; + u32 I; /* used by the Fx macros */ + u32 *Km; + byte *Kr; + + Km = c->Km; + Kr = c->Kr; + + /* (L0,R0) <-- (m1...m64). (Split the plaintext into left and + * right 32-bit halves L0 = m1...m32 and R0 = m33...m64.) + */ + l = inbuf[0] << 24 | inbuf[1] << 16 | inbuf[2] << 8 | inbuf[3]; + r = inbuf[4] << 24 | inbuf[5] << 16 | inbuf[6] << 8 | inbuf[7]; + + /* (16 rounds) for i from 1 to 16, compute Li and Ri as follows: + * Li = Ri-1; + * Ri = Li-1 ^ f(Ri-1,Kmi,Kri), where f is defined in Section 2.2 + * Rounds 1, 4, 7, 10, 13, and 16 use f function Type 1. + * Rounds 2, 5, 8, 11, and 14 use f function Type 2. + * Rounds 3, 6, 9, 12, and 15 use f function Type 3. + */ + + t = l; l = r; r = t ^ F1(r, Km[ 0], Kr[ 0]); + t = l; l = r; r = t ^ F2(r, Km[ 1], Kr[ 1]); + t = l; l = r; r = t ^ F3(r, Km[ 2], Kr[ 2]); + t = l; l = r; r = t ^ F1(r, Km[ 3], Kr[ 3]); + t = l; l = r; r = t ^ F2(r, Km[ 4], Kr[ 4]); + t = l; l = r; r = t ^ F3(r, Km[ 5], Kr[ 5]); + t = l; l = r; r = t ^ F1(r, Km[ 6], Kr[ 6]); + t = l; l = r; r = t ^ F2(r, Km[ 7], Kr[ 7]); + t = l; l = r; r = t ^ F3(r, Km[ 8], Kr[ 8]); + t = l; l = r; r = t ^ F1(r, Km[ 9], Kr[ 9]); + t = l; l = r; r = t ^ F2(r, Km[10], Kr[10]); + t = l; l = r; r = t ^ F3(r, Km[11], Kr[11]); + t = l; l = r; r = t ^ F1(r, Km[12], Kr[12]); + t = l; l = r; r = t ^ F2(r, Km[13], Kr[13]); + t = l; l = r; r = t ^ F3(r, Km[14], Kr[14]); + t = l; l = r; r = t ^ F1(r, Km[15], Kr[15]); + + /* c1...c64 <-- (R16,L16). (Exchange final blocks L16, R16 and + * concatenate to form the ciphertext.) */ + outbuf[0] = (r >> 24) & 0xff; + outbuf[1] = (r >> 16) & 0xff; + outbuf[2] = (r >> 8) & 0xff; + outbuf[3] = r & 0xff; + outbuf[4] = (l >> 24) & 0xff; + outbuf[5] = (l >> 16) & 0xff; + outbuf[6] = (l >> 8) & 0xff; + outbuf[7] = l & 0xff; +} + +static void +encrypt_block (void *context , byte *outbuf, const byte *inbuf) +{ + CAST5_context *c = (CAST5_context *) context; + do_encrypt_block (c, outbuf, inbuf); + _gcry_burn_stack (20+4*sizeof(void*)); +} + + +static void +do_decrypt_block (CAST5_context *c, byte *outbuf, const byte *inbuf ) +{ + u32 l, r, t; + u32 I; + u32 *Km; + byte *Kr; + + Km = c->Km; + Kr = c->Kr; + + l = inbuf[0] << 24 | inbuf[1] << 16 | inbuf[2] << 8 | inbuf[3]; + r = inbuf[4] << 24 | inbuf[5] << 16 | inbuf[6] << 8 | inbuf[7]; + + t = l; l = r; r = t ^ F1(r, Km[15], Kr[15]); + t = l; l = r; r = t ^ F3(r, Km[14], Kr[14]); + t = l; l = r; r = t ^ F2(r, Km[13], Kr[13]); + t = l; l = r; r = t ^ F1(r, Km[12], Kr[12]); + t = l; l = r; r = t ^ F3(r, Km[11], Kr[11]); + t = l; l = r; r = t ^ F2(r, Km[10], Kr[10]); + t = l; l = r; r = t ^ F1(r, Km[ 9], Kr[ 9]); + t = l; l = r; r = t ^ F3(r, Km[ 8], Kr[ 8]); + t = l; l = r; r = t ^ F2(r, Km[ 7], Kr[ 7]); + t = l; l = r; r = t ^ F1(r, Km[ 6], Kr[ 6]); + t = l; l = r; r = t ^ F3(r, Km[ 5], Kr[ 5]); + t = l; l = r; r = t ^ F2(r, Km[ 4], Kr[ 4]); + t = l; l = r; r = t ^ F1(r, Km[ 3], Kr[ 3]); + t = l; l = r; r = t ^ F3(r, Km[ 2], Kr[ 2]); + t = l; l = r; r = t ^ F2(r, Km[ 1], Kr[ 1]); + t = l; l = r; r = t ^ F1(r, Km[ 0], Kr[ 0]); + + outbuf[0] = (r >> 24) & 0xff; + outbuf[1] = (r >> 16) & 0xff; + outbuf[2] = (r >> 8) & 0xff; + outbuf[3] = r & 0xff; + outbuf[4] = (l >> 24) & 0xff; + outbuf[5] = (l >> 16) & 0xff; + outbuf[6] = (l >> 8) & 0xff; + outbuf[7] = l & 0xff; +} + +static void +decrypt_block (void *context, byte *outbuf, const byte *inbuf) +{ + CAST5_context *c = (CAST5_context *) context; + do_decrypt_block (c, outbuf, inbuf); + _gcry_burn_stack (20+4*sizeof(void*)); +} + + + + +static void +key_schedule( u32 *x, u32 *z, u32 *k ) +{ + +#define xi(i) ((x[(i)/4] >> (8*(3-((i)%4)))) & 0xff) +#define zi(i) ((z[(i)/4] >> (8*(3-((i)%4)))) & 0xff) + + z[0] = x[0] ^ s5[xi(13)]^s6[xi(15)]^s7[xi(12)]^s8[xi(14)]^s7[xi( 8)]; + z[1] = x[2] ^ s5[zi( 0)]^s6[zi( 2)]^s7[zi( 1)]^s8[zi( 3)]^s8[xi(10)]; + z[2] = x[3] ^ s5[zi( 7)]^s6[zi( 6)]^s7[zi( 5)]^s8[zi( 4)]^s5[xi( 9)]; + z[3] = x[1] ^ s5[zi(10)]^s6[zi( 9)]^s7[zi(11)]^s8[zi( 8)]^s6[xi(11)]; + k[0] = s5[zi( 8)]^s6[zi( 9)]^s7[zi( 7)]^s8[zi( 6)]^s5[zi( 2)]; + k[1] = s5[zi(10)]^s6[zi(11)]^s7[zi( 5)]^s8[zi( 4)]^s6[zi( 6)]; + k[2] = s5[zi(12)]^s6[zi(13)]^s7[zi( 3)]^s8[zi( 2)]^s7[zi( 9)]; + k[3] = s5[zi(14)]^s6[zi(15)]^s7[zi( 1)]^s8[zi( 0)]^s8[zi(12)]; + + x[0] = z[2] ^ s5[zi( 5)]^s6[zi( 7)]^s7[zi( 4)]^s8[zi( 6)]^s7[zi( 0)]; + x[1] = z[0] ^ s5[xi( 0)]^s6[xi( 2)]^s7[xi( 1)]^s8[xi( 3)]^s8[zi( 2)]; + x[2] = z[1] ^ s5[xi( 7)]^s6[xi( 6)]^s7[xi( 5)]^s8[xi( 4)]^s5[zi( 1)]; + x[3] = z[3] ^ s5[xi(10)]^s6[xi( 9)]^s7[xi(11)]^s8[xi( 8)]^s6[zi( 3)]; + k[4] = s5[xi( 3)]^s6[xi( 2)]^s7[xi(12)]^s8[xi(13)]^s5[xi( 8)]; + k[5] = s5[xi( 1)]^s6[xi( 0)]^s7[xi(14)]^s8[xi(15)]^s6[xi(13)]; + k[6] = s5[xi( 7)]^s6[xi( 6)]^s7[xi( 8)]^s8[xi( 9)]^s7[xi( 3)]; + k[7] = s5[xi( 5)]^s6[xi( 4)]^s7[xi(10)]^s8[xi(11)]^s8[xi( 7)]; + + z[0] = x[0] ^ s5[xi(13)]^s6[xi(15)]^s7[xi(12)]^s8[xi(14)]^s7[xi( 8)]; + z[1] = x[2] ^ s5[zi( 0)]^s6[zi( 2)]^s7[zi( 1)]^s8[zi( 3)]^s8[xi(10)]; + z[2] = x[3] ^ s5[zi( 7)]^s6[zi( 6)]^s7[zi( 5)]^s8[zi( 4)]^s5[xi( 9)]; + z[3] = x[1] ^ s5[zi(10)]^s6[zi( 9)]^s7[zi(11)]^s8[zi( 8)]^s6[xi(11)]; + k[8] = s5[zi( 3)]^s6[zi( 2)]^s7[zi(12)]^s8[zi(13)]^s5[zi( 9)]; + k[9] = s5[zi( 1)]^s6[zi( 0)]^s7[zi(14)]^s8[zi(15)]^s6[zi(12)]; + k[10]= s5[zi( 7)]^s6[zi( 6)]^s7[zi( 8)]^s8[zi( 9)]^s7[zi( 2)]; + k[11]= s5[zi( 5)]^s6[zi( 4)]^s7[zi(10)]^s8[zi(11)]^s8[zi( 6)]; + + x[0] = z[2] ^ s5[zi( 5)]^s6[zi( 7)]^s7[zi( 4)]^s8[zi( 6)]^s7[zi( 0)]; + x[1] = z[0] ^ s5[xi( 0)]^s6[xi( 2)]^s7[xi( 1)]^s8[xi( 3)]^s8[zi( 2)]; + x[2] = z[1] ^ s5[xi( 7)]^s6[xi( 6)]^s7[xi( 5)]^s8[xi( 4)]^s5[zi( 1)]; + x[3] = z[3] ^ s5[xi(10)]^s6[xi( 9)]^s7[xi(11)]^s8[xi( 8)]^s6[zi( 3)]; + k[12]= s5[xi( 8)]^s6[xi( 9)]^s7[xi( 7)]^s8[xi( 6)]^s5[xi( 3)]; + k[13]= s5[xi(10)]^s6[xi(11)]^s7[xi( 5)]^s8[xi( 4)]^s6[xi( 7)]; + k[14]= s5[xi(12)]^s6[xi(13)]^s7[xi( 3)]^s8[xi( 2)]^s7[xi( 8)]; + k[15]= s5[xi(14)]^s6[xi(15)]^s7[xi( 1)]^s8[xi( 0)]^s8[xi(13)]; + +#undef xi +#undef zi +} + + +static gcry_err_code_t +do_cast_setkey( CAST5_context *c, const byte *key, unsigned keylen ) +{ + static int initialized; + static const char* selftest_failed; + int i; + u32 x[4]; + u32 z[4]; + u32 k[16]; + + if( !initialized ) + { + initialized = 1; + selftest_failed = selftest(); + if( selftest_failed ) + log_error ("CAST5 selftest failed (%s).\n", selftest_failed ); + } + if( selftest_failed ) + return GPG_ERR_SELFTEST_FAILED; + + if( keylen != 16 ) + return GPG_ERR_INV_KEYLEN; + + x[0] = key[0] << 24 | key[1] << 16 | key[2] << 8 | key[3]; + x[1] = key[4] << 24 | key[5] << 16 | key[6] << 8 | key[7]; + x[2] = key[8] << 24 | key[9] << 16 | key[10] << 8 | key[11]; + x[3] = key[12] << 24 | key[13] << 16 | key[14] << 8 | key[15]; + + key_schedule( x, z, k ); + for(i=0; i < 16; i++ ) + c->Km[i] = k[i]; + key_schedule( x, z, k ); + for(i=0; i < 16; i++ ) + c->Kr[i] = k[i] & 0x1f; + + memset(&x,0, sizeof x); + memset(&z,0, sizeof z); + memset(&k,0, sizeof k); + +#undef xi +#undef zi + return GPG_ERR_NO_ERROR; +} + +static gcry_err_code_t +cast_setkey (void *context, const byte *key, unsigned keylen ) +{ + CAST5_context *c = (CAST5_context *) context; + gcry_err_code_t rc = do_cast_setkey (c, key, keylen); + _gcry_burn_stack (96+7*sizeof(void*)); + return rc; +} + + +gcry_cipher_spec_t _gcry_cipher_spec_cast5 = + { + "CAST5", NULL, NULL, CAST5_BLOCKSIZE, 128, sizeof (CAST5_context), + cast_setkey, encrypt_block, decrypt_block + }; + + +GRUB_MOD_INIT(gcry_cast5) +{ + grub_cipher_register (&_gcry_cipher_spec_cast5); +} + +GRUB_MOD_FINI(gcry_cast5) +{ + grub_cipher_unregister (&_gcry_cipher_spec_cast5); +} --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/sha512.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/sha512.c @@ -0,0 +1,439 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* sha512.c - SHA384 and SHA512 hash functions + * Copyright (C) 2003, 2008 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser general Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, see . + */ + + +/* Test vectors from FIPS-180-2: + * + * "abc" + * 384: + * CB00753F 45A35E8B B5A03D69 9AC65007 272C32AB 0EDED163 + * 1A8B605A 43FF5BED 8086072B A1E7CC23 58BAECA1 34C825A7 + * 512: + * DDAF35A1 93617ABA CC417349 AE204131 12E6FA4E 89A97EA2 0A9EEEE6 4B55D39A + * 2192992A 274FC1A8 36BA3C23 A3FEEBBD 454D4423 643CE80E 2A9AC94F A54CA49F + * + * "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu" + * 384: + * 09330C33 F71147E8 3D192FC7 82CD1B47 53111B17 3B3B05D2 + * 2FA08086 E3B0F712 FCC7C71A 557E2DB9 66C3E9FA 91746039 + * 512: + * 8E959B75 DAE313DA 8CF4F728 14FC143F 8F7779C6 EB9F7FA1 7299AEAD B6889018 + * 501D289E 4900F7E4 331B99DE C4B5433A C7D329EE B6DD2654 5E96E55B 874BE909 + * + * "a" x 1000000 + * 384: + * 9D0E1809 716474CB 086E834E 310A4A1C ED149E9C 00F24852 + * 7972CEC5 704C2A5B 07B8B3DC 38ECC4EB AE97DDD8 7F3D8985 + * 512: + * E718483D 0CE76964 4E2E42C7 BC15B463 8E1F98B1 3B204428 5632A803 AFA973EB + * DE0FF244 877EA60A 4CB0432C E577C31B EB009C5C 2C49AA2E 4EADB217 AD8CC09B + */ + + +#include "g10lib.h" +#include "bithelp.h" +#include "cipher.h" +#include "hash-common.h" + +typedef struct +{ + u64 h0, h1, h2, h3, h4, h5, h6, h7; + u64 nblocks; + byte buf[128]; + int count; +} SHA512_CONTEXT; + +static void +sha512_init (void *context) +{ + SHA512_CONTEXT *hd = context; + + hd->h0 = U64_C(0x6a09e667f3bcc908); + hd->h1 = U64_C(0xbb67ae8584caa73b); + hd->h2 = U64_C(0x3c6ef372fe94f82b); + hd->h3 = U64_C(0xa54ff53a5f1d36f1); + hd->h4 = U64_C(0x510e527fade682d1); + hd->h5 = U64_C(0x9b05688c2b3e6c1f); + hd->h6 = U64_C(0x1f83d9abfb41bd6b); + hd->h7 = U64_C(0x5be0cd19137e2179); + + hd->nblocks = 0; + hd->count = 0; +} + +static void +sha384_init (void *context) +{ + SHA512_CONTEXT *hd = context; + + hd->h0 = U64_C(0xcbbb9d5dc1059ed8); + hd->h1 = U64_C(0x629a292a367cd507); + hd->h2 = U64_C(0x9159015a3070dd17); + hd->h3 = U64_C(0x152fecd8f70e5939); + hd->h4 = U64_C(0x67332667ffc00b31); + hd->h5 = U64_C(0x8eb44a8768581511); + hd->h6 = U64_C(0xdb0c2e0d64f98fa7); + hd->h7 = U64_C(0x47b5481dbefa4fa4); + + hd->nblocks = 0; + hd->count = 0; +} + + +/**************** + * Transform the message W which consists of 16 64-bit-words + */ +static void +transform (SHA512_CONTEXT *hd, const unsigned char *data) +{ + u64 a, b, c, d, e, f, g, h; + u64 w[80]; + int t; + static const u64 k[] = + { + U64_C(0x428a2f98d728ae22), U64_C(0x7137449123ef65cd), + U64_C(0xb5c0fbcfec4d3b2f), U64_C(0xe9b5dba58189dbbc), + U64_C(0x3956c25bf348b538), U64_C(0x59f111f1b605d019), + U64_C(0x923f82a4af194f9b), U64_C(0xab1c5ed5da6d8118), + U64_C(0xd807aa98a3030242), U64_C(0x12835b0145706fbe), + U64_C(0x243185be4ee4b28c), U64_C(0x550c7dc3d5ffb4e2), + U64_C(0x72be5d74f27b896f), U64_C(0x80deb1fe3b1696b1), + U64_C(0x9bdc06a725c71235), U64_C(0xc19bf174cf692694), + U64_C(0xe49b69c19ef14ad2), U64_C(0xefbe4786384f25e3), + U64_C(0x0fc19dc68b8cd5b5), U64_C(0x240ca1cc77ac9c65), + U64_C(0x2de92c6f592b0275), U64_C(0x4a7484aa6ea6e483), + U64_C(0x5cb0a9dcbd41fbd4), U64_C(0x76f988da831153b5), + U64_C(0x983e5152ee66dfab), U64_C(0xa831c66d2db43210), + U64_C(0xb00327c898fb213f), U64_C(0xbf597fc7beef0ee4), + U64_C(0xc6e00bf33da88fc2), U64_C(0xd5a79147930aa725), + U64_C(0x06ca6351e003826f), U64_C(0x142929670a0e6e70), + U64_C(0x27b70a8546d22ffc), U64_C(0x2e1b21385c26c926), + U64_C(0x4d2c6dfc5ac42aed), U64_C(0x53380d139d95b3df), + U64_C(0x650a73548baf63de), U64_C(0x766a0abb3c77b2a8), + U64_C(0x81c2c92e47edaee6), U64_C(0x92722c851482353b), + U64_C(0xa2bfe8a14cf10364), U64_C(0xa81a664bbc423001), + U64_C(0xc24b8b70d0f89791), U64_C(0xc76c51a30654be30), + U64_C(0xd192e819d6ef5218), U64_C(0xd69906245565a910), + U64_C(0xf40e35855771202a), U64_C(0x106aa07032bbd1b8), + U64_C(0x19a4c116b8d2d0c8), U64_C(0x1e376c085141ab53), + U64_C(0x2748774cdf8eeb99), U64_C(0x34b0bcb5e19b48a8), + U64_C(0x391c0cb3c5c95a63), U64_C(0x4ed8aa4ae3418acb), + U64_C(0x5b9cca4f7763e373), U64_C(0x682e6ff3d6b2b8a3), + U64_C(0x748f82ee5defb2fc), U64_C(0x78a5636f43172f60), + U64_C(0x84c87814a1f0ab72), U64_C(0x8cc702081a6439ec), + U64_C(0x90befffa23631e28), U64_C(0xa4506cebde82bde9), + U64_C(0xbef9a3f7b2c67915), U64_C(0xc67178f2e372532b), + U64_C(0xca273eceea26619c), U64_C(0xd186b8c721c0c207), + U64_C(0xeada7dd6cde0eb1e), U64_C(0xf57d4f7fee6ed178), + U64_C(0x06f067aa72176fba), U64_C(0x0a637dc5a2c898a6), + U64_C(0x113f9804bef90dae), U64_C(0x1b710b35131c471b), + U64_C(0x28db77f523047d84), U64_C(0x32caab7b40c72493), + U64_C(0x3c9ebe0a15c9bebc), U64_C(0x431d67c49c100d4c), + U64_C(0x4cc5d4becb3e42b6), U64_C(0x597f299cfc657e2a), + U64_C(0x5fcb6fab3ad6faec), U64_C(0x6c44198c4a475817) + }; + + /* get values from the chaining vars */ + a = hd->h0; + b = hd->h1; + c = hd->h2; + d = hd->h3; + e = hd->h4; + f = hd->h5; + g = hd->h6; + h = hd->h7; + +#ifdef WORDS_BIGENDIAN + memcpy (w, data, 128); +#else + { + int i; + byte *p2; + + for (i = 0, p2 = (byte *) w; i < 16; i++, p2 += 8) + { + p2[7] = *data++; + p2[6] = *data++; + p2[5] = *data++; + p2[4] = *data++; + p2[3] = *data++; + p2[2] = *data++; + p2[1] = *data++; + p2[0] = *data++; + } + } +#endif + +#define ROTR(x,n) (((x)>>(n)) | ((x)<<(64-(n)))) +#define Ch(x,y,z) (((x) & (y)) ^ ((~(x)) & (z))) +#define Maj(x,y,z) (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z))) +#define Sum0(x) (ROTR((x),28) ^ ROTR((x),34) ^ ROTR((x),39)) +#define Sum1(x) (ROTR((x),14) ^ ROTR((x),18) ^ ROTR((x),41)) +#define S0(x) (ROTR((x),1) ^ ROTR((x),8) ^ ((x)>>7)) +#define S1(x) (ROTR((x),19) ^ ROTR((x),61) ^ ((x)>>6)) + + for (t = 16; t < 80; t++) + w[t] = S1 (w[t - 2]) + w[t - 7] + S0 (w[t - 15]) + w[t - 16]; + + for (t = 0; t < 80; t++) + { + u64 t1, t2; + + t1 = h + Sum1 (e) + Ch (e, f, g) + k[t] + w[t]; + t2 = Sum0 (a) + Maj (a, b, c); + h = g; + g = f; + f = e; + e = d + t1; + d = c; + c = b; + b = a; + a = t1 + t2; + + /* printf("t=%d a=%016llX b=%016llX c=%016llX d=%016llX " + "e=%016llX f=%016llX g=%016llX h=%016llX\n",t,a,b,c,d,e,f,g,h); */ + } + + /* update chaining vars */ + hd->h0 += a; + hd->h1 += b; + hd->h2 += c; + hd->h3 += d; + hd->h4 += e; + hd->h5 += f; + hd->h6 += g; + hd->h7 += h; +} + + +/* Update the message digest with the contents + * of INBUF with length INLEN. + */ +static void +sha512_write (void *context, const void *inbuf_arg, size_t inlen) +{ + const unsigned char *inbuf = inbuf_arg; + SHA512_CONTEXT *hd = context; + + if (hd->count == 128) + { /* flush the buffer */ + transform (hd, hd->buf); + _gcry_burn_stack (768); + hd->count = 0; + hd->nblocks++; + } + if (!inbuf) + return; + if (hd->count) + { + for (; inlen && hd->count < 128; inlen--) + hd->buf[hd->count++] = *inbuf++; + sha512_write (context, NULL, 0); + if (!inlen) + return; + } + + while (inlen >= 128) + { + transform (hd, inbuf); + hd->count = 0; + hd->nblocks++; + inlen -= 128; + inbuf += 128; + } + _gcry_burn_stack (768); + for (; inlen && hd->count < 128; inlen--) + hd->buf[hd->count++] = *inbuf++; +} + + +/* The routine final terminates the computation and + * returns the digest. + * The handle is prepared for a new cycle, but adding bytes to the + * handle will the destroy the returned buffer. + * Returns: 64 bytes representing the digest. When used for sha384, + * we take the leftmost 48 of those bytes. + */ + +static void +sha512_final (void *context) +{ + SHA512_CONTEXT *hd = context; + u64 t, msb, lsb; + byte *p; + + sha512_write (context, NULL, 0); /* flush */ ; + + t = hd->nblocks; + /* multiply by 128 to make a byte count */ + lsb = t << 7; + msb = t >> 57; + /* add the count */ + t = lsb; + if ((lsb += hd->count) < t) + msb++; + /* multiply by 8 to make a bit count */ + t = lsb; + lsb <<= 3; + msb <<= 3; + msb |= t >> 61; + + if (hd->count < 112) + { /* enough room */ + hd->buf[hd->count++] = 0x80; /* pad */ + while (hd->count < 112) + hd->buf[hd->count++] = 0; /* pad */ + } + else + { /* need one extra block */ + hd->buf[hd->count++] = 0x80; /* pad character */ + while (hd->count < 128) + hd->buf[hd->count++] = 0; + sha512_write (context, NULL, 0); /* flush */ ; + memset (hd->buf, 0, 112); /* fill next block with zeroes */ + } + /* append the 128 bit count */ + hd->buf[112] = msb >> 56; + hd->buf[113] = msb >> 48; + hd->buf[114] = msb >> 40; + hd->buf[115] = msb >> 32; + hd->buf[116] = msb >> 24; + hd->buf[117] = msb >> 16; + hd->buf[118] = msb >> 8; + hd->buf[119] = msb; + + hd->buf[120] = lsb >> 56; + hd->buf[121] = lsb >> 48; + hd->buf[122] = lsb >> 40; + hd->buf[123] = lsb >> 32; + hd->buf[124] = lsb >> 24; + hd->buf[125] = lsb >> 16; + hd->buf[126] = lsb >> 8; + hd->buf[127] = lsb; + transform (hd, hd->buf); + _gcry_burn_stack (768); + + p = hd->buf; +#ifdef WORDS_BIGENDIAN +#define X(a) do { *(u64*)p = hd->h##a ; p += 8; } while (0) +#else /* little endian */ +#define X(a) do { *p++ = hd->h##a >> 56; *p++ = hd->h##a >> 48; \ + *p++ = hd->h##a >> 40; *p++ = hd->h##a >> 32; \ + *p++ = hd->h##a >> 24; *p++ = hd->h##a >> 16; \ + *p++ = hd->h##a >> 8; *p++ = hd->h##a; } while (0) +#endif + X (0); + X (1); + X (2); + X (3); + X (4); + X (5); + /* Note that these last two chunks are included even for SHA384. + We just ignore them. */ + X (6); + X (7); +#undef X +} + +static byte * +sha512_read (void *context) +{ + SHA512_CONTEXT *hd = (SHA512_CONTEXT *) context; + return hd->buf; +} + + + +/* + Self-test section. + */ + + + + + +/* Run a full self-test for ALGO and return 0 on success. */ + + + + +static byte sha512_asn[] = /* Object ID is 2.16.840.1.101.3.4.2.3 */ + { + 0x30, 0x51, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, + 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03, 0x05, + 0x00, 0x04, 0x40 + }; + +static gcry_md_oid_spec_t oid_spec_sha512[] = + { + { "2.16.840.1.101.3.4.2.3" }, + + /* PKCS#1 sha512WithRSAEncryption */ + { "1.2.840.113549.1.1.13" }, + + { NULL } + }; + +gcry_md_spec_t _gcry_digest_spec_sha512 = + { + "SHA512", sha512_asn, DIM (sha512_asn), oid_spec_sha512, 64, + sha512_init, sha512_write, sha512_final, sha512_read, + sizeof (SHA512_CONTEXT), + .blocksize = 128 + }; + +static byte sha384_asn[] = /* Object ID is 2.16.840.1.101.3.4.2.2 */ + { + 0x30, 0x41, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, + 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x02, 0x05, + 0x00, 0x04, 0x30 + }; + +static gcry_md_oid_spec_t oid_spec_sha384[] = + { + { "2.16.840.1.101.3.4.2.2" }, + + /* PKCS#1 sha384WithRSAEncryption */ + { "1.2.840.113549.1.1.12" }, + + { NULL }, + }; + +gcry_md_spec_t _gcry_digest_spec_sha384 = + { + "SHA384", sha384_asn, DIM (sha384_asn), oid_spec_sha384, 48, + sha384_init, sha512_write, sha512_final, sha512_read, + sizeof (SHA512_CONTEXT), + .blocksize = 128 + }; + + +GRUB_MOD_INIT(gcry_sha512) +{ + grub_md_register (&_gcry_digest_spec_sha512); + grub_md_register (&_gcry_digest_spec_sha384); +} + +GRUB_MOD_FINI(gcry_sha512) +{ + grub_md_unregister (&_gcry_digest_spec_sha512); + grub_md_unregister (&_gcry_digest_spec_sha384); +} --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/types.h +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/types.h @@ -0,0 +1,2 @@ +#include +#include --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/crc.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/crc.c @@ -0,0 +1,316 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* crc.c - Cyclic redundancy checks. + * Copyright (C) 2003 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + * + */ + + +#include "g10lib.h" +#include "memory.h" +#include "cipher.h" + +#include "bithelp.h" + +/* Table of CRCs of all 8-bit messages. Generated by running code + from RFC 1952 modified to print out the table. */ +static u32 crc32_table[256] = { + 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, + 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, + 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, + 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, + 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, + 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, + 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, + 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, + 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, + 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, + 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106, + 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, + 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, + 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, + 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, + 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, + 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, + 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, + 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, + 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, + 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, + 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, + 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, + 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, + 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, + 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, + 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e, + 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, + 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, + 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, + 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, + 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, + 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, + 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, + 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, + 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, + 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, + 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, + 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, + 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, + 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, + 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, + 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d +}; + +/* + * The following function was extracted from RFC 1952 by Simon + * Josefsson, for the Shishi project, and modified to be compatible + * with the modified CRC-32 used by RFC 1510, and subsequently + * modified for GNU Libgcrypt to allow it to be used for calculating + * both unmodified CRC-32 and modified CRC-32 values. Original + * copyright and notice from the document follows: + * + * Copyright (c) 1996 L. Peter Deutsch + * + * Permission is granted to copy and distribute this document for + * any purpose and without charge, including translations into + * other languages and incorporation into compilations, provided + * that the copyright notice and this notice are preserved, and + * that any substantive changes or deletions from the original are + * clearly marked. + * + * The copyright on RFCs, and consequently the function below, are + * supposedly also retroactively claimed by the Internet Society + * (according to rfc-editor@rfc-editor.org), with the following + * copyright notice: + * + * Copyright (C) The Internet Society. All Rights Reserved. + * + * This document and translations of it may be copied and furnished + * to others, and derivative works that comment on or otherwise + * explain it or assist in its implementation may be prepared, + * copied, published and distributed, in whole or in part, without + * restriction of any kind, provided that the above copyright + * notice and this paragraph are included on all such copies and + * derivative works. However, this document itself may not be + * modified in any way, such as by removing the copyright notice or + * references to the Internet Society or other Internet + * organizations, except as needed for the purpose of developing + * Internet standards in which case the procedures for copyrights + * defined in the Internet Standards process must be followed, or + * as required to translate it into languages other than English. + * + * The limited permissions granted above are perpetual and will not be + * revoked by the Internet Society or its successors or assigns. + * + * This document and the information contained herein is provided + * on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET + * ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE + * OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY + * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A + * PARTICULAR PURPOSE. + * + */ +static u32 +update_crc32 (u32 crc, const void *buf_arg, size_t len) +{ + const char *buf = buf_arg; + size_t n; + + for (n = 0; n < len; n++) + crc = crc32_table[(crc ^ buf[n]) & 0xff] ^ (crc >> 8); + + return crc; +} + +typedef struct +{ + u32 CRC; + byte buf[4]; +} +CRC_CONTEXT; + +/* CRC32 */ + +static void +crc32_init (void *context) +{ + CRC_CONTEXT *ctx = (CRC_CONTEXT *) context; + ctx->CRC = 0 ^ 0xffffffffL; +} + +static void +crc32_write (void *context, const void *inbuf, size_t inlen) +{ + CRC_CONTEXT *ctx = (CRC_CONTEXT *) context; + if (!inbuf) + return; + ctx->CRC = update_crc32 (ctx->CRC, inbuf, inlen); +} + +static byte * +crc32_read (void *context) +{ + CRC_CONTEXT *ctx = (CRC_CONTEXT *) context; + return ctx->buf; +} + +static void +crc32_final (void *context) +{ + CRC_CONTEXT *ctx = (CRC_CONTEXT *) context; + ctx->CRC ^= 0xffffffffL; + ctx->buf[0] = (ctx->CRC >> 24) & 0xFF; + ctx->buf[1] = (ctx->CRC >> 16) & 0xFF; + ctx->buf[2] = (ctx->CRC >> 8) & 0xFF; + ctx->buf[3] = (ctx->CRC ) & 0xFF; +} + +/* CRC32 a'la RFC 1510 */ +static void +crc32rfc1510_init (void *context) +{ + CRC_CONTEXT *ctx = (CRC_CONTEXT *) context; + ctx->CRC = 0; +} + +static void +crc32rfc1510_final (void *context) +{ + CRC_CONTEXT *ctx = (CRC_CONTEXT *) context; + ctx->buf[0] = (ctx->CRC >> 24) & 0xFF; + ctx->buf[1] = (ctx->CRC >> 16) & 0xFF; + ctx->buf[2] = (ctx->CRC >> 8) & 0xFF; + ctx->buf[3] = (ctx->CRC ) & 0xFF; +} + +/* CRC24 a'la RFC 2440 */ +/* + * The following CRC 24 routines are adapted from RFC 2440, which has + * the following copyright notice: + * + * Copyright (C) The Internet Society (1998). All Rights Reserved. + * + * This document and translations of it may be copied and furnished + * to others, and derivative works that comment on or otherwise + * explain it or assist in its implementation may be prepared, + * copied, published and distributed, in whole or in part, without + * restriction of any kind, provided that the above copyright notice + * and this paragraph are included on all such copies and derivative + * works. However, this document itself may not be modified in any + * way, such as by removing the copyright notice or references to + * the Internet Society or other Internet organizations, except as + * needed for the purpose of developing Internet standards in which + * case the procedures for copyrights defined in the Internet + * Standards process must be followed, or as required to translate + * it into languages other than English. + * + * The limited permissions granted above are perpetual and will not be + * revoked by the Internet Society or its successors or assigns. + * + * This document and the information contained herein is provided on + * an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET + * ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE + * OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY + * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR + * PURPOSE. + */ + +#define CRC24_INIT 0xb704ceL +#define CRC24_POLY 0x1864cfbL + +static void +crc24rfc2440_init (void *context) +{ + CRC_CONTEXT *ctx = (CRC_CONTEXT *) context; + ctx->CRC = CRC24_INIT; +} + +static void +crc24rfc2440_write (void *context, const void *inbuf_arg, size_t inlen) +{ + const unsigned char *inbuf = inbuf_arg; + int i; + CRC_CONTEXT *ctx = (CRC_CONTEXT *) context; + + if (!inbuf) + return; + + while (inlen--) { + ctx->CRC ^= (*inbuf++) << 16; + for (i = 0; i < 8; i++) { + ctx->CRC <<= 1; + if (ctx->CRC & 0x1000000) + ctx->CRC ^= CRC24_POLY; + } + } +} + +static void +crc24rfc2440_final (void *context) +{ + CRC_CONTEXT *ctx = (CRC_CONTEXT *) context; + ctx->buf[0] = (ctx->CRC >> 16) & 0xFF; + ctx->buf[1] = (ctx->CRC >> 8) & 0xFF; + ctx->buf[2] = (ctx->CRC ) & 0xFF; +} + +gcry_md_spec_t _gcry_digest_spec_crc32 = + { + "CRC32", NULL, 0, NULL, 4, + crc32_init, crc32_write, crc32_final, crc32_read, + sizeof (CRC_CONTEXT) + , + .blocksize = 64 + }; + +gcry_md_spec_t _gcry_digest_spec_crc32_rfc1510 = + { + "CRC32RFC1510", NULL, 0, NULL, 4, + crc32rfc1510_init, crc32_write, + crc32rfc1510_final, crc32_read, + sizeof (CRC_CONTEXT) + , + .blocksize = 64 + }; + +gcry_md_spec_t _gcry_digest_spec_crc24_rfc2440 = + { + "CRC24RFC2440", NULL, 0, NULL, 3, + crc24rfc2440_init, crc24rfc2440_write, + crc24rfc2440_final, crc32_read, + sizeof (CRC_CONTEXT) + , + .blocksize = 64 + }; + + +GRUB_MOD_INIT(gcry_crc) +{ + grub_md_register (&_gcry_digest_spec_crc32); + grub_md_register (&_gcry_digest_spec_crc32_rfc1510); + grub_md_register (&_gcry_digest_spec_crc24_rfc2440); +} + +GRUB_MOD_FINI(gcry_crc) +{ + grub_md_unregister (&_gcry_digest_spec_crc32); + grub_md_unregister (&_gcry_digest_spec_crc32_rfc1510); + grub_md_unregister (&_gcry_digest_spec_crc24_rfc2440); +} --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/ecc.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/ecc.c @@ -0,0 +1,1349 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* ecc.c - Elliptic Curve Cryptography + Copyright (C) 2007, 2008 Free Software Foundation, Inc. + + This file is part of Libgcrypt. + + Libgcrypt is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of + the License, or (at your option) any later version. + + Libgcrypt 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 Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser 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. */ + +/* This code is originally based on the Patch 0.1.6 for the gnupg + 1.4.x branch as retrieved on 2007-03-21 from + http://www.calcurco.cat/eccGnuPG/src/gnupg-1.4.6-ecc0.2.0beta1.diff.bz2 + The original authors are: + Written by + Sergi Blanch i Torne , + Ramiro Moreno Chiral + Maintainers + Sergi Blanch i Torne + Ramiro Moreno Chiral + Mikael Mylnikov (mmr) + For use in Libgcrypt the code has been heavily modified and cleaned + up. In fact there is not much left of the orginally code except for + some variable names and the text book implementaion of the sign and + verification algorithms. The arithmetic functions have entirely + been rewritten and moved to mpi/ec.c. */ + + +/* TODO: + + - If we support point compression we need to decide how to compute + the keygrip - it should not change due to compression. + + - In mpi/ec.c we use mpi_powm for x^2 mod p: Either implement a + special case in mpi_powm or check whether mpi_mulm is faster. + + - Decide whether we should hide the mpi_point_t definition. + + - Support more than just ECDSA. +*/ + + + +#include "g10lib.h" +#include "mpi.h" +#include "cipher.h" + + +/* Definition of a curve. */ +typedef struct +{ + gcry_mpi_t p; /* Prime specifying the field GF(p). */ + gcry_mpi_t a; /* First coefficient of the Weierstrass equation. */ + gcry_mpi_t b; /* Second coefficient of the Weierstrass equation. */ + mpi_point_t G; /* Base point (generator). */ + gcry_mpi_t n; /* Order of G. */ +} elliptic_curve_t; + + +typedef struct +{ + elliptic_curve_t E; + mpi_point_t Q; /* Q = [d]G */ +} ECC_public_key; + +typedef struct +{ + elliptic_curve_t E; + mpi_point_t Q; + gcry_mpi_t d; +} ECC_secret_key; + + +/* This tables defines aliases for curve names. */ +static const struct +{ + const char *name; /* Our name. */ + const char *other; /* Other name. */ +} curve_aliases[] = + { + { "NIST P-192", "1.2.840.10045.3.1.1" }, /* X9.62 OID */ + { "NIST P-192", "prime192v1" }, /* X9.62 name. */ + { "NIST P-192", "secp192r1" }, /* SECP name. */ + + { "NIST P-224", "secp224r1" }, + { "NIST P-224", "1.3.132.0.33" }, /* SECP OID. */ + + { "NIST P-256", "1.2.840.10045.3.1.7" }, /* From NIST SP 800-78-1. */ + { "NIST P-256", "prime256v1" }, + { "NIST P-256", "secp256r1" }, + + { "NIST P-384", "secp384r1" }, + { "NIST P-384", "1.3.132.0.34" }, + + { "NIST P-521", "secp521r1" }, + { "NIST P-521", "1.3.132.0.35" }, + + { "brainpoolP160r1", "1.3.36.3.3.2.8.1.1.1" }, + { "brainpoolP192r1", "1.3.36.3.3.2.8.1.1.3" }, + { "brainpoolP224r1", "1.3.36.3.3.2.8.1.1.5" }, + { "brainpoolP256r1", "1.3.36.3.3.2.8.1.1.7" }, + { "brainpoolP320r1", "1.3.36.3.3.2.8.1.1.9" }, + { "brainpoolP384r1", "1.3.36.3.3.2.8.1.1.11"}, + { "brainpoolP512r1", "1.3.36.3.3.2.8.1.1.13"}, + + { NULL, NULL} + }; + + + +/* This static table defines all available curves. */ +static const struct +{ + const char *desc; /* Description of the curve. */ + unsigned int nbits; /* Number of bits. */ + unsigned int fips:1; /* True if this is a FIPS140-2 approved curve. */ + const char *p; /* Order of the prime field. */ + const char *a, *b; /* The coefficients. */ + const char *n; /* The order of the base point. */ + const char *g_x, *g_y; /* Base point. */ +} domain_parms[] = + { + { + "NIST P-192", 192, 1, + "0xfffffffffffffffffffffffffffffffeffffffffffffffff", + "0xfffffffffffffffffffffffffffffffefffffffffffffffc", + "0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1", + "0xffffffffffffffffffffffff99def836146bc9b1b4d22831", + + "0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012", + "0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811" + }, + { + "NIST P-224", 224, 1, + "0xffffffffffffffffffffffffffffffff000000000000000000000001", + "0xfffffffffffffffffffffffffffffffefffffffffffffffffffffffe", + "0xb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4", + "0xffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d" , + + "0xb70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21", + "0xbd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34" + }, + { + "NIST P-256", 256, 1, + "0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff", + "0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc", + "0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b", + "0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551", + + "0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296", + "0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5" + }, + { + "NIST P-384", 384, 1, + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" + "ffffffff0000000000000000ffffffff", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" + "ffffffff0000000000000000fffffffc", + "0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875a" + "c656398d8a2ed19d2a85c8edd3ec2aef", + "0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf" + "581a0db248b0a77aecec196accc52973", + + "0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a38" + "5502f25dbf55296c3a545e3872760ab7", + "0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c0" + "0a60b1ce1d7e819d7a431d7c90ea0e5f" + }, + { + "NIST P-521", 521, 1, + "0x01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "0x01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc", + "0x051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef10" + "9e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00", + "0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + "ffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409", + + "0xc6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3d" + "baa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66", + "0x11839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e6" + "62c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650" + }, + + { "brainpoolP160r1", 160, 0, + "0xe95e4a5f737059dc60dfc7ad95b3d8139515620f", + "0x340e7be2a280eb74e2be61bada745d97e8f7c300", + "0x1e589a8595423412134faa2dbdec95c8d8675e58", + "0xe95e4a5f737059dc60df5991d45029409e60fc09", + "0xbed5af16ea3f6a4f62938c4631eb5af7bdbcdbc3", + "0x1667cb477a1a8ec338f94741669c976316da6321" + }, + + { "brainpoolP192r1", 192, 0, + "0xc302f41d932a36cda7a3463093d18db78fce476de1a86297", + "0x6a91174076b1e0e19c39c031fe8685c1cae040e5c69a28ef", + "0x469a28ef7c28cca3dc721d044f4496bcca7ef4146fbf25c9", + "0xc302f41d932a36cda7a3462f9e9e916b5be8f1029ac4acc1", + "0xc0a0647eaab6a48753b033c56cb0f0900a2f5c4853375fd6", + "0x14b690866abd5bb88b5f4828c1490002e6773fa2fa299b8f" + }, + + { "brainpoolP224r1", 224, 0, + "0xd7c134aa264366862a18302575d1d787b09f075797da89f57ec8c0ff", + "0x68a5e62ca9ce6c1c299803a6c1530b514e182ad8b0042a59cad29f43", + "0x2580f63ccfe44138870713b1a92369e33e2135d266dbb372386c400b", + "0xd7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a7939f", + "0x0d9029ad2c7e5cf4340823b2a87dc68c9e4ce3174c1e6efdee12c07d", + "0x58aa56f772c0726f24c6b89e4ecdac24354b9e99caa3f6d3761402cd" + }, + + { "brainpoolP256r1", 256, 0, + "0xa9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5377", + "0x7d5a0975fc2c3057eef67530417affe7fb8055c126dc5c6ce94a4b44f330b5d9", + "0x26dc5c6ce94a4b44f330b5d9bbd77cbf958416295cf7e1ce6bccdc18ff8c07b6", + "0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a7", + "0x8bd2aeb9cb7e57cb2c4b482ffc81b7afb9de27e1e3bd23c23a4453bd9ace3262", + "0x547ef835c3dac4fd97f8461a14611dc9c27745132ded8e545c1d54c72f046997" + }, + + { "brainpoolP320r1", 320, 0, + "0xd35e472036bc4fb7e13c785ed201e065f98fcfa6f6f40def4f92b9ec7893ec28" + "fcd412b1f1b32e27", + "0x3ee30b568fbab0f883ccebd46d3f3bb8a2a73513f5eb79da66190eb085ffa9f4" + "92f375a97d860eb4", + "0x520883949dfdbc42d3ad198640688a6fe13f41349554b49acc31dccd88453981" + "6f5eb4ac8fb1f1a6", + "0xd35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e9" + "8691555b44c59311", + "0x43bd7e9afb53d8b85289bcc48ee5bfe6f20137d10a087eb6e7871e2a10a599c7" + "10af8d0d39e20611", + "0x14fdd05545ec1cc8ab4093247f77275e0743ffed117182eaa9c77877aaac6ac7" + "d35245d1692e8ee1" + }, + + { "brainpoolP384r1", 384, 0, + "0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123" + "acd3a729901d1a71874700133107ec53", + "0x7bc382c63d8c150c3c72080ace05afa0c2bea28e4fb22787139165efba91f90f" + "8aa5814a503ad4eb04a8c7dd22ce2826", + "0x04a8c7dd22ce28268b39b55416f0447c2fb77de107dcd2a62e880ea53eeb62d5" + "7cb4390295dbc9943ab78696fa504c11", + "0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7" + "cf3ab6af6b7fc3103b883202e9046565", + "0x1d1c64f068cf45ffa2a63a81b7c13f6b8847a3e77ef14fe3db7fcafe0cbd10e8" + "e826e03436d646aaef87b2e247d4af1e", + "0x8abe1d7520f9c2a45cb1eb8e95cfd55262b70b29feec5864e19c054ff9912928" + "0e4646217791811142820341263c5315" + }, + + { "brainpoolP512r1", 512, 0, + "0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330871" + "7d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f3", + "0x7830a3318b603b89e2327145ac234cc594cbdd8d3df91610a83441caea9863bc" + "2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94ca", + "0x3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a7" + "2bf2c7b9e7c1ac4d77fc94cadc083e67984050b75ebae5dd2809bd638016f723", + "0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870" + "553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90069", + "0x81aee4bdd82ed9645a21322e9c4c6a9385ed9f70b5d916c1b43b62eef4d0098e" + "ff3b1f78e2d0d48d50d1687b93b97d5f7c6d5047406a5e688b352209bcb9f822", + "0x7dde385d566332ecc0eabfa9cf7822fdf209f70024a57b1aa000c55b881f8111" + "b2dcde494a5f485e5bca4bd88a2763aed1ca2b2fa8f0540678cd1e0f3ad80892" + }, + + { NULL, 0, 0, NULL, NULL, NULL, NULL } + }; + + +/* Registered progress function and its callback value. */ +static void (*progress_cb) (void *, const char*, int, int, int); +static void *progress_cb_data; + + +#define point_init(a) _gcry_mpi_ec_point_init ((a)) +#define point_free(a) _gcry_mpi_ec_point_free ((a)) + + + +/* Local prototypes. */ +static gcry_mpi_t gen_k (gcry_mpi_t p, int security_level); +static void test_keys (ECC_secret_key * sk, unsigned int nbits); +static int check_secret_key (ECC_secret_key * sk); +static gpg_err_code_t sign (gcry_mpi_t input, ECC_secret_key *skey, + gcry_mpi_t r, gcry_mpi_t s); +static gpg_err_code_t verify (gcry_mpi_t input, ECC_public_key *pkey, + gcry_mpi_t r, gcry_mpi_t s); + + +static gcry_mpi_t gen_y_2 (gcry_mpi_t x, elliptic_curve_t * base); + + + + +void +_gcry_register_pk_ecc_progress (void (*cb) (void *, const char *, + int, int, int), + void *cb_data) +{ + progress_cb = cb; + progress_cb_data = cb_data; +} + +/* static void */ +/* progress (int c) */ +/* { */ +/* if (progress_cb) */ +/* progress_cb (progress_cb_data, "pk_ecc", c, 0, 0); */ +/* } */ + + + + +/* Set the value from S into D. */ +static void +point_set (mpi_point_t *d, mpi_point_t *s) +{ + mpi_set (d->x, s->x); + mpi_set (d->y, s->y); + mpi_set (d->z, s->z); +} + + +/* + * Release a curve object. + */ +static void +curve_free (elliptic_curve_t *E) +{ + mpi_free (E->p); E->p = NULL; + mpi_free (E->a); E->a = NULL; + mpi_free (E->b); E->b = NULL; + point_free (&E->G); + mpi_free (E->n); E->n = NULL; +} + + +/* + * Return a copy of a curve object. + */ +static elliptic_curve_t +curve_copy (elliptic_curve_t E) +{ + elliptic_curve_t R; + + R.p = mpi_copy (E.p); + R.a = mpi_copy (E.a); + R.b = mpi_copy (E.b); + point_init (&R.G); + point_set (&R.G, &E.G); + R.n = mpi_copy (E.n); + + return R; +} + + + +/* Helper to scan a hex string. */ +static gcry_mpi_t +scanval (const char *string) +{ + gpg_error_t err; + gcry_mpi_t val; + + err = gcry_mpi_scan (&val, GCRYMPI_FMT_HEX, string, 0, NULL); + if (err) + log_fatal ("scanning ECC parameter failed: %s\n", gpg_strerror (err)); + return val; +} + + + + + +/**************** + * Solve the right side of the equation that defines a curve. + */ +static gcry_mpi_t +gen_y_2 (gcry_mpi_t x, elliptic_curve_t *base) +{ + gcry_mpi_t three, x_3, axb, y; + + three = mpi_alloc_set_ui (3); + x_3 = mpi_new (0); + axb = mpi_new (0); + y = mpi_new (0); + + mpi_powm (x_3, x, three, base->p); + mpi_mulm (axb, base->a, x, base->p); + mpi_addm (axb, axb, base->b, base->p); + mpi_addm (y, x_3, axb, base->p); + + mpi_free (x_3); + mpi_free (axb); + mpi_free (three); + return y; /* The quadratic value of the coordinate if it exist. */ +} + + + + + +/* Generate a random secret scalar k with an order of p + + At the beginning this was identical to the code is in elgamal.c. + Later imporved by mmr. Further simplified by wk. */ +static gcry_mpi_t +gen_k (gcry_mpi_t p, int security_level) +{ + gcry_mpi_t k; + unsigned int nbits; + + nbits = mpi_get_nbits (p); + k = mpi_snew (nbits); + if (DBG_CIPHER) + log_debug ("choosing a random k of %u bits\n", nbits); + + gcry_mpi_randomize (k, nbits, security_level); + + mpi_mod (k, k, p); /* k = k mod p */ + + return k; +} + +/**************** + * Generate the crypto system setup. + * As of now the fix NIST recommended values are used. + * The subgroup generator point is in another function: gen_big_point. + */ +static gpg_err_code_t +generate_curve (unsigned int nbits, const char *name, + elliptic_curve_t *curve, unsigned int *r_nbits) +{ + int idx, aliasno; + + if (name) + { + /* First check nor native curves. */ + for (idx = 0; domain_parms[idx].desc; idx++) + if (!strcmp (name, domain_parms[idx].desc)) + break; + /* If not found consult the alias table. */ + if (!domain_parms[idx].desc) + { + for (aliasno = 0; curve_aliases[aliasno].name; aliasno++) + if (!strcmp (name, curve_aliases[aliasno].other)) + break; + if (curve_aliases[aliasno].name) + { + for (idx = 0; domain_parms[idx].desc; idx++) + if (!strcmp (curve_aliases[aliasno].name, + domain_parms[idx].desc)) + break; + } + } + } + else + { + for (idx = 0; domain_parms[idx].desc; idx++) + if (nbits == domain_parms[idx].nbits) + break; + } + if (!domain_parms[idx].desc) + return GPG_ERR_INV_VALUE; + + /* In fips mode we only support NIST curves. Note that it is + possible to bypass this check by specifying the curve parameters + directly. */ + if (fips_mode () && !domain_parms[idx].fips ) + return GPG_ERR_NOT_SUPPORTED; + + + *r_nbits = domain_parms[idx].nbits; + curve->p = scanval (domain_parms[idx].p); + curve->a = scanval (domain_parms[idx].a); + curve->b = scanval (domain_parms[idx].b); + curve->n = scanval (domain_parms[idx].n); + curve->G.x = scanval (domain_parms[idx].g_x); + curve->G.y = scanval (domain_parms[idx].g_y); + curve->G.z = mpi_alloc_set_ui (1); + + return 0; +} + + +/* + * First obtain the setup. Over the finite field randomize an scalar + * secret value, and calculate the public point. + */ +static gpg_err_code_t +generate_key (ECC_secret_key *sk, unsigned int nbits, const char *name, + gcry_mpi_t g_x, gcry_mpi_t g_y, + gcry_mpi_t q_x, gcry_mpi_t q_y) +{ + gpg_err_code_t err; + elliptic_curve_t E; + gcry_mpi_t d; + mpi_point_t Q; + mpi_ec_t ctx; + + err = generate_curve (nbits, name, &E, &nbits); + if (err) + return err; + + if (DBG_CIPHER) + { + log_mpidump ("ecc generation p", E.p); + log_mpidump ("ecc generation a", E.a); + log_mpidump ("ecc generation b", E.b); + log_mpidump ("ecc generation n", E.n); + log_mpidump ("ecc generation Gx", E.G.x); + log_mpidump ("ecc generation Gy", E.G.y); + log_mpidump ("ecc generation Gz", E.G.z); + } + + if (DBG_CIPHER) + log_debug ("choosing a random x of size %u\n", nbits); + d = gen_k (E.n, GCRY_VERY_STRONG_RANDOM); + + /* Compute Q. */ + point_init (&Q); + ctx = _gcry_mpi_ec_init (E.p, E.a); + _gcry_mpi_ec_mul_point (&Q, d, &E.G, ctx); + + /* Copy the stuff to the key structures. */ + sk->E.p = mpi_copy (E.p); + sk->E.a = mpi_copy (E.a); + sk->E.b = mpi_copy (E.b); + point_init (&sk->E.G); + point_set (&sk->E.G, &E.G); + sk->E.n = mpi_copy (E.n); + point_init (&sk->Q); + point_set (&sk->Q, &Q); + sk->d = mpi_copy (d); + /* We also return copies of G and Q in affine coordinates if + requested. */ + if (g_x && g_y) + { + if (_gcry_mpi_ec_get_affine (g_x, g_y, &sk->E.G, ctx)) + log_fatal ("ecc generate: Failed to get affine coordinates\n"); + } + if (q_x && q_y) + { + if (_gcry_mpi_ec_get_affine (q_x, q_y, &sk->Q, ctx)) + log_fatal ("ecc generate: Failed to get affine coordinates\n"); + } + _gcry_mpi_ec_free (ctx); + + point_free (&Q); + mpi_free (d); + curve_free (&E); + + /* Now we can test our keys (this should never fail!). */ + test_keys (sk, nbits - 64); + + return 0; +} + + +/**************** + * To verify correct skey it use a random information. + * First, encrypt and decrypt this dummy value, + * test if the information is recuperated. + * Second, test with the sign and verify functions. + */ +static void +test_keys (ECC_secret_key *sk, unsigned int nbits) +{ + ECC_public_key pk; + gcry_mpi_t test = mpi_new (nbits); + mpi_point_t R_; + gcry_mpi_t c = mpi_new (nbits); + gcry_mpi_t out = mpi_new (nbits); + gcry_mpi_t r = mpi_new (nbits); + gcry_mpi_t s = mpi_new (nbits); + + if (DBG_CIPHER) + log_debug ("Testing key.\n"); + + point_init (&R_); + + pk.E = curve_copy (sk->E); + point_init (&pk.Q); + point_set (&pk.Q, &sk->Q); + + gcry_mpi_randomize (test, nbits, GCRY_WEAK_RANDOM); + + if (sign (test, sk, r, s) ) + log_fatal ("ECDSA operation: sign failed\n"); + + if (verify (test, &pk, r, s)) + { + log_fatal ("ECDSA operation: sign, verify failed\n"); + } + + if (DBG_CIPHER) + log_debug ("ECDSA operation: sign, verify ok.\n"); + + point_free (&pk.Q); + curve_free (&pk.E); + + point_free (&R_); + mpi_free (s); + mpi_free (r); + mpi_free (out); + mpi_free (c); + mpi_free (test); +} + +/**************** + * To check the validity of the value, recalculate the correspondence + * between the public value and the secret one. + */ +static int +check_secret_key (ECC_secret_key * sk) +{ + mpi_point_t Q; + gcry_mpi_t y_2, y2 = mpi_alloc (0); + mpi_ec_t ctx; + + /* ?primarity test of 'p' */ + /* (...) //!! */ + /* G in E(F_p) */ + y_2 = gen_y_2 (sk->E.G.x, &sk->E); /* y^2=x^3+a*x+b */ + mpi_mulm (y2, sk->E.G.y, sk->E.G.y, sk->E.p); /* y^2=y*y */ + if (mpi_cmp (y_2, y2)) + { + if (DBG_CIPHER) + log_debug ("Bad check: Point 'G' does not belong to curve 'E'!\n"); + return (1); + } + /* G != PaI */ + if (!mpi_cmp_ui (sk->E.G.z, 0)) + { + if (DBG_CIPHER) + log_debug ("Bad check: 'G' cannot be Point at Infinity!\n"); + return (1); + } + + point_init (&Q); + ctx = _gcry_mpi_ec_init (sk->E.p, sk->E.a); + _gcry_mpi_ec_mul_point (&Q, sk->E.n, &sk->E.G, ctx); + if (mpi_cmp_ui (Q.z, 0)) + { + if (DBG_CIPHER) + log_debug ("check_secret_key: E is not a curve of order n\n"); + point_free (&Q); + _gcry_mpi_ec_free (ctx); + return 1; + } + /* pubkey cannot be PaI */ + if (!mpi_cmp_ui (sk->Q.z, 0)) + { + if (DBG_CIPHER) + log_debug ("Bad check: Q can not be a Point at Infinity!\n"); + _gcry_mpi_ec_free (ctx); + return (1); + } + /* pubkey = [d]G over E */ + _gcry_mpi_ec_mul_point (&Q, sk->d, &sk->E.G, ctx); + if ((Q.x == sk->Q.x) && (Q.y == sk->Q.y) && (Q.z == sk->Q.z)) + { + if (DBG_CIPHER) + log_debug + ("Bad check: There is NO correspondence between 'd' and 'Q'!\n"); + _gcry_mpi_ec_free (ctx); + return (1); + } + _gcry_mpi_ec_free (ctx); + point_free (&Q); + return 0; +} + + +/* + * Return the signature struct (r,s) from the message hash. The caller + * must have allocated R and S. + */ +static gpg_err_code_t +sign (gcry_mpi_t input, ECC_secret_key *skey, gcry_mpi_t r, gcry_mpi_t s) +{ + gpg_err_code_t err = 0; + gcry_mpi_t k, dr, sum, k_1, x; + mpi_point_t I; + mpi_ec_t ctx; + + k = NULL; + dr = mpi_alloc (0); + sum = mpi_alloc (0); + k_1 = mpi_alloc (0); + x = mpi_alloc (0); + point_init (&I); + + mpi_set_ui (s, 0); + mpi_set_ui (r, 0); + + ctx = _gcry_mpi_ec_init (skey->E.p, skey->E.a); + + while (!mpi_cmp_ui (s, 0)) /* s == 0 */ + { + while (!mpi_cmp_ui (r, 0)) /* r == 0 */ + { + /* Note, that we are guaranteed to enter this loop at least + once because r has been intialized to 0. We can't use a + do_while because we want to keep the value of R even if S + has to be recomputed. */ + mpi_free (k); + k = gen_k (skey->E.n, GCRY_STRONG_RANDOM); + _gcry_mpi_ec_mul_point (&I, k, &skey->E.G, ctx); + if (_gcry_mpi_ec_get_affine (x, NULL, &I, ctx)) + { + if (DBG_CIPHER) + log_debug ("ecc sign: Failed to get affine coordinates\n"); + err = GPG_ERR_BAD_SIGNATURE; + goto leave; + } + mpi_mod (r, x, skey->E.n); /* r = x mod n */ + } + mpi_mulm (dr, skey->d, r, skey->E.n); /* dr = d*r mod n */ + mpi_addm (sum, input, dr, skey->E.n); /* sum = hash + (d*r) mod n */ + mpi_invm (k_1, k, skey->E.n); /* k_1 = k^(-1) mod n */ + mpi_mulm (s, k_1, sum, skey->E.n); /* s = k^(-1)*(hash+(d*r)) mod n */ + } + + leave: + _gcry_mpi_ec_free (ctx); + point_free (&I); + mpi_free (x); + mpi_free (k_1); + mpi_free (sum); + mpi_free (dr); + mpi_free (k); + + return err; +} + +/* + * Check if R and S verifies INPUT. + */ +static gpg_err_code_t +verify (gcry_mpi_t input, ECC_public_key *pkey, gcry_mpi_t r, gcry_mpi_t s) +{ + gpg_err_code_t err = 0; + gcry_mpi_t h, h1, h2, x, y; + mpi_point_t Q, Q1, Q2; + mpi_ec_t ctx; + + if( !(mpi_cmp_ui (r, 0) > 0 && mpi_cmp (r, pkey->E.n) < 0) ) + return GPG_ERR_BAD_SIGNATURE; /* Assertion 0 < r < n failed. */ + if( !(mpi_cmp_ui (s, 0) > 0 && mpi_cmp (s, pkey->E.n) < 0) ) + return GPG_ERR_BAD_SIGNATURE; /* Assertion 0 < s < n failed. */ + + h = mpi_alloc (0); + h1 = mpi_alloc (0); + h2 = mpi_alloc (0); + x = mpi_alloc (0); + y = mpi_alloc (0); + point_init (&Q); + point_init (&Q1); + point_init (&Q2); + + ctx = _gcry_mpi_ec_init (pkey->E.p, pkey->E.a); + + /* h = s^(-1) (mod n) */ + mpi_invm (h, s, pkey->E.n); +/* log_mpidump (" h", h); */ + /* h1 = hash * s^(-1) (mod n) */ + mpi_mulm (h1, input, h, pkey->E.n); +/* log_mpidump (" h1", h1); */ + /* Q1 = [ hash * s^(-1) ]G */ + _gcry_mpi_ec_mul_point (&Q1, h1, &pkey->E.G, ctx); +/* log_mpidump ("Q1.x", Q1.x); */ +/* log_mpidump ("Q1.y", Q1.y); */ +/* log_mpidump ("Q1.z", Q1.z); */ + /* h2 = r * s^(-1) (mod n) */ + mpi_mulm (h2, r, h, pkey->E.n); +/* log_mpidump (" h2", h2); */ + /* Q2 = [ r * s^(-1) ]Q */ + _gcry_mpi_ec_mul_point (&Q2, h2, &pkey->Q, ctx); +/* log_mpidump ("Q2.x", Q2.x); */ +/* log_mpidump ("Q2.y", Q2.y); */ +/* log_mpidump ("Q2.z", Q2.z); */ + /* Q = ([hash * s^(-1)]G) + ([r * s^(-1)]Q) */ + _gcry_mpi_ec_add_points (&Q, &Q1, &Q2, ctx); +/* log_mpidump (" Q.x", Q.x); */ +/* log_mpidump (" Q.y", Q.y); */ +/* log_mpidump (" Q.z", Q.z); */ + + if (!mpi_cmp_ui (Q.z, 0)) + { + if (DBG_CIPHER) + log_debug ("ecc verify: Rejected\n"); + err = GPG_ERR_BAD_SIGNATURE; + goto leave; + } + if (_gcry_mpi_ec_get_affine (x, y, &Q, ctx)) + { + if (DBG_CIPHER) + log_debug ("ecc verify: Failed to get affine coordinates\n"); + err = GPG_ERR_BAD_SIGNATURE; + goto leave; + } + mpi_mod (x, x, pkey->E.n); /* x = x mod E_n */ + if (mpi_cmp (x, r)) /* x != r */ + { + if (DBG_CIPHER) + { + log_mpidump (" x", x); + log_mpidump (" y", y); + log_mpidump (" r", r); + log_mpidump (" s", s); + log_debug ("ecc verify: Not verified\n"); + } + err = GPG_ERR_BAD_SIGNATURE; + goto leave; + } + if (DBG_CIPHER) + log_debug ("ecc verify: Accepted\n"); + + leave: + _gcry_mpi_ec_free (ctx); + point_free (&Q2); + point_free (&Q1); + point_free (&Q); + mpi_free (y); + mpi_free (x); + mpi_free (h2); + mpi_free (h1); + mpi_free (h); + return err; +} + + + +/********************************************* + ************** interface ****************** + *********************************************/ +static gcry_mpi_t +ec2os (gcry_mpi_t x, gcry_mpi_t y, gcry_mpi_t p) +{ + gpg_error_t err; + int pbytes = (mpi_get_nbits (p)+7)/8; + size_t n; + unsigned char *buf, *ptr; + gcry_mpi_t result; + + buf = gcry_xmalloc ( 1 + 2*pbytes ); + *buf = 04; /* Uncompressed point. */ + ptr = buf+1; + err = gcry_mpi_print (GCRYMPI_FMT_USG, ptr, pbytes, &n, x); + if (err) + log_fatal ("mpi_print failed: %s\n", gpg_strerror (err)); + if (n < pbytes) + { + memmove (ptr+(pbytes-n), ptr, n); + memset (ptr, 0, (pbytes-n)); + } + ptr += pbytes; + err = gcry_mpi_print (GCRYMPI_FMT_USG, ptr, pbytes, &n, y); + if (err) + log_fatal ("mpi_print failed: %s\n", gpg_strerror (err)); + if (n < pbytes) + { + memmove (ptr+(pbytes-n), ptr, n); + memset (ptr, 0, (pbytes-n)); + } + + err = gcry_mpi_scan (&result, GCRYMPI_FMT_USG, buf, 1+2*pbytes, NULL); + if (err) + log_fatal ("mpi_scan failed: %s\n", gpg_strerror (err)); + gcry_free (buf); + + mpi_free (x); + mpi_free (y); + + return result; +} + +/* RESULT must have been initialized and is set on success to the + point given by VALUE. */ +static gcry_error_t +os2ec (mpi_point_t *result, gcry_mpi_t value) +{ + gcry_error_t err; + size_t n; + unsigned char *buf; + gcry_mpi_t x, y; + + n = (mpi_get_nbits (value)+7)/8; + buf = gcry_xmalloc (n); + err = gcry_mpi_print (GCRYMPI_FMT_USG, buf, n, &n, value); + if (err) + { + gcry_free (buf); + return err; + } + if (n < 1) + { + gcry_free (buf); + return GPG_ERR_INV_OBJ; + } + if (*buf != 4) + { + gcry_free (buf); + return GPG_ERR_NOT_IMPLEMENTED; /* No support for point compression. */ + } + if ( ((n-1)%2) ) + { + gcry_free (buf); + return GPG_ERR_INV_OBJ; + } + n = (n-1)/2; + err = gcry_mpi_scan (&x, GCRYMPI_FMT_USG, buf+1, n, NULL); + if (err) + { + gcry_free (buf); + return err; + } + err = gcry_mpi_scan (&y, GCRYMPI_FMT_USG, buf+1+n, n, NULL); + gcry_free (buf); + if (err) + { + mpi_free (x); + return err; + } + + mpi_set (result->x, x); + mpi_set (result->y, y); + mpi_set_ui (result->z, 1); + + mpi_free (x); + mpi_free (y); + + return 0; +} + + +/* Extended version of ecc_generate. */ +static gcry_err_code_t +ecc_generate_ext (int algo, unsigned int nbits, unsigned long evalue, + const gcry_sexp_t genparms, + gcry_mpi_t *skey, gcry_mpi_t **retfactors, + gcry_sexp_t *r_extrainfo) +{ + gpg_err_code_t ec; + ECC_secret_key sk; + gcry_mpi_t g_x, g_y, q_x, q_y; + char *curve_name = NULL; + gcry_sexp_t l1; + + (void)algo; + (void)evalue; + (void)r_extrainfo; + + if (genparms) + { + /* Parse the optional "curve" parameter. */ + l1 = gcry_sexp_find_token (genparms, "curve", 0); + if (l1) + { + curve_name = _gcry_sexp_nth_string (l1, 1); + gcry_sexp_release (l1); + if (!curve_name) + return GPG_ERR_INV_OBJ; /* No curve name or value too large. */ + } + } + + /* NBITS is required if no curve name has been given. */ + if (!nbits && !curve_name) + return GPG_ERR_NO_OBJ; /* No NBITS parameter. */ + + g_x = mpi_new (0); + g_y = mpi_new (0); + q_x = mpi_new (0); + q_y = mpi_new (0); + ec = generate_key (&sk, nbits, curve_name, g_x, g_y, q_x, q_y); + gcry_free (curve_name); + if (ec) + return ec; + + skey[0] = sk.E.p; + skey[1] = sk.E.a; + skey[2] = sk.E.b; + /* The function ec2os releases g_x and g_y. */ + skey[3] = ec2os (g_x, g_y, sk.E.p); + skey[4] = sk.E.n; + /* The function ec2os releases g_x and g_y. */ + skey[5] = ec2os (q_x, q_y, sk.E.p); + skey[6] = sk.d; + + point_free (&sk.E.G); + point_free (&sk.Q); + + /* Make an empty list of factors. */ + *retfactors = gcry_calloc ( 1, sizeof **retfactors ); + if (!*retfactors) + return gpg_err_code_from_syserror (); + + return 0; +} + + +static gcry_err_code_t +ecc_generate (int algo, unsigned int nbits, unsigned long evalue, + gcry_mpi_t *skey, gcry_mpi_t **retfactors) +{ + (void)evalue; + return ecc_generate_ext (algo, nbits, 0, NULL, skey, retfactors, NULL); +} + + +/* Return the parameters of the curve NAME. */ +static gcry_err_code_t +ecc_get_param (const char *name, gcry_mpi_t *pkey) +{ + gpg_err_code_t err; + unsigned int nbits; + elliptic_curve_t E; + mpi_ec_t ctx; + gcry_mpi_t g_x, g_y; + + err = generate_curve (0, name, &E, &nbits); + if (err) + return err; + + g_x = mpi_new (0); + g_y = mpi_new (0); + ctx = _gcry_mpi_ec_init (E.p, E.a); + if (_gcry_mpi_ec_get_affine (g_x, g_y, &E.G, ctx)) + log_fatal ("ecc get param: Failed to get affine coordinates\n"); + _gcry_mpi_ec_free (ctx); + point_free (&E.G); + + pkey[0] = E.p; + pkey[1] = E.a; + pkey[2] = E.b; + pkey[3] = ec2os (g_x, g_y, E.p); + pkey[4] = E.n; + pkey[5] = NULL; + + return 0; +} + + +static gcry_err_code_t +ecc_check_secret_key (int algo, gcry_mpi_t *skey) +{ + gpg_err_code_t err; + ECC_secret_key sk; + + (void)algo; + + if (!skey[0] || !skey[1] || !skey[2] || !skey[3] || !skey[4] || !skey[5] + || !skey[6] || !skey[7] || !skey[8] || !skey[9] || !skey[10]) + return GPG_ERR_BAD_MPI; + + sk.E.p = skey[0]; + sk.E.a = skey[1]; + sk.E.b = skey[2]; + point_init (&sk.E.G); + err = os2ec (&sk.E.G, skey[3]); + if (err) + { + point_free (&sk.E.G); + return err; + } + sk.E.n = skey[4]; + point_init (&sk.Q); + err = os2ec (&sk.Q, skey[5]); + if (err) + { + point_free (&sk.E.G); + point_free (&sk.Q); + return err; + } + + sk.d = skey[6]; + + if (check_secret_key (&sk)) + { + point_free (&sk.E.G); + point_free (&sk.Q); + return GPG_ERR_BAD_SECKEY; + } + point_free (&sk.E.G); + point_free (&sk.Q); + return 0; +} + + +static gcry_err_code_t +ecc_sign (int algo, gcry_mpi_t *resarr, gcry_mpi_t data, gcry_mpi_t *skey) +{ + gpg_err_code_t err; + ECC_secret_key sk; + + (void)algo; + + if (!data || !skey[0] || !skey[1] || !skey[2] || !skey[3] || !skey[4] + || !skey[5] || !skey[6] ) + return GPG_ERR_BAD_MPI; + + sk.E.p = skey[0]; + sk.E.a = skey[1]; + sk.E.b = skey[2]; + point_init (&sk.E.G); + err = os2ec (&sk.E.G, skey[3]); + if (err) + { + point_free (&sk.E.G); + return err; + } + sk.E.n = skey[4]; + point_init (&sk.Q); + err = os2ec (&sk.Q, skey[5]); + if (err) + { + point_free (&sk.E.G); + point_free (&sk.Q); + return err; + } + sk.d = skey[6]; + + resarr[0] = mpi_alloc (mpi_get_nlimbs (sk.E.p)); + resarr[1] = mpi_alloc (mpi_get_nlimbs (sk.E.p)); + err = sign (data, &sk, resarr[0], resarr[1]); + if (err) + { + mpi_free (resarr[0]); + mpi_free (resarr[1]); + resarr[0] = NULL; /* Mark array as released. */ + } + point_free (&sk.E.G); + point_free (&sk.Q); + return err; +} + +static gcry_err_code_t +ecc_verify (int algo, gcry_mpi_t hash, gcry_mpi_t *data, gcry_mpi_t *pkey, + int (*cmp)(void *, gcry_mpi_t), void *opaquev) +{ + gpg_err_code_t err; + ECC_public_key pk; + + (void)algo; + (void)cmp; + (void)opaquev; + + if (!data[0] || !data[1] || !hash || !pkey[0] || !pkey[1] || !pkey[2] + || !pkey[3] || !pkey[4] || !pkey[5] ) + return GPG_ERR_BAD_MPI; + + pk.E.p = pkey[0]; + pk.E.a = pkey[1]; + pk.E.b = pkey[2]; + point_init (&pk.E.G); + err = os2ec (&pk.E.G, pkey[3]); + if (err) + { + point_free (&pk.E.G); + return err; + } + pk.E.n = pkey[4]; + point_init (&pk.Q); + err = os2ec (&pk.Q, pkey[5]); + if (err) + { + point_free (&pk.E.G); + point_free (&pk.Q); + return err; + } + + err = verify (hash, &pk, data[0], data[1]); + + point_free (&pk.E.G); + point_free (&pk.Q); + return err; +} + + + +static unsigned int +ecc_get_nbits (int algo, gcry_mpi_t *pkey) +{ + (void)algo; + + return mpi_get_nbits (pkey[0]); +} + + + +/* See rsa.c for a description of this function. */ +static gpg_err_code_t +compute_keygrip (gcry_md_hd_t md, gcry_sexp_t keyparam) +{ + static const char names[] = "pabgnq"; + gpg_err_code_t ec = 0; + gcry_sexp_t l1; + gcry_mpi_t values[6]; + int idx; + + /* Clear the values for easier error cleanup. */ + for (idx=0; idx < 6; idx++) + values[idx] = NULL; + + /* Fill values with all available parameters. */ + for (idx=0; idx < 6; idx++) + { + l1 = gcry_sexp_find_token (keyparam, names+idx, 1); + if (l1) + { + values[idx] = gcry_sexp_nth_mpi (l1, 1, GCRYMPI_FMT_USG); + gcry_sexp_release (l1); + if (!values[idx]) + { + ec = GPG_ERR_INV_OBJ; + goto leave; + } + } + } + + /* Check whether a curve parameter is available and use that to fill + in missing values. */ + l1 = gcry_sexp_find_token (keyparam, "curve", 5); + if (l1) + { + char *curve; + gcry_mpi_t tmpvalues[6]; + + for (idx = 0; idx < 6; idx++) + tmpvalues[idx] = NULL; + + curve = _gcry_sexp_nth_string (l1, 1); + if (!curve) + { + ec = GPG_ERR_INV_OBJ; /* Name missing or out of core. */ + goto leave; + } + ec = ecc_get_param (curve, tmpvalues); + gcry_free (curve); + if (ec) + goto leave; + + for (idx = 0; idx < 6; idx++) + { + if (!values[idx]) + values[idx] = tmpvalues[idx]; + else + mpi_free (tmpvalues[idx]); + } + } + + /* Check that all parameters are known and normalize all MPIs (that + should not be required but we use an internal fucntion later and + thus we better make 100% sure that they are normalized). */ + for (idx = 0; idx < 6; idx++) + if (!values[idx]) + { + ec = GPG_ERR_NO_OBJ; + goto leave; + } + else + _gcry_mpi_normalize (values[idx]); + + /* Hash them all. */ + for (idx = 0; idx < 6; idx++) + { + char buf[30]; + unsigned char *rawmpi; + unsigned int rawmpilen; + + rawmpi = _gcry_mpi_get_buffer (values[idx], &rawmpilen, NULL); + if (!rawmpi) + { + ec = gpg_err_code_from_syserror (); + goto leave; + } + snprintf (buf, sizeof buf, "(1:%c%u:", names[idx], rawmpilen); + gcry_md_write (md, buf, strlen (buf)); + gcry_md_write (md, rawmpi, rawmpilen); + gcry_md_write (md, ")", 1); + gcry_free (rawmpi); + } + + leave: + for (idx = 0; idx < 6; idx++) + _gcry_mpi_release (values[idx]); + + return ec; +} + + + + + +/* + Self-test section. + */ + + + + +/* Run a full self-test for ALGO and return 0 on success. */ + + + + +static const char *ecdsa_names[] = + { + "ecdsa", + "ecc", + NULL, + }; + +gcry_pk_spec_t _gcry_pubkey_spec_ecdsa = + { + "ECDSA", ecdsa_names, + "pabgnq", "pabgnqd", "", "rs", "pabgnq", + GCRY_PK_USAGE_SIGN, + ecc_generate, + ecc_check_secret_key, + NULL, + NULL, + ecc_sign, + ecc_verify, + ecc_get_nbits + }; + +pk_extra_spec_t _gcry_pubkey_extraspec_ecdsa = + { + run_selftests, + ecc_generate_ext, + compute_keygrip, + ecc_get_param + }; + --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/rmd160.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/rmd160.c @@ -0,0 +1,573 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* rmd160.c - RIPE-MD160 + * Copyright (C) 1998, 2001, 2002, 2003 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +#include "g10lib.h" +#include "memory.h" +#include "rmd.h" +#include "cipher.h" /* Only used for the rmd160_hash_buffer() prototype. */ + +#include "bithelp.h" + +/********************************* + * RIPEMD-160 is not patented, see (as of 25.10.97) + * http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html + * Note that the code uses Little Endian byteorder, which is good for + * 386 etc, but we must add some conversion when used on a big endian box. + * + * + * Pseudo-code for RIPEMD-160 + * + * RIPEMD-160 is an iterative hash function that operates on 32-bit words. + * The round function takes as input a 5-word chaining variable and a 16-word + * message block and maps this to a new chaining variable. All operations are + * defined on 32-bit words. Padding is identical to that of MD4. + * + * + * RIPEMD-160: definitions + * + * + * nonlinear functions at bit level: exor, mux, -, mux, - + * + * f(j, x, y, z) = x XOR y XOR z (0 <= j <= 15) + * f(j, x, y, z) = (x AND y) OR (NOT(x) AND z) (16 <= j <= 31) + * f(j, x, y, z) = (x OR NOT(y)) XOR z (32 <= j <= 47) + * f(j, x, y, z) = (x AND z) OR (y AND NOT(z)) (48 <= j <= 63) + * f(j, x, y, z) = x XOR (y OR NOT(z)) (64 <= j <= 79) + * + * + * added constants (hexadecimal) + * + * K(j) = 0x00000000 (0 <= j <= 15) + * K(j) = 0x5A827999 (16 <= j <= 31) int(2**30 x sqrt(2)) + * K(j) = 0x6ED9EBA1 (32 <= j <= 47) int(2**30 x sqrt(3)) + * K(j) = 0x8F1BBCDC (48 <= j <= 63) int(2**30 x sqrt(5)) + * K(j) = 0xA953FD4E (64 <= j <= 79) int(2**30 x sqrt(7)) + * K'(j) = 0x50A28BE6 (0 <= j <= 15) int(2**30 x cbrt(2)) + * K'(j) = 0x5C4DD124 (16 <= j <= 31) int(2**30 x cbrt(3)) + * K'(j) = 0x6D703EF3 (32 <= j <= 47) int(2**30 x cbrt(5)) + * K'(j) = 0x7A6D76E9 (48 <= j <= 63) int(2**30 x cbrt(7)) + * K'(j) = 0x00000000 (64 <= j <= 79) + * + * + * selection of message word + * + * r(j) = j (0 <= j <= 15) + * r(16..31) = 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8 + * r(32..47) = 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12 + * r(48..63) = 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2 + * r(64..79) = 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13 + * r0(0..15) = 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12 + * r0(16..31)= 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2 + * r0(32..47)= 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13 + * r0(48..63)= 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14 + * r0(64..79)= 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11 + * + * + * amount for rotate left (rol) + * + * s(0..15) = 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8 + * s(16..31) = 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12 + * s(32..47) = 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5 + * s(48..63) = 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12 + * s(64..79) = 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 + * s'(0..15) = 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6 + * s'(16..31)= 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11 + * s'(32..47)= 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5 + * s'(48..63)= 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8 + * s'(64..79)= 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 + * + * + * initial value (hexadecimal) + * + * h0 = 0x67452301; h1 = 0xEFCDAB89; h2 = 0x98BADCFE; h3 = 0x10325476; + * h4 = 0xC3D2E1F0; + * + * + * RIPEMD-160: pseudo-code + * + * It is assumed that the message after padding consists of t 16-word blocks + * that will be denoted with X[i][j], with 0 <= i <= t-1 and 0 <= j <= 15. + * The symbol [+] denotes addition modulo 2**32 and rol_s denotes cyclic left + * shift (rotate) over s positions. + * + * + * for i := 0 to t-1 { + * A := h0; B := h1; C := h2; D = h3; E = h4; + * A' := h0; B' := h1; C' := h2; D' = h3; E' = h4; + * for j := 0 to 79 { + * T := rol_s(j)(A [+] f(j, B, C, D) [+] X[i][r(j)] [+] K(j)) [+] E; + * A := E; E := D; D := rol_10(C); C := B; B := T; + * T := rol_s'(j)(A' [+] f(79-j, B', C', D') [+] X[i][r'(j)] + [+] K'(j)) [+] E'; + * A' := E'; E' := D'; D' := rol_10(C'); C' := B'; B' := T; + * } + * T := h1 [+] C [+] D'; h1 := h2 [+] D [+] E'; h2 := h3 [+] E [+] A'; + * h3 := h4 [+] A [+] B'; h4 := h0 [+] B [+] C'; h0 := T; + * } + */ + +/* Some examples: + * "" 9c1185a5c5e9fc54612808977ee8f548b2258d31 + * "a" 0bdc9d2d256b3ee9daae347be6f4dc835a467ffe + * "abc" 8eb208f7e05d987a9b044a8e98c6b087f15a0bfc + * "message digest" 5d0689ef49d2fae572b881b123a85ffa21595f36 + * "a...z" f71c27109c692c1b56bbdceb5b9d2865b3708dbc + * "abcdbcde...nopq" 12a053384a9c0c88e405a06c27dcf49ada62eb2b + * "A...Za...z0...9" b0e20b6e3116640286ed3a87a5713079b21f5189 + * 8 times "1234567890" 9b752e45573d4b39f4dbd3323cab82bf63326bfb + * 1 million times "a" 52783243c1697bdbe16d37f97f68f08325dc1528 + */ + + +void +_gcry_rmd160_init (void *context) +{ + RMD160_CONTEXT *hd = context; + + hd->h0 = 0x67452301; + hd->h1 = 0xEFCDAB89; + hd->h2 = 0x98BADCFE; + hd->h3 = 0x10325476; + hd->h4 = 0xC3D2E1F0; + hd->nblocks = 0; + hd->count = 0; +} + + + +/**************** + * Transform the message X which consists of 16 32-bit-words + */ +static void +transform ( RMD160_CONTEXT *hd, const unsigned char *data ) +{ + register u32 a,b,c,d,e; + u32 aa,bb,cc,dd,ee,t; +#ifdef WORDS_BIGENDIAN + u32 x[16]; + { + int i; + byte *p2, *p1; + for (i=0, p1=data, p2=(byte*)x; i < 16; i++, p2 += 4 ) + { + p2[3] = *p1++; + p2[2] = *p1++; + p2[1] = *p1++; + p2[0] = *p1++; + } + } +#else + /* This version is better because it is always aligned; + * The performance penalty on a 586-100 is about 6% which + * is acceptable - because the data is more local it might + * also be possible that this is faster on some machines. + * This function (when compiled with -02 on gcc 2.7.2) + * executes on a 586-100 (39.73 bogomips) at about 1900kb/sec; + * [measured with a 4MB data and "gpgm --print-md rmd160"] */ + u32 x[16]; + memcpy( x, data, 64 ); +#endif + + +#define K0 0x00000000 +#define K1 0x5A827999 +#define K2 0x6ED9EBA1 +#define K3 0x8F1BBCDC +#define K4 0xA953FD4E +#define KK0 0x50A28BE6 +#define KK1 0x5C4DD124 +#define KK2 0x6D703EF3 +#define KK3 0x7A6D76E9 +#define KK4 0x00000000 +#define F0(x,y,z) ( (x) ^ (y) ^ (z) ) +#define F1(x,y,z) ( ((x) & (y)) | (~(x) & (z)) ) +#define F2(x,y,z) ( ((x) | ~(y)) ^ (z) ) +#define F3(x,y,z) ( ((x) & (z)) | ((y) & ~(z)) ) +#define F4(x,y,z) ( (x) ^ ((y) | ~(z)) ) +#define R(a,b,c,d,e,f,k,r,s) do { t = a + f(b,c,d) + k + x[r]; \ + a = rol(t,s) + e; \ + c = rol(c,10); \ + } while(0) + + /* left lane */ + a = hd->h0; + b = hd->h1; + c = hd->h2; + d = hd->h3; + e = hd->h4; + R( a, b, c, d, e, F0, K0, 0, 11 ); + R( e, a, b, c, d, F0, K0, 1, 14 ); + R( d, e, a, b, c, F0, K0, 2, 15 ); + R( c, d, e, a, b, F0, K0, 3, 12 ); + R( b, c, d, e, a, F0, K0, 4, 5 ); + R( a, b, c, d, e, F0, K0, 5, 8 ); + R( e, a, b, c, d, F0, K0, 6, 7 ); + R( d, e, a, b, c, F0, K0, 7, 9 ); + R( c, d, e, a, b, F0, K0, 8, 11 ); + R( b, c, d, e, a, F0, K0, 9, 13 ); + R( a, b, c, d, e, F0, K0, 10, 14 ); + R( e, a, b, c, d, F0, K0, 11, 15 ); + R( d, e, a, b, c, F0, K0, 12, 6 ); + R( c, d, e, a, b, F0, K0, 13, 7 ); + R( b, c, d, e, a, F0, K0, 14, 9 ); + R( a, b, c, d, e, F0, K0, 15, 8 ); + R( e, a, b, c, d, F1, K1, 7, 7 ); + R( d, e, a, b, c, F1, K1, 4, 6 ); + R( c, d, e, a, b, F1, K1, 13, 8 ); + R( b, c, d, e, a, F1, K1, 1, 13 ); + R( a, b, c, d, e, F1, K1, 10, 11 ); + R( e, a, b, c, d, F1, K1, 6, 9 ); + R( d, e, a, b, c, F1, K1, 15, 7 ); + R( c, d, e, a, b, F1, K1, 3, 15 ); + R( b, c, d, e, a, F1, K1, 12, 7 ); + R( a, b, c, d, e, F1, K1, 0, 12 ); + R( e, a, b, c, d, F1, K1, 9, 15 ); + R( d, e, a, b, c, F1, K1, 5, 9 ); + R( c, d, e, a, b, F1, K1, 2, 11 ); + R( b, c, d, e, a, F1, K1, 14, 7 ); + R( a, b, c, d, e, F1, K1, 11, 13 ); + R( e, a, b, c, d, F1, K1, 8, 12 ); + R( d, e, a, b, c, F2, K2, 3, 11 ); + R( c, d, e, a, b, F2, K2, 10, 13 ); + R( b, c, d, e, a, F2, K2, 14, 6 ); + R( a, b, c, d, e, F2, K2, 4, 7 ); + R( e, a, b, c, d, F2, K2, 9, 14 ); + R( d, e, a, b, c, F2, K2, 15, 9 ); + R( c, d, e, a, b, F2, K2, 8, 13 ); + R( b, c, d, e, a, F2, K2, 1, 15 ); + R( a, b, c, d, e, F2, K2, 2, 14 ); + R( e, a, b, c, d, F2, K2, 7, 8 ); + R( d, e, a, b, c, F2, K2, 0, 13 ); + R( c, d, e, a, b, F2, K2, 6, 6 ); + R( b, c, d, e, a, F2, K2, 13, 5 ); + R( a, b, c, d, e, F2, K2, 11, 12 ); + R( e, a, b, c, d, F2, K2, 5, 7 ); + R( d, e, a, b, c, F2, K2, 12, 5 ); + R( c, d, e, a, b, F3, K3, 1, 11 ); + R( b, c, d, e, a, F3, K3, 9, 12 ); + R( a, b, c, d, e, F3, K3, 11, 14 ); + R( e, a, b, c, d, F3, K3, 10, 15 ); + R( d, e, a, b, c, F3, K3, 0, 14 ); + R( c, d, e, a, b, F3, K3, 8, 15 ); + R( b, c, d, e, a, F3, K3, 12, 9 ); + R( a, b, c, d, e, F3, K3, 4, 8 ); + R( e, a, b, c, d, F3, K3, 13, 9 ); + R( d, e, a, b, c, F3, K3, 3, 14 ); + R( c, d, e, a, b, F3, K3, 7, 5 ); + R( b, c, d, e, a, F3, K3, 15, 6 ); + R( a, b, c, d, e, F3, K3, 14, 8 ); + R( e, a, b, c, d, F3, K3, 5, 6 ); + R( d, e, a, b, c, F3, K3, 6, 5 ); + R( c, d, e, a, b, F3, K3, 2, 12 ); + R( b, c, d, e, a, F4, K4, 4, 9 ); + R( a, b, c, d, e, F4, K4, 0, 15 ); + R( e, a, b, c, d, F4, K4, 5, 5 ); + R( d, e, a, b, c, F4, K4, 9, 11 ); + R( c, d, e, a, b, F4, K4, 7, 6 ); + R( b, c, d, e, a, F4, K4, 12, 8 ); + R( a, b, c, d, e, F4, K4, 2, 13 ); + R( e, a, b, c, d, F4, K4, 10, 12 ); + R( d, e, a, b, c, F4, K4, 14, 5 ); + R( c, d, e, a, b, F4, K4, 1, 12 ); + R( b, c, d, e, a, F4, K4, 3, 13 ); + R( a, b, c, d, e, F4, K4, 8, 14 ); + R( e, a, b, c, d, F4, K4, 11, 11 ); + R( d, e, a, b, c, F4, K4, 6, 8 ); + R( c, d, e, a, b, F4, K4, 15, 5 ); + R( b, c, d, e, a, F4, K4, 13, 6 ); + + aa = a; bb = b; cc = c; dd = d; ee = e; + + /* right lane */ + a = hd->h0; + b = hd->h1; + c = hd->h2; + d = hd->h3; + e = hd->h4; + R( a, b, c, d, e, F4, KK0, 5, 8); + R( e, a, b, c, d, F4, KK0, 14, 9); + R( d, e, a, b, c, F4, KK0, 7, 9); + R( c, d, e, a, b, F4, KK0, 0, 11); + R( b, c, d, e, a, F4, KK0, 9, 13); + R( a, b, c, d, e, F4, KK0, 2, 15); + R( e, a, b, c, d, F4, KK0, 11, 15); + R( d, e, a, b, c, F4, KK0, 4, 5); + R( c, d, e, a, b, F4, KK0, 13, 7); + R( b, c, d, e, a, F4, KK0, 6, 7); + R( a, b, c, d, e, F4, KK0, 15, 8); + R( e, a, b, c, d, F4, KK0, 8, 11); + R( d, e, a, b, c, F4, KK0, 1, 14); + R( c, d, e, a, b, F4, KK0, 10, 14); + R( b, c, d, e, a, F4, KK0, 3, 12); + R( a, b, c, d, e, F4, KK0, 12, 6); + R( e, a, b, c, d, F3, KK1, 6, 9); + R( d, e, a, b, c, F3, KK1, 11, 13); + R( c, d, e, a, b, F3, KK1, 3, 15); + R( b, c, d, e, a, F3, KK1, 7, 7); + R( a, b, c, d, e, F3, KK1, 0, 12); + R( e, a, b, c, d, F3, KK1, 13, 8); + R( d, e, a, b, c, F3, KK1, 5, 9); + R( c, d, e, a, b, F3, KK1, 10, 11); + R( b, c, d, e, a, F3, KK1, 14, 7); + R( a, b, c, d, e, F3, KK1, 15, 7); + R( e, a, b, c, d, F3, KK1, 8, 12); + R( d, e, a, b, c, F3, KK1, 12, 7); + R( c, d, e, a, b, F3, KK1, 4, 6); + R( b, c, d, e, a, F3, KK1, 9, 15); + R( a, b, c, d, e, F3, KK1, 1, 13); + R( e, a, b, c, d, F3, KK1, 2, 11); + R( d, e, a, b, c, F2, KK2, 15, 9); + R( c, d, e, a, b, F2, KK2, 5, 7); + R( b, c, d, e, a, F2, KK2, 1, 15); + R( a, b, c, d, e, F2, KK2, 3, 11); + R( e, a, b, c, d, F2, KK2, 7, 8); + R( d, e, a, b, c, F2, KK2, 14, 6); + R( c, d, e, a, b, F2, KK2, 6, 6); + R( b, c, d, e, a, F2, KK2, 9, 14); + R( a, b, c, d, e, F2, KK2, 11, 12); + R( e, a, b, c, d, F2, KK2, 8, 13); + R( d, e, a, b, c, F2, KK2, 12, 5); + R( c, d, e, a, b, F2, KK2, 2, 14); + R( b, c, d, e, a, F2, KK2, 10, 13); + R( a, b, c, d, e, F2, KK2, 0, 13); + R( e, a, b, c, d, F2, KK2, 4, 7); + R( d, e, a, b, c, F2, KK2, 13, 5); + R( c, d, e, a, b, F1, KK3, 8, 15); + R( b, c, d, e, a, F1, KK3, 6, 5); + R( a, b, c, d, e, F1, KK3, 4, 8); + R( e, a, b, c, d, F1, KK3, 1, 11); + R( d, e, a, b, c, F1, KK3, 3, 14); + R( c, d, e, a, b, F1, KK3, 11, 14); + R( b, c, d, e, a, F1, KK3, 15, 6); + R( a, b, c, d, e, F1, KK3, 0, 14); + R( e, a, b, c, d, F1, KK3, 5, 6); + R( d, e, a, b, c, F1, KK3, 12, 9); + R( c, d, e, a, b, F1, KK3, 2, 12); + R( b, c, d, e, a, F1, KK3, 13, 9); + R( a, b, c, d, e, F1, KK3, 9, 12); + R( e, a, b, c, d, F1, KK3, 7, 5); + R( d, e, a, b, c, F1, KK3, 10, 15); + R( c, d, e, a, b, F1, KK3, 14, 8); + R( b, c, d, e, a, F0, KK4, 12, 8); + R( a, b, c, d, e, F0, KK4, 15, 5); + R( e, a, b, c, d, F0, KK4, 10, 12); + R( d, e, a, b, c, F0, KK4, 4, 9); + R( c, d, e, a, b, F0, KK4, 1, 12); + R( b, c, d, e, a, F0, KK4, 5, 5); + R( a, b, c, d, e, F0, KK4, 8, 14); + R( e, a, b, c, d, F0, KK4, 7, 6); + R( d, e, a, b, c, F0, KK4, 6, 8); + R( c, d, e, a, b, F0, KK4, 2, 13); + R( b, c, d, e, a, F0, KK4, 13, 6); + R( a, b, c, d, e, F0, KK4, 14, 5); + R( e, a, b, c, d, F0, KK4, 0, 15); + R( d, e, a, b, c, F0, KK4, 3, 13); + R( c, d, e, a, b, F0, KK4, 9, 11); + R( b, c, d, e, a, F0, KK4, 11, 11); + + + t = hd->h1 + d + cc; + hd->h1 = hd->h2 + e + dd; + hd->h2 = hd->h3 + a + ee; + hd->h3 = hd->h4 + b + aa; + hd->h4 = hd->h0 + c + bb; + hd->h0 = t; +} + + +/* Update the message digest with the contents + * of INBUF with length INLEN. + */ +static void +rmd160_write ( void *context, const void *inbuf_arg, size_t inlen) +{ + const unsigned char *inbuf = inbuf_arg; + RMD160_CONTEXT *hd = context; + + if( hd->count == 64 ) /* flush the buffer */ + { + transform( hd, hd->buf ); + _gcry_burn_stack (108+5*sizeof(void*)); + hd->count = 0; + hd->nblocks++; + } + if( !inbuf ) + return; + if( hd->count ) + { + for( ; inlen && hd->count < 64; inlen-- ) + hd->buf[hd->count++] = *inbuf++; + rmd160_write( hd, NULL, 0 ); + if( !inlen ) + return; + } + + while( inlen >= 64 ) + { + transform( hd, inbuf ); + hd->count = 0; + hd->nblocks++; + inlen -= 64; + inbuf += 64; + } + _gcry_burn_stack (108+5*sizeof(void*)); + for( ; inlen && hd->count < 64; inlen-- ) + hd->buf[hd->count++] = *inbuf++; +} + +/**************** + * Apply the rmd160 transform function on the buffer which must have + * a length 64 bytes. Do not use this function together with the + * other functions, use rmd160_init to initialize internal variables. + * Returns: 16 bytes in buffer with the mixed contentes of buffer. + */ +void +_gcry_rmd160_mixblock ( RMD160_CONTEXT *hd, void *blockof64byte ) +{ + char *p = blockof64byte; + + transform ( hd, blockof64byte ); +#define X(a) do { *(u32*)p = hd->h##a ; p += 4; } while(0) + X(0); + X(1); + X(2); + X(3); + X(4); +#undef X +} + + +/* The routine terminates the computation + */ + +static void +rmd160_final( void *context ) +{ + RMD160_CONTEXT *hd = context; + u32 t, msb, lsb; + byte *p; + + rmd160_write(hd, NULL, 0); /* flush */; + + t = hd->nblocks; + /* multiply by 64 to make a byte count */ + lsb = t << 6; + msb = t >> 26; + /* add the count */ + t = lsb; + if( (lsb += hd->count) < t ) + msb++; + /* multiply by 8 to make a bit count */ + t = lsb; + lsb <<= 3; + msb <<= 3; + msb |= t >> 29; + + if( hd->count < 56 ) /* enough room */ + { + hd->buf[hd->count++] = 0x80; /* pad */ + while( hd->count < 56 ) + hd->buf[hd->count++] = 0; /* pad */ + } + else /* need one extra block */ + { + hd->buf[hd->count++] = 0x80; /* pad character */ + while( hd->count < 64 ) + hd->buf[hd->count++] = 0; + rmd160_write(hd, NULL, 0); /* flush */; + memset(hd->buf, 0, 56 ); /* fill next block with zeroes */ + } + /* append the 64 bit count */ + hd->buf[56] = lsb ; + hd->buf[57] = lsb >> 8; + hd->buf[58] = lsb >> 16; + hd->buf[59] = lsb >> 24; + hd->buf[60] = msb ; + hd->buf[61] = msb >> 8; + hd->buf[62] = msb >> 16; + hd->buf[63] = msb >> 24; + transform( hd, hd->buf ); + _gcry_burn_stack (108+5*sizeof(void*)); + + p = hd->buf; +#ifdef WORDS_BIGENDIAN +#define X(a) do { *p++ = hd->h##a ; *p++ = hd->h##a >> 8; \ + *p++ = hd->h##a >> 16; *p++ = hd->h##a >> 24; } while(0) +#else /* little endian */ +#define X(a) do { *(u32*)p = hd->h##a ; p += 4; } while(0) +#endif + X(0); + X(1); + X(2); + X(3); + X(4); +#undef X +} + +static byte * +rmd160_read( void *context ) +{ + RMD160_CONTEXT *hd = context; + + return hd->buf; +} + + + +/**************** + * Shortcut functions which puts the hash value of the supplied buffer + * into outbuf which must have a size of 20 bytes. + */ + +static byte asn[15] = /* Object ID is 1.3.36.3.2.1 */ + { 0x30, 0x21, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x24, 0x03, + 0x02, 0x01, 0x05, 0x00, 0x04, 0x14 }; + +static gcry_md_oid_spec_t oid_spec_rmd160[] = + { + /* rsaSignatureWithripemd160 */ + { "1.3.36.3.3.1.2" }, + /* TeleTrust hash algorithm. */ + { "1.3.36.3.2.1" }, + { NULL } + }; + +gcry_md_spec_t _gcry_digest_spec_rmd160 = + { + "RIPEMD160", asn, DIM (asn), oid_spec_rmd160, 20, + _gcry_rmd160_init, rmd160_write, rmd160_final, rmd160_read, + sizeof (RMD160_CONTEXT) + , + .blocksize = 64 + }; + + +GRUB_MOD_INIT(gcry_rmd160) +{ + grub_md_register (&_gcry_digest_spec_rmd160); +} + +GRUB_MOD_FINI(gcry_rmd160) +{ + grub_md_unregister (&_gcry_digest_spec_rmd160); +} --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/bithelp.h +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/bithelp.h @@ -0,0 +1,56 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* bithelp.h - Some bit manipulation helpers + * Copyright (C) 1999, 2002 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser general Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ +#ifndef G10_BITHELP_H +#define G10_BITHELP_H + + +/**************** + * Rotate the 32 bit unsigned integer X by N bits left/right + */ +#if defined(__GNUC__) && defined(__i386__) +static inline u32 +rol( u32 x, int n) +{ + __asm__("roll %%cl,%0" + :"=r" (x) + :"0" (x),"c" (n)); + return x; +} +#else +#define rol(x,n) ( ((x) << (n)) | ((x) >> (32-(n))) ) +#endif + +#if defined(__GNUC__) && defined(__i386__) +static inline u32 +ror(u32 x, int n) +{ + __asm__("rorl %%cl,%0" + :"=r" (x) + :"0" (x),"c" (n)); + return x; +} +#else +#define ror(x,n) ( ((x) >> (n)) | ((x) << (32-(n))) ) +#endif + + +#endif /*G10_BITHELP_H*/ --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/cipher.h +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/cipher.h @@ -0,0 +1,2 @@ +#include +#include --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/rfc2268.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/rfc2268.c @@ -0,0 +1,280 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* rfc2268.c - The cipher described in rfc2268; aka Ron's Cipher 2. + * Copyright (C) 2003 Nikos Mavroyanopoulos + * Copyright (C) 2004 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser general Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +/* This implementation was written by Nikos Mavroyanopoulos for GNUTLS + * as a Libgcrypt module (gnutls/lib/x509/rc2.c) and later adapted for + * direct use by Libgcrypt by Werner Koch. This implementation is + * only useful for pkcs#12 descryption. + * + * The implementation here is based on Peter Gutmann's RRC.2 paper. + */ + + +#include "g10lib.h" +#include "types.h" +#include "cipher.h" + +#define RFC2268_BLOCKSIZE 8 + +typedef struct +{ + u16 S[64]; +} RFC2268_context; + +static const unsigned char rfc2268_sbox[] = { + 217, 120, 249, 196, 25, 221, 181, 237, + 40, 233, 253, 121, 74, 160, 216, 157, + 198, 126, 55, 131, 43, 118, 83, 142, + 98, 76, 100, 136, 68, 139, 251, 162, + 23, 154, 89, 245, 135, 179, 79, 19, + 97, 69, 109, 141, 9, 129, 125, 50, + 189, 143, 64, 235, 134, 183, 123, 11, + 240, 149, 33, 34, 92, 107, 78, 130, + 84, 214, 101, 147, 206, 96, 178, 28, + 115, 86, 192, 20, 167, 140, 241, 220, + 18, 117, 202, 31, 59, 190, 228, 209, + 66, 61, 212, 48, 163, 60, 182, 38, + 111, 191, 14, 218, 70, 105, 7, 87, + 39, 242, 29, 155, 188, 148, 67, 3, + 248, 17, 199, 246, 144, 239, 62, 231, + 6, 195, 213, 47, 200, 102, 30, 215, + 8, 232, 234, 222, 128, 82, 238, 247, + 132, 170, 114, 172, 53, 77, 106, 42, + 150, 26, 210, 113, 90, 21, 73, 116, + 75, 159, 208, 94, 4, 24, 164, 236, + 194, 224, 65, 110, 15, 81, 203, 204, + 36, 145, 175, 80, 161, 244, 112, 57, + 153, 124, 58, 133, 35, 184, 180, 122, + 252, 2, 54, 91, 37, 85, 151, 49, + 45, 93, 250, 152, 227, 138, 146, 174, + 5, 223, 41, 16, 103, 108, 186, 201, + 211, 0, 230, 207, 225, 158, 168, 44, + 99, 22, 1, 63, 88, 226, 137, 169, + 13, 56, 52, 27, 171, 51, 255, 176, + 187, 72, 12, 95, 185, 177, 205, 46, + 197, 243, 219, 71, 229, 165, 156, 119, + 10, 166, 32, 104, 254, 127, 193, 173 +}; + +#define rotl16(x,n) (((x) << ((u16)(n))) | ((x) >> (16 - (u16)(n)))) +#define rotr16(x,n) (((x) >> ((u16)(n))) | ((x) << (16 - (u16)(n)))) + + + +static void +do_encrypt (void *context, unsigned char *outbuf, const unsigned char *inbuf) +{ + RFC2268_context *ctx = context; + register int i, j; + u16 word0 = 0, word1 = 0, word2 = 0, word3 = 0; + + word0 = (word0 << 8) | inbuf[1]; + word0 = (word0 << 8) | inbuf[0]; + word1 = (word1 << 8) | inbuf[3]; + word1 = (word1 << 8) | inbuf[2]; + word2 = (word2 << 8) | inbuf[5]; + word2 = (word2 << 8) | inbuf[4]; + word3 = (word3 << 8) | inbuf[7]; + word3 = (word3 << 8) | inbuf[6]; + + for (i = 0; i < 16; i++) + { + j = i * 4; + /* For some reason I cannot combine those steps. */ + word0 += (word1 & ~word3) + (word2 & word3) + ctx->S[j]; + word0 = rotl16(word0, 1); + + word1 += (word2 & ~word0) + (word3 & word0) + ctx->S[j + 1]; + word1 = rotl16(word1, 2); + + word2 += (word3 & ~word1) + (word0 & word1) + ctx->S[j + 2]; + word2 = rotl16(word2, 3); + + word3 += (word0 & ~word2) + (word1 & word2) + ctx->S[j + 3]; + word3 = rotl16(word3, 5); + + if (i == 4 || i == 10) + { + word0 += ctx->S[word3 & 63]; + word1 += ctx->S[word0 & 63]; + word2 += ctx->S[word1 & 63]; + word3 += ctx->S[word2 & 63]; + } + + } + + outbuf[0] = word0 & 255; + outbuf[1] = word0 >> 8; + outbuf[2] = word1 & 255; + outbuf[3] = word1 >> 8; + outbuf[4] = word2 & 255; + outbuf[5] = word2 >> 8; + outbuf[6] = word3 & 255; + outbuf[7] = word3 >> 8; +} + +static void +do_decrypt (void *context, unsigned char *outbuf, const unsigned char *inbuf) +{ + RFC2268_context *ctx = context; + register int i, j; + u16 word0 = 0, word1 = 0, word2 = 0, word3 = 0; + + word0 = (word0 << 8) | inbuf[1]; + word0 = (word0 << 8) | inbuf[0]; + word1 = (word1 << 8) | inbuf[3]; + word1 = (word1 << 8) | inbuf[2]; + word2 = (word2 << 8) | inbuf[5]; + word2 = (word2 << 8) | inbuf[4]; + word3 = (word3 << 8) | inbuf[7]; + word3 = (word3 << 8) | inbuf[6]; + + for (i = 15; i >= 0; i--) + { + j = i * 4; + + word3 = rotr16(word3, 5); + word3 -= (word0 & ~word2) + (word1 & word2) + ctx->S[j + 3]; + + word2 = rotr16(word2, 3); + word2 -= (word3 & ~word1) + (word0 & word1) + ctx->S[j + 2]; + + word1 = rotr16(word1, 2); + word1 -= (word2 & ~word0) + (word3 & word0) + ctx->S[j + 1]; + + word0 = rotr16(word0, 1); + word0 -= (word1 & ~word3) + (word2 & word3) + ctx->S[j]; + + if (i == 5 || i == 11) + { + word3 = word3 - ctx->S[word2 & 63]; + word2 = word2 - ctx->S[word1 & 63]; + word1 = word1 - ctx->S[word0 & 63]; + word0 = word0 - ctx->S[word3 & 63]; + } + + } + + outbuf[0] = word0 & 255; + outbuf[1] = word0 >> 8; + outbuf[2] = word1 & 255; + outbuf[3] = word1 >> 8; + outbuf[4] = word2 & 255; + outbuf[5] = word2 >> 8; + outbuf[6] = word3 & 255; + outbuf[7] = word3 >> 8; +} + + +static gpg_err_code_t +setkey_core (void *context, const unsigned char *key, unsigned int keylen, int with_phase2) +{ + static int initialized; + static const char *selftest_failed; + RFC2268_context *ctx = context; + unsigned int i; + unsigned char *S, x; + int len; + int bits = keylen * 8; + + if (!initialized) + { + initialized = 1; + selftest_failed = selftest (); + if (selftest_failed) + log_error ("RFC2268 selftest failed (%s).\n", selftest_failed); + } + if (selftest_failed) + return GPG_ERR_SELFTEST_FAILED; + + if (keylen < 40 / 8) /* We want at least 40 bits. */ + return GPG_ERR_INV_KEYLEN; + + S = (unsigned char *) ctx->S; + + for (i = 0; i < keylen; i++) + S[i] = key[i]; + + for (i = keylen; i < 128; i++) + S[i] = rfc2268_sbox[(S[i - keylen] + S[i - 1]) & 255]; + + S[0] = rfc2268_sbox[S[0]]; + + /* Phase 2 - reduce effective key size to "bits". This was not + * discussed in Gutmann's paper. I've copied that from the public + * domain code posted in sci.crypt. */ + if (with_phase2) + { + len = (bits + 7) >> 3; + i = 128 - len; + x = rfc2268_sbox[S[i] & (255 >> (7 & -bits))]; + S[i] = x; + + while (i--) + { + x = rfc2268_sbox[x ^ S[i + len]]; + S[i] = x; + } + } + + /* Make the expanded key, endian independent. */ + for (i = 0; i < 64; i++) + ctx->S[i] = ( (u16) S[i * 2] | (((u16) S[i * 2 + 1]) << 8)); + + return 0; +} + +static gpg_err_code_t +do_setkey (void *context, const unsigned char *key, unsigned int keylen) +{ + return setkey_core (context, key, keylen, 1); +} + + + + +static gcry_cipher_oid_spec_t oids_rfc2268_40[] = + { + /*{ "1.2.840.113549.3.2", GCRY_CIPHER_MODE_CBC },*/ + /* pbeWithSHAAnd40BitRC2_CBC */ + { "1.2.840.113549.1.12.1.6", GCRY_CIPHER_MODE_CBC }, + { NULL } + }; + +gcry_cipher_spec_t _gcry_cipher_spec_rfc2268_40 = { + "RFC2268_40", NULL, oids_rfc2268_40, + RFC2268_BLOCKSIZE, 40, sizeof(RFC2268_context), + do_setkey, do_encrypt, do_decrypt +}; + + + +GRUB_MOD_INIT(gcry_rfc2268) +{ + grub_cipher_register (&_gcry_cipher_spec_rfc2268_40); +} + +GRUB_MOD_FINI(gcry_rfc2268) +{ + grub_cipher_unregister (&_gcry_cipher_spec_rfc2268_40); +} --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/crypto.lst +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/crypto.lst @@ -0,0 +1,38 @@ +RIJNDAEL: gcry_rijndael +RIJNDAEL192: gcry_rijndael +RIJNDAEL256: gcry_rijndael +AES128: gcry_rijndael +AES-128: gcry_rijndael +AES-192: gcry_rijndael +AES-256: gcry_rijndael +AES: gcry_rijndael +AES192: gcry_rijndael +AES256: gcry_rijndael +SHA512: gcry_sha512 +SHA384: gcry_sha512 +SEED: gcry_seed +MD4: gcry_md4 +TIGER192: gcry_tiger +CRC32: gcry_crc +CRC32RFC1510: gcry_crc +CRC24RFC2440: gcry_crc +MD5: gcry_md5 +SERPENT128: gcry_serpent +SERPENT192: gcry_serpent +SERPENT256: gcry_serpent +ARCFOUR: gcry_arcfour +WHIRLPOOL: gcry_whirlpool +DES: gcry_des +3DES: gcry_des +SHA224: gcry_sha256 +SHA256: gcry_sha256 +TWOFISH: gcry_twofish +TWOFISH128: gcry_twofish +CAST5: gcry_cast5 +SHA1: gcry_sha1 +BLOWFISH: gcry_blowfish +CAMELLIA128: gcry_camellia +CAMELLIA192: gcry_camellia +CAMELLIA256: gcry_camellia +RIPEMD160: gcry_rmd160 +RFC2268_40: gcry_rfc2268 --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/blowfish.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/blowfish.c @@ -0,0 +1,586 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* blowfish.c - Blowfish encryption + * Copyright (C) 1998, 2001, 2002, 2003 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser general Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + * + * For a description of the algorithm, see: + * Bruce Schneier: Applied Cryptography. John Wiley & Sons, 1996. + * ISBN 0-471-11709-9. Pages 336 ff. + */ + +/* Test values: + * key "abcdefghijklmnopqrstuvwxyz"; + * plain "BLOWFISH" + * cipher 32 4E D0 FE F4 13 A2 03 + * + */ + +#include "types.h" +#include "g10lib.h" +#include "cipher.h" + +#define BLOWFISH_BLOCKSIZE 8 +#define BLOWFISH_ROUNDS 16 + +typedef struct { + u32 s0[256]; + u32 s1[256]; + u32 s2[256]; + u32 s3[256]; + u32 p[BLOWFISH_ROUNDS+2]; +} BLOWFISH_context; + +static gcry_err_code_t bf_setkey (void *c, const byte *key, unsigned keylen); +static void encrypt_block (void *bc, byte *outbuf, const byte *inbuf); +static void decrypt_block (void *bc, byte *outbuf, const byte *inbuf); + + +/* precomputed S boxes */ +static const u32 ks0[256] = { + 0xD1310BA6,0x98DFB5AC,0x2FFD72DB,0xD01ADFB7,0xB8E1AFED,0x6A267E96, + 0xBA7C9045,0xF12C7F99,0x24A19947,0xB3916CF7,0x0801F2E2,0x858EFC16, + 0x636920D8,0x71574E69,0xA458FEA3,0xF4933D7E,0x0D95748F,0x728EB658, + 0x718BCD58,0x82154AEE,0x7B54A41D,0xC25A59B5,0x9C30D539,0x2AF26013, + 0xC5D1B023,0x286085F0,0xCA417918,0xB8DB38EF,0x8E79DCB0,0x603A180E, + 0x6C9E0E8B,0xB01E8A3E,0xD71577C1,0xBD314B27,0x78AF2FDA,0x55605C60, + 0xE65525F3,0xAA55AB94,0x57489862,0x63E81440,0x55CA396A,0x2AAB10B6, + 0xB4CC5C34,0x1141E8CE,0xA15486AF,0x7C72E993,0xB3EE1411,0x636FBC2A, + 0x2BA9C55D,0x741831F6,0xCE5C3E16,0x9B87931E,0xAFD6BA33,0x6C24CF5C, + 0x7A325381,0x28958677,0x3B8F4898,0x6B4BB9AF,0xC4BFE81B,0x66282193, + 0x61D809CC,0xFB21A991,0x487CAC60,0x5DEC8032,0xEF845D5D,0xE98575B1, + 0xDC262302,0xEB651B88,0x23893E81,0xD396ACC5,0x0F6D6FF3,0x83F44239, + 0x2E0B4482,0xA4842004,0x69C8F04A,0x9E1F9B5E,0x21C66842,0xF6E96C9A, + 0x670C9C61,0xABD388F0,0x6A51A0D2,0xD8542F68,0x960FA728,0xAB5133A3, + 0x6EEF0B6C,0x137A3BE4,0xBA3BF050,0x7EFB2A98,0xA1F1651D,0x39AF0176, + 0x66CA593E,0x82430E88,0x8CEE8619,0x456F9FB4,0x7D84A5C3,0x3B8B5EBE, + 0xE06F75D8,0x85C12073,0x401A449F,0x56C16AA6,0x4ED3AA62,0x363F7706, + 0x1BFEDF72,0x429B023D,0x37D0D724,0xD00A1248,0xDB0FEAD3,0x49F1C09B, + 0x075372C9,0x80991B7B,0x25D479D8,0xF6E8DEF7,0xE3FE501A,0xB6794C3B, + 0x976CE0BD,0x04C006BA,0xC1A94FB6,0x409F60C4,0x5E5C9EC2,0x196A2463, + 0x68FB6FAF,0x3E6C53B5,0x1339B2EB,0x3B52EC6F,0x6DFC511F,0x9B30952C, + 0xCC814544,0xAF5EBD09,0xBEE3D004,0xDE334AFD,0x660F2807,0x192E4BB3, + 0xC0CBA857,0x45C8740F,0xD20B5F39,0xB9D3FBDB,0x5579C0BD,0x1A60320A, + 0xD6A100C6,0x402C7279,0x679F25FE,0xFB1FA3CC,0x8EA5E9F8,0xDB3222F8, + 0x3C7516DF,0xFD616B15,0x2F501EC8,0xAD0552AB,0x323DB5FA,0xFD238760, + 0x53317B48,0x3E00DF82,0x9E5C57BB,0xCA6F8CA0,0x1A87562E,0xDF1769DB, + 0xD542A8F6,0x287EFFC3,0xAC6732C6,0x8C4F5573,0x695B27B0,0xBBCA58C8, + 0xE1FFA35D,0xB8F011A0,0x10FA3D98,0xFD2183B8,0x4AFCB56C,0x2DD1D35B, + 0x9A53E479,0xB6F84565,0xD28E49BC,0x4BFB9790,0xE1DDF2DA,0xA4CB7E33, + 0x62FB1341,0xCEE4C6E8,0xEF20CADA,0x36774C01,0xD07E9EFE,0x2BF11FB4, + 0x95DBDA4D,0xAE909198,0xEAAD8E71,0x6B93D5A0,0xD08ED1D0,0xAFC725E0, + 0x8E3C5B2F,0x8E7594B7,0x8FF6E2FB,0xF2122B64,0x8888B812,0x900DF01C, + 0x4FAD5EA0,0x688FC31C,0xD1CFF191,0xB3A8C1AD,0x2F2F2218,0xBE0E1777, + 0xEA752DFE,0x8B021FA1,0xE5A0CC0F,0xB56F74E8,0x18ACF3D6,0xCE89E299, + 0xB4A84FE0,0xFD13E0B7,0x7CC43B81,0xD2ADA8D9,0x165FA266,0x80957705, + 0x93CC7314,0x211A1477,0xE6AD2065,0x77B5FA86,0xC75442F5,0xFB9D35CF, + 0xEBCDAF0C,0x7B3E89A0,0xD6411BD3,0xAE1E7E49,0x00250E2D,0x2071B35E, + 0x226800BB,0x57B8E0AF,0x2464369B,0xF009B91E,0x5563911D,0x59DFA6AA, + 0x78C14389,0xD95A537F,0x207D5BA2,0x02E5B9C5,0x83260376,0x6295CFA9, + 0x11C81968,0x4E734A41,0xB3472DCA,0x7B14A94A,0x1B510052,0x9A532915, + 0xD60F573F,0xBC9BC6E4,0x2B60A476,0x81E67400,0x08BA6FB5,0x571BE91F, + 0xF296EC6B,0x2A0DD915,0xB6636521,0xE7B9F9B6,0xFF34052E,0xC5855664, + 0x53B02D5D,0xA99F8FA1,0x08BA4799,0x6E85076A }; + +static const u32 ks1[256] = { + 0x4B7A70E9,0xB5B32944,0xDB75092E,0xC4192623,0xAD6EA6B0,0x49A7DF7D, + 0x9CEE60B8,0x8FEDB266,0xECAA8C71,0x699A17FF,0x5664526C,0xC2B19EE1, + 0x193602A5,0x75094C29,0xA0591340,0xE4183A3E,0x3F54989A,0x5B429D65, + 0x6B8FE4D6,0x99F73FD6,0xA1D29C07,0xEFE830F5,0x4D2D38E6,0xF0255DC1, + 0x4CDD2086,0x8470EB26,0x6382E9C6,0x021ECC5E,0x09686B3F,0x3EBAEFC9, + 0x3C971814,0x6B6A70A1,0x687F3584,0x52A0E286,0xB79C5305,0xAA500737, + 0x3E07841C,0x7FDEAE5C,0x8E7D44EC,0x5716F2B8,0xB03ADA37,0xF0500C0D, + 0xF01C1F04,0x0200B3FF,0xAE0CF51A,0x3CB574B2,0x25837A58,0xDC0921BD, + 0xD19113F9,0x7CA92FF6,0x94324773,0x22F54701,0x3AE5E581,0x37C2DADC, + 0xC8B57634,0x9AF3DDA7,0xA9446146,0x0FD0030E,0xECC8C73E,0xA4751E41, + 0xE238CD99,0x3BEA0E2F,0x3280BBA1,0x183EB331,0x4E548B38,0x4F6DB908, + 0x6F420D03,0xF60A04BF,0x2CB81290,0x24977C79,0x5679B072,0xBCAF89AF, + 0xDE9A771F,0xD9930810,0xB38BAE12,0xDCCF3F2E,0x5512721F,0x2E6B7124, + 0x501ADDE6,0x9F84CD87,0x7A584718,0x7408DA17,0xBC9F9ABC,0xE94B7D8C, + 0xEC7AEC3A,0xDB851DFA,0x63094366,0xC464C3D2,0xEF1C1847,0x3215D908, + 0xDD433B37,0x24C2BA16,0x12A14D43,0x2A65C451,0x50940002,0x133AE4DD, + 0x71DFF89E,0x10314E55,0x81AC77D6,0x5F11199B,0x043556F1,0xD7A3C76B, + 0x3C11183B,0x5924A509,0xF28FE6ED,0x97F1FBFA,0x9EBABF2C,0x1E153C6E, + 0x86E34570,0xEAE96FB1,0x860E5E0A,0x5A3E2AB3,0x771FE71C,0x4E3D06FA, + 0x2965DCB9,0x99E71D0F,0x803E89D6,0x5266C825,0x2E4CC978,0x9C10B36A, + 0xC6150EBA,0x94E2EA78,0xA5FC3C53,0x1E0A2DF4,0xF2F74EA7,0x361D2B3D, + 0x1939260F,0x19C27960,0x5223A708,0xF71312B6,0xEBADFE6E,0xEAC31F66, + 0xE3BC4595,0xA67BC883,0xB17F37D1,0x018CFF28,0xC332DDEF,0xBE6C5AA5, + 0x65582185,0x68AB9802,0xEECEA50F,0xDB2F953B,0x2AEF7DAD,0x5B6E2F84, + 0x1521B628,0x29076170,0xECDD4775,0x619F1510,0x13CCA830,0xEB61BD96, + 0x0334FE1E,0xAA0363CF,0xB5735C90,0x4C70A239,0xD59E9E0B,0xCBAADE14, + 0xEECC86BC,0x60622CA7,0x9CAB5CAB,0xB2F3846E,0x648B1EAF,0x19BDF0CA, + 0xA02369B9,0x655ABB50,0x40685A32,0x3C2AB4B3,0x319EE9D5,0xC021B8F7, + 0x9B540B19,0x875FA099,0x95F7997E,0x623D7DA8,0xF837889A,0x97E32D77, + 0x11ED935F,0x16681281,0x0E358829,0xC7E61FD6,0x96DEDFA1,0x7858BA99, + 0x57F584A5,0x1B227263,0x9B83C3FF,0x1AC24696,0xCDB30AEB,0x532E3054, + 0x8FD948E4,0x6DBC3128,0x58EBF2EF,0x34C6FFEA,0xFE28ED61,0xEE7C3C73, + 0x5D4A14D9,0xE864B7E3,0x42105D14,0x203E13E0,0x45EEE2B6,0xA3AAABEA, + 0xDB6C4F15,0xFACB4FD0,0xC742F442,0xEF6ABBB5,0x654F3B1D,0x41CD2105, + 0xD81E799E,0x86854DC7,0xE44B476A,0x3D816250,0xCF62A1F2,0x5B8D2646, + 0xFC8883A0,0xC1C7B6A3,0x7F1524C3,0x69CB7492,0x47848A0B,0x5692B285, + 0x095BBF00,0xAD19489D,0x1462B174,0x23820E00,0x58428D2A,0x0C55F5EA, + 0x1DADF43E,0x233F7061,0x3372F092,0x8D937E41,0xD65FECF1,0x6C223BDB, + 0x7CDE3759,0xCBEE7460,0x4085F2A7,0xCE77326E,0xA6078084,0x19F8509E, + 0xE8EFD855,0x61D99735,0xA969A7AA,0xC50C06C2,0x5A04ABFC,0x800BCADC, + 0x9E447A2E,0xC3453484,0xFDD56705,0x0E1E9EC9,0xDB73DBD3,0x105588CD, + 0x675FDA79,0xE3674340,0xC5C43465,0x713E38D8,0x3D28F89E,0xF16DFF20, + 0x153E21E7,0x8FB03D4A,0xE6E39F2B,0xDB83ADF7 }; + +static const u32 ks2[256] = { + 0xE93D5A68,0x948140F7,0xF64C261C,0x94692934,0x411520F7,0x7602D4F7, + 0xBCF46B2E,0xD4A20068,0xD4082471,0x3320F46A,0x43B7D4B7,0x500061AF, + 0x1E39F62E,0x97244546,0x14214F74,0xBF8B8840,0x4D95FC1D,0x96B591AF, + 0x70F4DDD3,0x66A02F45,0xBFBC09EC,0x03BD9785,0x7FAC6DD0,0x31CB8504, + 0x96EB27B3,0x55FD3941,0xDA2547E6,0xABCA0A9A,0x28507825,0x530429F4, + 0x0A2C86DA,0xE9B66DFB,0x68DC1462,0xD7486900,0x680EC0A4,0x27A18DEE, + 0x4F3FFEA2,0xE887AD8C,0xB58CE006,0x7AF4D6B6,0xAACE1E7C,0xD3375FEC, + 0xCE78A399,0x406B2A42,0x20FE9E35,0xD9F385B9,0xEE39D7AB,0x3B124E8B, + 0x1DC9FAF7,0x4B6D1856,0x26A36631,0xEAE397B2,0x3A6EFA74,0xDD5B4332, + 0x6841E7F7,0xCA7820FB,0xFB0AF54E,0xD8FEB397,0x454056AC,0xBA489527, + 0x55533A3A,0x20838D87,0xFE6BA9B7,0xD096954B,0x55A867BC,0xA1159A58, + 0xCCA92963,0x99E1DB33,0xA62A4A56,0x3F3125F9,0x5EF47E1C,0x9029317C, + 0xFDF8E802,0x04272F70,0x80BB155C,0x05282CE3,0x95C11548,0xE4C66D22, + 0x48C1133F,0xC70F86DC,0x07F9C9EE,0x41041F0F,0x404779A4,0x5D886E17, + 0x325F51EB,0xD59BC0D1,0xF2BCC18F,0x41113564,0x257B7834,0x602A9C60, + 0xDFF8E8A3,0x1F636C1B,0x0E12B4C2,0x02E1329E,0xAF664FD1,0xCAD18115, + 0x6B2395E0,0x333E92E1,0x3B240B62,0xEEBEB922,0x85B2A20E,0xE6BA0D99, + 0xDE720C8C,0x2DA2F728,0xD0127845,0x95B794FD,0x647D0862,0xE7CCF5F0, + 0x5449A36F,0x877D48FA,0xC39DFD27,0xF33E8D1E,0x0A476341,0x992EFF74, + 0x3A6F6EAB,0xF4F8FD37,0xA812DC60,0xA1EBDDF8,0x991BE14C,0xDB6E6B0D, + 0xC67B5510,0x6D672C37,0x2765D43B,0xDCD0E804,0xF1290DC7,0xCC00FFA3, + 0xB5390F92,0x690FED0B,0x667B9FFB,0xCEDB7D9C,0xA091CF0B,0xD9155EA3, + 0xBB132F88,0x515BAD24,0x7B9479BF,0x763BD6EB,0x37392EB3,0xCC115979, + 0x8026E297,0xF42E312D,0x6842ADA7,0xC66A2B3B,0x12754CCC,0x782EF11C, + 0x6A124237,0xB79251E7,0x06A1BBE6,0x4BFB6350,0x1A6B1018,0x11CAEDFA, + 0x3D25BDD8,0xE2E1C3C9,0x44421659,0x0A121386,0xD90CEC6E,0xD5ABEA2A, + 0x64AF674E,0xDA86A85F,0xBEBFE988,0x64E4C3FE,0x9DBC8057,0xF0F7C086, + 0x60787BF8,0x6003604D,0xD1FD8346,0xF6381FB0,0x7745AE04,0xD736FCCC, + 0x83426B33,0xF01EAB71,0xB0804187,0x3C005E5F,0x77A057BE,0xBDE8AE24, + 0x55464299,0xBF582E61,0x4E58F48F,0xF2DDFDA2,0xF474EF38,0x8789BDC2, + 0x5366F9C3,0xC8B38E74,0xB475F255,0x46FCD9B9,0x7AEB2661,0x8B1DDF84, + 0x846A0E79,0x915F95E2,0x466E598E,0x20B45770,0x8CD55591,0xC902DE4C, + 0xB90BACE1,0xBB8205D0,0x11A86248,0x7574A99E,0xB77F19B6,0xE0A9DC09, + 0x662D09A1,0xC4324633,0xE85A1F02,0x09F0BE8C,0x4A99A025,0x1D6EFE10, + 0x1AB93D1D,0x0BA5A4DF,0xA186F20F,0x2868F169,0xDCB7DA83,0x573906FE, + 0xA1E2CE9B,0x4FCD7F52,0x50115E01,0xA70683FA,0xA002B5C4,0x0DE6D027, + 0x9AF88C27,0x773F8641,0xC3604C06,0x61A806B5,0xF0177A28,0xC0F586E0, + 0x006058AA,0x30DC7D62,0x11E69ED7,0x2338EA63,0x53C2DD94,0xC2C21634, + 0xBBCBEE56,0x90BCB6DE,0xEBFC7DA1,0xCE591D76,0x6F05E409,0x4B7C0188, + 0x39720A3D,0x7C927C24,0x86E3725F,0x724D9DB9,0x1AC15BB4,0xD39EB8FC, + 0xED545578,0x08FCA5B5,0xD83D7CD3,0x4DAD0FC4,0x1E50EF5E,0xB161E6F8, + 0xA28514D9,0x6C51133C,0x6FD5C7E7,0x56E14EC4,0x362ABFCE,0xDDC6C837, + 0xD79A3234,0x92638212,0x670EFA8E,0x406000E0 }; + +static const u32 ks3[256] = { + 0x3A39CE37,0xD3FAF5CF,0xABC27737,0x5AC52D1B,0x5CB0679E,0x4FA33742, + 0xD3822740,0x99BC9BBE,0xD5118E9D,0xBF0F7315,0xD62D1C7E,0xC700C47B, + 0xB78C1B6B,0x21A19045,0xB26EB1BE,0x6A366EB4,0x5748AB2F,0xBC946E79, + 0xC6A376D2,0x6549C2C8,0x530FF8EE,0x468DDE7D,0xD5730A1D,0x4CD04DC6, + 0x2939BBDB,0xA9BA4650,0xAC9526E8,0xBE5EE304,0xA1FAD5F0,0x6A2D519A, + 0x63EF8CE2,0x9A86EE22,0xC089C2B8,0x43242EF6,0xA51E03AA,0x9CF2D0A4, + 0x83C061BA,0x9BE96A4D,0x8FE51550,0xBA645BD6,0x2826A2F9,0xA73A3AE1, + 0x4BA99586,0xEF5562E9,0xC72FEFD3,0xF752F7DA,0x3F046F69,0x77FA0A59, + 0x80E4A915,0x87B08601,0x9B09E6AD,0x3B3EE593,0xE990FD5A,0x9E34D797, + 0x2CF0B7D9,0x022B8B51,0x96D5AC3A,0x017DA67D,0xD1CF3ED6,0x7C7D2D28, + 0x1F9F25CF,0xADF2B89B,0x5AD6B472,0x5A88F54C,0xE029AC71,0xE019A5E6, + 0x47B0ACFD,0xED93FA9B,0xE8D3C48D,0x283B57CC,0xF8D56629,0x79132E28, + 0x785F0191,0xED756055,0xF7960E44,0xE3D35E8C,0x15056DD4,0x88F46DBA, + 0x03A16125,0x0564F0BD,0xC3EB9E15,0x3C9057A2,0x97271AEC,0xA93A072A, + 0x1B3F6D9B,0x1E6321F5,0xF59C66FB,0x26DCF319,0x7533D928,0xB155FDF5, + 0x03563482,0x8ABA3CBB,0x28517711,0xC20AD9F8,0xABCC5167,0xCCAD925F, + 0x4DE81751,0x3830DC8E,0x379D5862,0x9320F991,0xEA7A90C2,0xFB3E7BCE, + 0x5121CE64,0x774FBE32,0xA8B6E37E,0xC3293D46,0x48DE5369,0x6413E680, + 0xA2AE0810,0xDD6DB224,0x69852DFD,0x09072166,0xB39A460A,0x6445C0DD, + 0x586CDECF,0x1C20C8AE,0x5BBEF7DD,0x1B588D40,0xCCD2017F,0x6BB4E3BB, + 0xDDA26A7E,0x3A59FF45,0x3E350A44,0xBCB4CDD5,0x72EACEA8,0xFA6484BB, + 0x8D6612AE,0xBF3C6F47,0xD29BE463,0x542F5D9E,0xAEC2771B,0xF64E6370, + 0x740E0D8D,0xE75B1357,0xF8721671,0xAF537D5D,0x4040CB08,0x4EB4E2CC, + 0x34D2466A,0x0115AF84,0xE1B00428,0x95983A1D,0x06B89FB4,0xCE6EA048, + 0x6F3F3B82,0x3520AB82,0x011A1D4B,0x277227F8,0x611560B1,0xE7933FDC, + 0xBB3A792B,0x344525BD,0xA08839E1,0x51CE794B,0x2F32C9B7,0xA01FBAC9, + 0xE01CC87E,0xBCC7D1F6,0xCF0111C3,0xA1E8AAC7,0x1A908749,0xD44FBD9A, + 0xD0DADECB,0xD50ADA38,0x0339C32A,0xC6913667,0x8DF9317C,0xE0B12B4F, + 0xF79E59B7,0x43F5BB3A,0xF2D519FF,0x27D9459C,0xBF97222C,0x15E6FC2A, + 0x0F91FC71,0x9B941525,0xFAE59361,0xCEB69CEB,0xC2A86459,0x12BAA8D1, + 0xB6C1075E,0xE3056A0C,0x10D25065,0xCB03A442,0xE0EC6E0E,0x1698DB3B, + 0x4C98A0BE,0x3278E964,0x9F1F9532,0xE0D392DF,0xD3A0342B,0x8971F21E, + 0x1B0A7441,0x4BA3348C,0xC5BE7120,0xC37632D8,0xDF359F8D,0x9B992F2E, + 0xE60B6F47,0x0FE3F11D,0xE54CDA54,0x1EDAD891,0xCE6279CF,0xCD3E7E6F, + 0x1618B166,0xFD2C1D05,0x848FD2C5,0xF6FB2299,0xF523F357,0xA6327623, + 0x93A83531,0x56CCCD02,0xACF08162,0x5A75EBB5,0x6E163697,0x88D273CC, + 0xDE966292,0x81B949D0,0x4C50901B,0x71C65614,0xE6C6C7BD,0x327A140A, + 0x45E1D006,0xC3F27B9A,0xC9AA53FD,0x62A80F00,0xBB25BFE2,0x35BDD2F6, + 0x71126905,0xB2040222,0xB6CBCF7C,0xCD769C2B,0x53113EC0,0x1640E3D3, + 0x38ABBD60,0x2547ADF0,0xBA38209C,0xF746CE76,0x77AFA1C5,0x20756060, + 0x85CBFE4E,0x8AE88DD8,0x7AAAF9B0,0x4CF9AA7E,0x1948C25C,0x02FB8A8C, + 0x01C36AE4,0xD6EBE1F9,0x90D4F869,0xA65CDEA0,0x3F09252D,0xC208E69F, + 0xB74E6132,0xCE77E25B,0x578FDFE3,0x3AC372E6 }; + +static const u32 ps[BLOWFISH_ROUNDS+2] = { + 0x243F6A88,0x85A308D3,0x13198A2E,0x03707344,0xA4093822,0x299F31D0, + 0x082EFA98,0xEC4E6C89,0x452821E6,0x38D01377,0xBE5466CF,0x34E90C6C, + 0xC0AC29B7,0xC97C50DD,0x3F84D5B5,0xB5470917,0x9216D5D9,0x8979FB1B }; + + + +#if BLOWFISH_ROUNDS != 16 +static inline u32 +function_F( BLOWFISH_context *bc, u32 x ) +{ + u16 a, b, c, d; + +#ifdef WORDS_BIGENDIAN + a = ((byte*)&x)[0]; + b = ((byte*)&x)[1]; + c = ((byte*)&x)[2]; + d = ((byte*)&x)[3]; +#else + a = ((byte*)&x)[3]; + b = ((byte*)&x)[2]; + c = ((byte*)&x)[1]; + d = ((byte*)&x)[0]; +#endif + + return ((bc->s0[a] + bc->s1[b]) ^ bc->s2[c] ) + bc->s3[d]; +} +#endif + +#ifdef WORDS_BIGENDIAN +#define F(x) ((( s0[((byte*)&x)[0]] + s1[((byte*)&x)[1]]) \ + ^ s2[((byte*)&x)[2]]) + s3[((byte*)&x)[3]] ) +#else +#define F(x) ((( s0[((byte*)&x)[3]] + s1[((byte*)&x)[2]]) \ + ^ s2[((byte*)&x)[1]]) + s3[((byte*)&x)[0]] ) +#endif +#define R(l,r,i) do { l ^= p[i]; r ^= F(l); } while(0) + + +static void +do_encrypt ( BLOWFISH_context *bc, u32 *ret_xl, u32 *ret_xr ) +{ +#if BLOWFISH_ROUNDS == 16 + u32 xl, xr, *s0, *s1, *s2, *s3, *p; + + xl = *ret_xl; + xr = *ret_xr; + p = bc->p; + s0 = bc->s0; + s1 = bc->s1; + s2 = bc->s2; + s3 = bc->s3; + + R( xl, xr, 0); + R( xr, xl, 1); + R( xl, xr, 2); + R( xr, xl, 3); + R( xl, xr, 4); + R( xr, xl, 5); + R( xl, xr, 6); + R( xr, xl, 7); + R( xl, xr, 8); + R( xr, xl, 9); + R( xl, xr, 10); + R( xr, xl, 11); + R( xl, xr, 12); + R( xr, xl, 13); + R( xl, xr, 14); + R( xr, xl, 15); + + xl ^= p[BLOWFISH_ROUNDS]; + xr ^= p[BLOWFISH_ROUNDS+1]; + + *ret_xl = xr; + *ret_xr = xl; + +#else + u32 xl, xr, temp, *p; + int i; + + xl = *ret_xl; + xr = *ret_xr; + p = bc->p; + + for(i=0; i < BLOWFISH_ROUNDS; i++ ) + { + xl ^= p[i]; + xr ^= function_F(bc, xl); + temp = xl; + xl = xr; + xr = temp; + } + temp = xl; + xl = xr; + xr = temp; + + xr ^= p[BLOWFISH_ROUNDS]; + xl ^= p[BLOWFISH_ROUNDS+1]; + + *ret_xl = xl; + *ret_xr = xr; +#endif +} + + +static void +decrypt ( BLOWFISH_context *bc, u32 *ret_xl, u32 *ret_xr ) +{ +#if BLOWFISH_ROUNDS == 16 + u32 xl, xr, *s0, *s1, *s2, *s3, *p; + + xl = *ret_xl; + xr = *ret_xr; + p = bc->p; + s0 = bc->s0; + s1 = bc->s1; + s2 = bc->s2; + s3 = bc->s3; + + R( xl, xr, 17); + R( xr, xl, 16); + R( xl, xr, 15); + R( xr, xl, 14); + R( xl, xr, 13); + R( xr, xl, 12); + R( xl, xr, 11); + R( xr, xl, 10); + R( xl, xr, 9); + R( xr, xl, 8); + R( xl, xr, 7); + R( xr, xl, 6); + R( xl, xr, 5); + R( xr, xl, 4); + R( xl, xr, 3); + R( xr, xl, 2); + + xl ^= p[1]; + xr ^= p[0]; + + *ret_xl = xr; + *ret_xr = xl; + +#else + u32 xl, xr, temp, *p; + int i; + + xl = *ret_xl; + xr = *ret_xr; + p = bc->p; + + for (i=BLOWFISH_ROUNDS+1; i > 1; i-- ) + { + xl ^= p[i]; + xr ^= function_F(bc, xl); + temp = xl; + xl = xr; + xr = temp; + } + + temp = xl; + xl = xr; + xr = temp; + + xr ^= p[1]; + xl ^= p[0]; + + *ret_xl = xl; + *ret_xr = xr; +#endif +} + +#undef F +#undef R + +static void +do_encrypt_block ( BLOWFISH_context *bc, byte *outbuf, const byte *inbuf ) +{ + u32 d1, d2; + + d1 = inbuf[0] << 24 | inbuf[1] << 16 | inbuf[2] << 8 | inbuf[3]; + d2 = inbuf[4] << 24 | inbuf[5] << 16 | inbuf[6] << 8 | inbuf[7]; + do_encrypt( bc, &d1, &d2 ); + outbuf[0] = (d1 >> 24) & 0xff; + outbuf[1] = (d1 >> 16) & 0xff; + outbuf[2] = (d1 >> 8) & 0xff; + outbuf[3] = d1 & 0xff; + outbuf[4] = (d2 >> 24) & 0xff; + outbuf[5] = (d2 >> 16) & 0xff; + outbuf[6] = (d2 >> 8) & 0xff; + outbuf[7] = d2 & 0xff; +} + +static void +encrypt_block (void *context, byte *outbuf, const byte *inbuf) +{ + BLOWFISH_context *bc = (BLOWFISH_context *) context; + do_encrypt_block (bc, outbuf, inbuf); + _gcry_burn_stack (64); +} + + +static void +do_decrypt_block (BLOWFISH_context *bc, byte *outbuf, const byte *inbuf) +{ + u32 d1, d2; + + d1 = inbuf[0] << 24 | inbuf[1] << 16 | inbuf[2] << 8 | inbuf[3]; + d2 = inbuf[4] << 24 | inbuf[5] << 16 | inbuf[6] << 8 | inbuf[7]; + decrypt( bc, &d1, &d2 ); + outbuf[0] = (d1 >> 24) & 0xff; + outbuf[1] = (d1 >> 16) & 0xff; + outbuf[2] = (d1 >> 8) & 0xff; + outbuf[3] = d1 & 0xff; + outbuf[4] = (d2 >> 24) & 0xff; + outbuf[5] = (d2 >> 16) & 0xff; + outbuf[6] = (d2 >> 8) & 0xff; + outbuf[7] = d2 & 0xff; +} + +static void +decrypt_block (void *context, byte *outbuf, const byte *inbuf) +{ + BLOWFISH_context *bc = (BLOWFISH_context *) context; + do_decrypt_block (bc, outbuf, inbuf); + _gcry_burn_stack (64); +} + + + + + +static gcry_err_code_t +do_bf_setkey (BLOWFISH_context *c, const byte *key, unsigned keylen) +{ + int i, j; + u32 data, datal, datar; + static int initialized; + static const char *selftest_failed; + + if( !initialized ) + { + initialized = 1; + selftest_failed = selftest(); + if( selftest_failed ) + log_error ("%s\n", selftest_failed ); + } + if( selftest_failed ) + return GPG_ERR_SELFTEST_FAILED; + + for(i=0; i < BLOWFISH_ROUNDS+2; i++ ) + c->p[i] = ps[i]; + for(i=0; i < 256; i++ ) + { + c->s0[i] = ks0[i]; + c->s1[i] = ks1[i]; + c->s2[i] = ks2[i]; + c->s3[i] = ks3[i]; + } + + for(i=j=0; i < BLOWFISH_ROUNDS+2; i++ ) + { +#ifdef WORDS_BIGENDIAN + ((byte*)&data)[0] = key[j]; + ((byte*)&data)[1] = key[(j+1)%keylen]; + ((byte*)&data)[2] = key[(j+2)%keylen]; + ((byte*)&data)[3] = key[(j+3)%keylen]; +#else + ((byte*)&data)[3] = key[j]; + ((byte*)&data)[2] = key[(j+1)%keylen]; + ((byte*)&data)[1] = key[(j+2)%keylen]; + ((byte*)&data)[0] = key[(j+3)%keylen]; +#endif + c->p[i] ^= data; + j = (j+4) % keylen; + } + + datal = datar = 0; + for(i=0; i < BLOWFISH_ROUNDS+2; i += 2 ) + { + do_encrypt( c, &datal, &datar ); + c->p[i] = datal; + c->p[i+1] = datar; + } + for(i=0; i < 256; i += 2 ) + { + do_encrypt( c, &datal, &datar ); + c->s0[i] = datal; + c->s0[i+1] = datar; + } + for(i=0; i < 256; i += 2 ) + { + do_encrypt( c, &datal, &datar ); + c->s1[i] = datal; + c->s1[i+1] = datar; + } + for(i=0; i < 256; i += 2 ) + { + do_encrypt( c, &datal, &datar ); + c->s2[i] = datal; + c->s2[i+1] = datar; + } + for(i=0; i < 256; i += 2 ) + { + do_encrypt( c, &datal, &datar ); + c->s3[i] = datal; + c->s3[i+1] = datar; + } + + + /* Check for weak key. A weak key is a key in which a value in + the P-array (here c) occurs more than once per table. */ + for(i=0; i < 255; i++ ) + { + for( j=i+1; j < 256; j++) + { + if( (c->s0[i] == c->s0[j]) || (c->s1[i] == c->s1[j]) || + (c->s2[i] == c->s2[j]) || (c->s3[i] == c->s3[j]) ) + return GPG_ERR_WEAK_KEY; + } + } + + return GPG_ERR_NO_ERROR; +} + + +static gcry_err_code_t +bf_setkey (void *context, const byte *key, unsigned keylen) +{ + BLOWFISH_context *c = (BLOWFISH_context *) context; + gcry_err_code_t rc = do_bf_setkey (c, key, keylen); + _gcry_burn_stack (64); + return rc; +} + + +gcry_cipher_spec_t _gcry_cipher_spec_blowfish = + { + "BLOWFISH", NULL, NULL, BLOWFISH_BLOCKSIZE, 128, + sizeof (BLOWFISH_context), + bf_setkey, encrypt_block, decrypt_block + }; + + +GRUB_MOD_INIT(gcry_blowfish) +{ + grub_cipher_register (&_gcry_cipher_spec_blowfish); +} + +GRUB_MOD_FINI(gcry_blowfish) +{ + grub_cipher_unregister (&_gcry_cipher_spec_blowfish); +} --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/memory.h +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/memory.h @@ -0,0 +1 @@ +#include --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/primegen.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/primegen.c @@ -0,0 +1,1859 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* primegen.c - prime number generator + * Copyright (C) 1998, 2000, 2001, 2002, 2003 + * 2004, 2008 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser general Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + + +#include "g10lib.h" +#include "mpi.h" +#include "cipher.h" +#include "ath.h" + +static gcry_mpi_t gen_prime (unsigned int nbits, int secret, int randomlevel, + int (*extra_check)(void *, gcry_mpi_t), + void *extra_check_arg); +static int check_prime( gcry_mpi_t prime, gcry_mpi_t val_2, int rm_rounds, + gcry_prime_check_func_t cb_func, void *cb_arg ); +static int is_prime (gcry_mpi_t n, int steps, unsigned int *count); +static void m_out_of_n( char *array, int m, int n ); + +static void (*progress_cb) (void *,const char*,int,int, int ); +static void *progress_cb_data; + +/* Note: 2 is not included because it can be tested more easily by + looking at bit 0. The last entry in this list is marked by a zero */ +static ushort small_prime_numbers[] = { + 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, + 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, + 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, + 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, + 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, + 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, + 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, + 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, + 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, + 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, + 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, + 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, + 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, + 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, + 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, + 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, + 991, 997, 1009, 1013, 1019, 1021, 1031, 1033, + 1039, 1049, 1051, 1061, 1063, 1069, 1087, 1091, + 1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151, + 1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, + 1217, 1223, 1229, 1231, 1237, 1249, 1259, 1277, + 1279, 1283, 1289, 1291, 1297, 1301, 1303, 1307, + 1319, 1321, 1327, 1361, 1367, 1373, 1381, 1399, + 1409, 1423, 1427, 1429, 1433, 1439, 1447, 1451, + 1453, 1459, 1471, 1481, 1483, 1487, 1489, 1493, + 1499, 1511, 1523, 1531, 1543, 1549, 1553, 1559, + 1567, 1571, 1579, 1583, 1597, 1601, 1607, 1609, + 1613, 1619, 1621, 1627, 1637, 1657, 1663, 1667, + 1669, 1693, 1697, 1699, 1709, 1721, 1723, 1733, + 1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789, + 1801, 1811, 1823, 1831, 1847, 1861, 1867, 1871, + 1873, 1877, 1879, 1889, 1901, 1907, 1913, 1931, + 1933, 1949, 1951, 1973, 1979, 1987, 1993, 1997, + 1999, 2003, 2011, 2017, 2027, 2029, 2039, 2053, + 2063, 2069, 2081, 2083, 2087, 2089, 2099, 2111, + 2113, 2129, 2131, 2137, 2141, 2143, 2153, 2161, + 2179, 2203, 2207, 2213, 2221, 2237, 2239, 2243, + 2251, 2267, 2269, 2273, 2281, 2287, 2293, 2297, + 2309, 2311, 2333, 2339, 2341, 2347, 2351, 2357, + 2371, 2377, 2381, 2383, 2389, 2393, 2399, 2411, + 2417, 2423, 2437, 2441, 2447, 2459, 2467, 2473, + 2477, 2503, 2521, 2531, 2539, 2543, 2549, 2551, + 2557, 2579, 2591, 2593, 2609, 2617, 2621, 2633, + 2647, 2657, 2659, 2663, 2671, 2677, 2683, 2687, + 2689, 2693, 2699, 2707, 2711, 2713, 2719, 2729, + 2731, 2741, 2749, 2753, 2767, 2777, 2789, 2791, + 2797, 2801, 2803, 2819, 2833, 2837, 2843, 2851, + 2857, 2861, 2879, 2887, 2897, 2903, 2909, 2917, + 2927, 2939, 2953, 2957, 2963, 2969, 2971, 2999, + 3001, 3011, 3019, 3023, 3037, 3041, 3049, 3061, + 3067, 3079, 3083, 3089, 3109, 3119, 3121, 3137, + 3163, 3167, 3169, 3181, 3187, 3191, 3203, 3209, + 3217, 3221, 3229, 3251, 3253, 3257, 3259, 3271, + 3299, 3301, 3307, 3313, 3319, 3323, 3329, 3331, + 3343, 3347, 3359, 3361, 3371, 3373, 3389, 3391, + 3407, 3413, 3433, 3449, 3457, 3461, 3463, 3467, + 3469, 3491, 3499, 3511, 3517, 3527, 3529, 3533, + 3539, 3541, 3547, 3557, 3559, 3571, 3581, 3583, + 3593, 3607, 3613, 3617, 3623, 3631, 3637, 3643, + 3659, 3671, 3673, 3677, 3691, 3697, 3701, 3709, + 3719, 3727, 3733, 3739, 3761, 3767, 3769, 3779, + 3793, 3797, 3803, 3821, 3823, 3833, 3847, 3851, + 3853, 3863, 3877, 3881, 3889, 3907, 3911, 3917, + 3919, 3923, 3929, 3931, 3943, 3947, 3967, 3989, + 4001, 4003, 4007, 4013, 4019, 4021, 4027, 4049, + 4051, 4057, 4073, 4079, 4091, 4093, 4099, 4111, + 4127, 4129, 4133, 4139, 4153, 4157, 4159, 4177, + 4201, 4211, 4217, 4219, 4229, 4231, 4241, 4243, + 4253, 4259, 4261, 4271, 4273, 4283, 4289, 4297, + 4327, 4337, 4339, 4349, 4357, 4363, 4373, 4391, + 4397, 4409, 4421, 4423, 4441, 4447, 4451, 4457, + 4463, 4481, 4483, 4493, 4507, 4513, 4517, 4519, + 4523, 4547, 4549, 4561, 4567, 4583, 4591, 4597, + 4603, 4621, 4637, 4639, 4643, 4649, 4651, 4657, + 4663, 4673, 4679, 4691, 4703, 4721, 4723, 4729, + 4733, 4751, 4759, 4783, 4787, 4789, 4793, 4799, + 4801, 4813, 4817, 4831, 4861, 4871, 4877, 4889, + 4903, 4909, 4919, 4931, 4933, 4937, 4943, 4951, + 4957, 4967, 4969, 4973, 4987, 4993, 4999, + 0 +}; +static int no_of_small_prime_numbers = DIM (small_prime_numbers) - 1; + + + +/* An object and a list to build up a global pool of primes. See + save_pool_prime and get_pool_prime. */ +struct primepool_s +{ + struct primepool_s *next; + gcry_mpi_t prime; /* If this is NULL the entry is not used. */ + unsigned int nbits; + gcry_random_level_t randomlevel; +}; +struct primepool_s *primepool; +/* Mutex used to protect access to the primepool. */ +static ath_mutex_t primepool_lock = ATH_MUTEX_INITIALIZER; + + + +/* Save PRIME which has been generated at RANDOMLEVEL for later + use. Needs to be called while primepool_lock is being hold. Note + that PRIME should be considered released after calling this + function. */ +static void +save_pool_prime (gcry_mpi_t prime, gcry_random_level_t randomlevel) +{ + struct primepool_s *item, *item2; + size_t n; + + for (n=0, item = primepool; item; item = item->next, n++) + if (!item->prime) + break; + if (!item && n > 100) + { + /* Remove some of the entries. Our strategy is removing + the last third from the list. */ + int i; + + for (i=0, item2 = primepool; item2; item2 = item2->next) + { + if (i >= n/3*2) + { + gcry_mpi_release (item2->prime); + item2->prime = NULL; + if (!item) + item = item2; + } + } + } + if (!item) + { + item = gcry_calloc (1, sizeof *item); + if (!item) + { + /* Out of memory. Silently giving up. */ + gcry_mpi_release (prime); + return; + } + item->next = primepool; + primepool = item; + } + item->prime = prime; + item->nbits = mpi_get_nbits (prime); + item->randomlevel = randomlevel; +} + + +/* Return a prime for the prime pool or NULL if none has been found. + The prime needs to match NBITS and randomlevel. This function needs + to be called why the primepool_look is being hold. */ +static gcry_mpi_t +get_pool_prime (unsigned int nbits, gcry_random_level_t randomlevel) +{ + struct primepool_s *item; + + for (item = primepool; item; item = item->next) + if (item->prime + && item->nbits == nbits && item->randomlevel == randomlevel) + { + gcry_mpi_t prime = item->prime; + item->prime = NULL; + gcry_assert (nbits == mpi_get_nbits (prime)); + return prime; + } + return NULL; +} + + + + + + +void +_gcry_register_primegen_progress ( void (*cb)(void *,const char*,int,int,int), + void *cb_data ) +{ + progress_cb = cb; + progress_cb_data = cb_data; +} + + +static void +progress( int c ) +{ + if ( progress_cb ) + progress_cb ( progress_cb_data, "primegen", c, 0, 0 ); +} + + +/**************** + * Generate a prime number (stored in secure memory) + */ +gcry_mpi_t +_gcry_generate_secret_prime (unsigned int nbits, + gcry_random_level_t random_level, + int (*extra_check)(void*, gcry_mpi_t), + void *extra_check_arg) +{ + gcry_mpi_t prime; + + prime = gen_prime (nbits, 1, random_level, extra_check, extra_check_arg); + progress('\n'); + return prime; +} + + +/* Generate a prime number which may be public, i.e. not allocated in + secure memory. */ +gcry_mpi_t +_gcry_generate_public_prime (unsigned int nbits, + gcry_random_level_t random_level, + int (*extra_check)(void*, gcry_mpi_t), + void *extra_check_arg) +{ + gcry_mpi_t prime; + + prime = gen_prime (nbits, 0, random_level, extra_check, extra_check_arg); + progress('\n'); + return prime; +} + + +/* Core prime generation function. The algorithm used to generate + practically save primes is due to Lim and Lee as described in the + CRYPTO '97 proceedings (ISBN3540633847) page 260. + + NEED_Q_FACTOR: If true make sure that at least one factor is of + size qbits. This is for example required for DSA. + PRIME_GENERATED: Adresss of a variable where the resulting prime + number will be stored. + PBITS: Requested size of the prime number. At least 48. + QBITS: One factor of the prime needs to be of this size. Maybe 0 + if this is not required. See also MODE. + G: If not NULL an MPI which will receive a generator for the prime + for use with Elgamal. + RET_FACTORS: if not NULL, an array with all factors are stored at + that address. + ALL_FACTORS: If set to true all factors of prime-1 are returned. + RANDOMLEVEL: How strong should the random numers be. + FLAGS: Prime generation bit flags. Currently supported: + GCRY_PRIME_FLAG_SECRET - The prime needs to be kept secret. + CB_FUNC, CB_ARG: Callback to be used for extra checks. + + */ +static gcry_err_code_t +prime_generate_internal (int need_q_factor, + gcry_mpi_t *prime_generated, unsigned int pbits, + unsigned int qbits, gcry_mpi_t g, + gcry_mpi_t **ret_factors, + gcry_random_level_t randomlevel, unsigned int flags, + int all_factors, + gcry_prime_check_func_t cb_func, void *cb_arg) +{ + gcry_err_code_t err = 0; + gcry_mpi_t *factors_new = NULL; /* Factors to return to the + caller. */ + gcry_mpi_t *factors = NULL; /* Current factors. */ + gcry_random_level_t poolrandomlevel; /* Random level used for pool primes. */ + gcry_mpi_t *pool = NULL; /* Pool of primes. */ + int *pool_in_use = NULL; /* Array with currently used POOL elements. */ + unsigned char *perms = NULL; /* Permutations of POOL. */ + gcry_mpi_t q_factor = NULL; /* Used if QBITS is non-zero. */ + unsigned int fbits = 0; /* Length of prime factors. */ + unsigned int n = 0; /* Number of factors. */ + unsigned int m = 0; /* Number of primes in pool. */ + gcry_mpi_t q = NULL; /* First prime factor. */ + gcry_mpi_t prime = NULL; /* Prime candidate. */ + unsigned int nprime = 0; /* Bits of PRIME. */ + unsigned int req_qbits; /* The original QBITS value. */ + gcry_mpi_t val_2; /* For check_prime(). */ + int is_locked = 0; /* Flag to help unlocking the primepool. */ + unsigned int is_secret = (flags & GCRY_PRIME_FLAG_SECRET); + unsigned int count1 = 0, count2 = 0; + unsigned int i = 0, j = 0; + + if (pbits < 48) + return GPG_ERR_INV_ARG; + + /* We won't use a too strong random elvel for the pooled subprimes. */ + poolrandomlevel = (randomlevel > GCRY_STRONG_RANDOM? + GCRY_STRONG_RANDOM : randomlevel); + + + /* If QBITS is not given, assume a reasonable value. */ + if (!qbits) + qbits = pbits / 3; + + req_qbits = qbits; + + /* Find number of needed prime factors N. */ + for (n = 1; (pbits - qbits - 1) / n >= qbits; n++) + ; + n--; + + val_2 = mpi_alloc_set_ui (2); + + if ((! n) || ((need_q_factor) && (n < 2))) + { + err = GPG_ERR_INV_ARG; + goto leave; + } + + if (need_q_factor) + { + n--; /* Need one factor less because we want a specific Q-FACTOR. */ + fbits = (pbits - 2 * req_qbits -1) / n; + qbits = pbits - req_qbits - n * fbits; + } + else + { + fbits = (pbits - req_qbits -1) / n; + qbits = pbits - n * fbits; + } + + if (DBG_CIPHER) + log_debug ("gen prime: pbits=%u qbits=%u fbits=%u/%u n=%d\n", + pbits, req_qbits, qbits, fbits, n); + + /* Allocate an integer to old the new prime. */ + prime = gcry_mpi_new (pbits); + + /* Generate first prime factor. */ + q = gen_prime (qbits, is_secret, randomlevel, NULL, NULL); + + /* Generate a specific Q-Factor if requested. */ + if (need_q_factor) + q_factor = gen_prime (req_qbits, is_secret, randomlevel, NULL, NULL); + + /* Allocate an array to hold all factors + 2 for later usage. */ + factors = gcry_calloc (n + 2, sizeof (*factors)); + if (!factors) + { + err = gpg_err_code_from_errno (errno); + goto leave; + } + + /* Allocate an array to track pool usage. */ + pool_in_use = gcry_malloc (n * sizeof *pool_in_use); + if (!pool_in_use) + { + err = gpg_err_code_from_errno (errno); + goto leave; + } + for (i=0; i < n; i++) + pool_in_use[i] = -1; + + /* Make a pool of 3n+5 primes (this is an arbitrary value). We + require at least 30 primes for are useful selection process. + + Fixme: We need to research the best formula for sizing the pool. + */ + m = n * 3 + 5; + if (need_q_factor) /* Need some more in this case. */ + m += 5; + if (m < 30) + m = 30; + pool = gcry_calloc (m , sizeof (*pool)); + if (! pool) + { + err = gpg_err_code_from_errno (errno); + goto leave; + } + + /* Permutate over the pool of primes until we find a prime of the + requested length. */ + do + { + next_try: + for (i=0; i < n; i++) + pool_in_use[i] = -1; + + if (!perms) + { + /* Allocate new primes. This is done right at the beginning + of the loop and if we have later run out of primes. */ + for (i = 0; i < m; i++) + { + mpi_free (pool[i]); + pool[i] = NULL; + } + + /* Init m_out_of_n(). */ + perms = gcry_calloc (1, m); + if (!perms) + { + err = gpg_err_code_from_errno (errno); + goto leave; + } + + if (ath_mutex_lock (&primepool_lock)) + { + err = GPG_ERR_INTERNAL; + goto leave; + } + is_locked = 1; + for (i = 0; i < n; i++) + { + perms[i] = 1; + /* At a maximum we use strong random for the factors. + This saves us a lot of entropy. Given that Q and + possible Q-factor are also used in the final prime + this should be acceptable. We also don't allocate in + secure memory to save on that scare resource too. If + Q has been allocated in secure memory, the final + prime will be saved there anyway. This is because + our MPI routines take care of that. GnuPG has worked + this way ever since. */ + pool[i] = NULL; + if (is_locked) + { + pool[i] = get_pool_prime (fbits, poolrandomlevel); + if (!pool[i]) + { + if (ath_mutex_unlock (&primepool_lock)) + { + err = GPG_ERR_INTERNAL; + goto leave; + } + is_locked = 0; + } + } + if (!pool[i]) + pool[i] = gen_prime (fbits, 0, poolrandomlevel, NULL, NULL); + pool_in_use[i] = i; + factors[i] = pool[i]; + } + if (is_locked && ath_mutex_unlock (&primepool_lock)) + { + err = GPG_ERR_INTERNAL; + goto leave; + } + is_locked = 0; + } + else + { + /* Get next permutation. */ + m_out_of_n ( (char*)perms, n, m); + if (ath_mutex_lock (&primepool_lock)) + { + err = GPG_ERR_INTERNAL; + goto leave; + } + is_locked = 1; + for (i = j = 0; (i < m) && (j < n); i++) + if (perms[i]) + { + /* If the subprime has not yet beed generated do it now. */ + if (!pool[i] && is_locked) + { + pool[i] = get_pool_prime (fbits, poolrandomlevel); + if (!pool[i]) + { + if (ath_mutex_unlock (&primepool_lock)) + { + err = GPG_ERR_INTERNAL; + goto leave; + } + is_locked = 0; + } + } + if (!pool[i]) + pool[i] = gen_prime (fbits, 0, poolrandomlevel, NULL, NULL); + pool_in_use[j] = i; + factors[j++] = pool[i]; + } + if (is_locked && ath_mutex_unlock (&primepool_lock)) + { + err = GPG_ERR_INTERNAL; + goto leave; + } + is_locked = 0; + if (i == n) + { + /* Ran out of permutations: Allocate new primes. */ + gcry_free (perms); + perms = NULL; + progress ('!'); + goto next_try; + } + } + + /* Generate next prime candidate: + p = 2 * q [ * q_factor] * factor_0 * factor_1 * ... * factor_n + 1. + */ + mpi_set (prime, q); + mpi_mul_ui (prime, prime, 2); + if (need_q_factor) + mpi_mul (prime, prime, q_factor); + for(i = 0; i < n; i++) + mpi_mul (prime, prime, factors[i]); + mpi_add_ui (prime, prime, 1); + nprime = mpi_get_nbits (prime); + + if (nprime < pbits) + { + if (++count1 > 20) + { + count1 = 0; + qbits++; + progress('>'); + mpi_free (q); + q = gen_prime (qbits, is_secret, randomlevel, NULL, NULL); + goto next_try; + } + } + else + count1 = 0; + + if (nprime > pbits) + { + if (++count2 > 20) + { + count2 = 0; + qbits--; + progress('<'); + mpi_free (q); + q = gen_prime (qbits, is_secret, randomlevel, NULL, NULL); + goto next_try; + } + } + else + count2 = 0; + } + while (! ((nprime == pbits) && check_prime (prime, val_2, 5, + cb_func, cb_arg))); + + if (DBG_CIPHER) + { + progress ('\n'); + log_mpidump ("prime : ", prime); + log_mpidump ("factor q: ", q); + if (need_q_factor) + log_mpidump ("factor q0: ", q_factor); + for (i = 0; i < n; i++) + log_mpidump ("factor pi: ", factors[i]); + log_debug ("bit sizes: prime=%u, q=%u", + mpi_get_nbits (prime), mpi_get_nbits (q)); + if (need_q_factor) + log_debug (", q0=%u", mpi_get_nbits (q_factor)); + for (i = 0; i < n; i++) + log_debug (", p%d=%u", i, mpi_get_nbits (factors[i])); + progress('\n'); + } + + if (ret_factors) + { + /* Caller wants the factors. */ + factors_new = gcry_calloc (n + 4, sizeof (*factors_new)); + if (! factors_new) + { + err = gpg_err_code_from_errno (errno); + goto leave; + } + + if (all_factors) + { + i = 0; + factors_new[i++] = gcry_mpi_set_ui (NULL, 2); + factors_new[i++] = mpi_copy (q); + if (need_q_factor) + factors_new[i++] = mpi_copy (q_factor); + for(j=0; j < n; j++) + factors_new[i++] = mpi_copy (factors[j]); + } + else + { + i = 0; + if (need_q_factor) + { + factors_new[i++] = mpi_copy (q_factor); + for (; i <= n; i++) + factors_new[i] = mpi_copy (factors[i]); + } + else + for (; i < n; i++ ) + factors_new[i] = mpi_copy (factors[i]); + } + } + + if (g) + { + /* Create a generator (start with 3). */ + gcry_mpi_t tmp = mpi_alloc (mpi_get_nlimbs (prime)); + gcry_mpi_t b = mpi_alloc (mpi_get_nlimbs (prime)); + gcry_mpi_t pmin1 = mpi_alloc (mpi_get_nlimbs (prime)); + + if (need_q_factor) + err = GPG_ERR_NOT_IMPLEMENTED; + else + { + factors[n] = q; + factors[n + 1] = mpi_alloc_set_ui (2); + mpi_sub_ui (pmin1, prime, 1); + mpi_set_ui (g, 2); + do + { + mpi_add_ui (g, g, 1); + if (DBG_CIPHER) + { + log_debug ("checking g:"); + gcry_mpi_dump (g); + log_printf ("\n"); + } + else + progress('^'); + for (i = 0; i < n + 2; i++) + { + mpi_fdiv_q (tmp, pmin1, factors[i]); + /* No mpi_pow(), but it is okay to use this with mod + prime. */ + gcry_mpi_powm (b, g, tmp, prime); + if (! mpi_cmp_ui (b, 1)) + break; + } + if (DBG_CIPHER) + progress('\n'); + } + while (i < n + 2); + + mpi_free (factors[n+1]); + mpi_free (tmp); + mpi_free (b); + mpi_free (pmin1); + } + } + + if (! DBG_CIPHER) + progress ('\n'); + + + leave: + if (pool) + { + is_locked = !ath_mutex_lock (&primepool_lock); + for(i = 0; i < m; i++) + { + if (pool[i]) + { + for (j=0; j < n; j++) + if (pool_in_use[j] == i) + break; + if (j == n && is_locked) + { + /* This pooled subprime has not been used. */ + save_pool_prime (pool[i], poolrandomlevel); + } + else + mpi_free (pool[i]); + } + } + if (is_locked && ath_mutex_unlock (&primepool_lock)) + err = GPG_ERR_INTERNAL; + is_locked = 0; + gcry_free (pool); + } + gcry_free (pool_in_use); + if (factors) + gcry_free (factors); /* Factors are shallow copies. */ + if (perms) + gcry_free (perms); + + mpi_free (val_2); + mpi_free (q); + mpi_free (q_factor); + + if (! err) + { + *prime_generated = prime; + if (ret_factors) + *ret_factors = factors_new; + } + else + { + if (factors_new) + { + for (i = 0; factors_new[i]; i++) + mpi_free (factors_new[i]); + gcry_free (factors_new); + } + mpi_free (prime); + } + + return err; +} + + +/* Generate a prime used for discrete logarithm algorithms; i.e. this + prime will be public and no strong random is required. */ +gcry_mpi_t +_gcry_generate_elg_prime (int mode, unsigned pbits, unsigned qbits, + gcry_mpi_t g, gcry_mpi_t **ret_factors) +{ + gcry_err_code_t err = GPG_ERR_NO_ERROR; + gcry_mpi_t prime = NULL; + + err = prime_generate_internal ((mode == 1), &prime, pbits, qbits, g, + ret_factors, GCRY_WEAK_RANDOM, 0, 0, + NULL, NULL); + + return prime; +} + + +static gcry_mpi_t +gen_prime (unsigned int nbits, int secret, int randomlevel, + int (*extra_check)(void *, gcry_mpi_t), void *extra_check_arg) +{ + gcry_mpi_t prime, ptest, pminus1, val_2, val_3, result; + int i; + unsigned int x, step; + unsigned int count1, count2; + int *mods; + +/* if ( DBG_CIPHER ) */ +/* log_debug ("generate a prime of %u bits ", nbits ); */ + + if (nbits < 16) + log_fatal ("can't generate a prime with less than %d bits\n", 16); + + mods = gcry_xmalloc( no_of_small_prime_numbers * sizeof *mods ); + /* Make nbits fit into gcry_mpi_t implementation. */ + val_2 = mpi_alloc_set_ui( 2 ); + val_3 = mpi_alloc_set_ui( 3); + prime = secret? gcry_mpi_snew ( nbits ): gcry_mpi_new ( nbits ); + result = mpi_alloc_like( prime ); + pminus1= mpi_alloc_like( prime ); + ptest = mpi_alloc_like( prime ); + count1 = count2 = 0; + for (;;) + { /* try forvever */ + int dotcount=0; + + /* generate a random number */ + gcry_mpi_randomize( prime, nbits, randomlevel ); + + /* Set high order bit to 1, set low order bit to 1. If we are + generating a secret prime we are most probably doing that + for RSA, to make sure that the modulus does have the + requested key size we set the 2 high order bits. */ + mpi_set_highbit (prime, nbits-1); + if (secret) + mpi_set_bit (prime, nbits-2); + mpi_set_bit(prime, 0); + + /* Calculate all remainders. */ + for (i=0; (x = small_prime_numbers[i]); i++ ) + mods[i] = mpi_fdiv_r_ui(NULL, prime, x); + + /* Now try some primes starting with prime. */ + for(step=0; step < 20000; step += 2 ) + { + /* Check against all the small primes we have in mods. */ + count1++; + for (i=0; (x = small_prime_numbers[i]); i++ ) + { + while ( mods[i] + step >= x ) + mods[i] -= x; + if ( !(mods[i] + step) ) + break; + } + if ( x ) + continue; /* Found a multiple of an already known prime. */ + + mpi_add_ui( ptest, prime, step ); + + /* Do a fast Fermat test now. */ + count2++; + mpi_sub_ui( pminus1, ptest, 1); + gcry_mpi_powm( result, val_2, pminus1, ptest ); + if ( !mpi_cmp_ui( result, 1 ) ) + { + /* Not composite, perform stronger tests */ + if (is_prime(ptest, 5, &count2 )) + { + if (!mpi_test_bit( ptest, nbits-1-secret )) + { + progress('\n'); + log_debug ("overflow in prime generation\n"); + break; /* Stop loop, continue with a new prime. */ + } + + if (extra_check && extra_check (extra_check_arg, ptest)) + { + /* The extra check told us that this prime is + not of the caller's taste. */ + progress ('/'); + } + else + { + /* Got it. */ + mpi_free(val_2); + mpi_free(val_3); + mpi_free(result); + mpi_free(pminus1); + mpi_free(prime); + gcry_free(mods); + return ptest; + } + } + } + if (++dotcount == 10 ) + { + progress('.'); + dotcount = 0; + } + } + progress(':'); /* restart with a new random value */ + } +} + +/**************** + * Returns: true if this may be a prime + * RM_ROUNDS gives the number of Rabin-Miller tests to run. + */ +static int +check_prime( gcry_mpi_t prime, gcry_mpi_t val_2, int rm_rounds, + gcry_prime_check_func_t cb_func, void *cb_arg) +{ + int i; + unsigned int x; + unsigned int count=0; + + /* Check against small primes. */ + for (i=0; (x = small_prime_numbers[i]); i++ ) + { + if ( mpi_divisible_ui( prime, x ) ) + return 0; + } + + /* A quick Fermat test. */ + { + gcry_mpi_t result = mpi_alloc_like( prime ); + gcry_mpi_t pminus1 = mpi_alloc_like( prime ); + mpi_sub_ui( pminus1, prime, 1); + gcry_mpi_powm( result, val_2, pminus1, prime ); + mpi_free( pminus1 ); + if ( mpi_cmp_ui( result, 1 ) ) + { + /* Is composite. */ + mpi_free( result ); + progress('.'); + return 0; + } + mpi_free( result ); + } + + if (!cb_func || cb_func (cb_arg, GCRY_PRIME_CHECK_AT_MAYBE_PRIME, prime)) + { + /* Perform stronger tests. */ + if ( is_prime( prime, rm_rounds, &count ) ) + { + if (!cb_func + || cb_func (cb_arg, GCRY_PRIME_CHECK_AT_GOT_PRIME, prime)) + return 1; /* Probably a prime. */ + } + } + progress('.'); + return 0; +} + + +/* + * Return true if n is probably a prime + */ +static int +is_prime (gcry_mpi_t n, int steps, unsigned int *count) +{ + gcry_mpi_t x = mpi_alloc( mpi_get_nlimbs( n ) ); + gcry_mpi_t y = mpi_alloc( mpi_get_nlimbs( n ) ); + gcry_mpi_t z = mpi_alloc( mpi_get_nlimbs( n ) ); + gcry_mpi_t nminus1 = mpi_alloc( mpi_get_nlimbs( n ) ); + gcry_mpi_t a2 = mpi_alloc_set_ui( 2 ); + gcry_mpi_t q; + unsigned i, j, k; + int rc = 0; + unsigned nbits = mpi_get_nbits( n ); + + if (steps < 5) /* Make sure that we do at least 5 rounds. */ + steps = 5; + + mpi_sub_ui( nminus1, n, 1 ); + + /* Find q and k, so that n = 1 + 2^k * q . */ + q = mpi_copy ( nminus1 ); + k = mpi_trailing_zeros ( q ); + mpi_tdiv_q_2exp (q, q, k); + + for (i=0 ; i < steps; i++ ) + { + ++*count; + if( !i ) + { + mpi_set_ui( x, 2 ); + } + else + { + gcry_mpi_randomize( x, nbits, GCRY_WEAK_RANDOM ); + + /* Make sure that the number is smaller than the prime and + keep the randomness of the high bit. */ + if ( mpi_test_bit ( x, nbits-2) ) + { + mpi_set_highbit ( x, nbits-2); /* Clear all higher bits. */ + } + else + { + mpi_set_highbit( x, nbits-2 ); + mpi_clear_bit( x, nbits-2 ); + } + gcry_assert (mpi_cmp (x, nminus1) < 0 && mpi_cmp_ui (x, 1) > 0); + } + gcry_mpi_powm ( y, x, q, n); + if ( mpi_cmp_ui(y, 1) && mpi_cmp( y, nminus1 ) ) + { + for ( j=1; j < k && mpi_cmp( y, nminus1 ); j++ ) + { + gcry_mpi_powm(y, y, a2, n); + if( !mpi_cmp_ui( y, 1 ) ) + goto leave; /* Not a prime. */ + } + if (mpi_cmp( y, nminus1 ) ) + goto leave; /* Not a prime. */ + } + progress('+'); + } + rc = 1; /* May be a prime. */ + + leave: + mpi_free( x ); + mpi_free( y ); + mpi_free( z ); + mpi_free( nminus1 ); + mpi_free( q ); + mpi_free( a2 ); + + return rc; +} + + +/* Given ARRAY of size N with M elements set to true produce a + modified array with the next permutation of M elements. Note, that + ARRAY is used in a one-bit-per-byte approach. To detected the last + permutation it is useful to intialize the array with the first M + element set to true and use this test: + m_out_of_n (array, m, n); + for (i = j = 0; i < n && j < m; i++) + if (array[i]) + j++; + if (j == m) + goto ready; + + This code is based on the algorithm 452 from the "Collected + Algorithms From ACM, Volume II" by C. N. Liu and D. T. Tang. +*/ +static void +m_out_of_n ( char *array, int m, int n ) +{ + int i=0, i1=0, j=0, jp=0, j1=0, k1=0, k2=0; + + if( !m || m >= n ) + return; + + /* Need to handle this simple case separately. */ + if( m == 1 ) + { + for (i=0; i < n; i++ ) + { + if ( array[i] ) + { + array[i++] = 0; + if( i >= n ) + i = 0; + array[i] = 1; + return; + } + } + BUG(); + } + + + for (j=1; j < n; j++ ) + { + if ( array[n-1] == array[n-j-1]) + continue; + j1 = j; + break; + } + + if ( (m & 1) ) + { + /* M is odd. */ + if( array[n-1] ) + { + if( j1 & 1 ) + { + k1 = n - j1; + k2 = k1+2; + if( k2 > n ) + k2 = n; + goto leave; + } + goto scan; + } + k2 = n - j1 - 1; + if( k2 == 0 ) + { + k1 = i; + k2 = n - j1; + } + else if( array[k2] && array[k2-1] ) + k1 = n; + else + k1 = k2 + 1; + } + else + { + /* M is even. */ + if( !array[n-1] ) + { + k1 = n - j1; + k2 = k1 + 1; + goto leave; + } + + if( !(j1 & 1) ) + { + k1 = n - j1; + k2 = k1+2; + if( k2 > n ) + k2 = n; + goto leave; + } + scan: + jp = n - j1 - 1; + for (i=1; i <= jp; i++ ) + { + i1 = jp + 2 - i; + if( array[i1-1] ) + { + if( array[i1-2] ) + { + k1 = i1 - 1; + k2 = n - j1; + } + else + { + k1 = i1 - 1; + k2 = n + 1 - j1; + } + goto leave; + } + } + k1 = 1; + k2 = n + 1 - m; + } + leave: + /* Now complement the two selected bits. */ + array[k1-1] = !array[k1-1]; + array[k2-1] = !array[k2-1]; +} + + +/* Generate a new prime number of PRIME_BITS bits and store it in + PRIME. If FACTOR_BITS is non-zero, one of the prime factors of + (prime - 1) / 2 must be FACTOR_BITS bits long. If FACTORS is + non-zero, allocate a new, NULL-terminated array holding the prime + factors and store it in FACTORS. FLAGS might be used to influence + the prime number generation process. */ +gcry_error_t +gcry_prime_generate (gcry_mpi_t *prime, unsigned int prime_bits, + unsigned int factor_bits, gcry_mpi_t **factors, + gcry_prime_check_func_t cb_func, void *cb_arg, + gcry_random_level_t random_level, + unsigned int flags) +{ + gcry_err_code_t err = GPG_ERR_NO_ERROR; + gcry_mpi_t *factors_generated = NULL; + gcry_mpi_t prime_generated = NULL; + unsigned int mode = 0; + + if (!prime) + return gpg_error (GPG_ERR_INV_ARG); + *prime = NULL; + + if (flags & GCRY_PRIME_FLAG_SPECIAL_FACTOR) + mode = 1; + + /* Generate. */ + err = prime_generate_internal ((mode==1), &prime_generated, prime_bits, + factor_bits, NULL, + factors? &factors_generated : NULL, + random_level, flags, 1, + cb_func, cb_arg); + + if (! err) + if (cb_func) + { + /* Additional check. */ + if ( !cb_func (cb_arg, GCRY_PRIME_CHECK_AT_FINISH, prime_generated)) + { + /* Failed, deallocate resources. */ + unsigned int i; + + mpi_free (prime_generated); + if (factors) + { + for (i = 0; factors_generated[i]; i++) + mpi_free (factors_generated[i]); + gcry_free (factors_generated); + } + err = GPG_ERR_GENERAL; + } + } + + if (! err) + { + if (factors) + *factors = factors_generated; + *prime = prime_generated; + } + + return gcry_error (err); +} + +/* Check wether the number X is prime. */ +gcry_error_t +gcry_prime_check (gcry_mpi_t x, unsigned int flags) +{ + gcry_err_code_t err = GPG_ERR_NO_ERROR; + gcry_mpi_t val_2 = mpi_alloc_set_ui (2); /* Used by the Fermat test. */ + + (void)flags; + + /* We use 64 rounds because the prime we are going to test is not + guaranteed to be a random one. */ + if (! check_prime (x, val_2, 64, NULL, NULL)) + err = GPG_ERR_NO_PRIME; + + mpi_free (val_2); + + return gcry_error (err); +} + +/* Find a generator for PRIME where the factorization of (prime-1) is + in the NULL terminated array FACTORS. Return the generator as a + newly allocated MPI in R_G. If START_G is not NULL, use this as s + atart for the search. Returns 0 on success.*/ +gcry_error_t +gcry_prime_group_generator (gcry_mpi_t *r_g, + gcry_mpi_t prime, gcry_mpi_t *factors, + gcry_mpi_t start_g) +{ + gcry_mpi_t tmp = gcry_mpi_new (0); + gcry_mpi_t b = gcry_mpi_new (0); + gcry_mpi_t pmin1 = gcry_mpi_new (0); + gcry_mpi_t g = start_g? gcry_mpi_copy (start_g) : gcry_mpi_set_ui (NULL, 3); + int first = 1; + int i, n; + + if (!factors || !r_g || !prime) + return gpg_error (GPG_ERR_INV_ARG); + *r_g = NULL; + + for (n=0; factors[n]; n++) + ; + if (n < 2) + return gpg_error (GPG_ERR_INV_ARG); + + /* Extra sanity check - usually disabled. */ +/* mpi_set (tmp, factors[0]); */ +/* for(i = 1; i < n; i++) */ +/* mpi_mul (tmp, tmp, factors[i]); */ +/* mpi_add_ui (tmp, tmp, 1); */ +/* if (mpi_cmp (prime, tmp)) */ +/* return gpg_error (GPG_ERR_INV_ARG); */ + + gcry_mpi_sub_ui (pmin1, prime, 1); + do + { + if (first) + first = 0; + else + gcry_mpi_add_ui (g, g, 1); + + if (DBG_CIPHER) + { + log_debug ("checking g:"); + gcry_mpi_dump (g); + log_debug ("\n"); + } + else + progress('^'); + + for (i = 0; i < n; i++) + { + mpi_fdiv_q (tmp, pmin1, factors[i]); + gcry_mpi_powm (b, g, tmp, prime); + if (! mpi_cmp_ui (b, 1)) + break; + } + if (DBG_CIPHER) + progress('\n'); + } + while (i < n); + + gcry_mpi_release (tmp); + gcry_mpi_release (b); + gcry_mpi_release (pmin1); + *r_g = g; + + return 0; +} + +/* Convenience function to release the factors array. */ +void +gcry_prime_release_factors (gcry_mpi_t *factors) +{ + if (factors) + { + int i; + + for (i=0; factors[i]; i++) + mpi_free (factors[i]); + gcry_free (factors); + } +} + + + +/* Helper for _gcry_derive_x931_prime. */ +static gcry_mpi_t +find_x931_prime (const gcry_mpi_t pfirst) +{ + gcry_mpi_t val_2 = mpi_alloc_set_ui (2); + gcry_mpi_t prime; + + prime = gcry_mpi_copy (pfirst); + /* If P is even add 1. */ + mpi_set_bit (prime, 0); + + /* We use 64 Rabin-Miller rounds which is better and thus + sufficient. We do not have a Lucas test implementaion thus we + can't do it in the X9.31 preferred way of running a few + Rabin-Miller followed by one Lucas test. */ + while ( !check_prime (prime, val_2, 64, NULL, NULL) ) + mpi_add_ui (prime, prime, 2); + + mpi_free (val_2); + + return prime; +} + + +/* Generate a prime using the algorithm from X9.31 appendix B.4. + + This function requires that the provided public exponent E is odd. + XP, XP1 and XP2 are the seed values. All values are mandatory. + + On success the prime is returned. If R_P1 or R_P2 are given the + internal values P1 and P2 are saved at these addresses. On error + NULL is returned. */ +gcry_mpi_t +_gcry_derive_x931_prime (const gcry_mpi_t xp, + const gcry_mpi_t xp1, const gcry_mpi_t xp2, + const gcry_mpi_t e, + gcry_mpi_t *r_p1, gcry_mpi_t *r_p2) +{ + gcry_mpi_t p1, p2, p1p2, yp0; + + if (!xp || !xp1 || !xp2) + return NULL; + if (!e || !mpi_test_bit (e, 0)) + return NULL; /* We support only odd values for E. */ + + p1 = find_x931_prime (xp1); + p2 = find_x931_prime (xp2); + p1p2 = mpi_alloc_like (xp); + mpi_mul (p1p2, p1, p2); + + { + gcry_mpi_t r1, tmp; + + /* r1 = (p2^{-1} mod p1)p2 - (p1^{-1} mod p2) */ + tmp = mpi_alloc_like (p1); + mpi_invm (tmp, p2, p1); + mpi_mul (tmp, tmp, p2); + r1 = tmp; + + tmp = mpi_alloc_like (p2); + mpi_invm (tmp, p1, p2); + mpi_mul (tmp, tmp, p1); + mpi_sub (r1, r1, tmp); + + /* Fixup a negative value. */ + if (mpi_is_neg (r1)) + mpi_add (r1, r1, p1p2); + + /* yp0 = xp + (r1 - xp mod p1*p2) */ + yp0 = tmp; tmp = NULL; + mpi_subm (yp0, r1, xp, p1p2); + mpi_add (yp0, yp0, xp); + mpi_free (r1); + + /* Fixup a negative value. */ + if (mpi_cmp (yp0, xp) < 0 ) + mpi_add (yp0, yp0, p1p2); + } + + /* yp0 is now the first integer greater than xp with p1 being a + large prime factor of yp0-1 and p2 a large prime factor of yp0+1. */ + + /* Note that the first example from X9.31 (D.1.1) which uses + (Xq1 #1A5CF72EE770DE50CB09ACCEA9#) + (Xq2 #134E4CAA16D2350A21D775C404#) + (Xq #CC1092495D867E64065DEE3E7955F2EBC7D47A2D + 7C9953388F97DDDC3E1CA19C35CA659EDC2FC325 + 6D29C2627479C086A699A49C4C9CEE7EF7BD1B34 + 321DE34A#)))) + returns an yp0 of + #CC1092495D867E64065DEE3E7955F2EBC7D47A2D + 7C9953388F97DDDC3E1CA19C35CA659EDC2FC4E3 + BF20CB896EE37E098A906313271422162CB6C642 + 75C1201F# + and not + #CC1092495D867E64065DEE3E7955F2EBC7D47A2D + 7C9953388F97DDDC3E1CA19C35CA659EDC2FC2E6 + C88FE299D52D78BE405A97E01FD71DD7819ECB91 + FA85A076# + as stated in the standard. This seems to be a bug in X9.31. + */ + + { + gcry_mpi_t val_2 = mpi_alloc_set_ui (2); + gcry_mpi_t gcdtmp = mpi_alloc_like (yp0); + int gcdres; + + mpi_sub_ui (p1p2, p1p2, 1); /* Adjust for loop body. */ + mpi_sub_ui (yp0, yp0, 1); /* Ditto. */ + for (;;) + { + gcdres = gcry_mpi_gcd (gcdtmp, e, yp0); + mpi_add_ui (yp0, yp0, 1); + if (!gcdres) + progress ('/'); /* gcd (e, yp0-1) != 1 */ + else if (check_prime (yp0, val_2, 64, NULL, NULL)) + break; /* Found. */ + /* We add p1p2-1 because yp0 is incremented after the gcd test. */ + mpi_add (yp0, yp0, p1p2); + } + mpi_free (gcdtmp); + mpi_free (val_2); + } + + mpi_free (p1p2); + + progress('\n'); + if (r_p1) + *r_p1 = p1; + else + mpi_free (p1); + if (r_p2) + *r_p2 = p2; + else + mpi_free (p2); + return yp0; +} + + + +/* Generate the two prime used for DSA using the algorithm specified + in FIPS 186-2. PBITS is the desired length of the prime P and a + QBITS the length of the prime Q. If SEED is not supplied and + SEEDLEN is 0 the function generates an appropriate SEED. On + success the generated primes are stored at R_Q and R_P, the counter + value is stored at R_COUNTER and the seed actually used for + generation is stored at R_SEED and R_SEEDVALUE. */ +gpg_err_code_t +_gcry_generate_fips186_2_prime (unsigned int pbits, unsigned int qbits, + const void *seed, size_t seedlen, + gcry_mpi_t *r_q, gcry_mpi_t *r_p, + int *r_counter, + void **r_seed, size_t *r_seedlen) +{ + gpg_err_code_t ec; + unsigned char seed_help_buffer[160/8]; /* Used to hold a generated SEED. */ + unsigned char *seed_plus; /* Malloced buffer to hold SEED+x. */ + unsigned char digest[160/8]; /* Helper buffer for SHA-1 digest. */ + gcry_mpi_t val_2 = NULL; /* Helper for the prime test. */ + gcry_mpi_t tmpval = NULL; /* Helper variable. */ + int i; + + unsigned char value_u[160/8]; + int value_n, value_b, value_k; + int counter; + gcry_mpi_t value_w = NULL; + gcry_mpi_t value_x = NULL; + gcry_mpi_t prime_q = NULL; + gcry_mpi_t prime_p = NULL; + + /* FIPS 186-2 allows only for 1024/160 bit. */ + if (pbits != 1024 || qbits != 160) + return GPG_ERR_INV_KEYLEN; + + if (!seed && !seedlen) + ; /* No seed value given: We are asked to generate it. */ + else if (!seed || seedlen < qbits/8) + return GPG_ERR_INV_ARG; + + /* Allocate a buffer to later compute SEED+some_increment. */ + seed_plus = gcry_malloc (seedlen < 20? 20:seedlen); + if (!seed_plus) + { + ec = gpg_err_code_from_syserror (); + goto leave; + } + + val_2 = mpi_alloc_set_ui (2); + value_n = (pbits - 1) / qbits; + value_b = (pbits - 1) - value_n * qbits; + value_w = gcry_mpi_new (pbits); + value_x = gcry_mpi_new (pbits); + + restart: + /* Generate Q. */ + for (;;) + { + /* Step 1: Generate a (new) seed unless one has been supplied. */ + if (!seed) + { + seedlen = sizeof seed_help_buffer; + gcry_create_nonce (seed_help_buffer, seedlen); + seed = seed_help_buffer; + } + + /* Step 2: U = sha1(seed) ^ sha1((seed+1) mod 2^{qbits}) */ + memcpy (seed_plus, seed, seedlen); + for (i=seedlen-1; i >= 0; i--) + { + seed_plus[i]++; + if (seed_plus[i]) + break; + } + gcry_md_hash_buffer (GCRY_MD_SHA1, value_u, seed, seedlen); + gcry_md_hash_buffer (GCRY_MD_SHA1, digest, seed_plus, seedlen); + for (i=0; i < sizeof value_u; i++) + value_u[i] ^= digest[i]; + + /* Step 3: Form q from U */ + gcry_mpi_release (prime_q); prime_q = NULL; + ec = gpg_err_code (gcry_mpi_scan (&prime_q, GCRYMPI_FMT_USG, + value_u, sizeof value_u, NULL)); + if (ec) + goto leave; + mpi_set_highbit (prime_q, qbits-1 ); + mpi_set_bit (prime_q, 0); + + /* Step 4: Test whether Q is prime using 64 round of Rabin-Miller. */ + if (check_prime (prime_q, val_2, 64, NULL, NULL)) + break; /* Yes, Q is prime. */ + + /* Step 5. */ + seed = NULL; /* Force a new seed at Step 1. */ + } + + /* Step 6. Note that we do no use an explicit offset but increment + SEED_PLUS accordingly. SEED_PLUS is currently SEED+1. */ + counter = 0; + + /* Generate P. */ + prime_p = gcry_mpi_new (pbits); + for (;;) + { + /* Step 7: For k = 0,...n let + V_k = sha1(seed+offset+k) mod 2^{qbits} + Step 8: W = V_0 + V_1*2^160 + + ... + + V_{n-1}*2^{(n-1)*160} + + (V_{n} mod 2^b)*2^{n*160} + */ + mpi_set_ui (value_w, 0); + for (value_k=0; value_k <= value_n; value_k++) + { + /* There is no need to have an explicit offset variable: In + the first round we shall have an offset of 2, this is + achieved by using SEED_PLUS which is already at SEED+1, + thus we just need to increment it once again. The + requirement for the next round is to update offset by N, + which we implictly did at the end of this loop, and then + to add one; this one is the same as in the first round. */ + for (i=seedlen-1; i >= 0; i--) + { + seed_plus[i]++; + if (seed_plus[i]) + break; + } + gcry_md_hash_buffer (GCRY_MD_SHA1, digest, seed_plus, seedlen); + + gcry_mpi_release (tmpval); tmpval = NULL; + ec = gpg_err_code (gcry_mpi_scan (&tmpval, GCRYMPI_FMT_USG, + digest, sizeof digest, NULL)); + if (ec) + goto leave; + if (value_k == value_n) + mpi_clear_highbit (tmpval, value_b); /* (V_n mod 2^b) */ + mpi_lshift (tmpval, tmpval, value_k*qbits); + mpi_add (value_w, value_w, tmpval); + } + + /* Step 8 continued: X = W + 2^{L-1} */ + mpi_set_ui (value_x, 0); + mpi_set_highbit (value_x, pbits-1); + mpi_add (value_x, value_x, value_w); + + /* Step 9: c = X mod 2q, p = X - (c - 1) */ + mpi_mul_2exp (tmpval, prime_q, 1); + mpi_mod (tmpval, value_x, tmpval); + mpi_sub_ui (tmpval, tmpval, 1); + mpi_sub (prime_p, value_x, tmpval); + + /* Step 10: If p < 2^{L-1} skip the primality test. */ + /* Step 11 and 12: Primality test. */ + if (mpi_get_nbits (prime_p) >= pbits-1 + && check_prime (prime_p, val_2, 64, NULL, NULL) ) + break; /* Yes, P is prime, continue with Step 15. */ + + /* Step 13: counter = counter + 1, offset = offset + n + 1. */ + counter++; + + /* Step 14: If counter >= 2^12 goto Step 1. */ + if (counter >= 4096) + goto restart; + } + + /* Step 15: Save p, q, counter and seed. */ +/* log_debug ("fips186-2 pbits p=%u q=%u counter=%d\n", */ +/* mpi_get_nbits (prime_p), mpi_get_nbits (prime_q), counter); */ +/* log_printhex("fips186-2 seed:", seed, seedlen); */ +/* log_mpidump ("fips186-2 prime p", prime_p); */ +/* log_mpidump ("fips186-2 prime q", prime_q); */ + if (r_q) + { + *r_q = prime_q; + prime_q = NULL; + } + if (r_p) + { + *r_p = prime_p; + prime_p = NULL; + } + if (r_counter) + *r_counter = counter; + if (r_seed && r_seedlen) + { + memcpy (seed_plus, seed, seedlen); + *r_seed = seed_plus; + seed_plus = NULL; + *r_seedlen = seedlen; + } + + + leave: + gcry_mpi_release (tmpval); + gcry_mpi_release (value_x); + gcry_mpi_release (value_w); + gcry_mpi_release (prime_p); + gcry_mpi_release (prime_q); + gcry_free (seed_plus); + gcry_mpi_release (val_2); + return ec; +} + + + +/* WARNING: The code below has not yet been tested! However, it is + not yet used. We need to wait for FIPS 186-3 final and for test + vectors. + + Generate the two prime used for DSA using the algorithm specified + in FIPS 186-3, A.1.1.2. PBITS is the desired length of the prime P + and a QBITS the length of the prime Q. If SEED is not supplied and + SEEDLEN is 0 the function generates an appropriate SEED. On + success the generated primes are stored at R_Q and R_P, the counter + value is stored at R_COUNTER and the seed actually used for + generation is stored at R_SEED and R_SEEDVALUE. The hash algorithm + used is stored at R_HASHALGO. + + Note that this function is very similar to the fips186_2 code. Due + to the minor differences, other buffer sizes and for documentarion, + we use a separate function. +*/ +gpg_err_code_t +_gcry_generate_fips186_3_prime (unsigned int pbits, unsigned int qbits, + const void *seed, size_t seedlen, + gcry_mpi_t *r_q, gcry_mpi_t *r_p, + int *r_counter, + void **r_seed, size_t *r_seedlen, + int *r_hashalgo) +{ + gpg_err_code_t ec; + unsigned char seed_help_buffer[256/8]; /* Used to hold a generated SEED. */ + unsigned char *seed_plus; /* Malloced buffer to hold SEED+x. */ + unsigned char digest[256/8]; /* Helper buffer for SHA-1 digest. */ + gcry_mpi_t val_2 = NULL; /* Helper for the prime test. */ + gcry_mpi_t tmpval = NULL; /* Helper variable. */ + int hashalgo; /* The id of the Approved Hash Function. */ + int i; + + unsigned char value_u[256/8]; + int value_n, value_b, value_j; + int counter; + gcry_mpi_t value_w = NULL; + gcry_mpi_t value_x = NULL; + gcry_mpi_t prime_q = NULL; + gcry_mpi_t prime_p = NULL; + + gcry_assert (sizeof seed_help_buffer == sizeof digest + && sizeof seed_help_buffer == sizeof value_u); + + /* Step 1: Check the requested prime lengths. */ + /* Note that due to the size of our buffers QBITS is limited to 256. */ + if (pbits == 1024 && qbits == 160) + hashalgo = GCRY_MD_SHA1; + else if (pbits == 2048 && qbits == 224) + hashalgo = GCRY_MD_SHA224; + else if (pbits == 2048 && qbits == 256) + hashalgo = GCRY_MD_SHA256; + else if (pbits == 3072 && qbits == 256) + hashalgo = GCRY_MD_SHA256; + else + return GPG_ERR_INV_KEYLEN; + + /* Also check that the hash algorithm is available. */ + ec = gpg_err_code (gcry_md_test_algo (hashalgo)); + if (ec) + return ec; + gcry_assert (qbits/8 <= sizeof digest); + gcry_assert (gcry_md_get_algo_dlen (hashalgo) == qbits/8); + + + /* Step 2: Check seedlen. */ + if (!seed && !seedlen) + ; /* No seed value given: We are asked to generate it. */ + else if (!seed || seedlen < qbits/8) + return GPG_ERR_INV_ARG; + + /* Allocate a buffer to later compute SEED+some_increment and a few + helper variables. */ + seed_plus = gcry_malloc (seedlen < sizeof seed_help_buffer? + sizeof seed_help_buffer : seedlen); + if (!seed_plus) + { + ec = gpg_err_code_from_syserror (); + goto leave; + } + val_2 = mpi_alloc_set_ui (2); + value_w = gcry_mpi_new (pbits); + value_x = gcry_mpi_new (pbits); + + /* Step 3: n = \lceil L / outlen \rceil - 1 */ + value_n = (pbits + qbits - 1) / qbits - 1; + /* Step 4: b = L - 1 - (n * outlen) */ + value_b = pbits - 1 - (value_n * qbits); + + restart: + /* Generate Q. */ + for (;;) + { + /* Step 5: Generate a (new) seed unless one has been supplied. */ + if (!seed) + { + seedlen = qbits/8; + gcry_assert (seedlen <= sizeof seed_help_buffer); + gcry_create_nonce (seed_help_buffer, seedlen); + seed = seed_help_buffer; + } + + /* Step 6: U = hash(seed) */ + gcry_md_hash_buffer (hashalgo, value_u, seed, seedlen); + + /* Step 7: q = 2^{N-1} + U + 1 - (U mod 2) */ + if ( !(value_u[qbits/8-1] & 0x01) ) + { + for (i=qbits/8-1; i >= 0; i--) + { + value_u[i]++; + if (value_u[i]) + break; + } + } + gcry_mpi_release (prime_q); prime_q = NULL; + ec = gpg_err_code (gcry_mpi_scan (&prime_q, GCRYMPI_FMT_USG, + value_u, sizeof value_u, NULL)); + if (ec) + goto leave; + mpi_set_highbit (prime_q, qbits-1 ); + + /* Step 8: Test whether Q is prime using 64 round of Rabin-Miller. + According to table C.1 this is sufficient for all + supported prime sizes (i.e. up 3072/256). */ + if (check_prime (prime_q, val_2, 64, NULL, NULL)) + break; /* Yes, Q is prime. */ + + /* Step 8. */ + seed = NULL; /* Force a new seed at Step 5. */ + } + + /* Step 11. Note that we do no use an explicit offset but increment + SEED_PLUS accordingly. */ + memcpy (seed_plus, seed, seedlen); + counter = 0; + + /* Generate P. */ + prime_p = gcry_mpi_new (pbits); + for (;;) + { + /* Step 11.1: For j = 0,...n let + V_j = hash(seed+offset+j) + Step 11.2: W = V_0 + V_1*2^outlen + + ... + + V_{n-1}*2^{(n-1)*outlen} + + (V_{n} mod 2^b)*2^{n*outlen} + */ + mpi_set_ui (value_w, 0); + for (value_j=0; value_j <= value_n; value_j++) + { + /* There is no need to have an explicit offset variable: In + the first round we shall have an offset of 1 and a j of + 0. This is achieved by incrementing SEED_PLUS here. For + the next round offset is implicitly updated by using + SEED_PLUS again. */ + for (i=seedlen-1; i >= 0; i--) + { + seed_plus[i]++; + if (seed_plus[i]) + break; + } + gcry_md_hash_buffer (GCRY_MD_SHA1, digest, seed_plus, seedlen); + + gcry_mpi_release (tmpval); tmpval = NULL; + ec = gpg_err_code (gcry_mpi_scan (&tmpval, GCRYMPI_FMT_USG, + digest, sizeof digest, NULL)); + if (ec) + goto leave; + if (value_j == value_n) + mpi_clear_highbit (tmpval, value_b); /* (V_n mod 2^b) */ + mpi_lshift (tmpval, tmpval, value_j*qbits); + mpi_add (value_w, value_w, tmpval); + } + + /* Step 11.3: X = W + 2^{L-1} */ + mpi_set_ui (value_x, 0); + mpi_set_highbit (value_x, pbits-1); + mpi_add (value_x, value_x, value_w); + + /* Step 11.4: c = X mod 2q */ + mpi_mul_2exp (tmpval, prime_q, 1); + mpi_mod (tmpval, value_x, tmpval); + + /* Step 11.5: p = X - (c - 1) */ + mpi_sub_ui (tmpval, tmpval, 1); + mpi_sub (prime_p, value_x, tmpval); + + /* Step 11.6: If p < 2^{L-1} skip the primality test. */ + /* Step 11.7 and 11.8: Primality test. */ + if (mpi_get_nbits (prime_p) >= pbits-1 + && check_prime (prime_p, val_2, 64, NULL, NULL) ) + break; /* Yes, P is prime, continue with Step 15. */ + + /* Step 11.9: counter = counter + 1, offset = offset + n + 1. + If counter >= 4L goto Step 5. */ + counter++; + if (counter >= 4*pbits) + goto restart; + } + + /* Step 12: Save p, q, counter and seed. */ + log_debug ("fips186-3 pbits p=%u q=%u counter=%d\n", + mpi_get_nbits (prime_p), mpi_get_nbits (prime_q), counter); + log_printhex("fips186-3 seed:", seed, seedlen); + log_mpidump ("fips186-3 prime p", prime_p); + log_mpidump ("fips186-3 prime q", prime_q); + if (r_q) + { + *r_q = prime_q; + prime_q = NULL; + } + if (r_p) + { + *r_p = prime_p; + prime_p = NULL; + } + if (r_counter) + *r_counter = counter; + if (r_seed && r_seedlen) + { + memcpy (seed_plus, seed, seedlen); + *r_seed = seed_plus; + seed_plus = NULL; + *r_seedlen = seedlen; + } + if (r_hashalgo) + *r_hashalgo = hashalgo; + + leave: + gcry_mpi_release (tmpval); + gcry_mpi_release (value_x); + gcry_mpi_release (value_w); + gcry_mpi_release (prime_p); + gcry_mpi_release (prime_q); + gcry_free (seed_plus); + gcry_mpi_release (val_2); + return ec; +} + --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/dsa.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/dsa.c @@ -0,0 +1,1061 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* dsa.c - DSA signature algorithm + * Copyright (C) 1998, 2000, 2001, 2002, 2003, + * 2006, 2008 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, see . + */ + + +#include "g10lib.h" +#include "mpi.h" +#include "cipher.h" + +typedef struct +{ + gcry_mpi_t p; /* prime */ + gcry_mpi_t q; /* group order */ + gcry_mpi_t g; /* group generator */ + gcry_mpi_t y; /* g^x mod p */ +} DSA_public_key; + + +typedef struct +{ + gcry_mpi_t p; /* prime */ + gcry_mpi_t q; /* group order */ + gcry_mpi_t g; /* group generator */ + gcry_mpi_t y; /* g^x mod p */ + gcry_mpi_t x; /* secret exponent */ +} DSA_secret_key; + + +/* A structure used to hold domain parameters. */ +typedef struct +{ + gcry_mpi_t p; /* prime */ + gcry_mpi_t q; /* group order */ + gcry_mpi_t g; /* group generator */ +} dsa_domain_t; + + +/* A sample 1024 bit DSA key used for the selftests. */ +static const char sample_secret_key[] = +"(private-key" +" (dsa" +" (p #00AD7C0025BA1A15F775F3F2D673718391D00456978D347B33D7B49E7F32EDAB" +" 96273899DD8B2BB46CD6ECA263FAF04A28903503D59062A8865D2AE8ADFB5191" +" CF36FFB562D0E2F5809801A1F675DAE59698A9E01EFE8D7DCFCA084F4C6F5A44" +" 44D499A06FFAEA5E8EF5E01F2FD20A7B7EF3F6968AFBA1FB8D91F1559D52D8777B#)" +" (q #00EB7B5751D25EBBB7BD59D920315FD840E19AEBF9#)" +" (g #1574363387FDFD1DDF38F4FBE135BB20C7EE4772FB94C337AF86EA8E49666503" +" AE04B6BE81A2F8DD095311E0217ACA698A11E6C5D33CCDAE71498ED35D13991E" +" B02F09AB40BD8F4C5ED8C75DA779D0AE104BC34C960B002377068AB4B5A1F984" +" 3FBA91F537F1B7CAC4D8DD6D89B0D863AF7025D549F9C765D2FC07EE208F8D15#)" +" (y #64B11EF8871BE4AB572AA810D5D3CA11A6CDBC637A8014602C72960DB135BF46" +" A1816A724C34F87330FC9E187C5D66897A04535CC2AC9164A7150ABFA8179827" +" 6E45831AB811EEE848EBB24D9F5F2883B6E5DDC4C659DEF944DCFD80BF4D0A20" +" 42CAA7DC289F0C5A9D155F02D3D551DB741A81695B74D4C8F477F9C7838EB0FB#)" +" (x #11D54E4ADBD3034160F2CED4B7CD292A4EBF3EC0#)))"; +/* A sample 1024 bit DSA key used for the selftests (public only). */ +static const char sample_public_key[] = +"(public-key" +" (dsa" +" (p #00AD7C0025BA1A15F775F3F2D673718391D00456978D347B33D7B49E7F32EDAB" +" 96273899DD8B2BB46CD6ECA263FAF04A28903503D59062A8865D2AE8ADFB5191" +" CF36FFB562D0E2F5809801A1F675DAE59698A9E01EFE8D7DCFCA084F4C6F5A44" +" 44D499A06FFAEA5E8EF5E01F2FD20A7B7EF3F6968AFBA1FB8D91F1559D52D8777B#)" +" (q #00EB7B5751D25EBBB7BD59D920315FD840E19AEBF9#)" +" (g #1574363387FDFD1DDF38F4FBE135BB20C7EE4772FB94C337AF86EA8E49666503" +" AE04B6BE81A2F8DD095311E0217ACA698A11E6C5D33CCDAE71498ED35D13991E" +" B02F09AB40BD8F4C5ED8C75DA779D0AE104BC34C960B002377068AB4B5A1F984" +" 3FBA91F537F1B7CAC4D8DD6D89B0D863AF7025D549F9C765D2FC07EE208F8D15#)" +" (y #64B11EF8871BE4AB572AA810D5D3CA11A6CDBC637A8014602C72960DB135BF46" +" A1816A724C34F87330FC9E187C5D66897A04535CC2AC9164A7150ABFA8179827" +" 6E45831AB811EEE848EBB24D9F5F2883B6E5DDC4C659DEF944DCFD80BF4D0A20" +" 42CAA7DC289F0C5A9D155F02D3D551DB741A81695B74D4C8F477F9C7838EB0FB#)))"; + + + + +static gcry_mpi_t gen_k (gcry_mpi_t q); +static int test_keys (DSA_secret_key *sk, unsigned int qbits); +static int check_secret_key (DSA_secret_key *sk); +static gpg_err_code_t generate (DSA_secret_key *sk, + unsigned int nbits, + unsigned int qbits, + int transient_key, + dsa_domain_t *domain, + gcry_mpi_t **ret_factors); +static void sign (gcry_mpi_t r, gcry_mpi_t s, gcry_mpi_t input, + DSA_secret_key *skey); +static int verify (gcry_mpi_t r, gcry_mpi_t s, gcry_mpi_t input, + DSA_public_key *pkey); + +static void (*progress_cb) (void *,const char *, int, int, int ); +static void *progress_cb_data; + + +void +_gcry_register_pk_dsa_progress (void (*cb) (void *, const char *, + int, int, int), + void *cb_data) +{ + progress_cb = cb; + progress_cb_data = cb_data; +} + + +static void +progress (int c) +{ + if (progress_cb) + progress_cb (progress_cb_data, "pk_dsa", c, 0, 0); +} + + +/* + * Generate a random secret exponent k less than q. + */ +static gcry_mpi_t +gen_k( gcry_mpi_t q ) +{ + gcry_mpi_t k = mpi_alloc_secure( mpi_get_nlimbs(q) ); + unsigned int nbits = mpi_get_nbits(q); + unsigned int nbytes = (nbits+7)/8; + char *rndbuf = NULL; + + if ( DBG_CIPHER ) + log_debug("choosing a random k "); + for (;;) + { + if( DBG_CIPHER ) + progress('.'); + + if ( !rndbuf || nbits < 32 ) + { + gcry_free(rndbuf); + rndbuf = gcry_random_bytes_secure( (nbits+7)/8, GCRY_STRONG_RANDOM ); + } + else + { /* Change only some of the higher bits. We could improve + this by directly requesting more memory at the first call + to get_random_bytes() and use this the here maybe it is + easier to do this directly in random.c. */ + char *pp = gcry_random_bytes_secure( 4, GCRY_STRONG_RANDOM ); + memcpy( rndbuf,pp, 4 ); + gcry_free(pp); + } + _gcry_mpi_set_buffer( k, rndbuf, nbytes, 0 ); + if ( mpi_test_bit( k, nbits-1 ) ) + mpi_set_highbit( k, nbits-1 ); + else + { + mpi_set_highbit( k, nbits-1 ); + mpi_clear_bit( k, nbits-1 ); + } + + if( !(mpi_cmp( k, q ) < 0) ) /* check: k < q */ + { + if( DBG_CIPHER ) + progress('+'); + continue; /* no */ + } + if( !(mpi_cmp_ui( k, 0 ) > 0) ) /* check: k > 0 */ + { + if( DBG_CIPHER ) + progress('-'); + continue; /* no */ + } + break; /* okay */ + } + gcry_free(rndbuf); + if( DBG_CIPHER ) + progress('\n'); + + return k; +} + + +/* Check that a freshly generated key actually works. Returns 0 on success. */ +static int +test_keys (DSA_secret_key *sk, unsigned int qbits) +{ + int result = -1; /* Default to failure. */ + DSA_public_key pk; + gcry_mpi_t data = gcry_mpi_new (qbits); + gcry_mpi_t sig_a = gcry_mpi_new (qbits); + gcry_mpi_t sig_b = gcry_mpi_new (qbits); + + /* Put the relevant parameters into a public key structure. */ + pk.p = sk->p; + pk.q = sk->q; + pk.g = sk->g; + pk.y = sk->y; + + /* Create a random plaintext. */ + gcry_mpi_randomize (data, qbits, GCRY_WEAK_RANDOM); + + /* Sign DATA using the secret key. */ + sign (sig_a, sig_b, data, sk); + + /* Verify the signature using the public key. */ + if ( !verify (sig_a, sig_b, data, &pk) ) + goto leave; /* Signature does not match. */ + + /* Modify the data and check that the signing fails. */ + gcry_mpi_add_ui (data, data, 1); + if ( verify (sig_a, sig_b, data, &pk) ) + goto leave; /* Signature matches but should not. */ + + result = 0; /* The test succeeded. */ + + leave: + gcry_mpi_release (sig_b); + gcry_mpi_release (sig_a); + gcry_mpi_release (data); + return result; +} + + + +/* + Generate a DSA key pair with a key of size NBITS. If transient_key + is true the key is generated using the standard RNG and not the + very secure one. + + Returns: 2 structures filled with all needed values + and an array with the n-1 factors of (p-1) + */ +static gpg_err_code_t +generate (DSA_secret_key *sk, unsigned int nbits, unsigned int qbits, + int transient_key, dsa_domain_t *domain, gcry_mpi_t **ret_factors ) +{ + gcry_mpi_t p; /* the prime */ + gcry_mpi_t q; /* the 160 bit prime factor */ + gcry_mpi_t g; /* the generator */ + gcry_mpi_t y; /* g^x mod p */ + gcry_mpi_t x; /* the secret exponent */ + gcry_mpi_t h, e; /* helper */ + unsigned char *rndbuf; + gcry_random_level_t random_level; + + if (qbits) + ; /* Caller supplied qbits. Use this value. */ + else if ( nbits >= 512 && nbits <= 1024 ) + qbits = 160; + else if ( nbits == 2048 ) + qbits = 224; + else if ( nbits == 3072 ) + qbits = 256; + else if ( nbits == 7680 ) + qbits = 384; + else if ( nbits == 15360 ) + qbits = 512; + else + return GPG_ERR_INV_VALUE; + + if (qbits < 160 || qbits > 512 || (qbits%8) ) + return GPG_ERR_INV_VALUE; + if (nbits < 2*qbits || nbits > 15360) + return GPG_ERR_INV_VALUE; + + if (fips_mode ()) + { + if (nbits < 1024) + return GPG_ERR_INV_VALUE; + if (transient_key) + return GPG_ERR_INV_VALUE; + } + + if (domain->p && domain->q && domain->g) + { + /* Domain parameters are given; use them. */ + p = mpi_copy (domain->p); + q = mpi_copy (domain->q); + g = mpi_copy (domain->g); + gcry_assert (mpi_get_nbits (p) == nbits); + gcry_assert (mpi_get_nbits (q) == qbits); + h = mpi_alloc (0); + e = NULL; + } + else + { + /* Generate new domain parameters. */ + p = _gcry_generate_elg_prime (1, nbits, qbits, NULL, ret_factors); + /* Get q out of factors. */ + q = mpi_copy ((*ret_factors)[0]); + gcry_assert (mpi_get_nbits (q) == qbits); + + /* Find a generator g (h and e are helpers). + e = (p-1)/q */ + e = mpi_alloc (mpi_get_nlimbs (p)); + mpi_sub_ui (e, p, 1); + mpi_fdiv_q (e, e, q); + g = mpi_alloc (mpi_get_nlimbs (p)); + h = mpi_alloc_set_ui (1); /* (We start with 2.) */ + do + { + mpi_add_ui (h, h, 1); + /* g = h^e mod p */ + gcry_mpi_powm (g, h, e, p); + } + while (!mpi_cmp_ui (g, 1)); /* Continue until g != 1. */ + } + + /* Select a random number X with the property: + * 0 < x < q-1 + * This must be a very good random number because this is the secret + * part. The random quality depends on the transient_key flag. */ + random_level = transient_key ? GCRY_STRONG_RANDOM : GCRY_VERY_STRONG_RANDOM; + if (DBG_CIPHER) + log_debug("choosing a random x%s", transient_key? " (transient-key)":""); + gcry_assert( qbits >= 160 ); + x = mpi_alloc_secure( mpi_get_nlimbs(q) ); + mpi_sub_ui( h, q, 1 ); /* put q-1 into h */ + rndbuf = NULL; + do + { + if( DBG_CIPHER ) + progress('.'); + if( !rndbuf ) + rndbuf = gcry_random_bytes_secure ((qbits+7)/8, random_level); + else + { /* Change only some of the higher bits (= 2 bytes)*/ + char *r = gcry_random_bytes_secure (2, random_level); + memcpy(rndbuf, r, 2 ); + gcry_free(r); + } + + _gcry_mpi_set_buffer( x, rndbuf, (qbits+7)/8, 0 ); + mpi_clear_highbit( x, qbits+1 ); + } + while ( !( mpi_cmp_ui( x, 0 )>0 && mpi_cmp( x, h )<0 ) ); + gcry_free(rndbuf); + mpi_free( e ); + mpi_free( h ); + + /* y = g^x mod p */ + y = mpi_alloc( mpi_get_nlimbs(p) ); + gcry_mpi_powm( y, g, x, p ); + + if( DBG_CIPHER ) + { + progress('\n'); + log_mpidump("dsa p", p ); + log_mpidump("dsa q", q ); + log_mpidump("dsa g", g ); + log_mpidump("dsa y", y ); + log_mpidump("dsa x", x ); + } + + /* Copy the stuff to the key structures. */ + sk->p = p; + sk->q = q; + sk->g = g; + sk->y = y; + sk->x = x; + + /* Now we can test our keys (this should never fail!). */ + if ( test_keys (sk, qbits) ) + { + gcry_mpi_release (sk->p); sk->p = NULL; + gcry_mpi_release (sk->q); sk->q = NULL; + gcry_mpi_release (sk->g); sk->g = NULL; + gcry_mpi_release (sk->y); sk->y = NULL; + gcry_mpi_release (sk->x); sk->x = NULL; + fips_signal_error ("self-test after key generation failed"); + return GPG_ERR_SELFTEST_FAILED; + } + return 0; +} + + +/* Generate a DSA key pair with a key of size NBITS using the + algorithm given in FIPS-186-3. If USE_FIPS186_2 is true, + FIPS-186-2 is used and thus the length is restricted to 1024/160. + If DERIVEPARMS is not NULL it may contain a seed value. If domain + parameters are specified in DOMAIN, DERIVEPARMS may not be given + and NBITS and QBITS must match the specified domain parameters. */ +static gpg_err_code_t +generate_fips186 (DSA_secret_key *sk, unsigned int nbits, unsigned int qbits, + gcry_sexp_t deriveparms, int use_fips186_2, + dsa_domain_t *domain, + int *r_counter, void **r_seed, size_t *r_seedlen, + gcry_mpi_t *r_h) +{ + gpg_err_code_t ec; + struct { + gcry_sexp_t sexp; + const void *seed; + size_t seedlen; + } initial_seed = { NULL, NULL, 0 }; + gcry_mpi_t prime_q = NULL; + gcry_mpi_t prime_p = NULL; + gcry_mpi_t value_g = NULL; /* The generator. */ + gcry_mpi_t value_y = NULL; /* g^x mod p */ + gcry_mpi_t value_x = NULL; /* The secret exponent. */ + gcry_mpi_t value_h = NULL; /* Helper. */ + gcry_mpi_t value_e = NULL; /* Helper. */ + + /* Preset return values. */ + *r_counter = 0; + *r_seed = NULL; + *r_seedlen = 0; + *r_h = NULL; + + /* Derive QBITS from NBITS if requested */ + if (!qbits) + { + if (nbits == 1024) + qbits = 160; + else if (nbits == 2048) + qbits = 224; + else if (nbits == 3072) + qbits = 256; + } + + /* Check that QBITS and NBITS match the standard. Note that FIPS + 186-3 uses N for QBITS and L for NBITS. */ + if (nbits == 1024 && qbits == 160) + ; + else if (nbits == 2048 && qbits == 224) + ; + else if (nbits == 2048 && qbits == 256) + ; + else if (nbits == 3072 && qbits == 256) + ; + else + return GPG_ERR_INV_VALUE; + + if (domain->p && domain->q && domain->g) + { + /* Domain parameters are given; use them. */ + prime_p = mpi_copy (domain->p); + prime_q = mpi_copy (domain->q); + value_g = mpi_copy (domain->g); + gcry_assert (mpi_get_nbits (prime_p) == nbits); + gcry_assert (mpi_get_nbits (prime_q) == qbits); + gcry_assert (!deriveparms); + ec = 0; + } + else + { + /* Generate new domain parameters. */ + + /* Get an initial seed value. */ + if (deriveparms) + { + initial_seed.sexp = gcry_sexp_find_token (deriveparms, "seed", 0); + if (initial_seed.sexp) + initial_seed.seed = gcry_sexp_nth_data (initial_seed.sexp, 1, + &initial_seed.seedlen); + } + + /* Fixme: Enable 186-3 after it has been approved and after fixing + the generation function. */ + /* if (use_fips186_2) */ + (void)use_fips186_2; + ec = _gcry_generate_fips186_2_prime (nbits, qbits, + initial_seed.seed, + initial_seed.seedlen, + &prime_q, &prime_p, + r_counter, + r_seed, r_seedlen); + /* else */ + /* ec = _gcry_generate_fips186_3_prime (nbits, qbits, NULL, 0, */ + /* &prime_q, &prime_p, */ + /* r_counter, */ + /* r_seed, r_seedlen, NULL); */ + gcry_sexp_release (initial_seed.sexp); + if (ec) + goto leave; + + /* Find a generator g (h and e are helpers). + e = (p-1)/q */ + value_e = mpi_alloc_like (prime_p); + mpi_sub_ui (value_e, prime_p, 1); + mpi_fdiv_q (value_e, value_e, prime_q ); + value_g = mpi_alloc_like (prime_p); + value_h = mpi_alloc_set_ui (1); + do + { + mpi_add_ui (value_h, value_h, 1); + /* g = h^e mod p */ + mpi_powm (value_g, value_h, value_e, prime_p); + } + while (!mpi_cmp_ui (value_g, 1)); /* Continue until g != 1. */ + } + + + /* Select a random number x with: 0 < x < q */ + value_x = gcry_mpi_snew (qbits); + do + { + if( DBG_CIPHER ) + progress('.'); + gcry_mpi_randomize (value_x, qbits, GCRY_VERY_STRONG_RANDOM); + mpi_clear_highbit (value_x, qbits+1); + } + while (!(mpi_cmp_ui (value_x, 0) > 0 && mpi_cmp (value_x, prime_q) < 0)); + + /* y = g^x mod p */ + value_y = mpi_alloc_like (prime_p); + gcry_mpi_powm (value_y, value_g, value_x, prime_p); + + if (DBG_CIPHER) + { + progress('\n'); + log_mpidump("dsa p", prime_p ); + log_mpidump("dsa q", prime_q ); + log_mpidump("dsa g", value_g ); + log_mpidump("dsa y", value_y ); + log_mpidump("dsa x", value_x ); + log_mpidump("dsa h", value_h ); + } + + /* Copy the stuff to the key structures. */ + sk->p = prime_p; prime_p = NULL; + sk->q = prime_q; prime_q = NULL; + sk->g = value_g; value_g = NULL; + sk->y = value_y; value_y = NULL; + sk->x = value_x; value_x = NULL; + *r_h = value_h; value_h = NULL; + + leave: + gcry_mpi_release (prime_p); + gcry_mpi_release (prime_q); + gcry_mpi_release (value_g); + gcry_mpi_release (value_y); + gcry_mpi_release (value_x); + gcry_mpi_release (value_h); + gcry_mpi_release (value_e); + + /* As a last step test this keys (this should never fail of course). */ + if (!ec && test_keys (sk, qbits) ) + { + gcry_mpi_release (sk->p); sk->p = NULL; + gcry_mpi_release (sk->q); sk->q = NULL; + gcry_mpi_release (sk->g); sk->g = NULL; + gcry_mpi_release (sk->y); sk->y = NULL; + gcry_mpi_release (sk->x); sk->x = NULL; + fips_signal_error ("self-test after key generation failed"); + ec = GPG_ERR_SELFTEST_FAILED; + } + + if (ec) + { + *r_counter = 0; + gcry_free (*r_seed); *r_seed = NULL; + *r_seedlen = 0; + gcry_mpi_release (*r_h); *r_h = NULL; + } + + return ec; +} + + + +/* + Test whether the secret key is valid. + Returns: if this is a valid key. + */ +static int +check_secret_key( DSA_secret_key *sk ) +{ + int rc; + gcry_mpi_t y = mpi_alloc( mpi_get_nlimbs(sk->y) ); + + gcry_mpi_powm( y, sk->g, sk->x, sk->p ); + rc = !mpi_cmp( y, sk->y ); + mpi_free( y ); + return rc; +} + + + +/* + Make a DSA signature from HASH and put it into r and s. + */ +static void +sign(gcry_mpi_t r, gcry_mpi_t s, gcry_mpi_t hash, DSA_secret_key *skey ) +{ + gcry_mpi_t k; + gcry_mpi_t kinv; + gcry_mpi_t tmp; + + /* Select a random k with 0 < k < q */ + k = gen_k( skey->q ); + + /* r = (a^k mod p) mod q */ + gcry_mpi_powm( r, skey->g, k, skey->p ); + mpi_fdiv_r( r, r, skey->q ); + + /* kinv = k^(-1) mod q */ + kinv = mpi_alloc( mpi_get_nlimbs(k) ); + mpi_invm(kinv, k, skey->q ); + + /* s = (kinv * ( hash + x * r)) mod q */ + tmp = mpi_alloc( mpi_get_nlimbs(skey->p) ); + mpi_mul( tmp, skey->x, r ); + mpi_add( tmp, tmp, hash ); + mpi_mulm( s , kinv, tmp, skey->q ); + + mpi_free(k); + mpi_free(kinv); + mpi_free(tmp); +} + + +/* + Returns true if the signature composed from R and S is valid. + */ +static int +verify (gcry_mpi_t r, gcry_mpi_t s, gcry_mpi_t hash, DSA_public_key *pkey ) +{ + int rc; + gcry_mpi_t w, u1, u2, v; + gcry_mpi_t base[3]; + gcry_mpi_t ex[3]; + + if( !(mpi_cmp_ui( r, 0 ) > 0 && mpi_cmp( r, pkey->q ) < 0) ) + return 0; /* assertion 0 < r < q failed */ + if( !(mpi_cmp_ui( s, 0 ) > 0 && mpi_cmp( s, pkey->q ) < 0) ) + return 0; /* assertion 0 < s < q failed */ + + w = mpi_alloc( mpi_get_nlimbs(pkey->q) ); + u1 = mpi_alloc( mpi_get_nlimbs(pkey->q) ); + u2 = mpi_alloc( mpi_get_nlimbs(pkey->q) ); + v = mpi_alloc( mpi_get_nlimbs(pkey->p) ); + + /* w = s^(-1) mod q */ + mpi_invm( w, s, pkey->q ); + + /* u1 = (hash * w) mod q */ + mpi_mulm( u1, hash, w, pkey->q ); + + /* u2 = r * w mod q */ + mpi_mulm( u2, r, w, pkey->q ); + + /* v = g^u1 * y^u2 mod p mod q */ + base[0] = pkey->g; ex[0] = u1; + base[1] = pkey->y; ex[1] = u2; + base[2] = NULL; ex[2] = NULL; + mpi_mulpowm( v, base, ex, pkey->p ); + mpi_fdiv_r( v, v, pkey->q ); + + rc = !mpi_cmp( v, r ); + + mpi_free(w); + mpi_free(u1); + mpi_free(u2); + mpi_free(v); + + return rc; +} + + +/********************************************* + ************** interface ****************** + *********************************************/ + +static gcry_err_code_t +dsa_generate_ext (int algo, unsigned int nbits, unsigned long evalue, + const gcry_sexp_t genparms, + gcry_mpi_t *skey, gcry_mpi_t **retfactors, + gcry_sexp_t *r_extrainfo) +{ + gpg_err_code_t ec; + DSA_secret_key sk; + gcry_sexp_t l1; + unsigned int qbits = 0; + gcry_sexp_t deriveparms = NULL; + gcry_sexp_t seedinfo = NULL; + int transient_key = 0; + int use_fips186_2 = 0; + int use_fips186 = 0; + dsa_domain_t domain; + + (void)algo; /* No need to check it. */ + (void)evalue; /* Not required for DSA. */ + + memset (&domain, 0, sizeof domain); + + if (genparms) + { + gcry_sexp_t domainsexp; + + /* Parse the optional qbits element. */ + l1 = gcry_sexp_find_token (genparms, "qbits", 0); + if (l1) + { + char buf[50]; + const char *s; + size_t n; + + s = gcry_sexp_nth_data (l1, 1, &n); + if (!s || n >= DIM (buf) - 1 ) + { + gcry_sexp_release (l1); + return GPG_ERR_INV_OBJ; /* No value or value too large. */ + } + memcpy (buf, s, n); + buf[n] = 0; + qbits = (unsigned int)strtoul (buf, NULL, 0); + gcry_sexp_release (l1); + } + + /* Parse the optional transient-key flag. */ + l1 = gcry_sexp_find_token (genparms, "transient-key", 0); + if (l1) + { + transient_key = 1; + gcry_sexp_release (l1); + } + + /* Get the optional derive parameters. */ + deriveparms = gcry_sexp_find_token (genparms, "derive-parms", 0); + + /* Parse the optional "use-fips186" flags. */ + l1 = gcry_sexp_find_token (genparms, "use-fips186", 0); + if (l1) + { + use_fips186 = 1; + gcry_sexp_release (l1); + } + l1 = gcry_sexp_find_token (genparms, "use-fips186-2", 0); + if (l1) + { + use_fips186_2 = 1; + gcry_sexp_release (l1); + } + + /* Check whether domain parameters are given. */ + domainsexp = gcry_sexp_find_token (genparms, "domain", 0); + if (domainsexp) + { + /* DERIVEPARMS can't be used together with domain + parameters. NBITS abnd QBITS may not be specified + because there values are derived from the domain + parameters. */ + if (deriveparms || qbits || nbits) + { + gcry_sexp_release (domainsexp); + gcry_sexp_release (deriveparms); + return GPG_ERR_INV_VALUE; + } + + /* Put all domain parameters into the domain object. */ + l1 = gcry_sexp_find_token (domainsexp, "p", 0); + domain.p = gcry_sexp_nth_mpi (l1, 1, GCRYMPI_FMT_USG); + gcry_sexp_release (l1); + l1 = gcry_sexp_find_token (domainsexp, "q", 0); + domain.q = gcry_sexp_nth_mpi (l1, 1, GCRYMPI_FMT_USG); + gcry_sexp_release (l1); + l1 = gcry_sexp_find_token (domainsexp, "g", 0); + domain.g = gcry_sexp_nth_mpi (l1, 1, GCRYMPI_FMT_USG); + gcry_sexp_release (l1); + gcry_sexp_release (domainsexp); + + /* Check that all domain parameters are available. */ + if (!domain.p || !domain.q || !domain.g) + { + gcry_mpi_release (domain.p); + gcry_mpi_release (domain.q); + gcry_mpi_release (domain.g); + gcry_sexp_release (deriveparms); + return GPG_ERR_MISSING_VALUE; + } + + /* Get NBITS and QBITS from the domain parameters. */ + nbits = mpi_get_nbits (domain.p); + qbits = mpi_get_nbits (domain.q); + } + } + + if (deriveparms || use_fips186 || use_fips186_2 || fips_mode ()) + { + int counter; + void *seed; + size_t seedlen; + gcry_mpi_t h_value; + + ec = generate_fips186 (&sk, nbits, qbits, deriveparms, use_fips186_2, + &domain, + &counter, &seed, &seedlen, &h_value); + gcry_sexp_release (deriveparms); + if (!ec && h_value) + { + /* Format the seed-values unless domain parameters are used + for which a H_VALUE of NULL is an indication. */ + ec = gpg_err_code (gcry_sexp_build + (&seedinfo, NULL, + "(seed-values(counter %d)(seed %b)(h %m))", + counter, (int)seedlen, seed, h_value)); + if (ec) + { + gcry_mpi_release (sk.p); sk.p = NULL; + gcry_mpi_release (sk.q); sk.q = NULL; + gcry_mpi_release (sk.g); sk.g = NULL; + gcry_mpi_release (sk.y); sk.y = NULL; + gcry_mpi_release (sk.x); sk.x = NULL; + } + gcry_free (seed); + gcry_mpi_release (h_value); + } + } + else + { + ec = generate (&sk, nbits, qbits, transient_key, &domain, retfactors); + } + + gcry_mpi_release (domain.p); + gcry_mpi_release (domain.q); + gcry_mpi_release (domain.g); + + if (!ec) + { + skey[0] = sk.p; + skey[1] = sk.q; + skey[2] = sk.g; + skey[3] = sk.y; + skey[4] = sk.x; + + if (!r_extrainfo) + { + /* Old style interface - return the factors - if any - at + retfactors. */ + } + else if (!*retfactors && !seedinfo) + { + /* No factors and no seedinfo, thus there is nothing to return. */ + *r_extrainfo = NULL; + } + else + { + /* Put the factors into extrainfo and set retfactors to NULL + to make use of the new interface. Note that the factors + are not confidential thus we can store them in standard + memory. */ + int nfactors, i, j; + char *p; + char *format = NULL; + void **arg_list = NULL; + + for (nfactors=0; *retfactors && (*retfactors)[nfactors]; nfactors++) + ; + /* Allocate space for the format string: + "(misc-key-info%S(pm1-factors%m))" + with one "%m" for each factor and construct it. */ + format = gcry_malloc (50 + 2*nfactors); + if (!format) + ec = gpg_err_code_from_syserror (); + else + { + p = stpcpy (format, "(misc-key-info"); + if (seedinfo) + p = stpcpy (p, "%S"); + if (nfactors) + { + p = stpcpy (p, "(pm1-factors"); + for (i=0; i < nfactors; i++) + p = stpcpy (p, "%m"); + p = stpcpy (p, ")"); + } + p = stpcpy (p, ")"); + + /* Allocate space for the list of factors plus one for + an S-expression plus an extra NULL entry for safety + and fill it with the factors. */ + arg_list = gcry_calloc (nfactors+1+1, sizeof *arg_list); + if (!arg_list) + ec = gpg_err_code_from_syserror (); + else + { + i = 0; + if (seedinfo) + arg_list[i++] = &seedinfo; + for (j=0; j < nfactors; j++) + arg_list[i++] = (*retfactors) + j; + arg_list[i] = NULL; + + ec = gpg_err_code (gcry_sexp_build_array + (r_extrainfo, NULL, format, arg_list)); + } + } + + gcry_free (arg_list); + gcry_free (format); + for (i=0; i < nfactors; i++) + { + gcry_mpi_release ((*retfactors)[i]); + (*retfactors)[i] = NULL; + } + *retfactors = NULL; + if (ec) + { + for (i=0; i < 5; i++) + { + gcry_mpi_release (skey[i]); + skey[i] = NULL; + } + } + } + } + + gcry_sexp_release (seedinfo); + return ec; +} + + +static gcry_err_code_t +dsa_generate (int algo, unsigned int nbits, unsigned long evalue, + gcry_mpi_t *skey, gcry_mpi_t **retfactors) +{ + (void)evalue; + return dsa_generate_ext (algo, nbits, 0, NULL, skey, retfactors, NULL); +} + + + +static gcry_err_code_t +dsa_check_secret_key (int algo, gcry_mpi_t *skey) +{ + gcry_err_code_t err = GPG_ERR_NO_ERROR; + DSA_secret_key sk; + + (void)algo; + + if ((! skey[0]) || (! skey[1]) || (! skey[2]) || (! skey[3]) || (! skey[4])) + err = GPG_ERR_BAD_MPI; + else + { + sk.p = skey[0]; + sk.q = skey[1]; + sk.g = skey[2]; + sk.y = skey[3]; + sk.x = skey[4]; + if (! check_secret_key (&sk)) + err = GPG_ERR_BAD_SECKEY; + } + + return err; +} + + +static gcry_err_code_t +dsa_sign (int algo, gcry_mpi_t *resarr, gcry_mpi_t data, gcry_mpi_t *skey) +{ + gcry_err_code_t err = GPG_ERR_NO_ERROR; + DSA_secret_key sk; + + (void)algo; + + if ((! data) + || (! skey[0]) || (! skey[1]) || (! skey[2]) + || (! skey[3]) || (! skey[4])) + err = GPG_ERR_BAD_MPI; + else + { + sk.p = skey[0]; + sk.q = skey[1]; + sk.g = skey[2]; + sk.y = skey[3]; + sk.x = skey[4]; + resarr[0] = mpi_alloc (mpi_get_nlimbs (sk.p)); + resarr[1] = mpi_alloc (mpi_get_nlimbs (sk.p)); + sign (resarr[0], resarr[1], data, &sk); + } + return err; +} + +static gcry_err_code_t +dsa_verify (int algo, gcry_mpi_t hash, gcry_mpi_t *data, gcry_mpi_t *pkey, + int (*cmp) (void *, gcry_mpi_t), void *opaquev) +{ + gcry_err_code_t err = GPG_ERR_NO_ERROR; + DSA_public_key pk; + + (void)algo; + (void)cmp; + (void)opaquev; + + if ((! data[0]) || (! data[1]) || (! hash) + || (! pkey[0]) || (! pkey[1]) || (! pkey[2]) || (! pkey[3])) + err = GPG_ERR_BAD_MPI; + else + { + pk.p = pkey[0]; + pk.q = pkey[1]; + pk.g = pkey[2]; + pk.y = pkey[3]; + if (! verify (data[0], data[1], hash, &pk)) + err = GPG_ERR_BAD_SIGNATURE; + } + return err; +} + + +static unsigned int +dsa_get_nbits (int algo, gcry_mpi_t *pkey) +{ + (void)algo; + + return mpi_get_nbits (pkey[0]); +} + + + +/* + Self-test section. + */ + + + + + +/* Run a full self-test for ALGO and return 0 on success. */ + + + + +static const char *dsa_names[] = + { + "dsa", + "openpgp-dsa", + NULL, + }; + +gcry_pk_spec_t _gcry_pubkey_spec_dsa = + { + "DSA", dsa_names, + "pqgy", "pqgyx", "", "rs", "pqgy", + GCRY_PK_USAGE_SIGN, + dsa_generate, + dsa_check_secret_key, + NULL, + NULL, + dsa_sign, + dsa_verify, + dsa_get_nbits + }; +pk_extra_spec_t _gcry_pubkey_extraspec_dsa = + { + run_selftests, + dsa_generate_ext + }; + --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/rijndael-tables.h +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/rijndael-tables.h @@ -0,0 +1,1689 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* rijndael-tables.h - Rijndael (AES) for GnuPG, + * Copyright (C) 2000, 2001, 2002, 2003, 2007, + * 2008 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, see . + */ + +/* To keep the actual implementation at a readable size we use this + include file to define the tables. */ + +static const unsigned char S[256] = + { + 99, 124, 119, 123, 242, 107, 111, 197, + 48, 1, 103, 43, 254, 215, 171, 118, + 202, 130, 201, 125, 250, 89, 71, 240, + 173, 212, 162, 175, 156, 164, 114, 192, + 183, 253, 147, 38, 54, 63, 247, 204, + 52, 165, 229, 241, 113, 216, 49, 21, + 4, 199, 35, 195, 24, 150, 5, 154, + 7, 18, 128, 226, 235, 39, 178, 117, + 9, 131, 44, 26, 27, 110, 90, 160, + 82, 59, 214, 179, 41, 227, 47, 132, + 83, 209, 0, 237, 32, 252, 177, 91, + 106, 203, 190, 57, 74, 76, 88, 207, + 208, 239, 170, 251, 67, 77, 51, 133, + 69, 249, 2, 127, 80, 60, 159, 168, + 81, 163, 64, 143, 146, 157, 56, 245, + 188, 182, 218, 33, 16, 255, 243, 210, + 205, 12, 19, 236, 95, 151, 68, 23, + 196, 167, 126, 61, 100, 93, 25, 115, + 96, 129, 79, 220, 34, 42, 144, 136, + 70, 238, 184, 20, 222, 94, 11, 219, + 224, 50, 58, 10, 73, 6, 36, 92, + 194, 211, 172, 98, 145, 149, 228, 121, + 231, 200, 55, 109, 141, 213, 78, 169, + 108, 86, 244, 234, 101, 122, 174, 8, + 186, 120, 37, 46, 28, 166, 180, 198, + 232, 221, 116, 31, 75, 189, 139, 138, + 112, 62, 181, 102, 72, 3, 246, 14, + 97, 53, 87, 185, 134, 193, 29, 158, + 225, 248, 152, 17, 105, 217, 142, 148, + 155, 30, 135, 233, 206, 85, 40, 223, + 140, 161, 137, 13, 191, 230, 66, 104, + 65, 153, 45, 15, 176, 84, 187, 22 + }; + + +static const unsigned char T1[256][4] = + { + { 0xc6,0x63,0x63,0xa5 }, { 0xf8,0x7c,0x7c,0x84 }, + { 0xee,0x77,0x77,0x99 }, { 0xf6,0x7b,0x7b,0x8d }, + { 0xff,0xf2,0xf2,0x0d }, { 0xd6,0x6b,0x6b,0xbd }, + { 0xde,0x6f,0x6f,0xb1 }, { 0x91,0xc5,0xc5,0x54 }, + { 0x60,0x30,0x30,0x50 }, { 0x02,0x01,0x01,0x03 }, + { 0xce,0x67,0x67,0xa9 }, { 0x56,0x2b,0x2b,0x7d }, + { 0xe7,0xfe,0xfe,0x19 }, { 0xb5,0xd7,0xd7,0x62 }, + { 0x4d,0xab,0xab,0xe6 }, { 0xec,0x76,0x76,0x9a }, + { 0x8f,0xca,0xca,0x45 }, { 0x1f,0x82,0x82,0x9d }, + { 0x89,0xc9,0xc9,0x40 }, { 0xfa,0x7d,0x7d,0x87 }, + { 0xef,0xfa,0xfa,0x15 }, { 0xb2,0x59,0x59,0xeb }, + { 0x8e,0x47,0x47,0xc9 }, { 0xfb,0xf0,0xf0,0x0b }, + { 0x41,0xad,0xad,0xec }, { 0xb3,0xd4,0xd4,0x67 }, + { 0x5f,0xa2,0xa2,0xfd }, { 0x45,0xaf,0xaf,0xea }, + { 0x23,0x9c,0x9c,0xbf }, { 0x53,0xa4,0xa4,0xf7 }, + { 0xe4,0x72,0x72,0x96 }, { 0x9b,0xc0,0xc0,0x5b }, + { 0x75,0xb7,0xb7,0xc2 }, { 0xe1,0xfd,0xfd,0x1c }, + { 0x3d,0x93,0x93,0xae }, { 0x4c,0x26,0x26,0x6a }, + { 0x6c,0x36,0x36,0x5a }, { 0x7e,0x3f,0x3f,0x41 }, + { 0xf5,0xf7,0xf7,0x02 }, { 0x83,0xcc,0xcc,0x4f }, + { 0x68,0x34,0x34,0x5c }, { 0x51,0xa5,0xa5,0xf4 }, + { 0xd1,0xe5,0xe5,0x34 }, { 0xf9,0xf1,0xf1,0x08 }, + { 0xe2,0x71,0x71,0x93 }, { 0xab,0xd8,0xd8,0x73 }, + { 0x62,0x31,0x31,0x53 }, { 0x2a,0x15,0x15,0x3f }, + { 0x08,0x04,0x04,0x0c }, { 0x95,0xc7,0xc7,0x52 }, + { 0x46,0x23,0x23,0x65 }, { 0x9d,0xc3,0xc3,0x5e }, + { 0x30,0x18,0x18,0x28 }, { 0x37,0x96,0x96,0xa1 }, + { 0x0a,0x05,0x05,0x0f }, { 0x2f,0x9a,0x9a,0xb5 }, + { 0x0e,0x07,0x07,0x09 }, { 0x24,0x12,0x12,0x36 }, + { 0x1b,0x80,0x80,0x9b }, { 0xdf,0xe2,0xe2,0x3d }, + { 0xcd,0xeb,0xeb,0x26 }, { 0x4e,0x27,0x27,0x69 }, + { 0x7f,0xb2,0xb2,0xcd }, { 0xea,0x75,0x75,0x9f }, + { 0x12,0x09,0x09,0x1b }, { 0x1d,0x83,0x83,0x9e }, + { 0x58,0x2c,0x2c,0x74 }, { 0x34,0x1a,0x1a,0x2e }, + { 0x36,0x1b,0x1b,0x2d }, { 0xdc,0x6e,0x6e,0xb2 }, + { 0xb4,0x5a,0x5a,0xee }, { 0x5b,0xa0,0xa0,0xfb }, + { 0xa4,0x52,0x52,0xf6 }, { 0x76,0x3b,0x3b,0x4d }, + { 0xb7,0xd6,0xd6,0x61 }, { 0x7d,0xb3,0xb3,0xce }, + { 0x52,0x29,0x29,0x7b }, { 0xdd,0xe3,0xe3,0x3e }, + { 0x5e,0x2f,0x2f,0x71 }, { 0x13,0x84,0x84,0x97 }, + { 0xa6,0x53,0x53,0xf5 }, { 0xb9,0xd1,0xd1,0x68 }, + { 0x00,0x00,0x00,0x00 }, { 0xc1,0xed,0xed,0x2c }, + { 0x40,0x20,0x20,0x60 }, { 0xe3,0xfc,0xfc,0x1f }, + { 0x79,0xb1,0xb1,0xc8 }, { 0xb6,0x5b,0x5b,0xed }, + { 0xd4,0x6a,0x6a,0xbe }, { 0x8d,0xcb,0xcb,0x46 }, + { 0x67,0xbe,0xbe,0xd9 }, { 0x72,0x39,0x39,0x4b }, + { 0x94,0x4a,0x4a,0xde }, { 0x98,0x4c,0x4c,0xd4 }, + { 0xb0,0x58,0x58,0xe8 }, { 0x85,0xcf,0xcf,0x4a }, + { 0xbb,0xd0,0xd0,0x6b }, { 0xc5,0xef,0xef,0x2a }, + { 0x4f,0xaa,0xaa,0xe5 }, { 0xed,0xfb,0xfb,0x16 }, + { 0x86,0x43,0x43,0xc5 }, { 0x9a,0x4d,0x4d,0xd7 }, + { 0x66,0x33,0x33,0x55 }, { 0x11,0x85,0x85,0x94 }, + { 0x8a,0x45,0x45,0xcf }, { 0xe9,0xf9,0xf9,0x10 }, + { 0x04,0x02,0x02,0x06 }, { 0xfe,0x7f,0x7f,0x81 }, + { 0xa0,0x50,0x50,0xf0 }, { 0x78,0x3c,0x3c,0x44 }, + { 0x25,0x9f,0x9f,0xba }, { 0x4b,0xa8,0xa8,0xe3 }, + { 0xa2,0x51,0x51,0xf3 }, { 0x5d,0xa3,0xa3,0xfe }, + { 0x80,0x40,0x40,0xc0 }, { 0x05,0x8f,0x8f,0x8a }, + { 0x3f,0x92,0x92,0xad }, { 0x21,0x9d,0x9d,0xbc }, + { 0x70,0x38,0x38,0x48 }, { 0xf1,0xf5,0xf5,0x04 }, + { 0x63,0xbc,0xbc,0xdf }, { 0x77,0xb6,0xb6,0xc1 }, + { 0xaf,0xda,0xda,0x75 }, { 0x42,0x21,0x21,0x63 }, + { 0x20,0x10,0x10,0x30 }, { 0xe5,0xff,0xff,0x1a }, + { 0xfd,0xf3,0xf3,0x0e }, { 0xbf,0xd2,0xd2,0x6d }, + { 0x81,0xcd,0xcd,0x4c }, { 0x18,0x0c,0x0c,0x14 }, + { 0x26,0x13,0x13,0x35 }, { 0xc3,0xec,0xec,0x2f }, + { 0xbe,0x5f,0x5f,0xe1 }, { 0x35,0x97,0x97,0xa2 }, + { 0x88,0x44,0x44,0xcc }, { 0x2e,0x17,0x17,0x39 }, + { 0x93,0xc4,0xc4,0x57 }, { 0x55,0xa7,0xa7,0xf2 }, + { 0xfc,0x7e,0x7e,0x82 }, { 0x7a,0x3d,0x3d,0x47 }, + { 0xc8,0x64,0x64,0xac }, { 0xba,0x5d,0x5d,0xe7 }, + { 0x32,0x19,0x19,0x2b }, { 0xe6,0x73,0x73,0x95 }, + { 0xc0,0x60,0x60,0xa0 }, { 0x19,0x81,0x81,0x98 }, + { 0x9e,0x4f,0x4f,0xd1 }, { 0xa3,0xdc,0xdc,0x7f }, + { 0x44,0x22,0x22,0x66 }, { 0x54,0x2a,0x2a,0x7e }, + { 0x3b,0x90,0x90,0xab }, { 0x0b,0x88,0x88,0x83 }, + { 0x8c,0x46,0x46,0xca }, { 0xc7,0xee,0xee,0x29 }, + { 0x6b,0xb8,0xb8,0xd3 }, { 0x28,0x14,0x14,0x3c }, + { 0xa7,0xde,0xde,0x79 }, { 0xbc,0x5e,0x5e,0xe2 }, + { 0x16,0x0b,0x0b,0x1d }, { 0xad,0xdb,0xdb,0x76 }, + { 0xdb,0xe0,0xe0,0x3b }, { 0x64,0x32,0x32,0x56 }, + { 0x74,0x3a,0x3a,0x4e }, { 0x14,0x0a,0x0a,0x1e }, + { 0x92,0x49,0x49,0xdb }, { 0x0c,0x06,0x06,0x0a }, + { 0x48,0x24,0x24,0x6c }, { 0xb8,0x5c,0x5c,0xe4 }, + { 0x9f,0xc2,0xc2,0x5d }, { 0xbd,0xd3,0xd3,0x6e }, + { 0x43,0xac,0xac,0xef }, { 0xc4,0x62,0x62,0xa6 }, + { 0x39,0x91,0x91,0xa8 }, { 0x31,0x95,0x95,0xa4 }, + { 0xd3,0xe4,0xe4,0x37 }, { 0xf2,0x79,0x79,0x8b }, + { 0xd5,0xe7,0xe7,0x32 }, { 0x8b,0xc8,0xc8,0x43 }, + { 0x6e,0x37,0x37,0x59 }, { 0xda,0x6d,0x6d,0xb7 }, + { 0x01,0x8d,0x8d,0x8c }, { 0xb1,0xd5,0xd5,0x64 }, + { 0x9c,0x4e,0x4e,0xd2 }, { 0x49,0xa9,0xa9,0xe0 }, + { 0xd8,0x6c,0x6c,0xb4 }, { 0xac,0x56,0x56,0xfa }, + { 0xf3,0xf4,0xf4,0x07 }, { 0xcf,0xea,0xea,0x25 }, + { 0xca,0x65,0x65,0xaf }, { 0xf4,0x7a,0x7a,0x8e }, + { 0x47,0xae,0xae,0xe9 }, { 0x10,0x08,0x08,0x18 }, + { 0x6f,0xba,0xba,0xd5 }, { 0xf0,0x78,0x78,0x88 }, + { 0x4a,0x25,0x25,0x6f }, { 0x5c,0x2e,0x2e,0x72 }, + { 0x38,0x1c,0x1c,0x24 }, { 0x57,0xa6,0xa6,0xf1 }, + { 0x73,0xb4,0xb4,0xc7 }, { 0x97,0xc6,0xc6,0x51 }, + { 0xcb,0xe8,0xe8,0x23 }, { 0xa1,0xdd,0xdd,0x7c }, + { 0xe8,0x74,0x74,0x9c }, { 0x3e,0x1f,0x1f,0x21 }, + { 0x96,0x4b,0x4b,0xdd }, { 0x61,0xbd,0xbd,0xdc }, + { 0x0d,0x8b,0x8b,0x86 }, { 0x0f,0x8a,0x8a,0x85 }, + { 0xe0,0x70,0x70,0x90 }, { 0x7c,0x3e,0x3e,0x42 }, + { 0x71,0xb5,0xb5,0xc4 }, { 0xcc,0x66,0x66,0xaa }, + { 0x90,0x48,0x48,0xd8 }, { 0x06,0x03,0x03,0x05 }, + { 0xf7,0xf6,0xf6,0x01 }, { 0x1c,0x0e,0x0e,0x12 }, + { 0xc2,0x61,0x61,0xa3 }, { 0x6a,0x35,0x35,0x5f }, + { 0xae,0x57,0x57,0xf9 }, { 0x69,0xb9,0xb9,0xd0 }, + { 0x17,0x86,0x86,0x91 }, { 0x99,0xc1,0xc1,0x58 }, + { 0x3a,0x1d,0x1d,0x27 }, { 0x27,0x9e,0x9e,0xb9 }, + { 0xd9,0xe1,0xe1,0x38 }, { 0xeb,0xf8,0xf8,0x13 }, + { 0x2b,0x98,0x98,0xb3 }, { 0x22,0x11,0x11,0x33 }, + { 0xd2,0x69,0x69,0xbb }, { 0xa9,0xd9,0xd9,0x70 }, + { 0x07,0x8e,0x8e,0x89 }, { 0x33,0x94,0x94,0xa7 }, + { 0x2d,0x9b,0x9b,0xb6 }, { 0x3c,0x1e,0x1e,0x22 }, + { 0x15,0x87,0x87,0x92 }, { 0xc9,0xe9,0xe9,0x20 }, + { 0x87,0xce,0xce,0x49 }, { 0xaa,0x55,0x55,0xff }, + { 0x50,0x28,0x28,0x78 }, { 0xa5,0xdf,0xdf,0x7a }, + { 0x03,0x8c,0x8c,0x8f }, { 0x59,0xa1,0xa1,0xf8 }, + { 0x09,0x89,0x89,0x80 }, { 0x1a,0x0d,0x0d,0x17 }, + { 0x65,0xbf,0xbf,0xda }, { 0xd7,0xe6,0xe6,0x31 }, + { 0x84,0x42,0x42,0xc6 }, { 0xd0,0x68,0x68,0xb8 }, + { 0x82,0x41,0x41,0xc3 }, { 0x29,0x99,0x99,0xb0 }, + { 0x5a,0x2d,0x2d,0x77 }, { 0x1e,0x0f,0x0f,0x11 }, + { 0x7b,0xb0,0xb0,0xcb }, { 0xa8,0x54,0x54,0xfc }, + { 0x6d,0xbb,0xbb,0xd6 }, { 0x2c,0x16,0x16,0x3a } + }; + +static const unsigned char T2[256][4] = + { + { 0xa5,0xc6,0x63,0x63 }, { 0x84,0xf8,0x7c,0x7c }, + { 0x99,0xee,0x77,0x77 }, { 0x8d,0xf6,0x7b,0x7b }, + { 0x0d,0xff,0xf2,0xf2 }, { 0xbd,0xd6,0x6b,0x6b }, + { 0xb1,0xde,0x6f,0x6f }, { 0x54,0x91,0xc5,0xc5 }, + { 0x50,0x60,0x30,0x30 }, { 0x03,0x02,0x01,0x01 }, + { 0xa9,0xce,0x67,0x67 }, { 0x7d,0x56,0x2b,0x2b }, + { 0x19,0xe7,0xfe,0xfe }, { 0x62,0xb5,0xd7,0xd7 }, + { 0xe6,0x4d,0xab,0xab }, { 0x9a,0xec,0x76,0x76 }, + { 0x45,0x8f,0xca,0xca }, { 0x9d,0x1f,0x82,0x82 }, + { 0x40,0x89,0xc9,0xc9 }, { 0x87,0xfa,0x7d,0x7d }, + { 0x15,0xef,0xfa,0xfa }, { 0xeb,0xb2,0x59,0x59 }, + { 0xc9,0x8e,0x47,0x47 }, { 0x0b,0xfb,0xf0,0xf0 }, + { 0xec,0x41,0xad,0xad }, { 0x67,0xb3,0xd4,0xd4 }, + { 0xfd,0x5f,0xa2,0xa2 }, { 0xea,0x45,0xaf,0xaf }, + { 0xbf,0x23,0x9c,0x9c }, { 0xf7,0x53,0xa4,0xa4 }, + { 0x96,0xe4,0x72,0x72 }, { 0x5b,0x9b,0xc0,0xc0 }, + { 0xc2,0x75,0xb7,0xb7 }, { 0x1c,0xe1,0xfd,0xfd }, + { 0xae,0x3d,0x93,0x93 }, { 0x6a,0x4c,0x26,0x26 }, + { 0x5a,0x6c,0x36,0x36 }, { 0x41,0x7e,0x3f,0x3f }, + { 0x02,0xf5,0xf7,0xf7 }, { 0x4f,0x83,0xcc,0xcc }, + { 0x5c,0x68,0x34,0x34 }, { 0xf4,0x51,0xa5,0xa5 }, + { 0x34,0xd1,0xe5,0xe5 }, { 0x08,0xf9,0xf1,0xf1 }, + { 0x93,0xe2,0x71,0x71 }, { 0x73,0xab,0xd8,0xd8 }, + { 0x53,0x62,0x31,0x31 }, { 0x3f,0x2a,0x15,0x15 }, + { 0x0c,0x08,0x04,0x04 }, { 0x52,0x95,0xc7,0xc7 }, + { 0x65,0x46,0x23,0x23 }, { 0x5e,0x9d,0xc3,0xc3 }, + { 0x28,0x30,0x18,0x18 }, { 0xa1,0x37,0x96,0x96 }, + { 0x0f,0x0a,0x05,0x05 }, { 0xb5,0x2f,0x9a,0x9a }, + { 0x09,0x0e,0x07,0x07 }, { 0x36,0x24,0x12,0x12 }, + { 0x9b,0x1b,0x80,0x80 }, { 0x3d,0xdf,0xe2,0xe2 }, + { 0x26,0xcd,0xeb,0xeb }, { 0x69,0x4e,0x27,0x27 }, + { 0xcd,0x7f,0xb2,0xb2 }, { 0x9f,0xea,0x75,0x75 }, + { 0x1b,0x12,0x09,0x09 }, { 0x9e,0x1d,0x83,0x83 }, + { 0x74,0x58,0x2c,0x2c }, { 0x2e,0x34,0x1a,0x1a }, + { 0x2d,0x36,0x1b,0x1b }, { 0xb2,0xdc,0x6e,0x6e }, + { 0xee,0xb4,0x5a,0x5a }, { 0xfb,0x5b,0xa0,0xa0 }, + { 0xf6,0xa4,0x52,0x52 }, { 0x4d,0x76,0x3b,0x3b }, + { 0x61,0xb7,0xd6,0xd6 }, { 0xce,0x7d,0xb3,0xb3 }, + { 0x7b,0x52,0x29,0x29 }, { 0x3e,0xdd,0xe3,0xe3 }, + { 0x71,0x5e,0x2f,0x2f }, { 0x97,0x13,0x84,0x84 }, + { 0xf5,0xa6,0x53,0x53 }, { 0x68,0xb9,0xd1,0xd1 }, + { 0x00,0x00,0x00,0x00 }, { 0x2c,0xc1,0xed,0xed }, + { 0x60,0x40,0x20,0x20 }, { 0x1f,0xe3,0xfc,0xfc }, + { 0xc8,0x79,0xb1,0xb1 }, { 0xed,0xb6,0x5b,0x5b }, + { 0xbe,0xd4,0x6a,0x6a }, { 0x46,0x8d,0xcb,0xcb }, + { 0xd9,0x67,0xbe,0xbe }, { 0x4b,0x72,0x39,0x39 }, + { 0xde,0x94,0x4a,0x4a }, { 0xd4,0x98,0x4c,0x4c }, + { 0xe8,0xb0,0x58,0x58 }, { 0x4a,0x85,0xcf,0xcf }, + { 0x6b,0xbb,0xd0,0xd0 }, { 0x2a,0xc5,0xef,0xef }, + { 0xe5,0x4f,0xaa,0xaa }, { 0x16,0xed,0xfb,0xfb }, + { 0xc5,0x86,0x43,0x43 }, { 0xd7,0x9a,0x4d,0x4d }, + { 0x55,0x66,0x33,0x33 }, { 0x94,0x11,0x85,0x85 }, + { 0xcf,0x8a,0x45,0x45 }, { 0x10,0xe9,0xf9,0xf9 }, + { 0x06,0x04,0x02,0x02 }, { 0x81,0xfe,0x7f,0x7f }, + { 0xf0,0xa0,0x50,0x50 }, { 0x44,0x78,0x3c,0x3c }, + { 0xba,0x25,0x9f,0x9f }, { 0xe3,0x4b,0xa8,0xa8 }, + { 0xf3,0xa2,0x51,0x51 }, { 0xfe,0x5d,0xa3,0xa3 }, + { 0xc0,0x80,0x40,0x40 }, { 0x8a,0x05,0x8f,0x8f }, + { 0xad,0x3f,0x92,0x92 }, { 0xbc,0x21,0x9d,0x9d }, + { 0x48,0x70,0x38,0x38 }, { 0x04,0xf1,0xf5,0xf5 }, + { 0xdf,0x63,0xbc,0xbc }, { 0xc1,0x77,0xb6,0xb6 }, + { 0x75,0xaf,0xda,0xda }, { 0x63,0x42,0x21,0x21 }, + { 0x30,0x20,0x10,0x10 }, { 0x1a,0xe5,0xff,0xff }, + { 0x0e,0xfd,0xf3,0xf3 }, { 0x6d,0xbf,0xd2,0xd2 }, + { 0x4c,0x81,0xcd,0xcd }, { 0x14,0x18,0x0c,0x0c }, + { 0x35,0x26,0x13,0x13 }, { 0x2f,0xc3,0xec,0xec }, + { 0xe1,0xbe,0x5f,0x5f }, { 0xa2,0x35,0x97,0x97 }, + { 0xcc,0x88,0x44,0x44 }, { 0x39,0x2e,0x17,0x17 }, + { 0x57,0x93,0xc4,0xc4 }, { 0xf2,0x55,0xa7,0xa7 }, + { 0x82,0xfc,0x7e,0x7e }, { 0x47,0x7a,0x3d,0x3d }, + { 0xac,0xc8,0x64,0x64 }, { 0xe7,0xba,0x5d,0x5d }, + { 0x2b,0x32,0x19,0x19 }, { 0x95,0xe6,0x73,0x73 }, + { 0xa0,0xc0,0x60,0x60 }, { 0x98,0x19,0x81,0x81 }, + { 0xd1,0x9e,0x4f,0x4f }, { 0x7f,0xa3,0xdc,0xdc }, + { 0x66,0x44,0x22,0x22 }, { 0x7e,0x54,0x2a,0x2a }, + { 0xab,0x3b,0x90,0x90 }, { 0x83,0x0b,0x88,0x88 }, + { 0xca,0x8c,0x46,0x46 }, { 0x29,0xc7,0xee,0xee }, + { 0xd3,0x6b,0xb8,0xb8 }, { 0x3c,0x28,0x14,0x14 }, + { 0x79,0xa7,0xde,0xde }, { 0xe2,0xbc,0x5e,0x5e }, + { 0x1d,0x16,0x0b,0x0b }, { 0x76,0xad,0xdb,0xdb }, + { 0x3b,0xdb,0xe0,0xe0 }, { 0x56,0x64,0x32,0x32 }, + { 0x4e,0x74,0x3a,0x3a }, { 0x1e,0x14,0x0a,0x0a }, + { 0xdb,0x92,0x49,0x49 }, { 0x0a,0x0c,0x06,0x06 }, + { 0x6c,0x48,0x24,0x24 }, { 0xe4,0xb8,0x5c,0x5c }, + { 0x5d,0x9f,0xc2,0xc2 }, { 0x6e,0xbd,0xd3,0xd3 }, + { 0xef,0x43,0xac,0xac }, { 0xa6,0xc4,0x62,0x62 }, + { 0xa8,0x39,0x91,0x91 }, { 0xa4,0x31,0x95,0x95 }, + { 0x37,0xd3,0xe4,0xe4 }, { 0x8b,0xf2,0x79,0x79 }, + { 0x32,0xd5,0xe7,0xe7 }, { 0x43,0x8b,0xc8,0xc8 }, + { 0x59,0x6e,0x37,0x37 }, { 0xb7,0xda,0x6d,0x6d }, + { 0x8c,0x01,0x8d,0x8d }, { 0x64,0xb1,0xd5,0xd5 }, + { 0xd2,0x9c,0x4e,0x4e }, { 0xe0,0x49,0xa9,0xa9 }, + { 0xb4,0xd8,0x6c,0x6c }, { 0xfa,0xac,0x56,0x56 }, + { 0x07,0xf3,0xf4,0xf4 }, { 0x25,0xcf,0xea,0xea }, + { 0xaf,0xca,0x65,0x65 }, { 0x8e,0xf4,0x7a,0x7a }, + { 0xe9,0x47,0xae,0xae }, { 0x18,0x10,0x08,0x08 }, + { 0xd5,0x6f,0xba,0xba }, { 0x88,0xf0,0x78,0x78 }, + { 0x6f,0x4a,0x25,0x25 }, { 0x72,0x5c,0x2e,0x2e }, + { 0x24,0x38,0x1c,0x1c }, { 0xf1,0x57,0xa6,0xa6 }, + { 0xc7,0x73,0xb4,0xb4 }, { 0x51,0x97,0xc6,0xc6 }, + { 0x23,0xcb,0xe8,0xe8 }, { 0x7c,0xa1,0xdd,0xdd }, + { 0x9c,0xe8,0x74,0x74 }, { 0x21,0x3e,0x1f,0x1f }, + { 0xdd,0x96,0x4b,0x4b }, { 0xdc,0x61,0xbd,0xbd }, + { 0x86,0x0d,0x8b,0x8b }, { 0x85,0x0f,0x8a,0x8a }, + { 0x90,0xe0,0x70,0x70 }, { 0x42,0x7c,0x3e,0x3e }, + { 0xc4,0x71,0xb5,0xb5 }, { 0xaa,0xcc,0x66,0x66 }, + { 0xd8,0x90,0x48,0x48 }, { 0x05,0x06,0x03,0x03 }, + { 0x01,0xf7,0xf6,0xf6 }, { 0x12,0x1c,0x0e,0x0e }, + { 0xa3,0xc2,0x61,0x61 }, { 0x5f,0x6a,0x35,0x35 }, + { 0xf9,0xae,0x57,0x57 }, { 0xd0,0x69,0xb9,0xb9 }, + { 0x91,0x17,0x86,0x86 }, { 0x58,0x99,0xc1,0xc1 }, + { 0x27,0x3a,0x1d,0x1d }, { 0xb9,0x27,0x9e,0x9e }, + { 0x38,0xd9,0xe1,0xe1 }, { 0x13,0xeb,0xf8,0xf8 }, + { 0xb3,0x2b,0x98,0x98 }, { 0x33,0x22,0x11,0x11 }, + { 0xbb,0xd2,0x69,0x69 }, { 0x70,0xa9,0xd9,0xd9 }, + { 0x89,0x07,0x8e,0x8e }, { 0xa7,0x33,0x94,0x94 }, + { 0xb6,0x2d,0x9b,0x9b }, { 0x22,0x3c,0x1e,0x1e }, + { 0x92,0x15,0x87,0x87 }, { 0x20,0xc9,0xe9,0xe9 }, + { 0x49,0x87,0xce,0xce }, { 0xff,0xaa,0x55,0x55 }, + { 0x78,0x50,0x28,0x28 }, { 0x7a,0xa5,0xdf,0xdf }, + { 0x8f,0x03,0x8c,0x8c }, { 0xf8,0x59,0xa1,0xa1 }, + { 0x80,0x09,0x89,0x89 }, { 0x17,0x1a,0x0d,0x0d }, + { 0xda,0x65,0xbf,0xbf }, { 0x31,0xd7,0xe6,0xe6 }, + { 0xc6,0x84,0x42,0x42 }, { 0xb8,0xd0,0x68,0x68 }, + { 0xc3,0x82,0x41,0x41 }, { 0xb0,0x29,0x99,0x99 }, + { 0x77,0x5a,0x2d,0x2d }, { 0x11,0x1e,0x0f,0x0f }, + { 0xcb,0x7b,0xb0,0xb0 }, { 0xfc,0xa8,0x54,0x54 }, + { 0xd6,0x6d,0xbb,0xbb }, { 0x3a,0x2c,0x16,0x16 } + }; + +static const unsigned char T3[256][4] = + { + { 0x63,0xa5,0xc6,0x63 }, { 0x7c,0x84,0xf8,0x7c }, + { 0x77,0x99,0xee,0x77 }, { 0x7b,0x8d,0xf6,0x7b }, + { 0xf2,0x0d,0xff,0xf2 }, { 0x6b,0xbd,0xd6,0x6b }, + { 0x6f,0xb1,0xde,0x6f }, { 0xc5,0x54,0x91,0xc5 }, + { 0x30,0x50,0x60,0x30 }, { 0x01,0x03,0x02,0x01 }, + { 0x67,0xa9,0xce,0x67 }, { 0x2b,0x7d,0x56,0x2b }, + { 0xfe,0x19,0xe7,0xfe }, { 0xd7,0x62,0xb5,0xd7 }, + { 0xab,0xe6,0x4d,0xab }, { 0x76,0x9a,0xec,0x76 }, + { 0xca,0x45,0x8f,0xca }, { 0x82,0x9d,0x1f,0x82 }, + { 0xc9,0x40,0x89,0xc9 }, { 0x7d,0x87,0xfa,0x7d }, + { 0xfa,0x15,0xef,0xfa }, { 0x59,0xeb,0xb2,0x59 }, + { 0x47,0xc9,0x8e,0x47 }, { 0xf0,0x0b,0xfb,0xf0 }, + { 0xad,0xec,0x41,0xad }, { 0xd4,0x67,0xb3,0xd4 }, + { 0xa2,0xfd,0x5f,0xa2 }, { 0xaf,0xea,0x45,0xaf }, + { 0x9c,0xbf,0x23,0x9c }, { 0xa4,0xf7,0x53,0xa4 }, + { 0x72,0x96,0xe4,0x72 }, { 0xc0,0x5b,0x9b,0xc0 }, + { 0xb7,0xc2,0x75,0xb7 }, { 0xfd,0x1c,0xe1,0xfd }, + { 0x93,0xae,0x3d,0x93 }, { 0x26,0x6a,0x4c,0x26 }, + { 0x36,0x5a,0x6c,0x36 }, { 0x3f,0x41,0x7e,0x3f }, + { 0xf7,0x02,0xf5,0xf7 }, { 0xcc,0x4f,0x83,0xcc }, + { 0x34,0x5c,0x68,0x34 }, { 0xa5,0xf4,0x51,0xa5 }, + { 0xe5,0x34,0xd1,0xe5 }, { 0xf1,0x08,0xf9,0xf1 }, + { 0x71,0x93,0xe2,0x71 }, { 0xd8,0x73,0xab,0xd8 }, + { 0x31,0x53,0x62,0x31 }, { 0x15,0x3f,0x2a,0x15 }, + { 0x04,0x0c,0x08,0x04 }, { 0xc7,0x52,0x95,0xc7 }, + { 0x23,0x65,0x46,0x23 }, { 0xc3,0x5e,0x9d,0xc3 }, + { 0x18,0x28,0x30,0x18 }, { 0x96,0xa1,0x37,0x96 }, + { 0x05,0x0f,0x0a,0x05 }, { 0x9a,0xb5,0x2f,0x9a }, + { 0x07,0x09,0x0e,0x07 }, { 0x12,0x36,0x24,0x12 }, + { 0x80,0x9b,0x1b,0x80 }, { 0xe2,0x3d,0xdf,0xe2 }, + { 0xeb,0x26,0xcd,0xeb }, { 0x27,0x69,0x4e,0x27 }, + { 0xb2,0xcd,0x7f,0xb2 }, { 0x75,0x9f,0xea,0x75 }, + { 0x09,0x1b,0x12,0x09 }, { 0x83,0x9e,0x1d,0x83 }, + { 0x2c,0x74,0x58,0x2c }, { 0x1a,0x2e,0x34,0x1a }, + { 0x1b,0x2d,0x36,0x1b }, { 0x6e,0xb2,0xdc,0x6e }, + { 0x5a,0xee,0xb4,0x5a }, { 0xa0,0xfb,0x5b,0xa0 }, + { 0x52,0xf6,0xa4,0x52 }, { 0x3b,0x4d,0x76,0x3b }, + { 0xd6,0x61,0xb7,0xd6 }, { 0xb3,0xce,0x7d,0xb3 }, + { 0x29,0x7b,0x52,0x29 }, { 0xe3,0x3e,0xdd,0xe3 }, + { 0x2f,0x71,0x5e,0x2f }, { 0x84,0x97,0x13,0x84 }, + { 0x53,0xf5,0xa6,0x53 }, { 0xd1,0x68,0xb9,0xd1 }, + { 0x00,0x00,0x00,0x00 }, { 0xed,0x2c,0xc1,0xed }, + { 0x20,0x60,0x40,0x20 }, { 0xfc,0x1f,0xe3,0xfc }, + { 0xb1,0xc8,0x79,0xb1 }, { 0x5b,0xed,0xb6,0x5b }, + { 0x6a,0xbe,0xd4,0x6a }, { 0xcb,0x46,0x8d,0xcb }, + { 0xbe,0xd9,0x67,0xbe }, { 0x39,0x4b,0x72,0x39 }, + { 0x4a,0xde,0x94,0x4a }, { 0x4c,0xd4,0x98,0x4c }, + { 0x58,0xe8,0xb0,0x58 }, { 0xcf,0x4a,0x85,0xcf }, + { 0xd0,0x6b,0xbb,0xd0 }, { 0xef,0x2a,0xc5,0xef }, + { 0xaa,0xe5,0x4f,0xaa }, { 0xfb,0x16,0xed,0xfb }, + { 0x43,0xc5,0x86,0x43 }, { 0x4d,0xd7,0x9a,0x4d }, + { 0x33,0x55,0x66,0x33 }, { 0x85,0x94,0x11,0x85 }, + { 0x45,0xcf,0x8a,0x45 }, { 0xf9,0x10,0xe9,0xf9 }, + { 0x02,0x06,0x04,0x02 }, { 0x7f,0x81,0xfe,0x7f }, + { 0x50,0xf0,0xa0,0x50 }, { 0x3c,0x44,0x78,0x3c }, + { 0x9f,0xba,0x25,0x9f }, { 0xa8,0xe3,0x4b,0xa8 }, + { 0x51,0xf3,0xa2,0x51 }, { 0xa3,0xfe,0x5d,0xa3 }, + { 0x40,0xc0,0x80,0x40 }, { 0x8f,0x8a,0x05,0x8f }, + { 0x92,0xad,0x3f,0x92 }, { 0x9d,0xbc,0x21,0x9d }, + { 0x38,0x48,0x70,0x38 }, { 0xf5,0x04,0xf1,0xf5 }, + { 0xbc,0xdf,0x63,0xbc }, { 0xb6,0xc1,0x77,0xb6 }, + { 0xda,0x75,0xaf,0xda }, { 0x21,0x63,0x42,0x21 }, + { 0x10,0x30,0x20,0x10 }, { 0xff,0x1a,0xe5,0xff }, + { 0xf3,0x0e,0xfd,0xf3 }, { 0xd2,0x6d,0xbf,0xd2 }, + { 0xcd,0x4c,0x81,0xcd }, { 0x0c,0x14,0x18,0x0c }, + { 0x13,0x35,0x26,0x13 }, { 0xec,0x2f,0xc3,0xec }, + { 0x5f,0xe1,0xbe,0x5f }, { 0x97,0xa2,0x35,0x97 }, + { 0x44,0xcc,0x88,0x44 }, { 0x17,0x39,0x2e,0x17 }, + { 0xc4,0x57,0x93,0xc4 }, { 0xa7,0xf2,0x55,0xa7 }, + { 0x7e,0x82,0xfc,0x7e }, { 0x3d,0x47,0x7a,0x3d }, + { 0x64,0xac,0xc8,0x64 }, { 0x5d,0xe7,0xba,0x5d }, + { 0x19,0x2b,0x32,0x19 }, { 0x73,0x95,0xe6,0x73 }, + { 0x60,0xa0,0xc0,0x60 }, { 0x81,0x98,0x19,0x81 }, + { 0x4f,0xd1,0x9e,0x4f }, { 0xdc,0x7f,0xa3,0xdc }, + { 0x22,0x66,0x44,0x22 }, { 0x2a,0x7e,0x54,0x2a }, + { 0x90,0xab,0x3b,0x90 }, { 0x88,0x83,0x0b,0x88 }, + { 0x46,0xca,0x8c,0x46 }, { 0xee,0x29,0xc7,0xee }, + { 0xb8,0xd3,0x6b,0xb8 }, { 0x14,0x3c,0x28,0x14 }, + { 0xde,0x79,0xa7,0xde }, { 0x5e,0xe2,0xbc,0x5e }, + { 0x0b,0x1d,0x16,0x0b }, { 0xdb,0x76,0xad,0xdb }, + { 0xe0,0x3b,0xdb,0xe0 }, { 0x32,0x56,0x64,0x32 }, + { 0x3a,0x4e,0x74,0x3a }, { 0x0a,0x1e,0x14,0x0a }, + { 0x49,0xdb,0x92,0x49 }, { 0x06,0x0a,0x0c,0x06 }, + { 0x24,0x6c,0x48,0x24 }, { 0x5c,0xe4,0xb8,0x5c }, + { 0xc2,0x5d,0x9f,0xc2 }, { 0xd3,0x6e,0xbd,0xd3 }, + { 0xac,0xef,0x43,0xac }, { 0x62,0xa6,0xc4,0x62 }, + { 0x91,0xa8,0x39,0x91 }, { 0x95,0xa4,0x31,0x95 }, + { 0xe4,0x37,0xd3,0xe4 }, { 0x79,0x8b,0xf2,0x79 }, + { 0xe7,0x32,0xd5,0xe7 }, { 0xc8,0x43,0x8b,0xc8 }, + { 0x37,0x59,0x6e,0x37 }, { 0x6d,0xb7,0xda,0x6d }, + { 0x8d,0x8c,0x01,0x8d }, { 0xd5,0x64,0xb1,0xd5 }, + { 0x4e,0xd2,0x9c,0x4e }, { 0xa9,0xe0,0x49,0xa9 }, + { 0x6c,0xb4,0xd8,0x6c }, { 0x56,0xfa,0xac,0x56 }, + { 0xf4,0x07,0xf3,0xf4 }, { 0xea,0x25,0xcf,0xea }, + { 0x65,0xaf,0xca,0x65 }, { 0x7a,0x8e,0xf4,0x7a }, + { 0xae,0xe9,0x47,0xae }, { 0x08,0x18,0x10,0x08 }, + { 0xba,0xd5,0x6f,0xba }, { 0x78,0x88,0xf0,0x78 }, + { 0x25,0x6f,0x4a,0x25 }, { 0x2e,0x72,0x5c,0x2e }, + { 0x1c,0x24,0x38,0x1c }, { 0xa6,0xf1,0x57,0xa6 }, + { 0xb4,0xc7,0x73,0xb4 }, { 0xc6,0x51,0x97,0xc6 }, + { 0xe8,0x23,0xcb,0xe8 }, { 0xdd,0x7c,0xa1,0xdd }, + { 0x74,0x9c,0xe8,0x74 }, { 0x1f,0x21,0x3e,0x1f }, + { 0x4b,0xdd,0x96,0x4b }, { 0xbd,0xdc,0x61,0xbd }, + { 0x8b,0x86,0x0d,0x8b }, { 0x8a,0x85,0x0f,0x8a }, + { 0x70,0x90,0xe0,0x70 }, { 0x3e,0x42,0x7c,0x3e }, + { 0xb5,0xc4,0x71,0xb5 }, { 0x66,0xaa,0xcc,0x66 }, + { 0x48,0xd8,0x90,0x48 }, { 0x03,0x05,0x06,0x03 }, + { 0xf6,0x01,0xf7,0xf6 }, { 0x0e,0x12,0x1c,0x0e }, + { 0x61,0xa3,0xc2,0x61 }, { 0x35,0x5f,0x6a,0x35 }, + { 0x57,0xf9,0xae,0x57 }, { 0xb9,0xd0,0x69,0xb9 }, + { 0x86,0x91,0x17,0x86 }, { 0xc1,0x58,0x99,0xc1 }, + { 0x1d,0x27,0x3a,0x1d }, { 0x9e,0xb9,0x27,0x9e }, + { 0xe1,0x38,0xd9,0xe1 }, { 0xf8,0x13,0xeb,0xf8 }, + { 0x98,0xb3,0x2b,0x98 }, { 0x11,0x33,0x22,0x11 }, + { 0x69,0xbb,0xd2,0x69 }, { 0xd9,0x70,0xa9,0xd9 }, + { 0x8e,0x89,0x07,0x8e }, { 0x94,0xa7,0x33,0x94 }, + { 0x9b,0xb6,0x2d,0x9b }, { 0x1e,0x22,0x3c,0x1e }, + { 0x87,0x92,0x15,0x87 }, { 0xe9,0x20,0xc9,0xe9 }, + { 0xce,0x49,0x87,0xce }, { 0x55,0xff,0xaa,0x55 }, + { 0x28,0x78,0x50,0x28 }, { 0xdf,0x7a,0xa5,0xdf }, + { 0x8c,0x8f,0x03,0x8c }, { 0xa1,0xf8,0x59,0xa1 }, + { 0x89,0x80,0x09,0x89 }, { 0x0d,0x17,0x1a,0x0d }, + { 0xbf,0xda,0x65,0xbf }, { 0xe6,0x31,0xd7,0xe6 }, + { 0x42,0xc6,0x84,0x42 }, { 0x68,0xb8,0xd0,0x68 }, + { 0x41,0xc3,0x82,0x41 }, { 0x99,0xb0,0x29,0x99 }, + { 0x2d,0x77,0x5a,0x2d }, { 0x0f,0x11,0x1e,0x0f }, + { 0xb0,0xcb,0x7b,0xb0 }, { 0x54,0xfc,0xa8,0x54 }, + { 0xbb,0xd6,0x6d,0xbb }, { 0x16,0x3a,0x2c,0x16 } + }; + +static const unsigned char T4[256][4] = + { + { 0x63,0x63,0xa5,0xc6 }, { 0x7c,0x7c,0x84,0xf8 }, + { 0x77,0x77,0x99,0xee }, { 0x7b,0x7b,0x8d,0xf6 }, + { 0xf2,0xf2,0x0d,0xff }, { 0x6b,0x6b,0xbd,0xd6 }, + { 0x6f,0x6f,0xb1,0xde }, { 0xc5,0xc5,0x54,0x91 }, + { 0x30,0x30,0x50,0x60 }, { 0x01,0x01,0x03,0x02 }, + { 0x67,0x67,0xa9,0xce }, { 0x2b,0x2b,0x7d,0x56 }, + { 0xfe,0xfe,0x19,0xe7 }, { 0xd7,0xd7,0x62,0xb5 }, + { 0xab,0xab,0xe6,0x4d }, { 0x76,0x76,0x9a,0xec }, + { 0xca,0xca,0x45,0x8f }, { 0x82,0x82,0x9d,0x1f }, + { 0xc9,0xc9,0x40,0x89 }, { 0x7d,0x7d,0x87,0xfa }, + { 0xfa,0xfa,0x15,0xef }, { 0x59,0x59,0xeb,0xb2 }, + { 0x47,0x47,0xc9,0x8e }, { 0xf0,0xf0,0x0b,0xfb }, + { 0xad,0xad,0xec,0x41 }, { 0xd4,0xd4,0x67,0xb3 }, + { 0xa2,0xa2,0xfd,0x5f }, { 0xaf,0xaf,0xea,0x45 }, + { 0x9c,0x9c,0xbf,0x23 }, { 0xa4,0xa4,0xf7,0x53 }, + { 0x72,0x72,0x96,0xe4 }, { 0xc0,0xc0,0x5b,0x9b }, + { 0xb7,0xb7,0xc2,0x75 }, { 0xfd,0xfd,0x1c,0xe1 }, + { 0x93,0x93,0xae,0x3d }, { 0x26,0x26,0x6a,0x4c }, + { 0x36,0x36,0x5a,0x6c }, { 0x3f,0x3f,0x41,0x7e }, + { 0xf7,0xf7,0x02,0xf5 }, { 0xcc,0xcc,0x4f,0x83 }, + { 0x34,0x34,0x5c,0x68 }, { 0xa5,0xa5,0xf4,0x51 }, + { 0xe5,0xe5,0x34,0xd1 }, { 0xf1,0xf1,0x08,0xf9 }, + { 0x71,0x71,0x93,0xe2 }, { 0xd8,0xd8,0x73,0xab }, + { 0x31,0x31,0x53,0x62 }, { 0x15,0x15,0x3f,0x2a }, + { 0x04,0x04,0x0c,0x08 }, { 0xc7,0xc7,0x52,0x95 }, + { 0x23,0x23,0x65,0x46 }, { 0xc3,0xc3,0x5e,0x9d }, + { 0x18,0x18,0x28,0x30 }, { 0x96,0x96,0xa1,0x37 }, + { 0x05,0x05,0x0f,0x0a }, { 0x9a,0x9a,0xb5,0x2f }, + { 0x07,0x07,0x09,0x0e }, { 0x12,0x12,0x36,0x24 }, + { 0x80,0x80,0x9b,0x1b }, { 0xe2,0xe2,0x3d,0xdf }, + { 0xeb,0xeb,0x26,0xcd }, { 0x27,0x27,0x69,0x4e }, + { 0xb2,0xb2,0xcd,0x7f }, { 0x75,0x75,0x9f,0xea }, + { 0x09,0x09,0x1b,0x12 }, { 0x83,0x83,0x9e,0x1d }, + { 0x2c,0x2c,0x74,0x58 }, { 0x1a,0x1a,0x2e,0x34 }, + { 0x1b,0x1b,0x2d,0x36 }, { 0x6e,0x6e,0xb2,0xdc }, + { 0x5a,0x5a,0xee,0xb4 }, { 0xa0,0xa0,0xfb,0x5b }, + { 0x52,0x52,0xf6,0xa4 }, { 0x3b,0x3b,0x4d,0x76 }, + { 0xd6,0xd6,0x61,0xb7 }, { 0xb3,0xb3,0xce,0x7d }, + { 0x29,0x29,0x7b,0x52 }, { 0xe3,0xe3,0x3e,0xdd }, + { 0x2f,0x2f,0x71,0x5e }, { 0x84,0x84,0x97,0x13 }, + { 0x53,0x53,0xf5,0xa6 }, { 0xd1,0xd1,0x68,0xb9 }, + { 0x00,0x00,0x00,0x00 }, { 0xed,0xed,0x2c,0xc1 }, + { 0x20,0x20,0x60,0x40 }, { 0xfc,0xfc,0x1f,0xe3 }, + { 0xb1,0xb1,0xc8,0x79 }, { 0x5b,0x5b,0xed,0xb6 }, + { 0x6a,0x6a,0xbe,0xd4 }, { 0xcb,0xcb,0x46,0x8d }, + { 0xbe,0xbe,0xd9,0x67 }, { 0x39,0x39,0x4b,0x72 }, + { 0x4a,0x4a,0xde,0x94 }, { 0x4c,0x4c,0xd4,0x98 }, + { 0x58,0x58,0xe8,0xb0 }, { 0xcf,0xcf,0x4a,0x85 }, + { 0xd0,0xd0,0x6b,0xbb }, { 0xef,0xef,0x2a,0xc5 }, + { 0xaa,0xaa,0xe5,0x4f }, { 0xfb,0xfb,0x16,0xed }, + { 0x43,0x43,0xc5,0x86 }, { 0x4d,0x4d,0xd7,0x9a }, + { 0x33,0x33,0x55,0x66 }, { 0x85,0x85,0x94,0x11 }, + { 0x45,0x45,0xcf,0x8a }, { 0xf9,0xf9,0x10,0xe9 }, + { 0x02,0x02,0x06,0x04 }, { 0x7f,0x7f,0x81,0xfe }, + { 0x50,0x50,0xf0,0xa0 }, { 0x3c,0x3c,0x44,0x78 }, + { 0x9f,0x9f,0xba,0x25 }, { 0xa8,0xa8,0xe3,0x4b }, + { 0x51,0x51,0xf3,0xa2 }, { 0xa3,0xa3,0xfe,0x5d }, + { 0x40,0x40,0xc0,0x80 }, { 0x8f,0x8f,0x8a,0x05 }, + { 0x92,0x92,0xad,0x3f }, { 0x9d,0x9d,0xbc,0x21 }, + { 0x38,0x38,0x48,0x70 }, { 0xf5,0xf5,0x04,0xf1 }, + { 0xbc,0xbc,0xdf,0x63 }, { 0xb6,0xb6,0xc1,0x77 }, + { 0xda,0xda,0x75,0xaf }, { 0x21,0x21,0x63,0x42 }, + { 0x10,0x10,0x30,0x20 }, { 0xff,0xff,0x1a,0xe5 }, + { 0xf3,0xf3,0x0e,0xfd }, { 0xd2,0xd2,0x6d,0xbf }, + { 0xcd,0xcd,0x4c,0x81 }, { 0x0c,0x0c,0x14,0x18 }, + { 0x13,0x13,0x35,0x26 }, { 0xec,0xec,0x2f,0xc3 }, + { 0x5f,0x5f,0xe1,0xbe }, { 0x97,0x97,0xa2,0x35 }, + { 0x44,0x44,0xcc,0x88 }, { 0x17,0x17,0x39,0x2e }, + { 0xc4,0xc4,0x57,0x93 }, { 0xa7,0xa7,0xf2,0x55 }, + { 0x7e,0x7e,0x82,0xfc }, { 0x3d,0x3d,0x47,0x7a }, + { 0x64,0x64,0xac,0xc8 }, { 0x5d,0x5d,0xe7,0xba }, + { 0x19,0x19,0x2b,0x32 }, { 0x73,0x73,0x95,0xe6 }, + { 0x60,0x60,0xa0,0xc0 }, { 0x81,0x81,0x98,0x19 }, + { 0x4f,0x4f,0xd1,0x9e }, { 0xdc,0xdc,0x7f,0xa3 }, + { 0x22,0x22,0x66,0x44 }, { 0x2a,0x2a,0x7e,0x54 }, + { 0x90,0x90,0xab,0x3b }, { 0x88,0x88,0x83,0x0b }, + { 0x46,0x46,0xca,0x8c }, { 0xee,0xee,0x29,0xc7 }, + { 0xb8,0xb8,0xd3,0x6b }, { 0x14,0x14,0x3c,0x28 }, + { 0xde,0xde,0x79,0xa7 }, { 0x5e,0x5e,0xe2,0xbc }, + { 0x0b,0x0b,0x1d,0x16 }, { 0xdb,0xdb,0x76,0xad }, + { 0xe0,0xe0,0x3b,0xdb }, { 0x32,0x32,0x56,0x64 }, + { 0x3a,0x3a,0x4e,0x74 }, { 0x0a,0x0a,0x1e,0x14 }, + { 0x49,0x49,0xdb,0x92 }, { 0x06,0x06,0x0a,0x0c }, + { 0x24,0x24,0x6c,0x48 }, { 0x5c,0x5c,0xe4,0xb8 }, + { 0xc2,0xc2,0x5d,0x9f }, { 0xd3,0xd3,0x6e,0xbd }, + { 0xac,0xac,0xef,0x43 }, { 0x62,0x62,0xa6,0xc4 }, + { 0x91,0x91,0xa8,0x39 }, { 0x95,0x95,0xa4,0x31 }, + { 0xe4,0xe4,0x37,0xd3 }, { 0x79,0x79,0x8b,0xf2 }, + { 0xe7,0xe7,0x32,0xd5 }, { 0xc8,0xc8,0x43,0x8b }, + { 0x37,0x37,0x59,0x6e }, { 0x6d,0x6d,0xb7,0xda }, + { 0x8d,0x8d,0x8c,0x01 }, { 0xd5,0xd5,0x64,0xb1 }, + { 0x4e,0x4e,0xd2,0x9c }, { 0xa9,0xa9,0xe0,0x49 }, + { 0x6c,0x6c,0xb4,0xd8 }, { 0x56,0x56,0xfa,0xac }, + { 0xf4,0xf4,0x07,0xf3 }, { 0xea,0xea,0x25,0xcf }, + { 0x65,0x65,0xaf,0xca }, { 0x7a,0x7a,0x8e,0xf4 }, + { 0xae,0xae,0xe9,0x47 }, { 0x08,0x08,0x18,0x10 }, + { 0xba,0xba,0xd5,0x6f }, { 0x78,0x78,0x88,0xf0 }, + { 0x25,0x25,0x6f,0x4a }, { 0x2e,0x2e,0x72,0x5c }, + { 0x1c,0x1c,0x24,0x38 }, { 0xa6,0xa6,0xf1,0x57 }, + { 0xb4,0xb4,0xc7,0x73 }, { 0xc6,0xc6,0x51,0x97 }, + { 0xe8,0xe8,0x23,0xcb }, { 0xdd,0xdd,0x7c,0xa1 }, + { 0x74,0x74,0x9c,0xe8 }, { 0x1f,0x1f,0x21,0x3e }, + { 0x4b,0x4b,0xdd,0x96 }, { 0xbd,0xbd,0xdc,0x61 }, + { 0x8b,0x8b,0x86,0x0d }, { 0x8a,0x8a,0x85,0x0f }, + { 0x70,0x70,0x90,0xe0 }, { 0x3e,0x3e,0x42,0x7c }, + { 0xb5,0xb5,0xc4,0x71 }, { 0x66,0x66,0xaa,0xcc }, + { 0x48,0x48,0xd8,0x90 }, { 0x03,0x03,0x05,0x06 }, + { 0xf6,0xf6,0x01,0xf7 }, { 0x0e,0x0e,0x12,0x1c }, + { 0x61,0x61,0xa3,0xc2 }, { 0x35,0x35,0x5f,0x6a }, + { 0x57,0x57,0xf9,0xae }, { 0xb9,0xb9,0xd0,0x69 }, + { 0x86,0x86,0x91,0x17 }, { 0xc1,0xc1,0x58,0x99 }, + { 0x1d,0x1d,0x27,0x3a }, { 0x9e,0x9e,0xb9,0x27 }, + { 0xe1,0xe1,0x38,0xd9 }, { 0xf8,0xf8,0x13,0xeb }, + { 0x98,0x98,0xb3,0x2b }, { 0x11,0x11,0x33,0x22 }, + { 0x69,0x69,0xbb,0xd2 }, { 0xd9,0xd9,0x70,0xa9 }, + { 0x8e,0x8e,0x89,0x07 }, { 0x94,0x94,0xa7,0x33 }, + { 0x9b,0x9b,0xb6,0x2d }, { 0x1e,0x1e,0x22,0x3c }, + { 0x87,0x87,0x92,0x15 }, { 0xe9,0xe9,0x20,0xc9 }, + { 0xce,0xce,0x49,0x87 }, { 0x55,0x55,0xff,0xaa }, + { 0x28,0x28,0x78,0x50 }, { 0xdf,0xdf,0x7a,0xa5 }, + { 0x8c,0x8c,0x8f,0x03 }, { 0xa1,0xa1,0xf8,0x59 }, + { 0x89,0x89,0x80,0x09 }, { 0x0d,0x0d,0x17,0x1a }, + { 0xbf,0xbf,0xda,0x65 }, { 0xe6,0xe6,0x31,0xd7 }, + { 0x42,0x42,0xc6,0x84 }, { 0x68,0x68,0xb8,0xd0 }, + { 0x41,0x41,0xc3,0x82 }, { 0x99,0x99,0xb0,0x29 }, + { 0x2d,0x2d,0x77,0x5a }, { 0x0f,0x0f,0x11,0x1e }, + { 0xb0,0xb0,0xcb,0x7b }, { 0x54,0x54,0xfc,0xa8 }, + { 0xbb,0xbb,0xd6,0x6d }, { 0x16,0x16,0x3a,0x2c } + }; + +static const unsigned char T5[256][4] = + { + { 0x51,0xf4,0xa7,0x50 }, { 0x7e,0x41,0x65,0x53 }, + { 0x1a,0x17,0xa4,0xc3 }, { 0x3a,0x27,0x5e,0x96 }, + { 0x3b,0xab,0x6b,0xcb }, { 0x1f,0x9d,0x45,0xf1 }, + { 0xac,0xfa,0x58,0xab }, { 0x4b,0xe3,0x03,0x93 }, + { 0x20,0x30,0xfa,0x55 }, { 0xad,0x76,0x6d,0xf6 }, + { 0x88,0xcc,0x76,0x91 }, { 0xf5,0x02,0x4c,0x25 }, + { 0x4f,0xe5,0xd7,0xfc }, { 0xc5,0x2a,0xcb,0xd7 }, + { 0x26,0x35,0x44,0x80 }, { 0xb5,0x62,0xa3,0x8f }, + { 0xde,0xb1,0x5a,0x49 }, { 0x25,0xba,0x1b,0x67 }, + { 0x45,0xea,0x0e,0x98 }, { 0x5d,0xfe,0xc0,0xe1 }, + { 0xc3,0x2f,0x75,0x02 }, { 0x81,0x4c,0xf0,0x12 }, + { 0x8d,0x46,0x97,0xa3 }, { 0x6b,0xd3,0xf9,0xc6 }, + { 0x03,0x8f,0x5f,0xe7 }, { 0x15,0x92,0x9c,0x95 }, + { 0xbf,0x6d,0x7a,0xeb }, { 0x95,0x52,0x59,0xda }, + { 0xd4,0xbe,0x83,0x2d }, { 0x58,0x74,0x21,0xd3 }, + { 0x49,0xe0,0x69,0x29 }, { 0x8e,0xc9,0xc8,0x44 }, + { 0x75,0xc2,0x89,0x6a }, { 0xf4,0x8e,0x79,0x78 }, + { 0x99,0x58,0x3e,0x6b }, { 0x27,0xb9,0x71,0xdd }, + { 0xbe,0xe1,0x4f,0xb6 }, { 0xf0,0x88,0xad,0x17 }, + { 0xc9,0x20,0xac,0x66 }, { 0x7d,0xce,0x3a,0xb4 }, + { 0x63,0xdf,0x4a,0x18 }, { 0xe5,0x1a,0x31,0x82 }, + { 0x97,0x51,0x33,0x60 }, { 0x62,0x53,0x7f,0x45 }, + { 0xb1,0x64,0x77,0xe0 }, { 0xbb,0x6b,0xae,0x84 }, + { 0xfe,0x81,0xa0,0x1c }, { 0xf9,0x08,0x2b,0x94 }, + { 0x70,0x48,0x68,0x58 }, { 0x8f,0x45,0xfd,0x19 }, + { 0x94,0xde,0x6c,0x87 }, { 0x52,0x7b,0xf8,0xb7 }, + { 0xab,0x73,0xd3,0x23 }, { 0x72,0x4b,0x02,0xe2 }, + { 0xe3,0x1f,0x8f,0x57 }, { 0x66,0x55,0xab,0x2a }, + { 0xb2,0xeb,0x28,0x07 }, { 0x2f,0xb5,0xc2,0x03 }, + { 0x86,0xc5,0x7b,0x9a }, { 0xd3,0x37,0x08,0xa5 }, + { 0x30,0x28,0x87,0xf2 }, { 0x23,0xbf,0xa5,0xb2 }, + { 0x02,0x03,0x6a,0xba }, { 0xed,0x16,0x82,0x5c }, + { 0x8a,0xcf,0x1c,0x2b }, { 0xa7,0x79,0xb4,0x92 }, + { 0xf3,0x07,0xf2,0xf0 }, { 0x4e,0x69,0xe2,0xa1 }, + { 0x65,0xda,0xf4,0xcd }, { 0x06,0x05,0xbe,0xd5 }, + { 0xd1,0x34,0x62,0x1f }, { 0xc4,0xa6,0xfe,0x8a }, + { 0x34,0x2e,0x53,0x9d }, { 0xa2,0xf3,0x55,0xa0 }, + { 0x05,0x8a,0xe1,0x32 }, { 0xa4,0xf6,0xeb,0x75 }, + { 0x0b,0x83,0xec,0x39 }, { 0x40,0x60,0xef,0xaa }, + { 0x5e,0x71,0x9f,0x06 }, { 0xbd,0x6e,0x10,0x51 }, + { 0x3e,0x21,0x8a,0xf9 }, { 0x96,0xdd,0x06,0x3d }, + { 0xdd,0x3e,0x05,0xae }, { 0x4d,0xe6,0xbd,0x46 }, + { 0x91,0x54,0x8d,0xb5 }, { 0x71,0xc4,0x5d,0x05 }, + { 0x04,0x06,0xd4,0x6f }, { 0x60,0x50,0x15,0xff }, + { 0x19,0x98,0xfb,0x24 }, { 0xd6,0xbd,0xe9,0x97 }, + { 0x89,0x40,0x43,0xcc }, { 0x67,0xd9,0x9e,0x77 }, + { 0xb0,0xe8,0x42,0xbd }, { 0x07,0x89,0x8b,0x88 }, + { 0xe7,0x19,0x5b,0x38 }, { 0x79,0xc8,0xee,0xdb }, + { 0xa1,0x7c,0x0a,0x47 }, { 0x7c,0x42,0x0f,0xe9 }, + { 0xf8,0x84,0x1e,0xc9 }, { 0x00,0x00,0x00,0x00 }, + { 0x09,0x80,0x86,0x83 }, { 0x32,0x2b,0xed,0x48 }, + { 0x1e,0x11,0x70,0xac }, { 0x6c,0x5a,0x72,0x4e }, + { 0xfd,0x0e,0xff,0xfb }, { 0x0f,0x85,0x38,0x56 }, + { 0x3d,0xae,0xd5,0x1e }, { 0x36,0x2d,0x39,0x27 }, + { 0x0a,0x0f,0xd9,0x64 }, { 0x68,0x5c,0xa6,0x21 }, + { 0x9b,0x5b,0x54,0xd1 }, { 0x24,0x36,0x2e,0x3a }, + { 0x0c,0x0a,0x67,0xb1 }, { 0x93,0x57,0xe7,0x0f }, + { 0xb4,0xee,0x96,0xd2 }, { 0x1b,0x9b,0x91,0x9e }, + { 0x80,0xc0,0xc5,0x4f }, { 0x61,0xdc,0x20,0xa2 }, + { 0x5a,0x77,0x4b,0x69 }, { 0x1c,0x12,0x1a,0x16 }, + { 0xe2,0x93,0xba,0x0a }, { 0xc0,0xa0,0x2a,0xe5 }, + { 0x3c,0x22,0xe0,0x43 }, { 0x12,0x1b,0x17,0x1d }, + { 0x0e,0x09,0x0d,0x0b }, { 0xf2,0x8b,0xc7,0xad }, + { 0x2d,0xb6,0xa8,0xb9 }, { 0x14,0x1e,0xa9,0xc8 }, + { 0x57,0xf1,0x19,0x85 }, { 0xaf,0x75,0x07,0x4c }, + { 0xee,0x99,0xdd,0xbb }, { 0xa3,0x7f,0x60,0xfd }, + { 0xf7,0x01,0x26,0x9f }, { 0x5c,0x72,0xf5,0xbc }, + { 0x44,0x66,0x3b,0xc5 }, { 0x5b,0xfb,0x7e,0x34 }, + { 0x8b,0x43,0x29,0x76 }, { 0xcb,0x23,0xc6,0xdc }, + { 0xb6,0xed,0xfc,0x68 }, { 0xb8,0xe4,0xf1,0x63 }, + { 0xd7,0x31,0xdc,0xca }, { 0x42,0x63,0x85,0x10 }, + { 0x13,0x97,0x22,0x40 }, { 0x84,0xc6,0x11,0x20 }, + { 0x85,0x4a,0x24,0x7d }, { 0xd2,0xbb,0x3d,0xf8 }, + { 0xae,0xf9,0x32,0x11 }, { 0xc7,0x29,0xa1,0x6d }, + { 0x1d,0x9e,0x2f,0x4b }, { 0xdc,0xb2,0x30,0xf3 }, + { 0x0d,0x86,0x52,0xec }, { 0x77,0xc1,0xe3,0xd0 }, + { 0x2b,0xb3,0x16,0x6c }, { 0xa9,0x70,0xb9,0x99 }, + { 0x11,0x94,0x48,0xfa }, { 0x47,0xe9,0x64,0x22 }, + { 0xa8,0xfc,0x8c,0xc4 }, { 0xa0,0xf0,0x3f,0x1a }, + { 0x56,0x7d,0x2c,0xd8 }, { 0x22,0x33,0x90,0xef }, + { 0x87,0x49,0x4e,0xc7 }, { 0xd9,0x38,0xd1,0xc1 }, + { 0x8c,0xca,0xa2,0xfe }, { 0x98,0xd4,0x0b,0x36 }, + { 0xa6,0xf5,0x81,0xcf }, { 0xa5,0x7a,0xde,0x28 }, + { 0xda,0xb7,0x8e,0x26 }, { 0x3f,0xad,0xbf,0xa4 }, + { 0x2c,0x3a,0x9d,0xe4 }, { 0x50,0x78,0x92,0x0d }, + { 0x6a,0x5f,0xcc,0x9b }, { 0x54,0x7e,0x46,0x62 }, + { 0xf6,0x8d,0x13,0xc2 }, { 0x90,0xd8,0xb8,0xe8 }, + { 0x2e,0x39,0xf7,0x5e }, { 0x82,0xc3,0xaf,0xf5 }, + { 0x9f,0x5d,0x80,0xbe }, { 0x69,0xd0,0x93,0x7c }, + { 0x6f,0xd5,0x2d,0xa9 }, { 0xcf,0x25,0x12,0xb3 }, + { 0xc8,0xac,0x99,0x3b }, { 0x10,0x18,0x7d,0xa7 }, + { 0xe8,0x9c,0x63,0x6e }, { 0xdb,0x3b,0xbb,0x7b }, + { 0xcd,0x26,0x78,0x09 }, { 0x6e,0x59,0x18,0xf4 }, + { 0xec,0x9a,0xb7,0x01 }, { 0x83,0x4f,0x9a,0xa8 }, + { 0xe6,0x95,0x6e,0x65 }, { 0xaa,0xff,0xe6,0x7e }, + { 0x21,0xbc,0xcf,0x08 }, { 0xef,0x15,0xe8,0xe6 }, + { 0xba,0xe7,0x9b,0xd9 }, { 0x4a,0x6f,0x36,0xce }, + { 0xea,0x9f,0x09,0xd4 }, { 0x29,0xb0,0x7c,0xd6 }, + { 0x31,0xa4,0xb2,0xaf }, { 0x2a,0x3f,0x23,0x31 }, + { 0xc6,0xa5,0x94,0x30 }, { 0x35,0xa2,0x66,0xc0 }, + { 0x74,0x4e,0xbc,0x37 }, { 0xfc,0x82,0xca,0xa6 }, + { 0xe0,0x90,0xd0,0xb0 }, { 0x33,0xa7,0xd8,0x15 }, + { 0xf1,0x04,0x98,0x4a }, { 0x41,0xec,0xda,0xf7 }, + { 0x7f,0xcd,0x50,0x0e }, { 0x17,0x91,0xf6,0x2f }, + { 0x76,0x4d,0xd6,0x8d }, { 0x43,0xef,0xb0,0x4d }, + { 0xcc,0xaa,0x4d,0x54 }, { 0xe4,0x96,0x04,0xdf }, + { 0x9e,0xd1,0xb5,0xe3 }, { 0x4c,0x6a,0x88,0x1b }, + { 0xc1,0x2c,0x1f,0xb8 }, { 0x46,0x65,0x51,0x7f }, + { 0x9d,0x5e,0xea,0x04 }, { 0x01,0x8c,0x35,0x5d }, + { 0xfa,0x87,0x74,0x73 }, { 0xfb,0x0b,0x41,0x2e }, + { 0xb3,0x67,0x1d,0x5a }, { 0x92,0xdb,0xd2,0x52 }, + { 0xe9,0x10,0x56,0x33 }, { 0x6d,0xd6,0x47,0x13 }, + { 0x9a,0xd7,0x61,0x8c }, { 0x37,0xa1,0x0c,0x7a }, + { 0x59,0xf8,0x14,0x8e }, { 0xeb,0x13,0x3c,0x89 }, + { 0xce,0xa9,0x27,0xee }, { 0xb7,0x61,0xc9,0x35 }, + { 0xe1,0x1c,0xe5,0xed }, { 0x7a,0x47,0xb1,0x3c }, + { 0x9c,0xd2,0xdf,0x59 }, { 0x55,0xf2,0x73,0x3f }, + { 0x18,0x14,0xce,0x79 }, { 0x73,0xc7,0x37,0xbf }, + { 0x53,0xf7,0xcd,0xea }, { 0x5f,0xfd,0xaa,0x5b }, + { 0xdf,0x3d,0x6f,0x14 }, { 0x78,0x44,0xdb,0x86 }, + { 0xca,0xaf,0xf3,0x81 }, { 0xb9,0x68,0xc4,0x3e }, + { 0x38,0x24,0x34,0x2c }, { 0xc2,0xa3,0x40,0x5f }, + { 0x16,0x1d,0xc3,0x72 }, { 0xbc,0xe2,0x25,0x0c }, + { 0x28,0x3c,0x49,0x8b }, { 0xff,0x0d,0x95,0x41 }, + { 0x39,0xa8,0x01,0x71 }, { 0x08,0x0c,0xb3,0xde }, + { 0xd8,0xb4,0xe4,0x9c }, { 0x64,0x56,0xc1,0x90 }, + { 0x7b,0xcb,0x84,0x61 }, { 0xd5,0x32,0xb6,0x70 }, + { 0x48,0x6c,0x5c,0x74 }, { 0xd0,0xb8,0x57,0x42 } + }; + +static const unsigned char T6[256][4] = + { + { 0x50,0x51,0xf4,0xa7 }, { 0x53,0x7e,0x41,0x65 }, + { 0xc3,0x1a,0x17,0xa4 }, { 0x96,0x3a,0x27,0x5e }, + { 0xcb,0x3b,0xab,0x6b }, { 0xf1,0x1f,0x9d,0x45 }, + { 0xab,0xac,0xfa,0x58 }, { 0x93,0x4b,0xe3,0x03 }, + { 0x55,0x20,0x30,0xfa }, { 0xf6,0xad,0x76,0x6d }, + { 0x91,0x88,0xcc,0x76 }, { 0x25,0xf5,0x02,0x4c }, + { 0xfc,0x4f,0xe5,0xd7 }, { 0xd7,0xc5,0x2a,0xcb }, + { 0x80,0x26,0x35,0x44 }, { 0x8f,0xb5,0x62,0xa3 }, + { 0x49,0xde,0xb1,0x5a }, { 0x67,0x25,0xba,0x1b }, + { 0x98,0x45,0xea,0x0e }, { 0xe1,0x5d,0xfe,0xc0 }, + { 0x02,0xc3,0x2f,0x75 }, { 0x12,0x81,0x4c,0xf0 }, + { 0xa3,0x8d,0x46,0x97 }, { 0xc6,0x6b,0xd3,0xf9 }, + { 0xe7,0x03,0x8f,0x5f }, { 0x95,0x15,0x92,0x9c }, + { 0xeb,0xbf,0x6d,0x7a }, { 0xda,0x95,0x52,0x59 }, + { 0x2d,0xd4,0xbe,0x83 }, { 0xd3,0x58,0x74,0x21 }, + { 0x29,0x49,0xe0,0x69 }, { 0x44,0x8e,0xc9,0xc8 }, + { 0x6a,0x75,0xc2,0x89 }, { 0x78,0xf4,0x8e,0x79 }, + { 0x6b,0x99,0x58,0x3e }, { 0xdd,0x27,0xb9,0x71 }, + { 0xb6,0xbe,0xe1,0x4f }, { 0x17,0xf0,0x88,0xad }, + { 0x66,0xc9,0x20,0xac }, { 0xb4,0x7d,0xce,0x3a }, + { 0x18,0x63,0xdf,0x4a }, { 0x82,0xe5,0x1a,0x31 }, + { 0x60,0x97,0x51,0x33 }, { 0x45,0x62,0x53,0x7f }, + { 0xe0,0xb1,0x64,0x77 }, { 0x84,0xbb,0x6b,0xae }, + { 0x1c,0xfe,0x81,0xa0 }, { 0x94,0xf9,0x08,0x2b }, + { 0x58,0x70,0x48,0x68 }, { 0x19,0x8f,0x45,0xfd }, + { 0x87,0x94,0xde,0x6c }, { 0xb7,0x52,0x7b,0xf8 }, + { 0x23,0xab,0x73,0xd3 }, { 0xe2,0x72,0x4b,0x02 }, + { 0x57,0xe3,0x1f,0x8f }, { 0x2a,0x66,0x55,0xab }, + { 0x07,0xb2,0xeb,0x28 }, { 0x03,0x2f,0xb5,0xc2 }, + { 0x9a,0x86,0xc5,0x7b }, { 0xa5,0xd3,0x37,0x08 }, + { 0xf2,0x30,0x28,0x87 }, { 0xb2,0x23,0xbf,0xa5 }, + { 0xba,0x02,0x03,0x6a }, { 0x5c,0xed,0x16,0x82 }, + { 0x2b,0x8a,0xcf,0x1c }, { 0x92,0xa7,0x79,0xb4 }, + { 0xf0,0xf3,0x07,0xf2 }, { 0xa1,0x4e,0x69,0xe2 }, + { 0xcd,0x65,0xda,0xf4 }, { 0xd5,0x06,0x05,0xbe }, + { 0x1f,0xd1,0x34,0x62 }, { 0x8a,0xc4,0xa6,0xfe }, + { 0x9d,0x34,0x2e,0x53 }, { 0xa0,0xa2,0xf3,0x55 }, + { 0x32,0x05,0x8a,0xe1 }, { 0x75,0xa4,0xf6,0xeb }, + { 0x39,0x0b,0x83,0xec }, { 0xaa,0x40,0x60,0xef }, + { 0x06,0x5e,0x71,0x9f }, { 0x51,0xbd,0x6e,0x10 }, + { 0xf9,0x3e,0x21,0x8a }, { 0x3d,0x96,0xdd,0x06 }, + { 0xae,0xdd,0x3e,0x05 }, { 0x46,0x4d,0xe6,0xbd }, + { 0xb5,0x91,0x54,0x8d }, { 0x05,0x71,0xc4,0x5d }, + { 0x6f,0x04,0x06,0xd4 }, { 0xff,0x60,0x50,0x15 }, + { 0x24,0x19,0x98,0xfb }, { 0x97,0xd6,0xbd,0xe9 }, + { 0xcc,0x89,0x40,0x43 }, { 0x77,0x67,0xd9,0x9e }, + { 0xbd,0xb0,0xe8,0x42 }, { 0x88,0x07,0x89,0x8b }, + { 0x38,0xe7,0x19,0x5b }, { 0xdb,0x79,0xc8,0xee }, + { 0x47,0xa1,0x7c,0x0a }, { 0xe9,0x7c,0x42,0x0f }, + { 0xc9,0xf8,0x84,0x1e }, { 0x00,0x00,0x00,0x00 }, + { 0x83,0x09,0x80,0x86 }, { 0x48,0x32,0x2b,0xed }, + { 0xac,0x1e,0x11,0x70 }, { 0x4e,0x6c,0x5a,0x72 }, + { 0xfb,0xfd,0x0e,0xff }, { 0x56,0x0f,0x85,0x38 }, + { 0x1e,0x3d,0xae,0xd5 }, { 0x27,0x36,0x2d,0x39 }, + { 0x64,0x0a,0x0f,0xd9 }, { 0x21,0x68,0x5c,0xa6 }, + { 0xd1,0x9b,0x5b,0x54 }, { 0x3a,0x24,0x36,0x2e }, + { 0xb1,0x0c,0x0a,0x67 }, { 0x0f,0x93,0x57,0xe7 }, + { 0xd2,0xb4,0xee,0x96 }, { 0x9e,0x1b,0x9b,0x91 }, + { 0x4f,0x80,0xc0,0xc5 }, { 0xa2,0x61,0xdc,0x20 }, + { 0x69,0x5a,0x77,0x4b }, { 0x16,0x1c,0x12,0x1a }, + { 0x0a,0xe2,0x93,0xba }, { 0xe5,0xc0,0xa0,0x2a }, + { 0x43,0x3c,0x22,0xe0 }, { 0x1d,0x12,0x1b,0x17 }, + { 0x0b,0x0e,0x09,0x0d }, { 0xad,0xf2,0x8b,0xc7 }, + { 0xb9,0x2d,0xb6,0xa8 }, { 0xc8,0x14,0x1e,0xa9 }, + { 0x85,0x57,0xf1,0x19 }, { 0x4c,0xaf,0x75,0x07 }, + { 0xbb,0xee,0x99,0xdd }, { 0xfd,0xa3,0x7f,0x60 }, + { 0x9f,0xf7,0x01,0x26 }, { 0xbc,0x5c,0x72,0xf5 }, + { 0xc5,0x44,0x66,0x3b }, { 0x34,0x5b,0xfb,0x7e }, + { 0x76,0x8b,0x43,0x29 }, { 0xdc,0xcb,0x23,0xc6 }, + { 0x68,0xb6,0xed,0xfc }, { 0x63,0xb8,0xe4,0xf1 }, + { 0xca,0xd7,0x31,0xdc }, { 0x10,0x42,0x63,0x85 }, + { 0x40,0x13,0x97,0x22 }, { 0x20,0x84,0xc6,0x11 }, + { 0x7d,0x85,0x4a,0x24 }, { 0xf8,0xd2,0xbb,0x3d }, + { 0x11,0xae,0xf9,0x32 }, { 0x6d,0xc7,0x29,0xa1 }, + { 0x4b,0x1d,0x9e,0x2f }, { 0xf3,0xdc,0xb2,0x30 }, + { 0xec,0x0d,0x86,0x52 }, { 0xd0,0x77,0xc1,0xe3 }, + { 0x6c,0x2b,0xb3,0x16 }, { 0x99,0xa9,0x70,0xb9 }, + { 0xfa,0x11,0x94,0x48 }, { 0x22,0x47,0xe9,0x64 }, + { 0xc4,0xa8,0xfc,0x8c }, { 0x1a,0xa0,0xf0,0x3f }, + { 0xd8,0x56,0x7d,0x2c }, { 0xef,0x22,0x33,0x90 }, + { 0xc7,0x87,0x49,0x4e }, { 0xc1,0xd9,0x38,0xd1 }, + { 0xfe,0x8c,0xca,0xa2 }, { 0x36,0x98,0xd4,0x0b }, + { 0xcf,0xa6,0xf5,0x81 }, { 0x28,0xa5,0x7a,0xde }, + { 0x26,0xda,0xb7,0x8e }, { 0xa4,0x3f,0xad,0xbf }, + { 0xe4,0x2c,0x3a,0x9d }, { 0x0d,0x50,0x78,0x92 }, + { 0x9b,0x6a,0x5f,0xcc }, { 0x62,0x54,0x7e,0x46 }, + { 0xc2,0xf6,0x8d,0x13 }, { 0xe8,0x90,0xd8,0xb8 }, + { 0x5e,0x2e,0x39,0xf7 }, { 0xf5,0x82,0xc3,0xaf }, + { 0xbe,0x9f,0x5d,0x80 }, { 0x7c,0x69,0xd0,0x93 }, + { 0xa9,0x6f,0xd5,0x2d }, { 0xb3,0xcf,0x25,0x12 }, + { 0x3b,0xc8,0xac,0x99 }, { 0xa7,0x10,0x18,0x7d }, + { 0x6e,0xe8,0x9c,0x63 }, { 0x7b,0xdb,0x3b,0xbb }, + { 0x09,0xcd,0x26,0x78 }, { 0xf4,0x6e,0x59,0x18 }, + { 0x01,0xec,0x9a,0xb7 }, { 0xa8,0x83,0x4f,0x9a }, + { 0x65,0xe6,0x95,0x6e }, { 0x7e,0xaa,0xff,0xe6 }, + { 0x08,0x21,0xbc,0xcf }, { 0xe6,0xef,0x15,0xe8 }, + { 0xd9,0xba,0xe7,0x9b }, { 0xce,0x4a,0x6f,0x36 }, + { 0xd4,0xea,0x9f,0x09 }, { 0xd6,0x29,0xb0,0x7c }, + { 0xaf,0x31,0xa4,0xb2 }, { 0x31,0x2a,0x3f,0x23 }, + { 0x30,0xc6,0xa5,0x94 }, { 0xc0,0x35,0xa2,0x66 }, + { 0x37,0x74,0x4e,0xbc }, { 0xa6,0xfc,0x82,0xca }, + { 0xb0,0xe0,0x90,0xd0 }, { 0x15,0x33,0xa7,0xd8 }, + { 0x4a,0xf1,0x04,0x98 }, { 0xf7,0x41,0xec,0xda }, + { 0x0e,0x7f,0xcd,0x50 }, { 0x2f,0x17,0x91,0xf6 }, + { 0x8d,0x76,0x4d,0xd6 }, { 0x4d,0x43,0xef,0xb0 }, + { 0x54,0xcc,0xaa,0x4d }, { 0xdf,0xe4,0x96,0x04 }, + { 0xe3,0x9e,0xd1,0xb5 }, { 0x1b,0x4c,0x6a,0x88 }, + { 0xb8,0xc1,0x2c,0x1f }, { 0x7f,0x46,0x65,0x51 }, + { 0x04,0x9d,0x5e,0xea }, { 0x5d,0x01,0x8c,0x35 }, + { 0x73,0xfa,0x87,0x74 }, { 0x2e,0xfb,0x0b,0x41 }, + { 0x5a,0xb3,0x67,0x1d }, { 0x52,0x92,0xdb,0xd2 }, + { 0x33,0xe9,0x10,0x56 }, { 0x13,0x6d,0xd6,0x47 }, + { 0x8c,0x9a,0xd7,0x61 }, { 0x7a,0x37,0xa1,0x0c }, + { 0x8e,0x59,0xf8,0x14 }, { 0x89,0xeb,0x13,0x3c }, + { 0xee,0xce,0xa9,0x27 }, { 0x35,0xb7,0x61,0xc9 }, + { 0xed,0xe1,0x1c,0xe5 }, { 0x3c,0x7a,0x47,0xb1 }, + { 0x59,0x9c,0xd2,0xdf }, { 0x3f,0x55,0xf2,0x73 }, + { 0x79,0x18,0x14,0xce }, { 0xbf,0x73,0xc7,0x37 }, + { 0xea,0x53,0xf7,0xcd }, { 0x5b,0x5f,0xfd,0xaa }, + { 0x14,0xdf,0x3d,0x6f }, { 0x86,0x78,0x44,0xdb }, + { 0x81,0xca,0xaf,0xf3 }, { 0x3e,0xb9,0x68,0xc4 }, + { 0x2c,0x38,0x24,0x34 }, { 0x5f,0xc2,0xa3,0x40 }, + { 0x72,0x16,0x1d,0xc3 }, { 0x0c,0xbc,0xe2,0x25 }, + { 0x8b,0x28,0x3c,0x49 }, { 0x41,0xff,0x0d,0x95 }, + { 0x71,0x39,0xa8,0x01 }, { 0xde,0x08,0x0c,0xb3 }, + { 0x9c,0xd8,0xb4,0xe4 }, { 0x90,0x64,0x56,0xc1 }, + { 0x61,0x7b,0xcb,0x84 }, { 0x70,0xd5,0x32,0xb6 }, + { 0x74,0x48,0x6c,0x5c }, { 0x42,0xd0,0xb8,0x57 } + }; + +static const unsigned char T7[256][4] = + { + { 0xa7,0x50,0x51,0xf4 }, { 0x65,0x53,0x7e,0x41 }, + { 0xa4,0xc3,0x1a,0x17 }, { 0x5e,0x96,0x3a,0x27 }, + { 0x6b,0xcb,0x3b,0xab }, { 0x45,0xf1,0x1f,0x9d }, + { 0x58,0xab,0xac,0xfa }, { 0x03,0x93,0x4b,0xe3 }, + { 0xfa,0x55,0x20,0x30 }, { 0x6d,0xf6,0xad,0x76 }, + { 0x76,0x91,0x88,0xcc }, { 0x4c,0x25,0xf5,0x02 }, + { 0xd7,0xfc,0x4f,0xe5 }, { 0xcb,0xd7,0xc5,0x2a }, + { 0x44,0x80,0x26,0x35 }, { 0xa3,0x8f,0xb5,0x62 }, + { 0x5a,0x49,0xde,0xb1 }, { 0x1b,0x67,0x25,0xba }, + { 0x0e,0x98,0x45,0xea }, { 0xc0,0xe1,0x5d,0xfe }, + { 0x75,0x02,0xc3,0x2f }, { 0xf0,0x12,0x81,0x4c }, + { 0x97,0xa3,0x8d,0x46 }, { 0xf9,0xc6,0x6b,0xd3 }, + { 0x5f,0xe7,0x03,0x8f }, { 0x9c,0x95,0x15,0x92 }, + { 0x7a,0xeb,0xbf,0x6d }, { 0x59,0xda,0x95,0x52 }, + { 0x83,0x2d,0xd4,0xbe }, { 0x21,0xd3,0x58,0x74 }, + { 0x69,0x29,0x49,0xe0 }, { 0xc8,0x44,0x8e,0xc9 }, + { 0x89,0x6a,0x75,0xc2 }, { 0x79,0x78,0xf4,0x8e }, + { 0x3e,0x6b,0x99,0x58 }, { 0x71,0xdd,0x27,0xb9 }, + { 0x4f,0xb6,0xbe,0xe1 }, { 0xad,0x17,0xf0,0x88 }, + { 0xac,0x66,0xc9,0x20 }, { 0x3a,0xb4,0x7d,0xce }, + { 0x4a,0x18,0x63,0xdf }, { 0x31,0x82,0xe5,0x1a }, + { 0x33,0x60,0x97,0x51 }, { 0x7f,0x45,0x62,0x53 }, + { 0x77,0xe0,0xb1,0x64 }, { 0xae,0x84,0xbb,0x6b }, + { 0xa0,0x1c,0xfe,0x81 }, { 0x2b,0x94,0xf9,0x08 }, + { 0x68,0x58,0x70,0x48 }, { 0xfd,0x19,0x8f,0x45 }, + { 0x6c,0x87,0x94,0xde }, { 0xf8,0xb7,0x52,0x7b }, + { 0xd3,0x23,0xab,0x73 }, { 0x02,0xe2,0x72,0x4b }, + { 0x8f,0x57,0xe3,0x1f }, { 0xab,0x2a,0x66,0x55 }, + { 0x28,0x07,0xb2,0xeb }, { 0xc2,0x03,0x2f,0xb5 }, + { 0x7b,0x9a,0x86,0xc5 }, { 0x08,0xa5,0xd3,0x37 }, + { 0x87,0xf2,0x30,0x28 }, { 0xa5,0xb2,0x23,0xbf }, + { 0x6a,0xba,0x02,0x03 }, { 0x82,0x5c,0xed,0x16 }, + { 0x1c,0x2b,0x8a,0xcf }, { 0xb4,0x92,0xa7,0x79 }, + { 0xf2,0xf0,0xf3,0x07 }, { 0xe2,0xa1,0x4e,0x69 }, + { 0xf4,0xcd,0x65,0xda }, { 0xbe,0xd5,0x06,0x05 }, + { 0x62,0x1f,0xd1,0x34 }, { 0xfe,0x8a,0xc4,0xa6 }, + { 0x53,0x9d,0x34,0x2e }, { 0x55,0xa0,0xa2,0xf3 }, + { 0xe1,0x32,0x05,0x8a }, { 0xeb,0x75,0xa4,0xf6 }, + { 0xec,0x39,0x0b,0x83 }, { 0xef,0xaa,0x40,0x60 }, + { 0x9f,0x06,0x5e,0x71 }, { 0x10,0x51,0xbd,0x6e }, + { 0x8a,0xf9,0x3e,0x21 }, { 0x06,0x3d,0x96,0xdd }, + { 0x05,0xae,0xdd,0x3e }, { 0xbd,0x46,0x4d,0xe6 }, + { 0x8d,0xb5,0x91,0x54 }, { 0x5d,0x05,0x71,0xc4 }, + { 0xd4,0x6f,0x04,0x06 }, { 0x15,0xff,0x60,0x50 }, + { 0xfb,0x24,0x19,0x98 }, { 0xe9,0x97,0xd6,0xbd }, + { 0x43,0xcc,0x89,0x40 }, { 0x9e,0x77,0x67,0xd9 }, + { 0x42,0xbd,0xb0,0xe8 }, { 0x8b,0x88,0x07,0x89 }, + { 0x5b,0x38,0xe7,0x19 }, { 0xee,0xdb,0x79,0xc8 }, + { 0x0a,0x47,0xa1,0x7c }, { 0x0f,0xe9,0x7c,0x42 }, + { 0x1e,0xc9,0xf8,0x84 }, { 0x00,0x00,0x00,0x00 }, + { 0x86,0x83,0x09,0x80 }, { 0xed,0x48,0x32,0x2b }, + { 0x70,0xac,0x1e,0x11 }, { 0x72,0x4e,0x6c,0x5a }, + { 0xff,0xfb,0xfd,0x0e }, { 0x38,0x56,0x0f,0x85 }, + { 0xd5,0x1e,0x3d,0xae }, { 0x39,0x27,0x36,0x2d }, + { 0xd9,0x64,0x0a,0x0f }, { 0xa6,0x21,0x68,0x5c }, + { 0x54,0xd1,0x9b,0x5b }, { 0x2e,0x3a,0x24,0x36 }, + { 0x67,0xb1,0x0c,0x0a }, { 0xe7,0x0f,0x93,0x57 }, + { 0x96,0xd2,0xb4,0xee }, { 0x91,0x9e,0x1b,0x9b }, + { 0xc5,0x4f,0x80,0xc0 }, { 0x20,0xa2,0x61,0xdc }, + { 0x4b,0x69,0x5a,0x77 }, { 0x1a,0x16,0x1c,0x12 }, + { 0xba,0x0a,0xe2,0x93 }, { 0x2a,0xe5,0xc0,0xa0 }, + { 0xe0,0x43,0x3c,0x22 }, { 0x17,0x1d,0x12,0x1b }, + { 0x0d,0x0b,0x0e,0x09 }, { 0xc7,0xad,0xf2,0x8b }, + { 0xa8,0xb9,0x2d,0xb6 }, { 0xa9,0xc8,0x14,0x1e }, + { 0x19,0x85,0x57,0xf1 }, { 0x07,0x4c,0xaf,0x75 }, + { 0xdd,0xbb,0xee,0x99 }, { 0x60,0xfd,0xa3,0x7f }, + { 0x26,0x9f,0xf7,0x01 }, { 0xf5,0xbc,0x5c,0x72 }, + { 0x3b,0xc5,0x44,0x66 }, { 0x7e,0x34,0x5b,0xfb }, + { 0x29,0x76,0x8b,0x43 }, { 0xc6,0xdc,0xcb,0x23 }, + { 0xfc,0x68,0xb6,0xed }, { 0xf1,0x63,0xb8,0xe4 }, + { 0xdc,0xca,0xd7,0x31 }, { 0x85,0x10,0x42,0x63 }, + { 0x22,0x40,0x13,0x97 }, { 0x11,0x20,0x84,0xc6 }, + { 0x24,0x7d,0x85,0x4a }, { 0x3d,0xf8,0xd2,0xbb }, + { 0x32,0x11,0xae,0xf9 }, { 0xa1,0x6d,0xc7,0x29 }, + { 0x2f,0x4b,0x1d,0x9e }, { 0x30,0xf3,0xdc,0xb2 }, + { 0x52,0xec,0x0d,0x86 }, { 0xe3,0xd0,0x77,0xc1 }, + { 0x16,0x6c,0x2b,0xb3 }, { 0xb9,0x99,0xa9,0x70 }, + { 0x48,0xfa,0x11,0x94 }, { 0x64,0x22,0x47,0xe9 }, + { 0x8c,0xc4,0xa8,0xfc }, { 0x3f,0x1a,0xa0,0xf0 }, + { 0x2c,0xd8,0x56,0x7d }, { 0x90,0xef,0x22,0x33 }, + { 0x4e,0xc7,0x87,0x49 }, { 0xd1,0xc1,0xd9,0x38 }, + { 0xa2,0xfe,0x8c,0xca }, { 0x0b,0x36,0x98,0xd4 }, + { 0x81,0xcf,0xa6,0xf5 }, { 0xde,0x28,0xa5,0x7a }, + { 0x8e,0x26,0xda,0xb7 }, { 0xbf,0xa4,0x3f,0xad }, + { 0x9d,0xe4,0x2c,0x3a }, { 0x92,0x0d,0x50,0x78 }, + { 0xcc,0x9b,0x6a,0x5f }, { 0x46,0x62,0x54,0x7e }, + { 0x13,0xc2,0xf6,0x8d }, { 0xb8,0xe8,0x90,0xd8 }, + { 0xf7,0x5e,0x2e,0x39 }, { 0xaf,0xf5,0x82,0xc3 }, + { 0x80,0xbe,0x9f,0x5d }, { 0x93,0x7c,0x69,0xd0 }, + { 0x2d,0xa9,0x6f,0xd5 }, { 0x12,0xb3,0xcf,0x25 }, + { 0x99,0x3b,0xc8,0xac }, { 0x7d,0xa7,0x10,0x18 }, + { 0x63,0x6e,0xe8,0x9c }, { 0xbb,0x7b,0xdb,0x3b }, + { 0x78,0x09,0xcd,0x26 }, { 0x18,0xf4,0x6e,0x59 }, + { 0xb7,0x01,0xec,0x9a }, { 0x9a,0xa8,0x83,0x4f }, + { 0x6e,0x65,0xe6,0x95 }, { 0xe6,0x7e,0xaa,0xff }, + { 0xcf,0x08,0x21,0xbc }, { 0xe8,0xe6,0xef,0x15 }, + { 0x9b,0xd9,0xba,0xe7 }, { 0x36,0xce,0x4a,0x6f }, + { 0x09,0xd4,0xea,0x9f }, { 0x7c,0xd6,0x29,0xb0 }, + { 0xb2,0xaf,0x31,0xa4 }, { 0x23,0x31,0x2a,0x3f }, + { 0x94,0x30,0xc6,0xa5 }, { 0x66,0xc0,0x35,0xa2 }, + { 0xbc,0x37,0x74,0x4e }, { 0xca,0xa6,0xfc,0x82 }, + { 0xd0,0xb0,0xe0,0x90 }, { 0xd8,0x15,0x33,0xa7 }, + { 0x98,0x4a,0xf1,0x04 }, { 0xda,0xf7,0x41,0xec }, + { 0x50,0x0e,0x7f,0xcd }, { 0xf6,0x2f,0x17,0x91 }, + { 0xd6,0x8d,0x76,0x4d }, { 0xb0,0x4d,0x43,0xef }, + { 0x4d,0x54,0xcc,0xaa }, { 0x04,0xdf,0xe4,0x96 }, + { 0xb5,0xe3,0x9e,0xd1 }, { 0x88,0x1b,0x4c,0x6a }, + { 0x1f,0xb8,0xc1,0x2c }, { 0x51,0x7f,0x46,0x65 }, + { 0xea,0x04,0x9d,0x5e }, { 0x35,0x5d,0x01,0x8c }, + { 0x74,0x73,0xfa,0x87 }, { 0x41,0x2e,0xfb,0x0b }, + { 0x1d,0x5a,0xb3,0x67 }, { 0xd2,0x52,0x92,0xdb }, + { 0x56,0x33,0xe9,0x10 }, { 0x47,0x13,0x6d,0xd6 }, + { 0x61,0x8c,0x9a,0xd7 }, { 0x0c,0x7a,0x37,0xa1 }, + { 0x14,0x8e,0x59,0xf8 }, { 0x3c,0x89,0xeb,0x13 }, + { 0x27,0xee,0xce,0xa9 }, { 0xc9,0x35,0xb7,0x61 }, + { 0xe5,0xed,0xe1,0x1c }, { 0xb1,0x3c,0x7a,0x47 }, + { 0xdf,0x59,0x9c,0xd2 }, { 0x73,0x3f,0x55,0xf2 }, + { 0xce,0x79,0x18,0x14 }, { 0x37,0xbf,0x73,0xc7 }, + { 0xcd,0xea,0x53,0xf7 }, { 0xaa,0x5b,0x5f,0xfd }, + { 0x6f,0x14,0xdf,0x3d }, { 0xdb,0x86,0x78,0x44 }, + { 0xf3,0x81,0xca,0xaf }, { 0xc4,0x3e,0xb9,0x68 }, + { 0x34,0x2c,0x38,0x24 }, { 0x40,0x5f,0xc2,0xa3 }, + { 0xc3,0x72,0x16,0x1d }, { 0x25,0x0c,0xbc,0xe2 }, + { 0x49,0x8b,0x28,0x3c }, { 0x95,0x41,0xff,0x0d }, + { 0x01,0x71,0x39,0xa8 }, { 0xb3,0xde,0x08,0x0c }, + { 0xe4,0x9c,0xd8,0xb4 }, { 0xc1,0x90,0x64,0x56 }, + { 0x84,0x61,0x7b,0xcb }, { 0xb6,0x70,0xd5,0x32 }, + { 0x5c,0x74,0x48,0x6c }, { 0x57,0x42,0xd0,0xb8 } + }; + +static const unsigned char T8[256][4] = + { + { 0xf4,0xa7,0x50,0x51 }, { 0x41,0x65,0x53,0x7e }, + { 0x17,0xa4,0xc3,0x1a }, { 0x27,0x5e,0x96,0x3a }, + { 0xab,0x6b,0xcb,0x3b }, { 0x9d,0x45,0xf1,0x1f }, + { 0xfa,0x58,0xab,0xac }, { 0xe3,0x03,0x93,0x4b }, + { 0x30,0xfa,0x55,0x20 }, { 0x76,0x6d,0xf6,0xad }, + { 0xcc,0x76,0x91,0x88 }, { 0x02,0x4c,0x25,0xf5 }, + { 0xe5,0xd7,0xfc,0x4f }, { 0x2a,0xcb,0xd7,0xc5 }, + { 0x35,0x44,0x80,0x26 }, { 0x62,0xa3,0x8f,0xb5 }, + { 0xb1,0x5a,0x49,0xde }, { 0xba,0x1b,0x67,0x25 }, + { 0xea,0x0e,0x98,0x45 }, { 0xfe,0xc0,0xe1,0x5d }, + { 0x2f,0x75,0x02,0xc3 }, { 0x4c,0xf0,0x12,0x81 }, + { 0x46,0x97,0xa3,0x8d }, { 0xd3,0xf9,0xc6,0x6b }, + { 0x8f,0x5f,0xe7,0x03 }, { 0x92,0x9c,0x95,0x15 }, + { 0x6d,0x7a,0xeb,0xbf }, { 0x52,0x59,0xda,0x95 }, + { 0xbe,0x83,0x2d,0xd4 }, { 0x74,0x21,0xd3,0x58 }, + { 0xe0,0x69,0x29,0x49 }, { 0xc9,0xc8,0x44,0x8e }, + { 0xc2,0x89,0x6a,0x75 }, { 0x8e,0x79,0x78,0xf4 }, + { 0x58,0x3e,0x6b,0x99 }, { 0xb9,0x71,0xdd,0x27 }, + { 0xe1,0x4f,0xb6,0xbe }, { 0x88,0xad,0x17,0xf0 }, + { 0x20,0xac,0x66,0xc9 }, { 0xce,0x3a,0xb4,0x7d }, + { 0xdf,0x4a,0x18,0x63 }, { 0x1a,0x31,0x82,0xe5 }, + { 0x51,0x33,0x60,0x97 }, { 0x53,0x7f,0x45,0x62 }, + { 0x64,0x77,0xe0,0xb1 }, { 0x6b,0xae,0x84,0xbb }, + { 0x81,0xa0,0x1c,0xfe }, { 0x08,0x2b,0x94,0xf9 }, + { 0x48,0x68,0x58,0x70 }, { 0x45,0xfd,0x19,0x8f }, + { 0xde,0x6c,0x87,0x94 }, { 0x7b,0xf8,0xb7,0x52 }, + { 0x73,0xd3,0x23,0xab }, { 0x4b,0x02,0xe2,0x72 }, + { 0x1f,0x8f,0x57,0xe3 }, { 0x55,0xab,0x2a,0x66 }, + { 0xeb,0x28,0x07,0xb2 }, { 0xb5,0xc2,0x03,0x2f }, + { 0xc5,0x7b,0x9a,0x86 }, { 0x37,0x08,0xa5,0xd3 }, + { 0x28,0x87,0xf2,0x30 }, { 0xbf,0xa5,0xb2,0x23 }, + { 0x03,0x6a,0xba,0x02 }, { 0x16,0x82,0x5c,0xed }, + { 0xcf,0x1c,0x2b,0x8a }, { 0x79,0xb4,0x92,0xa7 }, + { 0x07,0xf2,0xf0,0xf3 }, { 0x69,0xe2,0xa1,0x4e }, + { 0xda,0xf4,0xcd,0x65 }, { 0x05,0xbe,0xd5,0x06 }, + { 0x34,0x62,0x1f,0xd1 }, { 0xa6,0xfe,0x8a,0xc4 }, + { 0x2e,0x53,0x9d,0x34 }, { 0xf3,0x55,0xa0,0xa2 }, + { 0x8a,0xe1,0x32,0x05 }, { 0xf6,0xeb,0x75,0xa4 }, + { 0x83,0xec,0x39,0x0b }, { 0x60,0xef,0xaa,0x40 }, + { 0x71,0x9f,0x06,0x5e }, { 0x6e,0x10,0x51,0xbd }, + { 0x21,0x8a,0xf9,0x3e }, { 0xdd,0x06,0x3d,0x96 }, + { 0x3e,0x05,0xae,0xdd }, { 0xe6,0xbd,0x46,0x4d }, + { 0x54,0x8d,0xb5,0x91 }, { 0xc4,0x5d,0x05,0x71 }, + { 0x06,0xd4,0x6f,0x04 }, { 0x50,0x15,0xff,0x60 }, + { 0x98,0xfb,0x24,0x19 }, { 0xbd,0xe9,0x97,0xd6 }, + { 0x40,0x43,0xcc,0x89 }, { 0xd9,0x9e,0x77,0x67 }, + { 0xe8,0x42,0xbd,0xb0 }, { 0x89,0x8b,0x88,0x07 }, + { 0x19,0x5b,0x38,0xe7 }, { 0xc8,0xee,0xdb,0x79 }, + { 0x7c,0x0a,0x47,0xa1 }, { 0x42,0x0f,0xe9,0x7c }, + { 0x84,0x1e,0xc9,0xf8 }, { 0x00,0x00,0x00,0x00 }, + { 0x80,0x86,0x83,0x09 }, { 0x2b,0xed,0x48,0x32 }, + { 0x11,0x70,0xac,0x1e }, { 0x5a,0x72,0x4e,0x6c }, + { 0x0e,0xff,0xfb,0xfd }, { 0x85,0x38,0x56,0x0f }, + { 0xae,0xd5,0x1e,0x3d }, { 0x2d,0x39,0x27,0x36 }, + { 0x0f,0xd9,0x64,0x0a }, { 0x5c,0xa6,0x21,0x68 }, + { 0x5b,0x54,0xd1,0x9b }, { 0x36,0x2e,0x3a,0x24 }, + { 0x0a,0x67,0xb1,0x0c }, { 0x57,0xe7,0x0f,0x93 }, + { 0xee,0x96,0xd2,0xb4 }, { 0x9b,0x91,0x9e,0x1b }, + { 0xc0,0xc5,0x4f,0x80 }, { 0xdc,0x20,0xa2,0x61 }, + { 0x77,0x4b,0x69,0x5a }, { 0x12,0x1a,0x16,0x1c }, + { 0x93,0xba,0x0a,0xe2 }, { 0xa0,0x2a,0xe5,0xc0 }, + { 0x22,0xe0,0x43,0x3c }, { 0x1b,0x17,0x1d,0x12 }, + { 0x09,0x0d,0x0b,0x0e }, { 0x8b,0xc7,0xad,0xf2 }, + { 0xb6,0xa8,0xb9,0x2d }, { 0x1e,0xa9,0xc8,0x14 }, + { 0xf1,0x19,0x85,0x57 }, { 0x75,0x07,0x4c,0xaf }, + { 0x99,0xdd,0xbb,0xee }, { 0x7f,0x60,0xfd,0xa3 }, + { 0x01,0x26,0x9f,0xf7 }, { 0x72,0xf5,0xbc,0x5c }, + { 0x66,0x3b,0xc5,0x44 }, { 0xfb,0x7e,0x34,0x5b }, + { 0x43,0x29,0x76,0x8b }, { 0x23,0xc6,0xdc,0xcb }, + { 0xed,0xfc,0x68,0xb6 }, { 0xe4,0xf1,0x63,0xb8 }, + { 0x31,0xdc,0xca,0xd7 }, { 0x63,0x85,0x10,0x42 }, + { 0x97,0x22,0x40,0x13 }, { 0xc6,0x11,0x20,0x84 }, + { 0x4a,0x24,0x7d,0x85 }, { 0xbb,0x3d,0xf8,0xd2 }, + { 0xf9,0x32,0x11,0xae }, { 0x29,0xa1,0x6d,0xc7 }, + { 0x9e,0x2f,0x4b,0x1d }, { 0xb2,0x30,0xf3,0xdc }, + { 0x86,0x52,0xec,0x0d }, { 0xc1,0xe3,0xd0,0x77 }, + { 0xb3,0x16,0x6c,0x2b }, { 0x70,0xb9,0x99,0xa9 }, + { 0x94,0x48,0xfa,0x11 }, { 0xe9,0x64,0x22,0x47 }, + { 0xfc,0x8c,0xc4,0xa8 }, { 0xf0,0x3f,0x1a,0xa0 }, + { 0x7d,0x2c,0xd8,0x56 }, { 0x33,0x90,0xef,0x22 }, + { 0x49,0x4e,0xc7,0x87 }, { 0x38,0xd1,0xc1,0xd9 }, + { 0xca,0xa2,0xfe,0x8c }, { 0xd4,0x0b,0x36,0x98 }, + { 0xf5,0x81,0xcf,0xa6 }, { 0x7a,0xde,0x28,0xa5 }, + { 0xb7,0x8e,0x26,0xda }, { 0xad,0xbf,0xa4,0x3f }, + { 0x3a,0x9d,0xe4,0x2c }, { 0x78,0x92,0x0d,0x50 }, + { 0x5f,0xcc,0x9b,0x6a }, { 0x7e,0x46,0x62,0x54 }, + { 0x8d,0x13,0xc2,0xf6 }, { 0xd8,0xb8,0xe8,0x90 }, + { 0x39,0xf7,0x5e,0x2e }, { 0xc3,0xaf,0xf5,0x82 }, + { 0x5d,0x80,0xbe,0x9f }, { 0xd0,0x93,0x7c,0x69 }, + { 0xd5,0x2d,0xa9,0x6f }, { 0x25,0x12,0xb3,0xcf }, + { 0xac,0x99,0x3b,0xc8 }, { 0x18,0x7d,0xa7,0x10 }, + { 0x9c,0x63,0x6e,0xe8 }, { 0x3b,0xbb,0x7b,0xdb }, + { 0x26,0x78,0x09,0xcd }, { 0x59,0x18,0xf4,0x6e }, + { 0x9a,0xb7,0x01,0xec }, { 0x4f,0x9a,0xa8,0x83 }, + { 0x95,0x6e,0x65,0xe6 }, { 0xff,0xe6,0x7e,0xaa }, + { 0xbc,0xcf,0x08,0x21 }, { 0x15,0xe8,0xe6,0xef }, + { 0xe7,0x9b,0xd9,0xba }, { 0x6f,0x36,0xce,0x4a }, + { 0x9f,0x09,0xd4,0xea }, { 0xb0,0x7c,0xd6,0x29 }, + { 0xa4,0xb2,0xaf,0x31 }, { 0x3f,0x23,0x31,0x2a }, + { 0xa5,0x94,0x30,0xc6 }, { 0xa2,0x66,0xc0,0x35 }, + { 0x4e,0xbc,0x37,0x74 }, { 0x82,0xca,0xa6,0xfc }, + { 0x90,0xd0,0xb0,0xe0 }, { 0xa7,0xd8,0x15,0x33 }, + { 0x04,0x98,0x4a,0xf1 }, { 0xec,0xda,0xf7,0x41 }, + { 0xcd,0x50,0x0e,0x7f }, { 0x91,0xf6,0x2f,0x17 }, + { 0x4d,0xd6,0x8d,0x76 }, { 0xef,0xb0,0x4d,0x43 }, + { 0xaa,0x4d,0x54,0xcc }, { 0x96,0x04,0xdf,0xe4 }, + { 0xd1,0xb5,0xe3,0x9e }, { 0x6a,0x88,0x1b,0x4c }, + { 0x2c,0x1f,0xb8,0xc1 }, { 0x65,0x51,0x7f,0x46 }, + { 0x5e,0xea,0x04,0x9d }, { 0x8c,0x35,0x5d,0x01 }, + { 0x87,0x74,0x73,0xfa }, { 0x0b,0x41,0x2e,0xfb }, + { 0x67,0x1d,0x5a,0xb3 }, { 0xdb,0xd2,0x52,0x92 }, + { 0x10,0x56,0x33,0xe9 }, { 0xd6,0x47,0x13,0x6d }, + { 0xd7,0x61,0x8c,0x9a }, { 0xa1,0x0c,0x7a,0x37 }, + { 0xf8,0x14,0x8e,0x59 }, { 0x13,0x3c,0x89,0xeb }, + { 0xa9,0x27,0xee,0xce }, { 0x61,0xc9,0x35,0xb7 }, + { 0x1c,0xe5,0xed,0xe1 }, { 0x47,0xb1,0x3c,0x7a }, + { 0xd2,0xdf,0x59,0x9c }, { 0xf2,0x73,0x3f,0x55 }, + { 0x14,0xce,0x79,0x18 }, { 0xc7,0x37,0xbf,0x73 }, + { 0xf7,0xcd,0xea,0x53 }, { 0xfd,0xaa,0x5b,0x5f }, + { 0x3d,0x6f,0x14,0xdf }, { 0x44,0xdb,0x86,0x78 }, + { 0xaf,0xf3,0x81,0xca }, { 0x68,0xc4,0x3e,0xb9 }, + { 0x24,0x34,0x2c,0x38 }, { 0xa3,0x40,0x5f,0xc2 }, + { 0x1d,0xc3,0x72,0x16 }, { 0xe2,0x25,0x0c,0xbc }, + { 0x3c,0x49,0x8b,0x28 }, { 0x0d,0x95,0x41,0xff }, + { 0xa8,0x01,0x71,0x39 }, { 0x0c,0xb3,0xde,0x08 }, + { 0xb4,0xe4,0x9c,0xd8 }, { 0x56,0xc1,0x90,0x64 }, + { 0xcb,0x84,0x61,0x7b }, { 0x32,0xb6,0x70,0xd5 }, + { 0x6c,0x5c,0x74,0x48 }, { 0xb8,0x57,0x42,0xd0 } + }; + +static const unsigned char S5[256] = + { + 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38, + 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb, + 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87, + 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb, + 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d, + 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e, + 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2, + 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25, + 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16, + 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92, + 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda, + 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84, + 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a, + 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06, + 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02, + 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b, + 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea, + 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73, + 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85, + 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e, + 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89, + 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b, + 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20, + 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4, + 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31, + 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f, + 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d, + 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef, + 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0, + 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61, + 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26, + 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d + }; + +static const unsigned char U1[256][4] = + { + { 0x00,0x00,0x00,0x00 }, { 0x0e,0x09,0x0d,0x0b }, + { 0x1c,0x12,0x1a,0x16 }, { 0x12,0x1b,0x17,0x1d }, + { 0x38,0x24,0x34,0x2c }, { 0x36,0x2d,0x39,0x27 }, + { 0x24,0x36,0x2e,0x3a }, { 0x2a,0x3f,0x23,0x31 }, + { 0x70,0x48,0x68,0x58 }, { 0x7e,0x41,0x65,0x53 }, + { 0x6c,0x5a,0x72,0x4e }, { 0x62,0x53,0x7f,0x45 }, + { 0x48,0x6c,0x5c,0x74 }, { 0x46,0x65,0x51,0x7f }, + { 0x54,0x7e,0x46,0x62 }, { 0x5a,0x77,0x4b,0x69 }, + { 0xe0,0x90,0xd0,0xb0 }, { 0xee,0x99,0xdd,0xbb }, + { 0xfc,0x82,0xca,0xa6 }, { 0xf2,0x8b,0xc7,0xad }, + { 0xd8,0xb4,0xe4,0x9c }, { 0xd6,0xbd,0xe9,0x97 }, + { 0xc4,0xa6,0xfe,0x8a }, { 0xca,0xaf,0xf3,0x81 }, + { 0x90,0xd8,0xb8,0xe8 }, { 0x9e,0xd1,0xb5,0xe3 }, + { 0x8c,0xca,0xa2,0xfe }, { 0x82,0xc3,0xaf,0xf5 }, + { 0xa8,0xfc,0x8c,0xc4 }, { 0xa6,0xf5,0x81,0xcf }, + { 0xb4,0xee,0x96,0xd2 }, { 0xba,0xe7,0x9b,0xd9 }, + { 0xdb,0x3b,0xbb,0x7b }, { 0xd5,0x32,0xb6,0x70 }, + { 0xc7,0x29,0xa1,0x6d }, { 0xc9,0x20,0xac,0x66 }, + { 0xe3,0x1f,0x8f,0x57 }, { 0xed,0x16,0x82,0x5c }, + { 0xff,0x0d,0x95,0x41 }, { 0xf1,0x04,0x98,0x4a }, + { 0xab,0x73,0xd3,0x23 }, { 0xa5,0x7a,0xde,0x28 }, + { 0xb7,0x61,0xc9,0x35 }, { 0xb9,0x68,0xc4,0x3e }, + { 0x93,0x57,0xe7,0x0f }, { 0x9d,0x5e,0xea,0x04 }, + { 0x8f,0x45,0xfd,0x19 }, { 0x81,0x4c,0xf0,0x12 }, + { 0x3b,0xab,0x6b,0xcb }, { 0x35,0xa2,0x66,0xc0 }, + { 0x27,0xb9,0x71,0xdd }, { 0x29,0xb0,0x7c,0xd6 }, + { 0x03,0x8f,0x5f,0xe7 }, { 0x0d,0x86,0x52,0xec }, + { 0x1f,0x9d,0x45,0xf1 }, { 0x11,0x94,0x48,0xfa }, + { 0x4b,0xe3,0x03,0x93 }, { 0x45,0xea,0x0e,0x98 }, + { 0x57,0xf1,0x19,0x85 }, { 0x59,0xf8,0x14,0x8e }, + { 0x73,0xc7,0x37,0xbf }, { 0x7d,0xce,0x3a,0xb4 }, + { 0x6f,0xd5,0x2d,0xa9 }, { 0x61,0xdc,0x20,0xa2 }, + { 0xad,0x76,0x6d,0xf6 }, { 0xa3,0x7f,0x60,0xfd }, + { 0xb1,0x64,0x77,0xe0 }, { 0xbf,0x6d,0x7a,0xeb }, + { 0x95,0x52,0x59,0xda }, { 0x9b,0x5b,0x54,0xd1 }, + { 0x89,0x40,0x43,0xcc }, { 0x87,0x49,0x4e,0xc7 }, + { 0xdd,0x3e,0x05,0xae }, { 0xd3,0x37,0x08,0xa5 }, + { 0xc1,0x2c,0x1f,0xb8 }, { 0xcf,0x25,0x12,0xb3 }, + { 0xe5,0x1a,0x31,0x82 }, { 0xeb,0x13,0x3c,0x89 }, + { 0xf9,0x08,0x2b,0x94 }, { 0xf7,0x01,0x26,0x9f }, + { 0x4d,0xe6,0xbd,0x46 }, { 0x43,0xef,0xb0,0x4d }, + { 0x51,0xf4,0xa7,0x50 }, { 0x5f,0xfd,0xaa,0x5b }, + { 0x75,0xc2,0x89,0x6a }, { 0x7b,0xcb,0x84,0x61 }, + { 0x69,0xd0,0x93,0x7c }, { 0x67,0xd9,0x9e,0x77 }, + { 0x3d,0xae,0xd5,0x1e }, { 0x33,0xa7,0xd8,0x15 }, + { 0x21,0xbc,0xcf,0x08 }, { 0x2f,0xb5,0xc2,0x03 }, + { 0x05,0x8a,0xe1,0x32 }, { 0x0b,0x83,0xec,0x39 }, + { 0x19,0x98,0xfb,0x24 }, { 0x17,0x91,0xf6,0x2f }, + { 0x76,0x4d,0xd6,0x8d }, { 0x78,0x44,0xdb,0x86 }, + { 0x6a,0x5f,0xcc,0x9b }, { 0x64,0x56,0xc1,0x90 }, + { 0x4e,0x69,0xe2,0xa1 }, { 0x40,0x60,0xef,0xaa }, + { 0x52,0x7b,0xf8,0xb7 }, { 0x5c,0x72,0xf5,0xbc }, + { 0x06,0x05,0xbe,0xd5 }, { 0x08,0x0c,0xb3,0xde }, + { 0x1a,0x17,0xa4,0xc3 }, { 0x14,0x1e,0xa9,0xc8 }, + { 0x3e,0x21,0x8a,0xf9 }, { 0x30,0x28,0x87,0xf2 }, + { 0x22,0x33,0x90,0xef }, { 0x2c,0x3a,0x9d,0xe4 }, + { 0x96,0xdd,0x06,0x3d }, { 0x98,0xd4,0x0b,0x36 }, + { 0x8a,0xcf,0x1c,0x2b }, { 0x84,0xc6,0x11,0x20 }, + { 0xae,0xf9,0x32,0x11 }, { 0xa0,0xf0,0x3f,0x1a }, + { 0xb2,0xeb,0x28,0x07 }, { 0xbc,0xe2,0x25,0x0c }, + { 0xe6,0x95,0x6e,0x65 }, { 0xe8,0x9c,0x63,0x6e }, + { 0xfa,0x87,0x74,0x73 }, { 0xf4,0x8e,0x79,0x78 }, + { 0xde,0xb1,0x5a,0x49 }, { 0xd0,0xb8,0x57,0x42 }, + { 0xc2,0xa3,0x40,0x5f }, { 0xcc,0xaa,0x4d,0x54 }, + { 0x41,0xec,0xda,0xf7 }, { 0x4f,0xe5,0xd7,0xfc }, + { 0x5d,0xfe,0xc0,0xe1 }, { 0x53,0xf7,0xcd,0xea }, + { 0x79,0xc8,0xee,0xdb }, { 0x77,0xc1,0xe3,0xd0 }, + { 0x65,0xda,0xf4,0xcd }, { 0x6b,0xd3,0xf9,0xc6 }, + { 0x31,0xa4,0xb2,0xaf }, { 0x3f,0xad,0xbf,0xa4 }, + { 0x2d,0xb6,0xa8,0xb9 }, { 0x23,0xbf,0xa5,0xb2 }, + { 0x09,0x80,0x86,0x83 }, { 0x07,0x89,0x8b,0x88 }, + { 0x15,0x92,0x9c,0x95 }, { 0x1b,0x9b,0x91,0x9e }, + { 0xa1,0x7c,0x0a,0x47 }, { 0xaf,0x75,0x07,0x4c }, + { 0xbd,0x6e,0x10,0x51 }, { 0xb3,0x67,0x1d,0x5a }, + { 0x99,0x58,0x3e,0x6b }, { 0x97,0x51,0x33,0x60 }, + { 0x85,0x4a,0x24,0x7d }, { 0x8b,0x43,0x29,0x76 }, + { 0xd1,0x34,0x62,0x1f }, { 0xdf,0x3d,0x6f,0x14 }, + { 0xcd,0x26,0x78,0x09 }, { 0xc3,0x2f,0x75,0x02 }, + { 0xe9,0x10,0x56,0x33 }, { 0xe7,0x19,0x5b,0x38 }, + { 0xf5,0x02,0x4c,0x25 }, { 0xfb,0x0b,0x41,0x2e }, + { 0x9a,0xd7,0x61,0x8c }, { 0x94,0xde,0x6c,0x87 }, + { 0x86,0xc5,0x7b,0x9a }, { 0x88,0xcc,0x76,0x91 }, + { 0xa2,0xf3,0x55,0xa0 }, { 0xac,0xfa,0x58,0xab }, + { 0xbe,0xe1,0x4f,0xb6 }, { 0xb0,0xe8,0x42,0xbd }, + { 0xea,0x9f,0x09,0xd4 }, { 0xe4,0x96,0x04,0xdf }, + { 0xf6,0x8d,0x13,0xc2 }, { 0xf8,0x84,0x1e,0xc9 }, + { 0xd2,0xbb,0x3d,0xf8 }, { 0xdc,0xb2,0x30,0xf3 }, + { 0xce,0xa9,0x27,0xee }, { 0xc0,0xa0,0x2a,0xe5 }, + { 0x7a,0x47,0xb1,0x3c }, { 0x74,0x4e,0xbc,0x37 }, + { 0x66,0x55,0xab,0x2a }, { 0x68,0x5c,0xa6,0x21 }, + { 0x42,0x63,0x85,0x10 }, { 0x4c,0x6a,0x88,0x1b }, + { 0x5e,0x71,0x9f,0x06 }, { 0x50,0x78,0x92,0x0d }, + { 0x0a,0x0f,0xd9,0x64 }, { 0x04,0x06,0xd4,0x6f }, + { 0x16,0x1d,0xc3,0x72 }, { 0x18,0x14,0xce,0x79 }, + { 0x32,0x2b,0xed,0x48 }, { 0x3c,0x22,0xe0,0x43 }, + { 0x2e,0x39,0xf7,0x5e }, { 0x20,0x30,0xfa,0x55 }, + { 0xec,0x9a,0xb7,0x01 }, { 0xe2,0x93,0xba,0x0a }, + { 0xf0,0x88,0xad,0x17 }, { 0xfe,0x81,0xa0,0x1c }, + { 0xd4,0xbe,0x83,0x2d }, { 0xda,0xb7,0x8e,0x26 }, + { 0xc8,0xac,0x99,0x3b }, { 0xc6,0xa5,0x94,0x30 }, + { 0x9c,0xd2,0xdf,0x59 }, { 0x92,0xdb,0xd2,0x52 }, + { 0x80,0xc0,0xc5,0x4f }, { 0x8e,0xc9,0xc8,0x44 }, + { 0xa4,0xf6,0xeb,0x75 }, { 0xaa,0xff,0xe6,0x7e }, + { 0xb8,0xe4,0xf1,0x63 }, { 0xb6,0xed,0xfc,0x68 }, + { 0x0c,0x0a,0x67,0xb1 }, { 0x02,0x03,0x6a,0xba }, + { 0x10,0x18,0x7d,0xa7 }, { 0x1e,0x11,0x70,0xac }, + { 0x34,0x2e,0x53,0x9d }, { 0x3a,0x27,0x5e,0x96 }, + { 0x28,0x3c,0x49,0x8b }, { 0x26,0x35,0x44,0x80 }, + { 0x7c,0x42,0x0f,0xe9 }, { 0x72,0x4b,0x02,0xe2 }, + { 0x60,0x50,0x15,0xff }, { 0x6e,0x59,0x18,0xf4 }, + { 0x44,0x66,0x3b,0xc5 }, { 0x4a,0x6f,0x36,0xce }, + { 0x58,0x74,0x21,0xd3 }, { 0x56,0x7d,0x2c,0xd8 }, + { 0x37,0xa1,0x0c,0x7a }, { 0x39,0xa8,0x01,0x71 }, + { 0x2b,0xb3,0x16,0x6c }, { 0x25,0xba,0x1b,0x67 }, + { 0x0f,0x85,0x38,0x56 }, { 0x01,0x8c,0x35,0x5d }, + { 0x13,0x97,0x22,0x40 }, { 0x1d,0x9e,0x2f,0x4b }, + { 0x47,0xe9,0x64,0x22 }, { 0x49,0xe0,0x69,0x29 }, + { 0x5b,0xfb,0x7e,0x34 }, { 0x55,0xf2,0x73,0x3f }, + { 0x7f,0xcd,0x50,0x0e }, { 0x71,0xc4,0x5d,0x05 }, + { 0x63,0xdf,0x4a,0x18 }, { 0x6d,0xd6,0x47,0x13 }, + { 0xd7,0x31,0xdc,0xca }, { 0xd9,0x38,0xd1,0xc1 }, + { 0xcb,0x23,0xc6,0xdc }, { 0xc5,0x2a,0xcb,0xd7 }, + { 0xef,0x15,0xe8,0xe6 }, { 0xe1,0x1c,0xe5,0xed }, + { 0xf3,0x07,0xf2,0xf0 }, { 0xfd,0x0e,0xff,0xfb }, + { 0xa7,0x79,0xb4,0x92 }, { 0xa9,0x70,0xb9,0x99 }, + { 0xbb,0x6b,0xae,0x84 }, { 0xb5,0x62,0xa3,0x8f }, + { 0x9f,0x5d,0x80,0xbe }, { 0x91,0x54,0x8d,0xb5 }, + { 0x83,0x4f,0x9a,0xa8 }, { 0x8d,0x46,0x97,0xa3 } + }; + +static const unsigned char U2[256][4] = + { + { 0x00,0x00,0x00,0x00 }, { 0x0b,0x0e,0x09,0x0d }, + { 0x16,0x1c,0x12,0x1a }, { 0x1d,0x12,0x1b,0x17 }, + { 0x2c,0x38,0x24,0x34 }, { 0x27,0x36,0x2d,0x39 }, + { 0x3a,0x24,0x36,0x2e }, { 0x31,0x2a,0x3f,0x23 }, + { 0x58,0x70,0x48,0x68 }, { 0x53,0x7e,0x41,0x65 }, + { 0x4e,0x6c,0x5a,0x72 }, { 0x45,0x62,0x53,0x7f }, + { 0x74,0x48,0x6c,0x5c }, { 0x7f,0x46,0x65,0x51 }, + { 0x62,0x54,0x7e,0x46 }, { 0x69,0x5a,0x77,0x4b }, + { 0xb0,0xe0,0x90,0xd0 }, { 0xbb,0xee,0x99,0xdd }, + { 0xa6,0xfc,0x82,0xca }, { 0xad,0xf2,0x8b,0xc7 }, + { 0x9c,0xd8,0xb4,0xe4 }, { 0x97,0xd6,0xbd,0xe9 }, + { 0x8a,0xc4,0xa6,0xfe }, { 0x81,0xca,0xaf,0xf3 }, + { 0xe8,0x90,0xd8,0xb8 }, { 0xe3,0x9e,0xd1,0xb5 }, + { 0xfe,0x8c,0xca,0xa2 }, { 0xf5,0x82,0xc3,0xaf }, + { 0xc4,0xa8,0xfc,0x8c }, { 0xcf,0xa6,0xf5,0x81 }, + { 0xd2,0xb4,0xee,0x96 }, { 0xd9,0xba,0xe7,0x9b }, + { 0x7b,0xdb,0x3b,0xbb }, { 0x70,0xd5,0x32,0xb6 }, + { 0x6d,0xc7,0x29,0xa1 }, { 0x66,0xc9,0x20,0xac }, + { 0x57,0xe3,0x1f,0x8f }, { 0x5c,0xed,0x16,0x82 }, + { 0x41,0xff,0x0d,0x95 }, { 0x4a,0xf1,0x04,0x98 }, + { 0x23,0xab,0x73,0xd3 }, { 0x28,0xa5,0x7a,0xde }, + { 0x35,0xb7,0x61,0xc9 }, { 0x3e,0xb9,0x68,0xc4 }, + { 0x0f,0x93,0x57,0xe7 }, { 0x04,0x9d,0x5e,0xea }, + { 0x19,0x8f,0x45,0xfd }, { 0x12,0x81,0x4c,0xf0 }, + { 0xcb,0x3b,0xab,0x6b }, { 0xc0,0x35,0xa2,0x66 }, + { 0xdd,0x27,0xb9,0x71 }, { 0xd6,0x29,0xb0,0x7c }, + { 0xe7,0x03,0x8f,0x5f }, { 0xec,0x0d,0x86,0x52 }, + { 0xf1,0x1f,0x9d,0x45 }, { 0xfa,0x11,0x94,0x48 }, + { 0x93,0x4b,0xe3,0x03 }, { 0x98,0x45,0xea,0x0e }, + { 0x85,0x57,0xf1,0x19 }, { 0x8e,0x59,0xf8,0x14 }, + { 0xbf,0x73,0xc7,0x37 }, { 0xb4,0x7d,0xce,0x3a }, + { 0xa9,0x6f,0xd5,0x2d }, { 0xa2,0x61,0xdc,0x20 }, + { 0xf6,0xad,0x76,0x6d }, { 0xfd,0xa3,0x7f,0x60 }, + { 0xe0,0xb1,0x64,0x77 }, { 0xeb,0xbf,0x6d,0x7a }, + { 0xda,0x95,0x52,0x59 }, { 0xd1,0x9b,0x5b,0x54 }, + { 0xcc,0x89,0x40,0x43 }, { 0xc7,0x87,0x49,0x4e }, + { 0xae,0xdd,0x3e,0x05 }, { 0xa5,0xd3,0x37,0x08 }, + { 0xb8,0xc1,0x2c,0x1f }, { 0xb3,0xcf,0x25,0x12 }, + { 0x82,0xe5,0x1a,0x31 }, { 0x89,0xeb,0x13,0x3c }, + { 0x94,0xf9,0x08,0x2b }, { 0x9f,0xf7,0x01,0x26 }, + { 0x46,0x4d,0xe6,0xbd }, { 0x4d,0x43,0xef,0xb0 }, + { 0x50,0x51,0xf4,0xa7 }, { 0x5b,0x5f,0xfd,0xaa }, + { 0x6a,0x75,0xc2,0x89 }, { 0x61,0x7b,0xcb,0x84 }, + { 0x7c,0x69,0xd0,0x93 }, { 0x77,0x67,0xd9,0x9e }, + { 0x1e,0x3d,0xae,0xd5 }, { 0x15,0x33,0xa7,0xd8 }, + { 0x08,0x21,0xbc,0xcf }, { 0x03,0x2f,0xb5,0xc2 }, + { 0x32,0x05,0x8a,0xe1 }, { 0x39,0x0b,0x83,0xec }, + { 0x24,0x19,0x98,0xfb }, { 0x2f,0x17,0x91,0xf6 }, + { 0x8d,0x76,0x4d,0xd6 }, { 0x86,0x78,0x44,0xdb }, + { 0x9b,0x6a,0x5f,0xcc }, { 0x90,0x64,0x56,0xc1 }, + { 0xa1,0x4e,0x69,0xe2 }, { 0xaa,0x40,0x60,0xef }, + { 0xb7,0x52,0x7b,0xf8 }, { 0xbc,0x5c,0x72,0xf5 }, + { 0xd5,0x06,0x05,0xbe }, { 0xde,0x08,0x0c,0xb3 }, + { 0xc3,0x1a,0x17,0xa4 }, { 0xc8,0x14,0x1e,0xa9 }, + { 0xf9,0x3e,0x21,0x8a }, { 0xf2,0x30,0x28,0x87 }, + { 0xef,0x22,0x33,0x90 }, { 0xe4,0x2c,0x3a,0x9d }, + { 0x3d,0x96,0xdd,0x06 }, { 0x36,0x98,0xd4,0x0b }, + { 0x2b,0x8a,0xcf,0x1c }, { 0x20,0x84,0xc6,0x11 }, + { 0x11,0xae,0xf9,0x32 }, { 0x1a,0xa0,0xf0,0x3f }, + { 0x07,0xb2,0xeb,0x28 }, { 0x0c,0xbc,0xe2,0x25 }, + { 0x65,0xe6,0x95,0x6e }, { 0x6e,0xe8,0x9c,0x63 }, + { 0x73,0xfa,0x87,0x74 }, { 0x78,0xf4,0x8e,0x79 }, + { 0x49,0xde,0xb1,0x5a }, { 0x42,0xd0,0xb8,0x57 }, + { 0x5f,0xc2,0xa3,0x40 }, { 0x54,0xcc,0xaa,0x4d }, + { 0xf7,0x41,0xec,0xda }, { 0xfc,0x4f,0xe5,0xd7 }, + { 0xe1,0x5d,0xfe,0xc0 }, { 0xea,0x53,0xf7,0xcd }, + { 0xdb,0x79,0xc8,0xee }, { 0xd0,0x77,0xc1,0xe3 }, + { 0xcd,0x65,0xda,0xf4 }, { 0xc6,0x6b,0xd3,0xf9 }, + { 0xaf,0x31,0xa4,0xb2 }, { 0xa4,0x3f,0xad,0xbf }, + { 0xb9,0x2d,0xb6,0xa8 }, { 0xb2,0x23,0xbf,0xa5 }, + { 0x83,0x09,0x80,0x86 }, { 0x88,0x07,0x89,0x8b }, + { 0x95,0x15,0x92,0x9c }, { 0x9e,0x1b,0x9b,0x91 }, + { 0x47,0xa1,0x7c,0x0a }, { 0x4c,0xaf,0x75,0x07 }, + { 0x51,0xbd,0x6e,0x10 }, { 0x5a,0xb3,0x67,0x1d }, + { 0x6b,0x99,0x58,0x3e }, { 0x60,0x97,0x51,0x33 }, + { 0x7d,0x85,0x4a,0x24 }, { 0x76,0x8b,0x43,0x29 }, + { 0x1f,0xd1,0x34,0x62 }, { 0x14,0xdf,0x3d,0x6f }, + { 0x09,0xcd,0x26,0x78 }, { 0x02,0xc3,0x2f,0x75 }, + { 0x33,0xe9,0x10,0x56 }, { 0x38,0xe7,0x19,0x5b }, + { 0x25,0xf5,0x02,0x4c }, { 0x2e,0xfb,0x0b,0x41 }, + { 0x8c,0x9a,0xd7,0x61 }, { 0x87,0x94,0xde,0x6c }, + { 0x9a,0x86,0xc5,0x7b }, { 0x91,0x88,0xcc,0x76 }, + { 0xa0,0xa2,0xf3,0x55 }, { 0xab,0xac,0xfa,0x58 }, + { 0xb6,0xbe,0xe1,0x4f }, { 0xbd,0xb0,0xe8,0x42 }, + { 0xd4,0xea,0x9f,0x09 }, { 0xdf,0xe4,0x96,0x04 }, + { 0xc2,0xf6,0x8d,0x13 }, { 0xc9,0xf8,0x84,0x1e }, + { 0xf8,0xd2,0xbb,0x3d }, { 0xf3,0xdc,0xb2,0x30 }, + { 0xee,0xce,0xa9,0x27 }, { 0xe5,0xc0,0xa0,0x2a }, + { 0x3c,0x7a,0x47,0xb1 }, { 0x37,0x74,0x4e,0xbc }, + { 0x2a,0x66,0x55,0xab }, { 0x21,0x68,0x5c,0xa6 }, + { 0x10,0x42,0x63,0x85 }, { 0x1b,0x4c,0x6a,0x88 }, + { 0x06,0x5e,0x71,0x9f }, { 0x0d,0x50,0x78,0x92 }, + { 0x64,0x0a,0x0f,0xd9 }, { 0x6f,0x04,0x06,0xd4 }, + { 0x72,0x16,0x1d,0xc3 }, { 0x79,0x18,0x14,0xce }, + { 0x48,0x32,0x2b,0xed }, { 0x43,0x3c,0x22,0xe0 }, + { 0x5e,0x2e,0x39,0xf7 }, { 0x55,0x20,0x30,0xfa }, + { 0x01,0xec,0x9a,0xb7 }, { 0x0a,0xe2,0x93,0xba }, + { 0x17,0xf0,0x88,0xad }, { 0x1c,0xfe,0x81,0xa0 }, + { 0x2d,0xd4,0xbe,0x83 }, { 0x26,0xda,0xb7,0x8e }, + { 0x3b,0xc8,0xac,0x99 }, { 0x30,0xc6,0xa5,0x94 }, + { 0x59,0x9c,0xd2,0xdf }, { 0x52,0x92,0xdb,0xd2 }, + { 0x4f,0x80,0xc0,0xc5 }, { 0x44,0x8e,0xc9,0xc8 }, + { 0x75,0xa4,0xf6,0xeb }, { 0x7e,0xaa,0xff,0xe6 }, + { 0x63,0xb8,0xe4,0xf1 }, { 0x68,0xb6,0xed,0xfc }, + { 0xb1,0x0c,0x0a,0x67 }, { 0xba,0x02,0x03,0x6a }, + { 0xa7,0x10,0x18,0x7d }, { 0xac,0x1e,0x11,0x70 }, + { 0x9d,0x34,0x2e,0x53 }, { 0x96,0x3a,0x27,0x5e }, + { 0x8b,0x28,0x3c,0x49 }, { 0x80,0x26,0x35,0x44 }, + { 0xe9,0x7c,0x42,0x0f }, { 0xe2,0x72,0x4b,0x02 }, + { 0xff,0x60,0x50,0x15 }, { 0xf4,0x6e,0x59,0x18 }, + { 0xc5,0x44,0x66,0x3b }, { 0xce,0x4a,0x6f,0x36 }, + { 0xd3,0x58,0x74,0x21 }, { 0xd8,0x56,0x7d,0x2c }, + { 0x7a,0x37,0xa1,0x0c }, { 0x71,0x39,0xa8,0x01 }, + { 0x6c,0x2b,0xb3,0x16 }, { 0x67,0x25,0xba,0x1b }, + { 0x56,0x0f,0x85,0x38 }, { 0x5d,0x01,0x8c,0x35 }, + { 0x40,0x13,0x97,0x22 }, { 0x4b,0x1d,0x9e,0x2f }, + { 0x22,0x47,0xe9,0x64 }, { 0x29,0x49,0xe0,0x69 }, + { 0x34,0x5b,0xfb,0x7e }, { 0x3f,0x55,0xf2,0x73 }, + { 0x0e,0x7f,0xcd,0x50 }, { 0x05,0x71,0xc4,0x5d }, + { 0x18,0x63,0xdf,0x4a }, { 0x13,0x6d,0xd6,0x47 }, + { 0xca,0xd7,0x31,0xdc }, { 0xc1,0xd9,0x38,0xd1 }, + { 0xdc,0xcb,0x23,0xc6 }, { 0xd7,0xc5,0x2a,0xcb }, + { 0xe6,0xef,0x15,0xe8 }, { 0xed,0xe1,0x1c,0xe5 }, + { 0xf0,0xf3,0x07,0xf2 }, { 0xfb,0xfd,0x0e,0xff }, + { 0x92,0xa7,0x79,0xb4 }, { 0x99,0xa9,0x70,0xb9 }, + { 0x84,0xbb,0x6b,0xae }, { 0x8f,0xb5,0x62,0xa3 }, + { 0xbe,0x9f,0x5d,0x80 }, { 0xb5,0x91,0x54,0x8d }, + { 0xa8,0x83,0x4f,0x9a }, { 0xa3,0x8d,0x46,0x97 } + }; + +static const unsigned char U3[256][4] = + { + { 0x00,0x00,0x00,0x00 }, { 0x0d,0x0b,0x0e,0x09 }, + { 0x1a,0x16,0x1c,0x12 }, { 0x17,0x1d,0x12,0x1b }, + { 0x34,0x2c,0x38,0x24 }, { 0x39,0x27,0x36,0x2d }, + { 0x2e,0x3a,0x24,0x36 }, { 0x23,0x31,0x2a,0x3f }, + { 0x68,0x58,0x70,0x48 }, { 0x65,0x53,0x7e,0x41 }, + { 0x72,0x4e,0x6c,0x5a }, { 0x7f,0x45,0x62,0x53 }, + { 0x5c,0x74,0x48,0x6c }, { 0x51,0x7f,0x46,0x65 }, + { 0x46,0x62,0x54,0x7e }, { 0x4b,0x69,0x5a,0x77 }, + { 0xd0,0xb0,0xe0,0x90 }, { 0xdd,0xbb,0xee,0x99 }, + { 0xca,0xa6,0xfc,0x82 }, { 0xc7,0xad,0xf2,0x8b }, + { 0xe4,0x9c,0xd8,0xb4 }, { 0xe9,0x97,0xd6,0xbd }, + { 0xfe,0x8a,0xc4,0xa6 }, { 0xf3,0x81,0xca,0xaf }, + { 0xb8,0xe8,0x90,0xd8 }, { 0xb5,0xe3,0x9e,0xd1 }, + { 0xa2,0xfe,0x8c,0xca }, { 0xaf,0xf5,0x82,0xc3 }, + { 0x8c,0xc4,0xa8,0xfc }, { 0x81,0xcf,0xa6,0xf5 }, + { 0x96,0xd2,0xb4,0xee }, { 0x9b,0xd9,0xba,0xe7 }, + { 0xbb,0x7b,0xdb,0x3b }, { 0xb6,0x70,0xd5,0x32 }, + { 0xa1,0x6d,0xc7,0x29 }, { 0xac,0x66,0xc9,0x20 }, + { 0x8f,0x57,0xe3,0x1f }, { 0x82,0x5c,0xed,0x16 }, + { 0x95,0x41,0xff,0x0d }, { 0x98,0x4a,0xf1,0x04 }, + { 0xd3,0x23,0xab,0x73 }, { 0xde,0x28,0xa5,0x7a }, + { 0xc9,0x35,0xb7,0x61 }, { 0xc4,0x3e,0xb9,0x68 }, + { 0xe7,0x0f,0x93,0x57 }, { 0xea,0x04,0x9d,0x5e }, + { 0xfd,0x19,0x8f,0x45 }, { 0xf0,0x12,0x81,0x4c }, + { 0x6b,0xcb,0x3b,0xab }, { 0x66,0xc0,0x35,0xa2 }, + { 0x71,0xdd,0x27,0xb9 }, { 0x7c,0xd6,0x29,0xb0 }, + { 0x5f,0xe7,0x03,0x8f }, { 0x52,0xec,0x0d,0x86 }, + { 0x45,0xf1,0x1f,0x9d }, { 0x48,0xfa,0x11,0x94 }, + { 0x03,0x93,0x4b,0xe3 }, { 0x0e,0x98,0x45,0xea }, + { 0x19,0x85,0x57,0xf1 }, { 0x14,0x8e,0x59,0xf8 }, + { 0x37,0xbf,0x73,0xc7 }, { 0x3a,0xb4,0x7d,0xce }, + { 0x2d,0xa9,0x6f,0xd5 }, { 0x20,0xa2,0x61,0xdc }, + { 0x6d,0xf6,0xad,0x76 }, { 0x60,0xfd,0xa3,0x7f }, + { 0x77,0xe0,0xb1,0x64 }, { 0x7a,0xeb,0xbf,0x6d }, + { 0x59,0xda,0x95,0x52 }, { 0x54,0xd1,0x9b,0x5b }, + { 0x43,0xcc,0x89,0x40 }, { 0x4e,0xc7,0x87,0x49 }, + { 0x05,0xae,0xdd,0x3e }, { 0x08,0xa5,0xd3,0x37 }, + { 0x1f,0xb8,0xc1,0x2c }, { 0x12,0xb3,0xcf,0x25 }, + { 0x31,0x82,0xe5,0x1a }, { 0x3c,0x89,0xeb,0x13 }, + { 0x2b,0x94,0xf9,0x08 }, { 0x26,0x9f,0xf7,0x01 }, + { 0xbd,0x46,0x4d,0xe6 }, { 0xb0,0x4d,0x43,0xef }, + { 0xa7,0x50,0x51,0xf4 }, { 0xaa,0x5b,0x5f,0xfd }, + { 0x89,0x6a,0x75,0xc2 }, { 0x84,0x61,0x7b,0xcb }, + { 0x93,0x7c,0x69,0xd0 }, { 0x9e,0x77,0x67,0xd9 }, + { 0xd5,0x1e,0x3d,0xae }, { 0xd8,0x15,0x33,0xa7 }, + { 0xcf,0x08,0x21,0xbc }, { 0xc2,0x03,0x2f,0xb5 }, + { 0xe1,0x32,0x05,0x8a }, { 0xec,0x39,0x0b,0x83 }, + { 0xfb,0x24,0x19,0x98 }, { 0xf6,0x2f,0x17,0x91 }, + { 0xd6,0x8d,0x76,0x4d }, { 0xdb,0x86,0x78,0x44 }, + { 0xcc,0x9b,0x6a,0x5f }, { 0xc1,0x90,0x64,0x56 }, + { 0xe2,0xa1,0x4e,0x69 }, { 0xef,0xaa,0x40,0x60 }, + { 0xf8,0xb7,0x52,0x7b }, { 0xf5,0xbc,0x5c,0x72 }, + { 0xbe,0xd5,0x06,0x05 }, { 0xb3,0xde,0x08,0x0c }, + { 0xa4,0xc3,0x1a,0x17 }, { 0xa9,0xc8,0x14,0x1e }, + { 0x8a,0xf9,0x3e,0x21 }, { 0x87,0xf2,0x30,0x28 }, + { 0x90,0xef,0x22,0x33 }, { 0x9d,0xe4,0x2c,0x3a }, + { 0x06,0x3d,0x96,0xdd }, { 0x0b,0x36,0x98,0xd4 }, + { 0x1c,0x2b,0x8a,0xcf }, { 0x11,0x20,0x84,0xc6 }, + { 0x32,0x11,0xae,0xf9 }, { 0x3f,0x1a,0xa0,0xf0 }, + { 0x28,0x07,0xb2,0xeb }, { 0x25,0x0c,0xbc,0xe2 }, + { 0x6e,0x65,0xe6,0x95 }, { 0x63,0x6e,0xe8,0x9c }, + { 0x74,0x73,0xfa,0x87 }, { 0x79,0x78,0xf4,0x8e }, + { 0x5a,0x49,0xde,0xb1 }, { 0x57,0x42,0xd0,0xb8 }, + { 0x40,0x5f,0xc2,0xa3 }, { 0x4d,0x54,0xcc,0xaa }, + { 0xda,0xf7,0x41,0xec }, { 0xd7,0xfc,0x4f,0xe5 }, + { 0xc0,0xe1,0x5d,0xfe }, { 0xcd,0xea,0x53,0xf7 }, + { 0xee,0xdb,0x79,0xc8 }, { 0xe3,0xd0,0x77,0xc1 }, + { 0xf4,0xcd,0x65,0xda }, { 0xf9,0xc6,0x6b,0xd3 }, + { 0xb2,0xaf,0x31,0xa4 }, { 0xbf,0xa4,0x3f,0xad }, + { 0xa8,0xb9,0x2d,0xb6 }, { 0xa5,0xb2,0x23,0xbf }, + { 0x86,0x83,0x09,0x80 }, { 0x8b,0x88,0x07,0x89 }, + { 0x9c,0x95,0x15,0x92 }, { 0x91,0x9e,0x1b,0x9b }, + { 0x0a,0x47,0xa1,0x7c }, { 0x07,0x4c,0xaf,0x75 }, + { 0x10,0x51,0xbd,0x6e }, { 0x1d,0x5a,0xb3,0x67 }, + { 0x3e,0x6b,0x99,0x58 }, { 0x33,0x60,0x97,0x51 }, + { 0x24,0x7d,0x85,0x4a }, { 0x29,0x76,0x8b,0x43 }, + { 0x62,0x1f,0xd1,0x34 }, { 0x6f,0x14,0xdf,0x3d }, + { 0x78,0x09,0xcd,0x26 }, { 0x75,0x02,0xc3,0x2f }, + { 0x56,0x33,0xe9,0x10 }, { 0x5b,0x38,0xe7,0x19 }, + { 0x4c,0x25,0xf5,0x02 }, { 0x41,0x2e,0xfb,0x0b }, + { 0x61,0x8c,0x9a,0xd7 }, { 0x6c,0x87,0x94,0xde }, + { 0x7b,0x9a,0x86,0xc5 }, { 0x76,0x91,0x88,0xcc }, + { 0x55,0xa0,0xa2,0xf3 }, { 0x58,0xab,0xac,0xfa }, + { 0x4f,0xb6,0xbe,0xe1 }, { 0x42,0xbd,0xb0,0xe8 }, + { 0x09,0xd4,0xea,0x9f }, { 0x04,0xdf,0xe4,0x96 }, + { 0x13,0xc2,0xf6,0x8d }, { 0x1e,0xc9,0xf8,0x84 }, + { 0x3d,0xf8,0xd2,0xbb }, { 0x30,0xf3,0xdc,0xb2 }, + { 0x27,0xee,0xce,0xa9 }, { 0x2a,0xe5,0xc0,0xa0 }, + { 0xb1,0x3c,0x7a,0x47 }, { 0xbc,0x37,0x74,0x4e }, + { 0xab,0x2a,0x66,0x55 }, { 0xa6,0x21,0x68,0x5c }, + { 0x85,0x10,0x42,0x63 }, { 0x88,0x1b,0x4c,0x6a }, + { 0x9f,0x06,0x5e,0x71 }, { 0x92,0x0d,0x50,0x78 }, + { 0xd9,0x64,0x0a,0x0f }, { 0xd4,0x6f,0x04,0x06 }, + { 0xc3,0x72,0x16,0x1d }, { 0xce,0x79,0x18,0x14 }, + { 0xed,0x48,0x32,0x2b }, { 0xe0,0x43,0x3c,0x22 }, + { 0xf7,0x5e,0x2e,0x39 }, { 0xfa,0x55,0x20,0x30 }, + { 0xb7,0x01,0xec,0x9a }, { 0xba,0x0a,0xe2,0x93 }, + { 0xad,0x17,0xf0,0x88 }, { 0xa0,0x1c,0xfe,0x81 }, + { 0x83,0x2d,0xd4,0xbe }, { 0x8e,0x26,0xda,0xb7 }, + { 0x99,0x3b,0xc8,0xac }, { 0x94,0x30,0xc6,0xa5 }, + { 0xdf,0x59,0x9c,0xd2 }, { 0xd2,0x52,0x92,0xdb }, + { 0xc5,0x4f,0x80,0xc0 }, { 0xc8,0x44,0x8e,0xc9 }, + { 0xeb,0x75,0xa4,0xf6 }, { 0xe6,0x7e,0xaa,0xff }, + { 0xf1,0x63,0xb8,0xe4 }, { 0xfc,0x68,0xb6,0xed }, + { 0x67,0xb1,0x0c,0x0a }, { 0x6a,0xba,0x02,0x03 }, + { 0x7d,0xa7,0x10,0x18 }, { 0x70,0xac,0x1e,0x11 }, + { 0x53,0x9d,0x34,0x2e }, { 0x5e,0x96,0x3a,0x27 }, + { 0x49,0x8b,0x28,0x3c }, { 0x44,0x80,0x26,0x35 }, + { 0x0f,0xe9,0x7c,0x42 }, { 0x02,0xe2,0x72,0x4b }, + { 0x15,0xff,0x60,0x50 }, { 0x18,0xf4,0x6e,0x59 }, + { 0x3b,0xc5,0x44,0x66 }, { 0x36,0xce,0x4a,0x6f }, + { 0x21,0xd3,0x58,0x74 }, { 0x2c,0xd8,0x56,0x7d }, + { 0x0c,0x7a,0x37,0xa1 }, { 0x01,0x71,0x39,0xa8 }, + { 0x16,0x6c,0x2b,0xb3 }, { 0x1b,0x67,0x25,0xba }, + { 0x38,0x56,0x0f,0x85 }, { 0x35,0x5d,0x01,0x8c }, + { 0x22,0x40,0x13,0x97 }, { 0x2f,0x4b,0x1d,0x9e }, + { 0x64,0x22,0x47,0xe9 }, { 0x69,0x29,0x49,0xe0 }, + { 0x7e,0x34,0x5b,0xfb }, { 0x73,0x3f,0x55,0xf2 }, + { 0x50,0x0e,0x7f,0xcd }, { 0x5d,0x05,0x71,0xc4 }, + { 0x4a,0x18,0x63,0xdf }, { 0x47,0x13,0x6d,0xd6 }, + { 0xdc,0xca,0xd7,0x31 }, { 0xd1,0xc1,0xd9,0x38 }, + { 0xc6,0xdc,0xcb,0x23 }, { 0xcb,0xd7,0xc5,0x2a }, + { 0xe8,0xe6,0xef,0x15 }, { 0xe5,0xed,0xe1,0x1c }, + { 0xf2,0xf0,0xf3,0x07 }, { 0xff,0xfb,0xfd,0x0e }, + { 0xb4,0x92,0xa7,0x79 }, { 0xb9,0x99,0xa9,0x70 }, + { 0xae,0x84,0xbb,0x6b }, { 0xa3,0x8f,0xb5,0x62 }, + { 0x80,0xbe,0x9f,0x5d }, { 0x8d,0xb5,0x91,0x54 }, + { 0x9a,0xa8,0x83,0x4f }, { 0x97,0xa3,0x8d,0x46 } + }; + +static const unsigned char U4[256][4] = + { + { 0x00,0x00,0x00,0x00 }, { 0x09,0x0d,0x0b,0x0e }, + { 0x12,0x1a,0x16,0x1c }, { 0x1b,0x17,0x1d,0x12 }, + { 0x24,0x34,0x2c,0x38 }, { 0x2d,0x39,0x27,0x36 }, + { 0x36,0x2e,0x3a,0x24 }, { 0x3f,0x23,0x31,0x2a }, + { 0x48,0x68,0x58,0x70 }, { 0x41,0x65,0x53,0x7e }, + { 0x5a,0x72,0x4e,0x6c }, { 0x53,0x7f,0x45,0x62 }, + { 0x6c,0x5c,0x74,0x48 }, { 0x65,0x51,0x7f,0x46 }, + { 0x7e,0x46,0x62,0x54 }, { 0x77,0x4b,0x69,0x5a }, + { 0x90,0xd0,0xb0,0xe0 }, { 0x99,0xdd,0xbb,0xee }, + { 0x82,0xca,0xa6,0xfc }, { 0x8b,0xc7,0xad,0xf2 }, + { 0xb4,0xe4,0x9c,0xd8 }, { 0xbd,0xe9,0x97,0xd6 }, + { 0xa6,0xfe,0x8a,0xc4 }, { 0xaf,0xf3,0x81,0xca }, + { 0xd8,0xb8,0xe8,0x90 }, { 0xd1,0xb5,0xe3,0x9e }, + { 0xca,0xa2,0xfe,0x8c }, { 0xc3,0xaf,0xf5,0x82 }, + { 0xfc,0x8c,0xc4,0xa8 }, { 0xf5,0x81,0xcf,0xa6 }, + { 0xee,0x96,0xd2,0xb4 }, { 0xe7,0x9b,0xd9,0xba }, + { 0x3b,0xbb,0x7b,0xdb }, { 0x32,0xb6,0x70,0xd5 }, + { 0x29,0xa1,0x6d,0xc7 }, { 0x20,0xac,0x66,0xc9 }, + { 0x1f,0x8f,0x57,0xe3 }, { 0x16,0x82,0x5c,0xed }, + { 0x0d,0x95,0x41,0xff }, { 0x04,0x98,0x4a,0xf1 }, + { 0x73,0xd3,0x23,0xab }, { 0x7a,0xde,0x28,0xa5 }, + { 0x61,0xc9,0x35,0xb7 }, { 0x68,0xc4,0x3e,0xb9 }, + { 0x57,0xe7,0x0f,0x93 }, { 0x5e,0xea,0x04,0x9d }, + { 0x45,0xfd,0x19,0x8f }, { 0x4c,0xf0,0x12,0x81 }, + { 0xab,0x6b,0xcb,0x3b }, { 0xa2,0x66,0xc0,0x35 }, + { 0xb9,0x71,0xdd,0x27 }, { 0xb0,0x7c,0xd6,0x29 }, + { 0x8f,0x5f,0xe7,0x03 }, { 0x86,0x52,0xec,0x0d }, + { 0x9d,0x45,0xf1,0x1f }, { 0x94,0x48,0xfa,0x11 }, + { 0xe3,0x03,0x93,0x4b }, { 0xea,0x0e,0x98,0x45 }, + { 0xf1,0x19,0x85,0x57 }, { 0xf8,0x14,0x8e,0x59 }, + { 0xc7,0x37,0xbf,0x73 }, { 0xce,0x3a,0xb4,0x7d }, + { 0xd5,0x2d,0xa9,0x6f }, { 0xdc,0x20,0xa2,0x61 }, + { 0x76,0x6d,0xf6,0xad }, { 0x7f,0x60,0xfd,0xa3 }, + { 0x64,0x77,0xe0,0xb1 }, { 0x6d,0x7a,0xeb,0xbf }, + { 0x52,0x59,0xda,0x95 }, { 0x5b,0x54,0xd1,0x9b }, + { 0x40,0x43,0xcc,0x89 }, { 0x49,0x4e,0xc7,0x87 }, + { 0x3e,0x05,0xae,0xdd }, { 0x37,0x08,0xa5,0xd3 }, + { 0x2c,0x1f,0xb8,0xc1 }, { 0x25,0x12,0xb3,0xcf }, + { 0x1a,0x31,0x82,0xe5 }, { 0x13,0x3c,0x89,0xeb }, + { 0x08,0x2b,0x94,0xf9 }, { 0x01,0x26,0x9f,0xf7 }, + { 0xe6,0xbd,0x46,0x4d }, { 0xef,0xb0,0x4d,0x43 }, + { 0xf4,0xa7,0x50,0x51 }, { 0xfd,0xaa,0x5b,0x5f }, + { 0xc2,0x89,0x6a,0x75 }, { 0xcb,0x84,0x61,0x7b }, + { 0xd0,0x93,0x7c,0x69 }, { 0xd9,0x9e,0x77,0x67 }, + { 0xae,0xd5,0x1e,0x3d }, { 0xa7,0xd8,0x15,0x33 }, + { 0xbc,0xcf,0x08,0x21 }, { 0xb5,0xc2,0x03,0x2f }, + { 0x8a,0xe1,0x32,0x05 }, { 0x83,0xec,0x39,0x0b }, + { 0x98,0xfb,0x24,0x19 }, { 0x91,0xf6,0x2f,0x17 }, + { 0x4d,0xd6,0x8d,0x76 }, { 0x44,0xdb,0x86,0x78 }, + { 0x5f,0xcc,0x9b,0x6a }, { 0x56,0xc1,0x90,0x64 }, + { 0x69,0xe2,0xa1,0x4e }, { 0x60,0xef,0xaa,0x40 }, + { 0x7b,0xf8,0xb7,0x52 }, { 0x72,0xf5,0xbc,0x5c }, + { 0x05,0xbe,0xd5,0x06 }, { 0x0c,0xb3,0xde,0x08 }, + { 0x17,0xa4,0xc3,0x1a }, { 0x1e,0xa9,0xc8,0x14 }, + { 0x21,0x8a,0xf9,0x3e }, { 0x28,0x87,0xf2,0x30 }, + { 0x33,0x90,0xef,0x22 }, { 0x3a,0x9d,0xe4,0x2c }, + { 0xdd,0x06,0x3d,0x96 }, { 0xd4,0x0b,0x36,0x98 }, + { 0xcf,0x1c,0x2b,0x8a }, { 0xc6,0x11,0x20,0x84 }, + { 0xf9,0x32,0x11,0xae }, { 0xf0,0x3f,0x1a,0xa0 }, + { 0xeb,0x28,0x07,0xb2 }, { 0xe2,0x25,0x0c,0xbc }, + { 0x95,0x6e,0x65,0xe6 }, { 0x9c,0x63,0x6e,0xe8 }, + { 0x87,0x74,0x73,0xfa }, { 0x8e,0x79,0x78,0xf4 }, + { 0xb1,0x5a,0x49,0xde }, { 0xb8,0x57,0x42,0xd0 }, + { 0xa3,0x40,0x5f,0xc2 }, { 0xaa,0x4d,0x54,0xcc }, + { 0xec,0xda,0xf7,0x41 }, { 0xe5,0xd7,0xfc,0x4f }, + { 0xfe,0xc0,0xe1,0x5d }, { 0xf7,0xcd,0xea,0x53 }, + { 0xc8,0xee,0xdb,0x79 }, { 0xc1,0xe3,0xd0,0x77 }, + { 0xda,0xf4,0xcd,0x65 }, { 0xd3,0xf9,0xc6,0x6b }, + { 0xa4,0xb2,0xaf,0x31 }, { 0xad,0xbf,0xa4,0x3f }, + { 0xb6,0xa8,0xb9,0x2d }, { 0xbf,0xa5,0xb2,0x23 }, + { 0x80,0x86,0x83,0x09 }, { 0x89,0x8b,0x88,0x07 }, + { 0x92,0x9c,0x95,0x15 }, { 0x9b,0x91,0x9e,0x1b }, + { 0x7c,0x0a,0x47,0xa1 }, { 0x75,0x07,0x4c,0xaf }, + { 0x6e,0x10,0x51,0xbd }, { 0x67,0x1d,0x5a,0xb3 }, + { 0x58,0x3e,0x6b,0x99 }, { 0x51,0x33,0x60,0x97 }, + { 0x4a,0x24,0x7d,0x85 }, { 0x43,0x29,0x76,0x8b }, + { 0x34,0x62,0x1f,0xd1 }, { 0x3d,0x6f,0x14,0xdf }, + { 0x26,0x78,0x09,0xcd }, { 0x2f,0x75,0x02,0xc3 }, + { 0x10,0x56,0x33,0xe9 }, { 0x19,0x5b,0x38,0xe7 }, + { 0x02,0x4c,0x25,0xf5 }, { 0x0b,0x41,0x2e,0xfb }, + { 0xd7,0x61,0x8c,0x9a }, { 0xde,0x6c,0x87,0x94 }, + { 0xc5,0x7b,0x9a,0x86 }, { 0xcc,0x76,0x91,0x88 }, + { 0xf3,0x55,0xa0,0xa2 }, { 0xfa,0x58,0xab,0xac }, + { 0xe1,0x4f,0xb6,0xbe }, { 0xe8,0x42,0xbd,0xb0 }, + { 0x9f,0x09,0xd4,0xea }, { 0x96,0x04,0xdf,0xe4 }, + { 0x8d,0x13,0xc2,0xf6 }, { 0x84,0x1e,0xc9,0xf8 }, + { 0xbb,0x3d,0xf8,0xd2 }, { 0xb2,0x30,0xf3,0xdc }, + { 0xa9,0x27,0xee,0xce }, { 0xa0,0x2a,0xe5,0xc0 }, + { 0x47,0xb1,0x3c,0x7a }, { 0x4e,0xbc,0x37,0x74 }, + { 0x55,0xab,0x2a,0x66 }, { 0x5c,0xa6,0x21,0x68 }, + { 0x63,0x85,0x10,0x42 }, { 0x6a,0x88,0x1b,0x4c }, + { 0x71,0x9f,0x06,0x5e }, { 0x78,0x92,0x0d,0x50 }, + { 0x0f,0xd9,0x64,0x0a }, { 0x06,0xd4,0x6f,0x04 }, + { 0x1d,0xc3,0x72,0x16 }, { 0x14,0xce,0x79,0x18 }, + { 0x2b,0xed,0x48,0x32 }, { 0x22,0xe0,0x43,0x3c }, + { 0x39,0xf7,0x5e,0x2e }, { 0x30,0xfa,0x55,0x20 }, + { 0x9a,0xb7,0x01,0xec }, { 0x93,0xba,0x0a,0xe2 }, + { 0x88,0xad,0x17,0xf0 }, { 0x81,0xa0,0x1c,0xfe }, + { 0xbe,0x83,0x2d,0xd4 }, { 0xb7,0x8e,0x26,0xda }, + { 0xac,0x99,0x3b,0xc8 }, { 0xa5,0x94,0x30,0xc6 }, + { 0xd2,0xdf,0x59,0x9c }, { 0xdb,0xd2,0x52,0x92 }, + { 0xc0,0xc5,0x4f,0x80 }, { 0xc9,0xc8,0x44,0x8e }, + { 0xf6,0xeb,0x75,0xa4 }, { 0xff,0xe6,0x7e,0xaa }, + { 0xe4,0xf1,0x63,0xb8 }, { 0xed,0xfc,0x68,0xb6 }, + { 0x0a,0x67,0xb1,0x0c }, { 0x03,0x6a,0xba,0x02 }, + { 0x18,0x7d,0xa7,0x10 }, { 0x11,0x70,0xac,0x1e }, + { 0x2e,0x53,0x9d,0x34 }, { 0x27,0x5e,0x96,0x3a }, + { 0x3c,0x49,0x8b,0x28 }, { 0x35,0x44,0x80,0x26 }, + { 0x42,0x0f,0xe9,0x7c }, { 0x4b,0x02,0xe2,0x72 }, + { 0x50,0x15,0xff,0x60 }, { 0x59,0x18,0xf4,0x6e }, + { 0x66,0x3b,0xc5,0x44 }, { 0x6f,0x36,0xce,0x4a }, + { 0x74,0x21,0xd3,0x58 }, { 0x7d,0x2c,0xd8,0x56 }, + { 0xa1,0x0c,0x7a,0x37 }, { 0xa8,0x01,0x71,0x39 }, + { 0xb3,0x16,0x6c,0x2b }, { 0xba,0x1b,0x67,0x25 }, + { 0x85,0x38,0x56,0x0f }, { 0x8c,0x35,0x5d,0x01 }, + { 0x97,0x22,0x40,0x13 }, { 0x9e,0x2f,0x4b,0x1d }, + { 0xe9,0x64,0x22,0x47 }, { 0xe0,0x69,0x29,0x49 }, + { 0xfb,0x7e,0x34,0x5b }, { 0xf2,0x73,0x3f,0x55 }, + { 0xcd,0x50,0x0e,0x7f }, { 0xc4,0x5d,0x05,0x71 }, + { 0xdf,0x4a,0x18,0x63 }, { 0xd6,0x47,0x13,0x6d }, + { 0x31,0xdc,0xca,0xd7 }, { 0x38,0xd1,0xc1,0xd9 }, + { 0x23,0xc6,0xdc,0xcb }, { 0x2a,0xcb,0xd7,0xc5 }, + { 0x15,0xe8,0xe6,0xef }, { 0x1c,0xe5,0xed,0xe1 }, + { 0x07,0xf2,0xf0,0xf3 }, { 0x0e,0xff,0xfb,0xfd }, + { 0x79,0xb4,0x92,0xa7 }, { 0x70,0xb9,0x99,0xa9 }, + { 0x6b,0xae,0x84,0xbb }, { 0x62,0xa3,0x8f,0xb5 }, + { 0x5d,0x80,0xbe,0x9f }, { 0x54,0x8d,0xb5,0x91 }, + { 0x4f,0x9a,0xa8,0x83 }, { 0x46,0x97,0xa3,0x8d } + }; + +static const u32 rcon[30] = + { + 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, + 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, + 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91 + }; + --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/md5.c +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/md5.c @@ -0,0 +1,366 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* md5.c - MD5 Message-Digest Algorithm + * Copyright (C) 1995,1996,1998,1999,2001,2002, + * 2003 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + * + * According to the definition of MD5 in RFC 1321 from April 1992. + * NOTE: This is *not* the same file as the one from glibc. + * Written by Ulrich Drepper , 1995. + * heavily modified for GnuPG by Werner Koch + */ + +/* Test values: + * "" D4 1D 8C D9 8F 00 B2 04 E9 80 09 98 EC F8 42 7E + * "a" 0C C1 75 B9 C0 F1 B6 A8 31 C3 99 E2 69 77 26 61 + * "abc 90 01 50 98 3C D2 4F B0 D6 96 3F 7D 28 E1 7F 72 + * "message digest" F9 6B 69 7D 7C B7 93 8D 52 5A 2F 31 AA F1 61 D0 + */ + + +#include "g10lib.h" +#include "memory.h" +#include "cipher.h" + +#include "bithelp.h" + + +typedef struct { + u32 A,B,C,D; /* chaining variables */ + u32 nblocks; + byte buf[64]; + int count; +} MD5_CONTEXT; + + +static void +md5_init( void *context ) +{ + MD5_CONTEXT *ctx = context; + + ctx->A = 0x67452301; + ctx->B = 0xefcdab89; + ctx->C = 0x98badcfe; + ctx->D = 0x10325476; + + ctx->nblocks = 0; + ctx->count = 0; +} + + +/* These are the four functions used in the four steps of the MD5 algorithm + and defined in the RFC 1321. The first function is a little bit optimized + (as found in Colin Plumbs public domain implementation). */ +/* #define FF(b, c, d) ((b & c) | (~b & d)) */ +#define FF(b, c, d) (d ^ (b & (c ^ d))) +#define FG(b, c, d) FF (d, b, c) +#define FH(b, c, d) (b ^ c ^ d) +#define FI(b, c, d) (c ^ (b | ~d)) + + +/**************** + * transform n*64 bytes + */ +static void +transform ( MD5_CONTEXT *ctx, const unsigned char *data ) +{ + u32 correct_words[16]; + register u32 A = ctx->A; + register u32 B = ctx->B; + register u32 C = ctx->C; + register u32 D = ctx->D; + u32 *cwp = correct_words; + +#ifdef WORDS_BIGENDIAN + { + int i; + byte *p2, *p1; + for(i=0, p1=data, p2=(byte*)correct_words; i < 16; i++, p2 += 4 ) + { + p2[3] = *p1++; + p2[2] = *p1++; + p2[1] = *p1++; + p2[0] = *p1++; + } + } +#else + memcpy( correct_words, data, 64 ); +#endif + + +#define OP(a, b, c, d, s, T) \ + do \ + { \ + a += FF (b, c, d) + (*cwp++) + T; \ + a = rol(a, s); \ + a += b; \ + } \ + while (0) + + /* Before we start, one word about the strange constants. + They are defined in RFC 1321 as + + T[i] = (int) (4294967296.0 * fabs (sin (i))), i=1..64 + */ + + /* Round 1. */ + OP (A, B, C, D, 7, 0xd76aa478); + OP (D, A, B, C, 12, 0xe8c7b756); + OP (C, D, A, B, 17, 0x242070db); + OP (B, C, D, A, 22, 0xc1bdceee); + OP (A, B, C, D, 7, 0xf57c0faf); + OP (D, A, B, C, 12, 0x4787c62a); + OP (C, D, A, B, 17, 0xa8304613); + OP (B, C, D, A, 22, 0xfd469501); + OP (A, B, C, D, 7, 0x698098d8); + OP (D, A, B, C, 12, 0x8b44f7af); + OP (C, D, A, B, 17, 0xffff5bb1); + OP (B, C, D, A, 22, 0x895cd7be); + OP (A, B, C, D, 7, 0x6b901122); + OP (D, A, B, C, 12, 0xfd987193); + OP (C, D, A, B, 17, 0xa679438e); + OP (B, C, D, A, 22, 0x49b40821); + +#undef OP +#define OP(f, a, b, c, d, k, s, T) \ + do \ + { \ + a += f (b, c, d) + correct_words[k] + T; \ + a = rol(a, s); \ + a += b; \ + } \ + while (0) + + /* Round 2. */ + OP (FG, A, B, C, D, 1, 5, 0xf61e2562); + OP (FG, D, A, B, C, 6, 9, 0xc040b340); + OP (FG, C, D, A, B, 11, 14, 0x265e5a51); + OP (FG, B, C, D, A, 0, 20, 0xe9b6c7aa); + OP (FG, A, B, C, D, 5, 5, 0xd62f105d); + OP (FG, D, A, B, C, 10, 9, 0x02441453); + OP (FG, C, D, A, B, 15, 14, 0xd8a1e681); + OP (FG, B, C, D, A, 4, 20, 0xe7d3fbc8); + OP (FG, A, B, C, D, 9, 5, 0x21e1cde6); + OP (FG, D, A, B, C, 14, 9, 0xc33707d6); + OP (FG, C, D, A, B, 3, 14, 0xf4d50d87); + OP (FG, B, C, D, A, 8, 20, 0x455a14ed); + OP (FG, A, B, C, D, 13, 5, 0xa9e3e905); + OP (FG, D, A, B, C, 2, 9, 0xfcefa3f8); + OP (FG, C, D, A, B, 7, 14, 0x676f02d9); + OP (FG, B, C, D, A, 12, 20, 0x8d2a4c8a); + + /* Round 3. */ + OP (FH, A, B, C, D, 5, 4, 0xfffa3942); + OP (FH, D, A, B, C, 8, 11, 0x8771f681); + OP (FH, C, D, A, B, 11, 16, 0x6d9d6122); + OP (FH, B, C, D, A, 14, 23, 0xfde5380c); + OP (FH, A, B, C, D, 1, 4, 0xa4beea44); + OP (FH, D, A, B, C, 4, 11, 0x4bdecfa9); + OP (FH, C, D, A, B, 7, 16, 0xf6bb4b60); + OP (FH, B, C, D, A, 10, 23, 0xbebfbc70); + OP (FH, A, B, C, D, 13, 4, 0x289b7ec6); + OP (FH, D, A, B, C, 0, 11, 0xeaa127fa); + OP (FH, C, D, A, B, 3, 16, 0xd4ef3085); + OP (FH, B, C, D, A, 6, 23, 0x04881d05); + OP (FH, A, B, C, D, 9, 4, 0xd9d4d039); + OP (FH, D, A, B, C, 12, 11, 0xe6db99e5); + OP (FH, C, D, A, B, 15, 16, 0x1fa27cf8); + OP (FH, B, C, D, A, 2, 23, 0xc4ac5665); + + /* Round 4. */ + OP (FI, A, B, C, D, 0, 6, 0xf4292244); + OP (FI, D, A, B, C, 7, 10, 0x432aff97); + OP (FI, C, D, A, B, 14, 15, 0xab9423a7); + OP (FI, B, C, D, A, 5, 21, 0xfc93a039); + OP (FI, A, B, C, D, 12, 6, 0x655b59c3); + OP (FI, D, A, B, C, 3, 10, 0x8f0ccc92); + OP (FI, C, D, A, B, 10, 15, 0xffeff47d); + OP (FI, B, C, D, A, 1, 21, 0x85845dd1); + OP (FI, A, B, C, D, 8, 6, 0x6fa87e4f); + OP (FI, D, A, B, C, 15, 10, 0xfe2ce6e0); + OP (FI, C, D, A, B, 6, 15, 0xa3014314); + OP (FI, B, C, D, A, 13, 21, 0x4e0811a1); + OP (FI, A, B, C, D, 4, 6, 0xf7537e82); + OP (FI, D, A, B, C, 11, 10, 0xbd3af235); + OP (FI, C, D, A, B, 2, 15, 0x2ad7d2bb); + OP (FI, B, C, D, A, 9, 21, 0xeb86d391); + + /* Put checksum in context given as argument. */ + ctx->A += A; + ctx->B += B; + ctx->C += C; + ctx->D += D; +} + + + +/* The routine updates the message-digest context to + * account for the presence of each of the characters inBuf[0..inLen-1] + * in the message whose digest is being computed. + */ +static void +md5_write( void *context, const void *inbuf_arg , size_t inlen) +{ + const unsigned char *inbuf = inbuf_arg; + MD5_CONTEXT *hd = context; + + if( hd->count == 64 ) /* flush the buffer */ + { + transform( hd, hd->buf ); + _gcry_burn_stack (80+6*sizeof(void*)); + hd->count = 0; + hd->nblocks++; + } + if( !inbuf ) + return; + + if( hd->count ) + { + for( ; inlen && hd->count < 64; inlen-- ) + hd->buf[hd->count++] = *inbuf++; + md5_write( hd, NULL, 0 ); + if( !inlen ) + return; + } + _gcry_burn_stack (80+6*sizeof(void*)); + + while( inlen >= 64 ) + { + transform( hd, inbuf ); + hd->count = 0; + hd->nblocks++; + inlen -= 64; + inbuf += 64; + } + for( ; inlen && hd->count < 64; inlen-- ) + hd->buf[hd->count++] = *inbuf++; + +} + + + +/* The routine final terminates the message-digest computation and + * ends with the desired message digest in mdContext->digest[0...15]. + * The handle is prepared for a new MD5 cycle. + * Returns 16 bytes representing the digest. + */ + +static void +md5_final( void *context) +{ + MD5_CONTEXT *hd = context; + u32 t, msb, lsb; + byte *p; + + md5_write(hd, NULL, 0); /* flush */; + + t = hd->nblocks; + /* multiply by 64 to make a byte count */ + lsb = t << 6; + msb = t >> 26; + /* add the count */ + t = lsb; + if( (lsb += hd->count) < t ) + msb++; + /* multiply by 8 to make a bit count */ + t = lsb; + lsb <<= 3; + msb <<= 3; + msb |= t >> 29; + + if( hd->count < 56 ) /* enough room */ + { + hd->buf[hd->count++] = 0x80; /* pad */ + while( hd->count < 56 ) + hd->buf[hd->count++] = 0; /* pad */ + } + else /* need one extra block */ + { + hd->buf[hd->count++] = 0x80; /* pad character */ + while( hd->count < 64 ) + hd->buf[hd->count++] = 0; + md5_write(hd, NULL, 0); /* flush */; + memset(hd->buf, 0, 56 ); /* fill next block with zeroes */ + } + /* append the 64 bit count */ + hd->buf[56] = lsb ; + hd->buf[57] = lsb >> 8; + hd->buf[58] = lsb >> 16; + hd->buf[59] = lsb >> 24; + hd->buf[60] = msb ; + hd->buf[61] = msb >> 8; + hd->buf[62] = msb >> 16; + hd->buf[63] = msb >> 24; + transform( hd, hd->buf ); + _gcry_burn_stack (80+6*sizeof(void*)); + + p = hd->buf; +#ifdef WORDS_BIGENDIAN +#define X(a) do { *p++ = hd->a ; *p++ = hd->a >> 8; \ + *p++ = hd->a >> 16; *p++ = hd->a >> 24; } while(0) +#else /* little endian */ +#define X(a) do { *(u32*)p = (*hd).a ; p += 4; } while(0) +#endif + X(A); + X(B); + X(C); + X(D); +#undef X + +} + +static byte * +md5_read( void *context ) +{ + MD5_CONTEXT *hd = (MD5_CONTEXT *) context; + return hd->buf; +} + +static byte asn[18] = /* Object ID is 1.2.840.113549.2.5 */ + { 0x30, 0x20, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86,0x48, + 0x86, 0xf7, 0x0d, 0x02, 0x05, 0x05, 0x00, 0x04, 0x10 }; + +static gcry_md_oid_spec_t oid_spec_md5[] = + { + /* iso.member-body.us.rsadsi.pkcs.pkcs-1.4 (md5WithRSAEncryption) */ + { "1.2.840.113549.1.1.4" }, + /* RSADSI digestAlgorithm MD5 */ + { "1.2.840.113549.2.5" }, + { NULL }, + }; + +gcry_md_spec_t _gcry_digest_spec_md5 = + { + "MD5", asn, DIM (asn), oid_spec_md5, 16, + md5_init, md5_write, md5_final, md5_read, + sizeof (MD5_CONTEXT) + , + .blocksize = 64 + }; + + +GRUB_MOD_INIT(gcry_md5) +{ + grub_md_register (&_gcry_digest_spec_md5); +} + +GRUB_MOD_FINI(gcry_md5) +{ + grub_md_unregister (&_gcry_digest_spec_md5); +} --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/hash-common.h +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/hash-common.h @@ -0,0 +1,35 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* hash-common.h - Declarations of common code for hash algorithms. + * Copyright (C) 2008 Free Software Foundation, Inc. + * + * This file is part of Libgcrypt. + * + * Libgcrypt is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * Libgcrypt 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, see . + */ + +#ifndef GCRY_HASH_COMMON_H +#define GCRY_HASH_COMMON_H + + +const char * _gcry_hash_selftest_check_one +/**/ (int algo, + int datamode, const void *data, size_t datalen, + const void *expect, size_t expectlen); + + + + + +#endif /*GCRY_HASH_COMMON_H*/ --- grub2-1.98+20100804.orig/lib/libgcrypt-grub/cipher/camellia.h +++ grub2-1.98+20100804/lib/libgcrypt-grub/cipher/camellia.h @@ -0,0 +1,82 @@ +/* This file was automatically imported with + import_gcry.py. Please don't modify it */ +/* camellia.h ver 1.2.0 + * + * Copyright (C) 2006,2007 + * NTT (Nippon Telegraph and Telephone Corporation). + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef HEADER_CAMELLIA_H +#define HEADER_CAMELLIA_H + +/* To use Camellia with libraries it is often useful to keep the name + * space of the library clean. The following macro is thus useful: + * + * #define CAMELLIA_EXT_SYM_PREFIX foo_ + * + * This prefixes all external symbols with "foo_". + */ +#ifdef HAVE_CONFIG_H +#endif +#ifdef CAMELLIA_EXT_SYM_PREFIX +#define CAMELLIA_PREFIX1(x,y) x ## y +#define CAMELLIA_PREFIX2(x,y) CAMELLIA_PREFIX1(x,y) +#define CAMELLIA_PREFIX(x) CAMELLIA_PREFIX2(CAMELLIA_EXT_SYM_PREFIX,x) +#define Camellia_Ekeygen CAMELLIA_PREFIX(Camellia_Ekeygen) +#define Camellia_EncryptBlock CAMELLIA_PREFIX(Camellia_EncryptBlock) +#define Camellia_DecryptBlock CAMELLIA_PREFIX(Camellia_DecryptBlock) +#define camellia_decrypt128 CAMELLIA_PREFIX(camellia_decrypt128) +#define camellia_decrypt256 CAMELLIA_PREFIX(camellia_decrypt256) +#define camellia_encrypt128 CAMELLIA_PREFIX(camellia_encrypt128) +#define camellia_encrypt256 CAMELLIA_PREFIX(camellia_encrypt256) +#define camellia_setup128 CAMELLIA_PREFIX(camellia_setup128) +#define camellia_setup192 CAMELLIA_PREFIX(camellia_setup192) +#define camellia_setup256 CAMELLIA_PREFIX(camellia_setup256) +#endif /*CAMELLIA_EXT_SYM_PREFIX*/ + + +#ifdef __cplusplus +extern "C" { +#endif + +#define CAMELLIA_BLOCK_SIZE 16 +#define CAMELLIA_TABLE_BYTE_LEN 272 +#define CAMELLIA_TABLE_WORD_LEN (CAMELLIA_TABLE_BYTE_LEN / 4) + +typedef unsigned int KEY_TABLE_TYPE[CAMELLIA_TABLE_WORD_LEN]; + + +void Camellia_Ekeygen(const int keyBitLength, + const unsigned char *rawKey, + KEY_TABLE_TYPE keyTable); + +void Camellia_EncryptBlock(const int keyBitLength, + const unsigned char *plaintext, + const KEY_TABLE_TYPE keyTable, + unsigned char *cipherText); + +void Camellia_DecryptBlock(const int keyBitLength, + const unsigned char *cipherText, + const KEY_TABLE_TYPE keyTable, + unsigned char *plaintext); + + +#ifdef __cplusplus +} +#endif + +#endif /* HEADER_CAMELLIA_H */ --- grub2-1.98+20100804.orig/debian/changelog +++ grub2-1.98+20100804/debian/changelog @@ -0,0 +1,2608 @@ +grub2 (1.98+20100804-13) unstable; urgency=low + + * Backport from upstream: + - Don't add spurious RAID array members (closes: #605357). + + -- Colin Watson Tue, 04 Jan 2011 14:07:14 +0000 + +grub2 (1.98+20100804-12) unstable; urgency=low + + * Backport from upstream: + - Support big ext2 files (closes: #543924). + - Fix gettext quoting to work with bash as /bin/sh, and make echo + UTF-8-clean so that (at least) Catalan boot messages are displayed + properly (closes: #605615). + - Initialise next pointer when creating multiboot module (closes: + #605567). + - Fix PCI probing hangs by skipping remaining functions on devices that + do not implement function 0 (closes: #594967). + * Use semicolons rather than commas to separate size from model in debconf + disk and partition descriptions; commas are too easily confused with the + multiselect choice separator, and in particular make it impossible to + answer questions properly in the editor frontend (closes: #608449). + Unfuzzy all translations where possible. + + -- Colin Watson Tue, 04 Jan 2011 00:42:29 +0000 + +grub2 (1.98+20100804-11) unstable; urgency=low + + * Exit silently from zz-update-grub kernel hook if update-grub does not + exist (e.g. if grub-pc has been removed but not purged; closes: + #606184). + * Apply debconf template review by debian-l10n-english and mark several + more strings for translation, thanks to David Prévot and Justin B Rye + (closes: #605748). + * Unfuzzy some translations that were not updated in this round (thanks, + David Prévot; closes: #606921). + * Incorporate rewritten 05_debian_theme by Alexander Kurtz, which works + when /usr is inaccessible by GRUB (closes: #605705). + * Backport from upstream: + - Recognise DDF1 DM-RAID (closes: #603354). + + [ Updated translations ] + * Chinese (YunQiang Su). Closes: #606426 + * Indonesian (Arief S Fitrianto). Closes: #606431 + * Slovenian (Vanja Cvelbar). Closes: #606445 + * Swedish (Martin Bagge / brother). Closes: #606455 + * Ukrainian (Yatsenko Alexandr). Closes: #606538 + * Basque (Iñaki Larrañaga Murgoitio). Closes: #606644 + * Slovak (Slavko). Closes: #606663 + * Catalan (Jordi Mallach). + * Bulgarian (Damyan Ivanov). Closes: #606452 + * Persian (Morteza Fakhraee). Closes: #606672 + * Russian (Yuri Kozlov). Closes: #606753 + * Dutch (Paul Gevers). Closes: #606807 + * Japanese (Hideki Yamane). Closes: #606836 + * French (Christian Perrier). Closes: #606842 + * Czech (Miroslav Kure). Closes: #606854 + * Spanish (Francisco Javier Cuadrado). Closes: #606903 + * Portuguese (Tiago Fernandes / Miguel Figueiredo). Closes: #606908 + * German (Martin Eberhard Schauer). Closes: #606896 + + -- Colin Watson Sat, 18 Dec 2010 17:20:09 +0000 + +grub2 (1.98+20100804-10) unstable; urgency=low + + * fix_crash_condition_in_kfreebsd_loader.patch: Import from upstream. + Fixes crash condition in case kfreebsd_* commands are used after + kfreebsd has (gracefully) failed. + + -- Robert Millan Tue, 30 Nov 2010 19:40:11 +0100 + +grub2 (1.98+20100804-9) unstable; urgency=low + + [ Robert Millan ] + * Import from upstream: + - refuse_embedingless_cross_disk.patch: Refuse to do a cross-disk + embeddingless install rather than creating a broken install. + - fix_grub_install_error_msg.patch: Replace useless recomendation to + pass --modules with a recomendation to report a bug. + - message_refresh.patch: Make error messages visible again. (Closes: #605485) + + [ Jordi Mallach ] + * Update Catalan translation with latest file from the Translation Project. + + [ Updated translations ] + * Slovenian (Vanja Cvelbar). Closes: #604003 + * Dzongkha (dawa pemo via Tenzin Dendup). Closes: #604102 + + -- Robert Millan Tue, 30 Nov 2010 15:44:02 +0100 + +grub2 (1.98+20100804-8) unstable; urgency=low + + [ Robert Millan ] + * increase_disk_limit.patch: Increase SCSI/IDE disk limits to cope with + Sun Fire X4500. + * linux_mdraid_1x.patch: Support for Linux MD RAID v1.x. (Closes: #593652) + * yeeloong_boot_info.patch: On Yeeloong, pass machine type information + to Linux. + + [ Updated translations ] + * Portuguese fixed by Christian Perrier (variable names + were translated) + + -- Robert Millan Fri, 05 Nov 2010 23:43:15 +0100 + +grub2 (1.98+20100804-7) unstable; urgency=low + + [ Robert Millan ] + * zfs_fix_mkrelpath.patch: Replace with proper fix from upstream Bazaar. + (Closes: #601087) + + [ Updated translations ] + * Vietnamese (Clytie Siddall). Closes: #598327 + * Icelandic (Sveinn í Felli). Closes: #600126 + + -- Robert Millan Sun, 24 Oct 2010 16:35:37 +0200 + +grub2 (1.98+20100804-6) unstable; urgency=low + + [ Robert Millan ] + * zfs_v23.patch: Accept ZFS up to v23 (no changes required). + * fix_usb_boot.patch: Fix boot on USB devices, for BIOSes that + expose them as floppies. (Closes: #600580) + * zfs_fix_mkrelpath.patch: Fix grub-mkrelpath for non-root ZFS. + (Closes: #600578) + + [ Updated translations ] + * Kazakh (kk.po) by Baurzhan Muftakhidinov via Timur Birsh (closes: + #598188). + * Portuguese (pt.po) by Tiago Fernandes via Rui Branco (closes: #599767). + * Catalan (ca.po) by Jordi Mallach. + + -- Robert Millan Thu, 21 Oct 2010 23:45:23 +0200 + +grub2 (1.98+20100804-5) unstable; urgency=low + + [ Updated translations ] + * Hebrew (he.po) by Omer Zak and Lior Kaplan (closes: #593855). + * Romanian (ro.po) by ioan-eugen STAN (closes: #595727). + * Esperanto (eo.po) by Felipe Castro (closes: #596171). + + [ Colin Watson ] + * Make grub-efi-amd64 conflict with grub-pc as well as the other way + round. + * Backport upstream patches to fix DM-RAID support (closes: #594221, + LP: #634840). + + [ Robert Millan ] + * enable_zfs.patch: Fix grub-fstest build problem. + * zfs_fix_label_arg.patch: Fix kfreebsd_device initialization on ZFS + for non-main filesystems. + + -- Colin Watson Fri, 17 Sep 2010 23:45:10 +0100 + +grub2 (1.98+20100804-4) unstable; urgency=low + + [ Updated translations ] + * Italian (it.po) by Luca Monducci (closes: #593685). + * Finnish (fi.po) by Esko Arajärvi (closes: #593921). + + [ Colin Watson ] + * Run update-grub from kernel hooks if DEB_MAINT_PARAMS is unset, for + compatibility with old kernel packages. This may produce duplicate runs + of update-grub, but that's better than not running it at all (closes: + #594037). + + -- Colin Watson Mon, 23 Aug 2010 12:11:55 +0100 + +grub2 (1.98+20100804-3) unstable; urgency=low + + [ Updated translations ] + * Brazilian Portuguese (pt_BR.po) by Flamarion Jorge (closes: #592156). + * Asturian (ast.po) by Maacub (closes: #592313). + * Galician (gl.po) by Jorge Barreiro (closes: #592816). + + [ Robert Millan ] + * Backport ZFS bugfixes from upstream Bazaar: + - zfs_fix_chroot.patch: Fix breakage when running grub-probe inside chroot. + - zfs_fix_label_arg.patch: Fix grub-probe fs_label argument. + - zfs_fix_pathname.patch: Fix pathname for non-root ZFS filesystems. + - zfs_fix_segfault.patch: Fix segfault when /dev is not mounted. + + [ Colin Watson ] + * Escape single quotes when removing them from $mode in zz-update-grub, so + that this works when /bin/sh is bash (thanks, Will Dyson; closes: + #593242). + * Add support for ext2 root on GNU/kFreeBSD (thanks, Aurelien Jarno; + closes: #593467). + + -- Colin Watson Thu, 19 Aug 2010 18:21:45 +0100 + +grub2 (1.98+20100804-2) unstable; urgency=low + + [ Colin Watson ] + * Make /etc/kernel/postrm.d/zz-update-grub a real file rather than a + symlink (closes: #592076). + + [ Updated translations ] + * Norwegian Bokmål (nb.po) by Hans Nordhaug (closes: #591569). + + -- Colin Watson Sat, 07 Aug 2010 17:53:34 +0100 + +grub2 (1.98+20100804-1) unstable; urgency=low + + * New Bazaar snapshot. + - Fix grub-emu build on GNU/kFreeBSD (closes: #591490). + + [ Colin Watson ] + * Add kernel hook scripts and remove any uses of update-grub as a + postinst_hook or postrm_hook in /etc/kernel-img.conf (closes: #554175). + Thanks to Ben Hutchings for advice and to Harald Braumann for an early + implementation. + * Extend the existing GRUB_LEGACY_0_BASED_PARTITIONS handling to avoid + new-style partition naming when generating output for GRUB Legacy + (closes: #590554). + + [ Updated translations ] + * Slovak (sk.po) by Slavko (closes: #591458). + + -- Colin Watson Wed, 04 Aug 2010 04:48:11 +0100 + +grub2 (1.98+20100802-1) unstable; urgency=low + + * New Bazaar snapshot. + - Remove compatibility with terminal.mod prior to + terminal_input/terminal_output separation (LP: #519358). + - Enable `grub-probe -t device' resolution on ZFS. + - Don't use UUID for LVM root when generating Xen entries (closes: + #591093). + - Restore missing whitespace to commands' --help output (closes: + #590874). + - Select unique numbers for named RAID arrays, for use as keys in the + disk cache. + + [ Updated translations ] + * German (Martin Eberhard Schauer). Closes: #590108 + * Spanish (Francisco Javier Cuadrado). Closes: #590448 + * Traditional Chinese (Tetralet). Closes: #591191 + * Danish (Joe Hansen). Closes: #591223 + * Dutch (Paul Gevers). Closes: #590864 + * Japanese (Hideki Yamane). Closes: #591058 + + [ Robert Millan ] + * postinst.in: Fill in device size and model information on GNU/kFreeBSD, + using camcontrol. + * patches/enable_zfs.patch: New patch. Link ZFS from grub-extras into + grub-probe and grub-setup. + * control: Build-Depend on libzfs-dev and libnvpair-dev on kfreebsd-*. + + [ Colin Watson ] + * Offer RAID devices as GRUB installation targets if they contain /, + /boot, or /boot/grub. + + -- Colin Watson Tue, 03 Aug 2010 02:13:07 +0100 + +grub2 (1.98+20100722-1) unstable; urgency=low + + * New Bazaar snapshot. + - Don't count named RAID arrays when looking for unused array numbers. + + [ Colin Watson ] + * Merge from Ubuntu: + - grub-common Breaks: lupin-support (<< 0.30) due to a grub-mkimage + syntax change (lupin-support isn't in Debian, but this is harmless + anyway). + + -- Colin Watson Thu, 22 Jul 2010 14:33:34 +0100 + +grub2 (1.98+20100720-1) unstable; urgency=low + + * New Bazaar snapshot. + - Link to Info documentation on changes from GRUB Legacy in README + (closes: #502623). + - Add support for mdadm metadata formats 1.x (closes: #492897). + + [ Aaron M. Ucko ] + * Compare -trunk kernels earlier than numeric ABIs (closes: #568160). + + [ Colin Watson ] + * Remove /boot/grub/device.map, /boot/grub/grubenv, + /boot/grub/installed-version, and /boot/grub/locale/ on purge, if + permitted (closes: #547679). + * Convert from CDBS to dh. + * Use exact-version dependencies in grub2 and grub-efi, to reduce + potential confusion. + * Raise priority of grub-common and grub-pc to optional (also done in + archive overrides). + * Copy-edit debian/presubj. + * Use 'mktemp -t' rather than hardcoding /tmp (closes: #589537). + + [ Mario 'BitKoenig' Holbe ] + * Update /etc/grub.d/05_debian_theme to handle multiple entries in + GRUB_TERMINAL_OUTPUT (closes: #589322). + + [ Updated translations ] + * Simplified Chinese (zh_CN.po) by YunQiang Su (closes: #589013). + * Russian (ru.po) by Yuri Kozlov (closes: #589244). + * Swedish (sv.po) by Martin Bagge / brother (closes: #589259). + * Bulgarian (bg.po) by Damyan Ivanov (closes: #589272). + * Indonesian (id.po) by Arief S Fitrianto (closes: #589318). + * Arabic (ar.po) by Ossama M. Khayat. + * Basque (eu.po) by Iñaki Larrañaga Murgoitio (closes: #589489). + * Persian (fa.po) by Bersam Karbasion (closes: #589544). + * Czech (cs.po) by Miroslav Kure (closes: #589568). + * Belarusian (be.po) by Viktar Siarheichyk (closes: #589634). + + -- Colin Watson Wed, 21 Jul 2010 09:11:14 +0100 + +grub2 (1.98+20100710-1) unstable; urgency=low + + * New Bazaar snapshot. + - Handle degraded RAID arrays in grub-probe and grub-setup. + - Fix gfxterm pager handling. + + [ Fabian Greffrath ] + * Get value of correct debconf question when deciding whether to purge + /boot/grub (closes: #588331). + + [ Colin Watson ] + * Generate device.map in something closer to the old ordering (thanks, + Vadim Solomin). + + [ Updated translations ] + * Croatian (hr.po) by Josip Rodin, closes: #588350. + * French (fr.po) by Christian Perrier (closes: #588695). + + -- Colin Watson Mon, 12 Jul 2010 11:46:53 +0100 + +grub2 (1.98+20100706-1) unstable; urgency=low + + * New Bazaar snapshot. + - USB hub support. + - Fix GRUB_BACKGROUND configuration ordering. + - Fix corruption of first entry name in a reiserfs directory. + - Don't include MD devices when generating device.map (if you're using + RAID and upgraded through 1.98+20100702-1 or 1.98+20100705-1, you may + need to fix this up manually). + + -- Colin Watson Tue, 06 Jul 2010 18:06:40 +0100 + +grub2 (1.98+20100705-1) unstable; urgency=medium + + * New Bazaar snapshot. + - Bidi and diacritics support. + + Use terminfo for ieee1275 terminals (closes: #586953). + - Don't use empty grub_device in EFI grub-install (closes: #587838). + - Fix grub-setup core.img comparison when not embedding (thanks, Matt + Kraai and M. Vefa Bicakci; closes: #586621). + + * Update Source: in debian/copyright (thanks, Jörg Sommer). + * Convert by-id disk device names from device.map to traditional device + names for display (closes: #587951). + * Set urgency=medium. We've cleared out most of the apparent regressions + at this point, and #550704 is getting more and more urgent to fix in + testing. + + -- Colin Watson Mon, 05 Jul 2010 02:09:58 +0100 + +grub2 (1.98+20100702-1) unstable; urgency=low + + * New Bazaar snapshot. + - Use video functions in Linux loader rather than hardcoding UGA; load + all available video backends (closes: #565576, probably). + - Add support for initrd images on Fedora 13. + - Output grub.cfg stanzas for Xen (closes: #505517). + - Add 'cat --dos' option to treat DOS-style "\r\n" line endings as + simple newlines (closes: #586358). + - Change grub-mkdevicemap to emit /dev/disk/by-id/ names where possible + on Linux. + - Return CF correctly in mmap e820/e801 int15 hook (closes: #584846). + - The info documentation now has no broken references, although of + course it could still use more work (closes: #553460). + - Support GRUB_BADRAM in grub-mkconfig. + - Skip LVM snapshots (closes: #574863). + + [ Colin Watson ] + * Mention grub-rescue-usb.img in grub-rescue-pc description (closes: + #586462). + * Add instructions for using grub-rescue-usb.img (closes: #586463). + * Remove /usr/lib/grub/mips-* from grub-common rather than the incorrect + /usr/lib/grub/mipsel-*, so that it stops clashing with grub-yeeloong; + add a versioned Replaces to grub-yeeloong just in case (closes: + #586526). + * Remove qemu-system build-dependency on hurd-i386, where it doesn't seem + to exist. Disable tests if qemu-system-i386 isn't available. + * Mark "upgrade-from-grub-legacy" paragraph in + grub-pc/chainload_from_menu.lst as untranslatable. + * Update Homepage field (thanks, Sedat Dilek). + * On Linux, if /boot/grub/device.map exists on upgrade to this version, + regenerate it to use stable device names in /dev/disk/by-id/. If it had + more than one entry, then display a critical-priority debconf note + (sorry, but it's better than silently breaking boot menu entries) + advising people to check custom boot menu entries and update them if + necessary (closes: #583271). + * Use 'set -e' rather than '#! /bin/sh -e' or '#! /bin/bash -e', to avoid + accidents when debugging with 'sh -x'. + * Store grub-pc/install_devices as persistent device names under + /dev/disk/by-id/ (closes: #554790). Migrate previous device names to + that, with explicit confirmation in non-trivial cases to make sure we + got the right ones. If the devices we were told to install to ever go + away, ask again. (This is based on the implementation in Ubuntu.) + * If grub-install fails during upgrade-from-grub-legacy, allow the user to + try again with a different device, but failing that cancel the upgrade + (closes: #587790). + * Remove numbering from patch files. The order is now explicit in a quilt + series file, and renumbering from time to time is tedious. + + [ Updated translations ] + * Ukrainian (uk.po) by Yatsenko Alexandr / Borys Yanovych (closes: + #586611). + * Indonesian (id.po) by Arief S Fitrianto (closes: #586799). + * Swedish (sv.po) by Martin Bagge (closes: #586827). + * Persian (fa.po) by Behrad Eslamifar (closes: #587085). + * French (fr.po) by Christian Perrier (closes: #587383). + * Galician (gl.po) by Jorge Barreiro (closes: #587796). + + [ Robert Millan ] + * Add commented GRUB_BADRAM example in debian/default/grub. + + -- Colin Watson Fri, 02 Jul 2010 17:42:56 +0100 + +grub2 (1.98+20100617-1) unstable; urgency=low + + * New Bazaar snapshot. + - Fix i386-pc prefix handling with nested partitions (closes: #585068). + + * When running grub-pc.postinst from upgrade-from-grub-legacy, tell it to + disregard the fact that /boot/grub/stage2 and /boot/grub/menu.lst still + exist (closes: #550477). + * Touch a marker file when grub-install is run but GRUB Legacy files are + still around. If that marker file is present, pretend that GRUB Legacy + files are missing when upgrading. + * If GRUB Legacy files are present when upgrading, scan boot sectors of + all disks for GRUB 2. If we find GRUB 2 installed anywhere, then ask + the user if they want to finish conversion to GRUB 2, and warn them that + not doing so may render the system unbootable (closes: #586143). Thanks + to Sedat Dilek for helping to narrow down this bug. + * Leaving grub-pc/install_devices empty makes sense in some situations, + but more often than not is a mistake. On the other hand, automatically + selecting all disk devices would upset some people too. Compromise by + simply asking for explicit confirmation if grub-pc/install_devices is + left empty, defaulting to false so that simply selecting all the + defaults in debconf can't leave you with an unbootable system (closes: + #547944, #557425). + + -- Colin Watson Sat, 19 Jun 2010 01:31:40 +0100 + +grub2 (1.98+20100614-2) unstable; urgency=low + + * Build-depend on gcc-4.4-multilib on i386 and kopensolaris-i386 too, in + order to build grub-efi-amd64. + * Ignore non-option arguments in grub-mkconfig (closes: #586056). + + -- Colin Watson Wed, 16 Jun 2010 17:58:48 +0100 + +grub2 (1.98+20100614-1) unstable; urgency=low + + * New Bazaar snapshot. + - Make target-related error messages from grub-mkimage slightly more + helpful (closes: #584415). + - Fix underquoting that broke savedefault (thanks, Mario 'BitKoenig' + Holbe; closes: #584812). + - Expand 'info grub' substantially, including a new section on + configuring authentication (closes: #584822). + - Give all manual pages proper NAME sections (closes: #496706). + + * Update 915resolution from grub-extras: + - Fix a hang with 945GME (thanks, Sergio Perticone; closes: #582142). + + [ Colin Watson ] + * Disable grub-emu on sparc for the time being. We're currently trying to + use TARGET_* flags to build it, which won't work. + * Don't build-depend on libsdl1.2-dev on hurd-i386. Although + libsdl1.2-dev exists there, it's currently uninstallable due to missing + libpulse-dev, and we can happily live without it for now. + * kfreebsd-amd64 needs gcc-4.4-multilib too (closes: #585668). + * Warn and return without error from prepare_grub_to_access_device if + /boot is a dm-crypt device (thanks, Marc Haber; closes: #542165). + * Make /etc/grub.d/05_debian_theme usable by shells other than bash + (thanks, Alex Chiang; closes: #585561). + * Remove grub-mkisofs leftovers from debian/copyright. + * Fix reversed sense of DEB_BUILD_OPTIONS=nocheck handling. + * Build-depend on qemu-system for grub-pc tests. + + -- Colin Watson Tue, 15 Jun 2010 12:45:35 +0100 + +grub2 (1.98+20100602-2) unstable; urgency=low + + * Only build-depend on libdevmapper-dev on Linux architectures. + * Don't build-depend on libusb-dev on hurd-i386, where it doesn't seem to + be available. + * Fix printf format mismatch in disk/usbms.c (closes: #584474). + * Fix verbose error output when device-mapper isn't supported by the + running kernel (closes: #584196). + * Prepend "part_" to partmap module names in grub-mkconfig, in line with + grub-install (closes: #584426). + + -- Colin Watson Fri, 04 Jun 2010 14:01:58 +0100 + +grub2 (1.98+20100602-1) unstable; urgency=low + + * New Bazaar snapshot. + - Add btrfs probing support, currently only in the single-device case + (closes: #540786). + - Fix grub-emu build on mips/powerpc/sparc. + - Add safety check to make sure that /boot/grub/locale exists before + trying to probe it (closes: #567211). + - Several 'info grub' improvements, including a new section on + configuration file generation using grub-mkconfig which documents the + available keys in /etc/default/grub (closes: #497085). + - Many USB fixes. + + [ Colin Watson ] + * Reorganise configure and build targets in debian/rules to use stamp + files. configure/* never existed and build/* was always a directory, so + make never considered either of them up to date (closes: #450505). + * Remove config.h.in from AUTOGEN_FILES, since autoheader doesn't + necessarily update it. + * Remove conf/gcry.mk from AUTOGEN_FILES, and conf/gcry.rmk from their + dependencies. autogen.sh runs util/import_gcry.py after autoconf et al, + so conf/gcry.rmk's timestamp will be later than some of the + autogenerated outputs. + * Go back to shipping rescue images in the grub-rescue-pc .deb itself + rather than generating them in the postinst. This means that (a) they + get removed when the package is removed (closes: #584176); (b) they are + listed in package metadata, as is proper for files in /usr (closes: + #584218); (c) grub-rescue-pc can potentially be used as a + build-dependency for other packages that need to build GRUB images into + installation media etc., without having to build-depend on grub-pc which + isn't coinstallable with other platform variants and does invasive + things in its postinst. + * Add grub-mkrescue patch from Thomas Schmitt to allow reducing the size + of xorriso-created images. Use this to ensure that + grub-rescue-floppy.img fits well within size limits (closes: #548320). + + -- Colin Watson Thu, 03 Jun 2010 11:24:41 +0100 + +grub2 (1.98+20100527-2) unstable; urgency=low + + * Always override statically-linked-binary Lintian tag for kernel.img; + dynamic linking makes no sense here. + * kernel.img is stripped upstream where it can be, but override Lintian's + error for the cases where it can't. + * Override binary-from-other-architecture for kernel.img as well as *.mod + when building grub-efi-amd64 on i386. + + -- Colin Watson Tue, 01 Jun 2010 13:48:14 +0100 + +grub2 (1.98+20100527-1) unstable; urgency=low + + * New Bazaar snapshot. + - Support multiple terminals in grub-mkconfig, e.g. + GRUB_TERMINAL='serial console' (closes: #506707). + - Speed up consecutive hostdisk operations on the same device (closes: + #508834, #574088). + - Fix grammar error in grub-setup warning (closes: #559005). + - Use xorriso for image creation rather than embedding a modified copy + of mkisofs (closes: #570156). + - Issue an error rather than segfaulting if only some LVM component + devices are in device.map (closes: #577808). + - Fix typo in make_device_name which caused grub-probe problems on + systems with BSD disk labels (closes: #578201). + - Add DM-RAID probe support (closes: #579919). + - Include all gnumach kernels on Hurd, not just gnumach and gnumach.gz + (closes: #581584). + + [ Colin Watson ] + * Restore TEXTDOMAINDIR correction in grub.d files, lost by mistake in a + merge. Noticed by Anthony Fok. + * Don't fail on purge if the ucf association has already been taken over + by a different grub package (closes: #574176). + * Add debian/grub-extras/*/conf/*.mk to AUTOGEN_FILES. + * Remove support for the lpia architecture, now removed from Ubuntu. + * Conflict with grub (<< 0.97-54) as well as grub-legacy. + * Build-depend on libdevmapper-dev for DM-RAID probe support. + * Switch to quilt. + * Suggest xorriso (>= 0.5.6.pl00) in grub-common, since grub-mkrescue now + needs it. Depend on it in grub-rescue-pc. + * Move grub-mkimage to grub-common, now that it only has one + implementation. + * Clean up temporary files used while building grub-firmware-qemu. + * Make grub-probe work with symlinks under /dev/mapper (closes: #550704). + * When upgrading a system where GRUB 2 is chainloaded from GRUB Legacy and + upgrade-from-grub-legacy has not been run, upgrade the chainloaded image + rather than confusing the user by prompting them where they want to + install GRUB (closes: #546822). + * Build-depend on libsdl1.2-dev for SDL support in grub-emu. + * Don't leak debconf's file descriptor to update-grub, so that the LVM + tools called from os-prober don't complain about it (closes: #549976). + Other leaks are not this package's fault, may not be bugs at all, and in + any case os-prober 1.36 suppresses the warnings. + * Build-depend on flex (>= 2.5.35). + * Build-depend on gcc-4.4-multilib on amd64. + + [ Updated translations ] + * Slovenian (sl.po) by Vanja Cvelbar (closes: #570110). + * Vietnamese (vi.po) by Clytie Siddall (closes: #574578). + * Tamil (ta.po) by Tirumurti Vasudevan (closes: #578282). + * Portuguese (pt.po) by Tiago Fernandes (closes: #580140). + * Romanian (ro.po) by Eddy Petrișor / Andrei Popescu (closes: #583185). + + -- Colin Watson Tue, 01 Jun 2010 11:24:38 +0100 + +grub2 (1.98-1) unstable; urgency=low + + * New upstream release (closes: #572898). + - Fix grub-script-check to handle empty lines (closes: #572302). + - Fix offset computation when reading last sectors. Partition reads and + writes within and outside a partition (closes: #567469, #567884). + - Fix script execution error handling bug that meant that an error in a + menuentry's last statement caused the whole menuentry to fail (closes: + #566538, LP: #464743). + - Support GRUB_GFXPAYLOAD_LINUX (closes: #536453, LP: #416772). + + [ Samuel Thibault ] + * Add GRUB_INIT_TUNE example to /etc/default/grub (closes: #570340). + + [ Colin Watson ] + * Build-depend on libusb-dev so that grub-emu is reliably built with USB + support (closes: #572854). + * Update directions in debian/rules on exporting grub-extras to account + for it being maintained in Bazaar nowadays. + * Add myself to Uploaders. + * Acknowledge NMUs, thanks to Torsten Landschoff and Julien Cristau. + + -- Colin Watson Tue, 09 Mar 2010 13:25:35 +0000 + +grub2 (1.98~20100128-1.2) unstable; urgency=low + + * Non-maintainer upload. + * Stop setting gfxpayload=keep (closes: #567245). + + -- Julien Cristau Sun, 14 Feb 2010 20:37:51 +0100 + +grub2 (1.98~20100128-1.1) unstable; urgency=low + + * Non-maintainer upload. + * Apply trivial patch (already merged upstream) fixing the offset + computation for non-cached reads (closes: #567637). + + -- Torsten Landschoff Mon, 08 Feb 2010 22:15:01 +0100 + +grub2 (1.98~20100128-1) unstable; urgency=low + + * New Bazaar snapshot. + - Fix corruption problem when reading files from CDROM. (Closes: #567219) + + [ Felix Zielcke ] + * Never strip kernel.img in rules. Upstream already does it when it + can be done. (Closes: #561933) + * Bump Standards-Version to 3.8.4. + + [ Robert Millan ] + * rules: Run the testsuite (make check) when building grub-pc. + + -- Robert Millan Thu, 28 Jan 2010 16:28:45 +0100 + +grub2 (1.98~20100126-1) unstable; urgency=low + + * New Bazaar snapshot. + - Includes mipsel-yeeloong port. + + [ Robert Millan ] + * config.in: Lower priority of grub2/linux_cmdline_default. + + [ Felix Zielcke ] + * Drop `CFLAGS=-O0' workaround on powerpc. Should be fixed correctly now. + * Ship grub-bin2h and grub-script-check in grub-common. + * Terminate NEWS.Debian with a blank line like lintian would suggest + if that check would be working correctly. + + -- Felix Zielcke Tue, 26 Jan 2010 19:26:25 +0100 + +grub2 (1.98~20100115-1) unstable; urgency=low + + * New Bazaar snapshot. + - Includes savedefault / grub-reboot branch. + - Includes Multiboot video support (from latest 1.x draft). + + -- Robert Millan Fri, 15 Jan 2010 18:15:26 +0100 + +grub2 (1.98~20100110-1) unstable; urgency=low + + * New Bazaar snapshot. + + [ Robert Millan ] + * grub-rescue-pc.postinst: Fix image generation during upgrades. + (Closes: #564261) + + -- Robert Millan Sun, 10 Jan 2010 02:45:52 +0100 + +grub2 (1.98~20100107-1) unstable; urgency=low + + * New Bazaar snapshot. + + [ Robert Millan ] + * grub-rescue-pc.postinst: Use grub-mkrescue for floppy as well. + + [ Updated translations ] + * Chinese (zh_TW.po) by Tetralet. (Closes: #564044) + + -- Robert Millan Thu, 07 Jan 2010 17:56:10 +0100 + +grub2 (1.98~20100101-1) unstable; urgency=high + + * New Bazaar snapshot. + - Fix FTBS on sparc. + + [ Robert Millan ] + * rules: Auto-update version from debian/changelog. + + [ Felix Zielcke ] + * Add -O0 to CFLAGS on powerpc to avoid the `_restgpr_31_x in boot is + not defined' FTBFS. + + -- Felix Zielcke Fri, 01 Jan 2010 00:31:37 +0100 + +grub2 (1.98~20091229-1) unstable; urgency=high + + * New Bazaar snapshot. + - Fix slowness when $prefix uses an UUID. + (Closes: #541145, LP: #420933) + - Correctly set TARGET_CFLAGS. (Closes: #562953) + + [ Robert Millan ] + * grub-rescue-pc.postinst: Build USB rescue image. + * rules: Invoke configure with relative path. This makes binaries smaller, + since dprintf strings are constructed using this path. + + [ Felix Zielcke ] + * Urgency=high due to RC bug fix. + * Fix version comparison in grub-common.preinst for handling obsolete + /etc/grub.d/10_freebsd. (Closes: #562921) + + -- Felix Zielcke Tue, 29 Dec 2009 16:05:00 +0100 + +grub2 (1.98~20091222-1) unstable; urgency=low + + * New Baazar snapshot. + - Make 30_os-prober again dash compatible. (Closes: #562034) + + -- Felix Zielcke Tue, 22 Dec 2009 12:50:57 +0100 + +grub2 (1.98~20091221-1) unstable; urgency=low + + * New Bazaar snapshot. + - Fix search command failing on some broken BIOSes. (Closes: #530357) + + [ Felix Zielcke ] + * Add Replaces:/Conflicts: grub-linuxbios to grub-coreboot. (Closes: #561811) + * Delete obsolete /etc/grub.d/10_freebsd if it has not been modified, + else disable it. (Closes: #560346) + + -- Robert Millan Mon, 21 Dec 2009 22:04:17 +0100 + +grub2 (1.98~20091210-1) unstable; urgency=low + + * Version bump. + + -- Robert Millan Mon, 14 Dec 2009 14:52:59 +0100 + +grub2 (1.97+20091210-1) unstable; urgency=low + + * New Bazaar snapshot. + - patches/02_fix_mountpoints_in_mkrelpath.diff: Remove (merged). + - Fixes FTBFS on powerpc (again) and sparc. + - patches/903_grub_legacy_0_based_partitions.diff: Resync (merged into + debian branch). + + * Fix dpkg dependency for lenny compatibility. + + -- Robert Millan Thu, 10 Dec 2009 00:35:20 +0100 + +grub2 (1.97+20091130-1) unstable; urgency=low + + * New Bazaar snapshot. + * Enable ntldr-img from grub-extras. + + -- Robert Millan Mon, 30 Nov 2009 02:33:03 +0100 + +grub2 (1.97+20091125-2) unstable; urgency=low + + [ Updated translations ] + * Bulgarian (bg.po) by Damyan Ivanovi (Closes: #558039) + + [ Robert Millan ] + * control: Remove genisoimage from Build-Depends/Suggests (no longer + used). + * grub.d/05_debian_theme: Make output string distro-agnostic. + + [ Felix Zielcke ] + * patches/02_fix_mountpoints_in_mkrelpath.diff: New patch to handle + mount points like the old shell function did. (Closes: #558042) + + -- Felix Zielcke Sun, 29 Nov 2009 21:38:00 +0100 + +grub2 (1.97+20091125-1) unstable; urgency=low + + [ Robert Millan ] + * New upstream snapshot. + - Fixes script parser load error. + + * Add gettext to Build-Depends and gettext-base to grub-common's + Depends. + + -- Felix Zielcke Wed, 25 Nov 2009 19:22:51 +0100 + +grub2 (1.97+20091124-1) unstable; urgency=low + + * New upstream snapshot. + - Fix grub-mkisofs related FTBFS on powerpc. (Closes: #557704) + - Create fake GRUB devices for devices not listed in device.map. + This also makes dmraid and multipath work as long as + search --fs-uuid works. (Closes: #442382, #540549, LP: #392136) + - rules: grub-emu is now built as a port. + + [ Felix Zielcke ] + * Change the bt-utf-source build dependency to xfonts-unifont. It's + more complete, better maintained and grub-mkfont supports actually + more then BDF fonts as input, thanks to libfreetype. + * Use grub-probe to get the GRUB device of /boot/grub instead of + passing (hd0) to grub-install when creating the core.img with + chainloading. This avoids the (UUID=) hack slowness in case + /boot/grub is on a different disk then (hd0) in device.map. + * patches/903_grub_legacy_0_based_partitions.diff: Update. + * Add a build dependency on automake and python. + * Set TARGET_CC=$(CC) to really use gcc-4.4 everywhere. Also pass it + and CC as arguments to ./configure instead of env vars so they get + preserved. + * Ship grub-mkrelpath in grub-common. + * Ship the locale files in grub-common. + * Add a dependency on 'dpkg (>= 1.15.4) | install-info' for grub-common + as recommended by Policy and lintian. + + + -- Felix Zielcke Tue, 24 Nov 2009 21:20:00 +0100 + +grub2 (1.97+20091115-1) unstable; urgency=low + + * New upstream snapshot. + - Fix security problem with password checking. (Closes: #555195) + - Fix the generated GNU/Hurd menu entries and also add support for + it in 30_os-prober. (Closes: #555188) + - Same grub-mkrescue for grub-pc and grub-coreboot, used by + grub-rescue-pc during postinst now. (Closes: #501867) + + [ Felix Zielcke ] + * Ship grub-mkisofs in grub-common. + * patches/002_grub.d_freebsd.in.diff: Remove (merged upstream). + * patches/906_grub_extras.diff: Remove. Superseded by GRUB_CONTRIB variable + in recent upstream trunk. + * rules: Export GRUB_CONTRIB to enable grub-extras add-ons. + * Pass --force to grub-install in the postinst. (Closes: #553415) + * Don't strip debug symbols from grub-emu. It's meant for debugging + and with them it's much more useful. + * Ship grub-mkfloppy in grub-pc. + * Revert the Replaces: grub-common to (<= 1.96+20080413-1) on the + grub-pc package. It was wrongly modified long ago. + + [ Robert Millan ] + * copyright: Document mkisofs. + * control: Update Vcs- fields (moved to Bazaar). + * rules: Update debian/legacy/update-grub rule to Bazaar. + + -- Felix Zielcke Sun, 15 Nov 2009 19:13:31 +0100 + +grub2 (1.97-1) unstable; urgency=low + + [ Robert Millan ] + * patches/905_setup_force.diff: Remove, no longer needed as of + grub-installer >= 1.47. + * grub.d/05_debian_theme: Attempt to source grub_background.sh from + desktop-base (Needed for #495282, #495616, #500134, see also + #550984). + + [ Felix Zielcke ] + * Add a build dependency on texinfo. + * Fix little typo in /etc/default/grub. (LP: #457703) + + [ Updated translations ] + * Finnish (fi.po) by Esko Arajärvi. (Closes: #551912) + + -- Felix Zielcke Sun, 25 Oct 2009 19:50:21 +0100 + +grub2 (1.97~beta4-1) unstable; urgency=low + + * New upstream beta release. + + [ Felix Zielcke ] + * Change the Recommends: os-prober to (>= 1.33). + * patches/907_grub.cfg_400.diff: Really add it. Somehow it was a 0 byte file. + (Closes: #547409) + * Convert newlines back to spaces when parsing kopt from + GRUB Legacy's menu.lst, before giving the value to Debconf. + Thanks to Colin Watson. (Closes: #547649) + * Ship the info docs in grub-common. (Closes: #484074) + * Remove generated /usr/share/info/dir* files. + * Update the presubj bug file and also install it for grub-common. + + [ Robert Millan ] + * Enable ZFS and 915resolution in grub-extras (now requires explicit + switch). + * grub-common conflicts with grub-doc (<< 0.97-32) and grub-legacy-doc + (<< 0.97-59). + * Move grub-emu to a separate package. + + [ Updated translations ] + * Japanese (ja.po) by Hideki Yamane. (Closes: #549599) + + -- Robert Millan Mon, 05 Oct 2009 20:03:04 +0200 + +grub2 (1.97~beta3-1) unstable; urgency=high + + * New upstream beta release. + - Make it more clear how to use /etc/grub.d/40_custom. (Closes: #545153) + - fix a serious memory corruption in the graphical subsystem. + (Closes: #545364, #544155, #544639, #544822, LP: #424503) + - patches/003_grub_probe_segfault.diff: Remove (merged). + + * Change the watch file so upstream beta releases are recognized. + * Include /etc/default/grub in bug reports. + * Recommend os-prober (>= 1.32). (Closes: #491872) + * Change the gcc-multilib [sparc] build dependency to gcc-4.4-multilib + [sparc]. + * patches/907_grub.cfg_400.diff: New patch to make grub.cfg again mode + 444 if it does not contain a password line. + * Use `su' in the bug reporting script to read grub.cfg in case the user + is not allowed to read it. + * Readd grub-pc/kopt-extracted template. + + [ Updated translations ] + * Brazilian Portuguese (pt_BR.po) by Flamarion Jorge. + * Japanese (ja.po) by Hideki Yamane. (Closes: #545331) + * Spanish (es.po) by Francisco Javier Cuadrado. (Closes: #545566) + * Italian (it.po) by Luca Monducci. (Closes: #546035) + + -- Felix Zielcke Sat, 12 Sep 2009 15:28:20 +0200 + +grub2 (1.97~beta2-2) unstable; urgency=low + + [ Updated translations ] + * Dutch (nl.po) by Paul Gevers. (Closes: #545050) + + [ Felix Zielcke ] + * Move GRUB Legacy's grub-set-default to /usr/lib/grub-legacy in + preparation for GRUB 2's grub-set-default. + * Remove password lines in bug script. + + [ Robert Millan ] + * Do not conflict with `grub' dummy package (this prevented upgrades). + * patches/003_grub_probe_segfault.diff: Disable file test codepath, which + wasn't normally used before. + + -- Felix Zielcke Sat, 05 Sep 2009 00:27:22 +0200 + +grub2 (1.97~beta2-1) unstable; urgency=low + + * New upstream beta release. + - Fix loading of FreeBSD modules. (Closes: #544305) + + [ Updated translations ] + * French (fr.po) by Christian Perrier. (Closes: #544320) + * Czech (cs.po) by Miroslav Kure. (Closes: #544327) + * Belarusian (be.po) by Hleb Rubanau. + * Arabic (ar.po) by Ossama M. Khayat. + * Catalan (ca.po) by Juan Andrés Gimeno Crespo. + * Russian (ru.po) by Yuri Kozlov. (Closes: #544730) + * Swedish (sv.po) by Martin Ågren. (Closes: #544759) + * Brazilian Portuguese (pt_BR.po) by Flamarion Jorge. (Closes: #544810) + * German (de.po) by Helge Kreutzmann. (Closes: #544912) + + [ Robert Millan ] + * Build with GCC 4.4. + + -- Robert Millan Fri, 04 Sep 2009 14:40:20 +0200 + +grub2 (1.97~beta1-1) unstable; urgency=low + + * New upstream beta release. + + [ Updated translations ] + * German (de.po) by Helge Kreutzmann. (Closes: #544261) + * Asturian (ast.po) by Marcos. + * Georgian (ka.po) by Aiet Kolkhi. + + [ Robert Millan ] + * Merge config, templates, postinst, postrm, dirs and install files + into a single source. + * Disable Linux-specific strings on GNU/kFreeBSD. Enable translations + in grub2/linux_cmdline_default. Add grub2/kfreebsd_* strings (still + unused). + + -- Felix Zielcke Sun, 30 Aug 2009 18:01:40 +0200 + +grub2 (1.96+20090829-1) unstable; urgency=low + + * New SVN snapshot. + - Fix filesystem mapping on GNU/kFreeBSD. (Closes: #543950) + + * New grub-extras SVN snapshot. + - Add 915resolution support to the GMA500 (poulsbo) graphics chipset. + Thanks to Pedro Bulach Gapski. (Closes: #543917) + + * Use `cp -p' to copy /usr/share/grub/default/grub to the temporary + file to preverse permissions. + * Remove also efiemu files from /boot/grub on purge if requested. + * Check that GRUB_CMDLINE_LINUX and GRUB_CMDLINUX_LINUX_DEFAULT is at + the start of line in *.postinst. + * Don't check that $GRUB_CMDLINE_LINUX{,DEFAULT} are non empty strings + in *.config. + * Add empty GRUB_CMDLINE_LINUX to /usr/share/grub/default/grub. + * Factorise the editing of the temporary file. Thanks to Martin F + Krafft. + * Read in /etc/default/grub in *.config files. + + [ Updated translations ] + * French (fr.po) by Christian Perrier. (Closes: #544023) + * Russian (ru.po) by Yuri Kozlov. (Closes: #544077) + * Italian (it.po) by Luca Monducci. (Closes: #544200) + + -- Felix Zielcke Sat, 29 Aug 2009 17:01:17 +0200 + +grub2 (1.96+20090826-3) unstable; urgency=low + + * Add missing quotes in grub-pc.config and *.postinst. + + -- Felix Zielcke Wed, 26 Aug 2009 19:14:23 +0200 + +grub2 (1.96+20090826-2) unstable; urgency=low + + * Really use the correct templates in grub-pc.config. ARGS. + + -- Felix Zielcke Wed, 26 Aug 2009 14:10:41 +0200 + +grub2 (1.96+20090826-1) unstable; urgency=low + + * New SVN snapshot. + + * Use the right templates in grub-pc.config. (Closes: #543615) + + -- Felix Zielcke Wed, 26 Aug 2009 11:00:36 +0200 + +grub2 (1.96+20090825-1) unstable; urgency=low + + * New SVN snapshot. + - Enable gfxterm only if there's a suitable video backend and don't + print an error if not. (Closes: #520846) + + [ Felix Zielcke ] + * Copy unicode.pf2 instead of ascii.pf2 to /boot/grub in grub-pc + postinst (Closes: #542314). + * Update Standards version to 3.8.3. + * Use DEB_HOST_ARCH_CPU for the generation of the lintian overrides. + * Fix calling the grub-pc/postrm_purge_boot_grub template in + grub-pc.postinst. + * Handle GRUB_CMDLINE_LINUX and GRUB_CMDLINE_LINUX_DEFAULT via + debconf. Thanks to Martin F. Krafft and Colin Watson for idea and + hints. + * Use ucfr --force when /etc/default/grub is registered to a grub-* package. + * Use #!/bin/sh in *.config and fix a small bashism in grub-pc.config. + + [ Robert Millan ] + * patches/907_terminal_output_workaround.diff: Remove. It seems that + it wasn't really necessary. + * grub-pc.postinst: Avoid printing an error if /etc/kernel-img.conf + doesn't exist, because it is misleading. We simply refrain from + fixing it and move along. + * grub-pc.postinst: Don't schedule generation of grub.cfg via "grub-install" + code path unless we actually run grub-install. + * grub-pc.postinst: Only copy unicode.pf2 and moreblue-orbit-grub.png when + /boot/grub/grub.cfg is scheduled to be generated. + * legacy/upgrade-from-grub-legacy: Reset grub-pc/install_devices. + Thanks Colin Watson. (Closes: #541230) + + -- Felix Zielcke Tue, 25 Aug 2009 21:45:24 +0200 + +grub2 (1.96+20090808-1) unstable; urgency=low + + * New SVN snapshot. + - Fix XFS with inode size different then 256. (Closes: #528761) + - Add support for multiple LVM metadata areas. (LP: #408580) + - patches/008_dac_palette_width.diff: Remove. (merged) + - Prefer unicode over ascii font. (LP: #352034) + + [ Felix Zielcke ] + * Fix the generation of the lintian override for efiemu64.o. + * Remove the Conflicts dmsetup. + * Use ?= for setting DEB_HOST_ARCH. + * Document GRUB_DISABLE_LINUX_RECOVERY in /etc/default/grub. + (Closes: #476536 LP: #190207) + * Add docs/grub.cfg to examples. + * patches/01_uuids_and_lvm_dont_play_along_nicely.diff: Updated to + also disable UUIDs on LVM over RAID. + * Add a debconf prompt to remove all grub2 files from /boot/grub on + purge. (Closes: #527068, #470400) + * Move the Suggests: os-prober from grub-pc to grub-common. + * patches/901_dpkg_version_comparison.diff: Updated. + * Update the Replaces on grub-common for the other packages to (<< + 1.96+20080831-1). (Closes: #540492) + + [ Robert Millan ] + * Reorganize grub-pc.{config,postinst} logic. The idea being that if there's + no trace of GRUB Legacy, the grub-pc/install_devices template will be + shown even if this is the first install. + * When setting grub-pc/install_devices, obtain input dynamically from + grub-mkdevicemap (rather than devices.map). (Closes: #535525) + * Add a note to grub-pc/install_devices template that it's also possible + to install GRUB to a partition boot record. + * patches/002_grub.d_freebsd.in.diff: New patch. Reimplement + 10_freebsd.in to handle multiple kernel versions & acpi.ko. + + -- Robert Millan Mon, 10 Aug 2009 18:49:52 +0200 + +grub2 (1.96+20090725-1) unstable; urgency=high + + * New SVN snapshot. + - Don't add drivemap call with Windows Vista/7. It breaks Win 7. + (LP: #402154) + + [ Felix Zielcke ] + * Don't build grub-efi-amd64 on hurd-i386. + * Change DEB_BUILD_ARCH to DEB_HOST_ARCH in the check for sparc. + * Don't add the lintian override for kernel.img for sparc and grub-pc. + * Add a lintian override for binary-from-other-architecture for + grub-efi-amd64 and grub-pc on i386. + * Use wildcards in the lintian overrides. + * Add a Conflicts/Replaces for all packages except grub-common. + (Closes: #538177) + + [ Robert Millan ] + * 008_dac_palette_width.diff: New patch. Fix blank screen when booting + Linux with vga= parameter set to a packed color mode (<= 8-bit). + (Closes: #535026) + * Set urgency=high because #535026 affects 1.96+20090709-1 which is in + testing now. + * patches/907_terminal_output_workaround.diff: Work around recent regression + with terminal_output command (not critical, just breaks gfxterm). + + -- Robert Millan Sat, 25 Jul 2009 19:00:53 +0200 + +grub2 (1.96+20090721-4) unstable; urgency=low + + * Place grub-ofpathname only in grub-common. (Closes: #537999) + + -- Felix Zielcke Wed, 22 Jul 2009 13:38:24 +0200 + +grub2 (1.96+20090721-3) unstable; urgency=low + + * Don't strip kernel.img on sparc. + * Suggest efibootmgr on grub-efi-{amd64,ia32}. + * Pass --disable-grub-fstest to configure. (Closes: #537897) + + -- Felix Zielcke Tue, 21 Jul 2009 21:46:01 +0200 + +grub2 (1.96+20090721-2) unstable; urgency=low + + * Add back Conflicts/Replaces grub. + + -- Felix Zielcke Tue, 21 Jul 2009 11:24:45 +0200 + +grub2 (1.96+20090721-1) unstable; urgency=low + + * New SVN snapshot. + + * Change License of my update-grub(8) and update-grub2(8) manpages to + GPL3+ to match new copyright file. + * Merge from Ubuntu: Don't build grub-efi-amd64 on lpia. + * Don't pass `--enable-efiemu' to configure. On kfreebsd-i386 it won't + compile and it should be now auto detected if it's compilable. + (Closes: #536783) + * Don't build grub-efi-amd64 on kfreebsd-i386. It lacks 64bit compiler + support. + * Rename the lintian override for kernel.elf to kernel.img. + * Strip kernel.img not kernel.elf, but not in the case of grub-pc. + * Rename the Conflicts/Replaces grub to grub-legacy. (Closes: #537824) + + -- Felix Zielcke Tue, 21 Jul 2009 10:50:20 +0200 + +grub2 (1.96+20090709-1) unstable; urgency=low + + * New SVN snapshot. + + * control (Build-Depends): Add gcc-multilib [sparc]. + * copyright: Rewrite using DEP-5 format. + * Merge grub-extras into the package, and integrate it with GRUB's + build system. + - patches/906_grub_extras.diff + - rules + - copyright + + -- Robert Millan Thu, 09 Jul 2009 00:26:49 +0200 + +grub2 (1.96+20090702-1) unstable; urgency=low + + * New SVN snapshot. + * rules: Remove duplicated files in sparc64-ieee1275 port. + * rules: Comment out -DGRUB_ASSUME_LINUX_HAS_FB_SUPPORT=1 setting. We'll + re-evaluate using it when it's more mature. (Closes: #535026). + + -- Robert Millan Thu, 02 Jul 2009 13:23:51 +0200 + +grub2 (1.96+20090629-1) unstable; urgency=low + + * New SVN snapshot. + - Misc fixes in Linux loader. + + * control (grub-firmware-qemu): Make it buildable only on i386/amd64. + * control: Add sparc (grub-ieee1275), remove remnants of ppc64. + * rules: Include all modules in grub-firmware-qemu build. + + -- Robert Millan Mon, 29 Jun 2009 19:22:37 +0200 + +grub2 (1.96+20090628-1) unstable; urgency=low + + * New SVN snapshot. + * Re-enable QEMU port. + + -- Robert Millan Sun, 28 Jun 2009 01:11:10 +0200 + +grub2 (1.96+20090627-2) unstable; urgency=low + + * Disable QEMU port untill it goes through NEW. + * Upload to unstable. + + -- Robert Millan Sat, 27 Jun 2009 18:40:17 +0200 + +grub2 (1.96+20090627-1) experimental; urgency=low + + * New SVN snapshot. + - Fix parsing of --output in grub-mkconfig. (Closes: #532956) + + [ Felix Zielcke ] + * Use ucfr --force in grub-ieee1275.postinst in case we're upgrading + from previous version. It registered /etc/default/grub wrongly with + package iee1275. + * Drop the build dependency on libc6-dev-i386. + * Remove ppc64 from the Architectures. It's totally dead. + * Add a note to /etc/default/grub that update-grub needs to be run to + update grub.cfg. (Closes: #533026) + * Fix the svn-snapshot rule. + * Update Standards version to 3.8.2. No changes needed. + + [ Robert Millan ] + * legacy/upgrade-from-grub-legacy: Invoke grub-pc.postinst directly rather + than dpkg-reconfigure. Since we pretend we're upgrading, it will DTRT. + * Add grub-firmware-qemu package. + - patches/008_qemu.diff: QEMU port (patch from upstream). + - control (grub-firmware-qemu): New package. + - rules: Add grub-firmware-qemu targets. + - debian/grub-firmware-qemu.dirs + - debian/grub-firmware-qemu.install + * patches/906_revert_to_linux16.diff: Remove, now that gfxpayload is + supported. + + -- Robert Millan Sat, 27 Jun 2009 00:46:23 +0200 + +grub2 (1.96+20090611-1) experimental; urgency=low + + * New SVN snapshot. + + * Append .diff to patches/01_uuids_and_lvm_dont_play_along_nicely so + it gets really applied. + * Drop completely the build dependency on gcc-multilib. + * Instead of arborting in the preinst if /etc/kernel-img.conf still + contains /sbin/update-grub, change the file with sed. Policy allows + thisi, because it's not a conffile, according to Colin Watson. + * Change /etc/default/grub to an ucf managed file instead of dpkg + conffile. + + -- Felix Zielcke Fri, 12 Jun 2009 11:46:24 +0200 + +grub2 (1.96+20090609-1) experimental; urgency=low + + * New SVN snapshot. + - Fix variable parsing inside strings. (Closes: #486180) + - Add `true' command. (Closes: #530736) + + [ Robert Millan ] + * Split grub-efi in grub-efi-ia32 and grub-efi-amd64, both available + on i386 and amd64. (Closes: #524756) + * Add kopensolaris-i386 to arch list. + + [ Felix Zielcke ] + * Add a NEWS entry about the grub-efi split. + * Drop the build dependency on gcc-multilib for all *i386. + * Change upgrade-from-grub-legacy to use `dpkg-reconfigure grub-pc' to + install grub2 into MBR. + + [ New translations ] + * Catalan (ca.po) by Jordi Mallach. + + [ Updated translations ] + * Spanish (es.po) by Francisco Javier Cuadrado. (Closes: #532407) + + -- Jordi Mallach Tue, 09 Jun 2009 19:21:15 +0200 + +grub2 (1.96+20090603-1) unstable; urgency=low + + * New SVN snapshot. + + * Abort the install of grub-pc if /etc/kernel-img.conf still contains + /sbin/update-grub (Closes: #500631). + + -- Felix Zielcke Wed, 03 Jun 2009 20:01:11 +0200 + +grub2 (1.96+20090602-1) unstable; urgency=low + + * New SVN snapshot. + + [ Felix Zielcke ] + * Skip floopies in the grub-install debconf prompt in grub-pc postinst. + Patch by Fabian Greffrath. (Closes: #530848) + + [ Robert Millan ] + * Change Vcs-Browser field to viewsvn. + + [ Felix Zielcke ] + * Change Vcs-Svn field to point to the trunk. (Closes: #531391) + * patches/01_uuids_and_lvm_dont_play_along_nicely: New patch. + On Debian root=UUID= with lvm still doestn't work so disable it. + (Closes: #530357) + * Remove Otavio Salvador from Uploaders with his permission. + * add grub-pc.preinst + + -- Felix Zielcke Wed, 03 Jun 2009 14:42:11 +0200 + +grub2 (1.96+20090523-1) unstable; urgency=low + + * New SVN snapshot. + - Add drivemap command, similar to grub-legacy's map command. + (Closes: 503630) + - Export GRUB_TERMINAL_INPUT in grub-mkconfig. (Closes: #526741) + + [ Robert Millan ] + * rules: Set GRUB_ASSUME_LINUX_HAS_FB_SUPPORT=1 in CFLAGS. + * patches/905_setup_force.diff: Relax blocklist warnings. + * patches/906_revert_to_linux16.diff: Keep using linux16 for now. + + [ Felix Zielcke ] + * patches/07_core_in_fs.diff: Updated. + * Remove /etc/grub.d/10_hurd on non-Hurd systems in the grub-common + preinst. Likewise for 10_freebsd for non kFreebsd and 10_linux on + kFreebsd and Hurd. (Closes: #523777) + + -- Felix Zielcke Sat, 23 May 2009 20:05:10 +0200 + +grub2 (1.96+20090504-1) experimental; urgency=low + + * New SVN snapshot. + - Add support for parttool command, which can be used to hide partitions. + (Closes: #505905) + - Fix a segfault with LVM on RAID. (Closes: #520637) + - Add support for char devices on (k)FreeBSD. (Closes: #521292) + - patches/08_powerpc-ieee1275_build_fix.patch: Remove (merged). + + [ Updated translations ] + * Basque (eu.po) by Piarres Beobide. (Closes: #522457) + * German (de.po) by Helge Kreutzmann. (Closes: #522815) + + [ Robert Millan ] + * Update my email address. + * Remove 04_uuids_and_abstraction_dont_play_along_nicely.diff now that + bugs #435983 and #455746 in mdadm and dmsetup have been fixed. + + [ Felix Zielcke ] + * Place new grub-dumpbios in grub-common. + * Add lpia to the archictectures to reduce the ubuntu delta. + * Add a manpage for the update-grub and update-grub2 stubs, written by + me. (Closes: #523876) + * Suggest genisoimage on grub-pc and grub-ieee1275, because grub-mkrescue + needs it to create a cd image. (Closes: #525845) + * Add a dependency on $(AUTOGEN_FILES) for the configure/grub-common target, + this is needed now that upstream removed the autogenerated files from SVN. + * Add `--enable-efiemu to' `./configure' flags. + * Add a build dependency on gcc-multilib for i386. + * Drop alternate build dependency on gcc-4.1 (<< 4.1.2). + + -- Felix Zielcke Mon, 04 May 2009 21:01:22 +0200 + +grub2 (1.96+20090402-1) experimental; urgency=low + + * New SVN snapshot. + - Fix regression in disk/raid.c. (Closes: #521897, #514338) + - Fix handling of filename string lengths in HFS. + (Really closes: #516458). + * Add myself to Uploaders. + * Add patch 08_powerpc-ieee1275_build_fix.patch to fix powerpc-ieee1275 + builds which were lacking header files for kernel_elf_HEADERS. Thanks + Vladimir Serbinenko. + + -- Jordi Mallach Fri, 03 Apr 2009 20:58:37 +0200 + +grub2 (1.96+20090401-1) experimental; urgency=low + + [ Felix Zielcke ] + * New SVN snapshot. + - Pass grub's gfxterm mode to Linux kernel. (Closes: #519506) + - Fix ext4 extents on powerpc. (Closes: #520286) + + [ Robert Millan ] + * Remove grub-of transitional package (Lenny had grub-ieee1275 already). + * Fix kopt parsing in grub-pc.config. Thanks Marcus Obst. (Closes: #514837) + * Add debconf template to automatically run grub-install during upgrades + (prior user confirmation). (Closes: #514705) + + -- Robert Millan Wed, 01 Apr 2009 01:19:45 +0200 + +grub2 (1.96+20090317-1) unstable; urgency=low + + * New SVN snapshot. + - Fix loading of files with underscore in HFS. (Closes: #516458) + + * Update Standards version to 3.8.1. No changes needed. + + [ Updated translations ] + * Brazilian Portuguese (pt_BR.po) by Flamarion Jorge. (Closes: #519417) + + -- Felix Zielcke Tue, 17 Mar 2009 14:42:10 +0100 + +grub2 (1.96+20090309-1) unstable; urgency=low + + * New SVN snapshot. + + -- Felix Zielcke Mon, 09 Mar 2009 10:03:13 +0100 + +grub2 (1.96+20090307-1) unstable; urgency=low + + * New SVN snapshot. + - Add support for /dev/md/dNNpNN mdraid devices. (Closes: #509960) + - Add new PF2 fontengine. (Closes: #510344) + - Avoid mounting ext2 partitions with backward-incompatible features. + (Closes: #502333) + - Try to avoid false positives with FAT. (Closes: #514263) + + [ Felix Zielcke ] + * Remove build-dependency on unifont package and add one for bf-utf-source + package and libfreetype6-dev + * grub-pc.postinst: Copy new ascii.pf2 instead of old ascii.pff to /boot/grub. + * Add `--enable-grub-mkfont' to configure flags. + * Put new grub-mkfont in grub-common package. + * Add a dependency for ${misc:Depends} to all packages to make lintian a bit + more happy. + * Detect when grub-setup leaves core.img in filesystem, and include that + info in bug report templates. + - debian/patches/07_core_in_fs.diff + - debian/script + * Add myself to Uploads and add `DM-Upload-Allowed: yes' tag. + + [ Updated translations ] + * Asturian (ast.po) by Marcos Alvarez Costales. (Closes: #511144) + * Traditional Chinese (zh_TW.po) by Tetralet. (Closes: #513918) + * Belarusian (be.po) by Pavel Piatruk. (Closes: #516243) + + -- Felix Zielcke Sat, 07 Mar 2009 11:54:43 +0100 + +grub2 (1.96+20081201-1) experimental; urgency=low + + * New SVN snapshot. + + -- Robert Millan Mon, 1 Dec 2008 00:07:31 +0100 + +grub2 (1.96+20081120-1) experimental; urgency=low + + * New SVN snapshot. + + * Update to new debian theme. + - grub-pc.postinst: Switch to moreblue-orbit-grub.png. + - grub.d/05_debian_theme: Likewise. + * grub.d/05_debian_theme: + - Update to use new grub-mkconfig_lib instead of the deprecated + update-grub_lib. + - Update to check if `GRUB_TERMINAL_OUTPUT' is `gfxterm' instead of + `GRUB_TERMINAL'. + + [ Updated translations ] + * Romanien (ro.po) by Eddy Petrișor. (Closes: #506039) + + -- Felix Zielcke Thu, 20 Nov 2008 20:25:56 +0100 + +grub2 (1.96+20081108-1) experimental; urgency=low + + * New SVN snapshot. + - Add support for /dev/md/N style mdraid devices. (Closes: #475585) + - Handle LVM dash escaping. (Closes: #464215) + - Use case insensitive match in NTFS. (Closes: #497889) + - Use hd%d drive names in grub-mkdevicemap for all architectures. + (Closes: #465365) + - Handle LVM circular metadata. (Closes: #462835, #502953) + - Fix NULL dereference and failure paths in LVM. Thanks Guillem Jover. + (Closes: #500482) + - Provides GRUB header files (only in grub-common). + + [ Updated translations ] + * Dutch (nl.po) by Paul Gevers. (Closes: #500514) + * French (fr.po) by Christian Perrier. (Closes: #503708) + * Georgian (ka.po) by Aiet Kolkhi. (Closes: #503715) + * Czech (cs.po) by Miroslav Kure. (Closes: #503809) + * German (de.po) by Helge Kreutzmann. (Closes: #503841) + * Japanese (ja.po) by Hideki Yamane. (Closes: #503869) + * Italian (it.po) by Luca Monducci. (Closes: #504076) + * Swedish (sv.po) by Martin Ågren. (Closes: #504207) + * Arabic (ar.po) by Ossama Khayat. (Closes: #504254) + * Portuguese (pt.po) by Miguel Figueiredo. (Closes: #504280) + * Russian (ru.po) by Yuri Kozlov. (Closes: #504324) + * Finnish (fi.po) by Esko Arajärvi. (Closes: #504310) + * Basque (eu.po) by Piarres Beobide. (Closes: #504466) + * Dutch (nl.po) by Paul Gevers. (Closes: #504683) + + [ Felix Zielcke ] + * patches/01_grub_legacy_0_based_partitions.diff: Rename to + * patches/903_grub_legacy_0_based_partitions.diff: this and adapt for + s/biosdisk.c/hostdisk.c/ rename upstream. + * patches/03_disable_floppies.diff + patches/904_disable_floppies.diff: Likewise. + * update-grub has been renamed to grub-mkconfig, so provide a stub for + compatibility. + * Make grub-pc/linux_cmdline debconf template translatable. (Closes: #503478) + * Remove ro.po and ta.po. They don't contain a single translated + message. + + [ Robert Millan ] + * control: Make grub-common dependency = ${binary:Version}. + * default/grub: Set GRUB_CMDLINE_LINUX=quiet to syncronize with + default D-I settings. + + -- Robert Millan Sat, 8 Nov 2008 13:54:10 +0100 + +grub2 (1.96+20080831-1) experimental; urgency=low + + * New SVN snapshot. + - patches/00_fix_double_prefix.diff: Remove (merged). (Closes: #487565) + - patches/00_getline.diff: Remove (merged). (Closes: #493289) + - Handle errors in RAID/LVM scan routine (rather than letting the upper + layer cope with them). (Closes: #494501, #495049) + - patches/901_linux_coreboot.diff: Remove (replaced). + - Add support for GFXMODE variable (Closes: #493106) + - Skips /dev/.* in grub-probe. (Closes: #486624) + - RAID code has various fixes. (Closes: #496573) + - Buffered file read is now used to read the background image faster. + (Closes: #490584) + + * We are already using LZMA, because upstream includes it's own lzma encoder, + so drop completely the liblzo handling in control and rules files. + + [ Felix Zielcke ] + * Remove the 1.95 partition numbering transition debconf warning + from grub2 package and removed it from all languages (*.po). + (Closes: #493744) + * Add a comment for the new GFXMODE in default/grub. + * debian/rules: + - Remove 2 ./configure options which it didn't understand. + - New grub-mkelfimage belongs to grub-common. + * debian/control: + - Change debhelper compat level to 7 and build depend on it >= 7. + - Remove ${misc:Depend} dependency on all packages except grub-pc which is + the only one using debconf. + - Replace deprecated ${Source-Version} with ${source:Version} for << + dependency and with ${build:Version} for = ones. + - Remove versioned dependency of Build-Depends patchutils and cdbs, + because etch has newer versions then the one used. + - Remove dpkg-dev completely from Build-Depends because it's + build-essentail and a non versioned dependency results in a lintian error. + - Remove Conflict/Replaces pupa, it has been removed from Debian 2004. + - Change build-dependency of unifont-bin to unifont (>= 1:5.1.20080820), + it's the new package containing unifont.hex and that version to avoid + licensing problems (Closes: #496061) + - Remove Jason Thomas from Uploaders with his permission. + * Preserve arguments in update-grub2 stub. (Closes: #496610) + + [ Updated translations ] + * Japanese (ja.po) by Hideki Yamane (Closes: #493347) + + [ Robert Millan ] + * Move a few files to grub-common and remove them from the arch- + specific packages. + * patches/02_old_linux_version_comparison.diff: Replace with ... + * patches/901_dpkg_version_comparison.diff: ... this. + Use dpkg --compare-versions in update-grub. (Closes: #494158) + * patches/03_disable_floppies.diff: Free .drive struct member when skipping + floppy drives. (Closes: #496040) + * patches/902_boot_blocklist_hack.diff: Support separate /boot when using + blocklists. (Closes: #496820, #489287, #494589) + + -- Robert Millan Sun, 31 Aug 2008 18:40:09 +0200 + +grub2 (1.96+20080730-1) experimental; urgency=low + + * New SVN snapshot. + - patches/00_fix_overflow.diff: Remove (merged). + - patches/00_uuid_boot.diff: Remove (merged). + - patches/00_raid_duped_disks.diff: Remove (merged). + - patches/00_xfs.diff: Remove (merged). + - patches/00_strengthen_apple_partmap_check.diff: Remove (merged). + - patches/00_skip_dev_dm.diff: Remove (merged). + + * patches/901_linux_coreboot.diff: Implements Linux load on Coreboot + (patch from Coresystems). + + * grub-linuxbios -> grub-coreboot rename again. + + -- Robert Millan Wed, 30 Jul 2008 22:12:07 +0200 + +grub2 (1.96+20080724-4) unstable; urgency=high + + * patches/00_fix_overflow.diff: fix overflow with a big grub.cfg. + (Closes: #473543) + + -- Felix Zielcke Tue, 29 Jul 2008 17:10:59 +0200 + +grub2 (1.96+20080724-3) unstable; urgency=low + + [ Felix Zielcke ] + * changed dependency for debconf to also support debconf-2.0. (Closes: #492543) + * patches/00_xfs.diff: Fix "out of partition" error with XFS. + (Closes: #436943) + + [ Robert Millan ] + * patches/00_raid_duped_disks.diff: Do not abort when two RAID disks with + the same number are found. (Closes: #492656) + * patches/00_strengthen_apple_partmap_check.diff: Be more strict when probing + for Apple partition maps (this prevents false positives on i386-pc + installs). (Closes: #475718) + + -- Robert Millan Tue, 29 Jul 2008 00:48:01 +0200 + +grub2 (1.96+20080724-2) unstable; urgency=high + + [ Felix Zielcke ] + * fixed lintian override for kernel.elf + * debian/rules: changed cvs targets to use svn + + [ Robert Millan ] + * patches/00_skip_dev_dm.diff: Skip /dev/dm-[0-9] devices also (implicitly) + for RAID. (Closes: #491977) + * patches/00_uuid_boot.diff: Fix cross-disk installs by using UUIDs. + (Closes: #492204) + + -- Robert Millan Sat, 26 Jul 2008 01:06:07 +0200 + +grub2 (1.96+20080724-1) unstable; urgency=high + + * New SVN snapshot. + - Support for ext4dev extents. + - patches/00_speed_up_font_load.diff: Remove (merged). + + [ Felix Zielcke ] + * upgrade-from-grub-legacy now calls update-grub if grub.cfg doestn't exist + and prints a big warning if it failed. + * Update Standards version to 3.8.0. No changes need. + * Added Build-Dep for po-debconf and a lintian override, to make it happy. + + [ Updated translations ] + * Swedish (sv.po) by Martin Ågren (Closes: #492056) + + [ Robert Millan ] + * Revert r844. grub-coreboot is stuck on NEW, and it was too early + for branching. + + -- Robert Millan Thu, 24 Jul 2008 13:27:53 +0200 + +grub2 (1.96+20080717-1) experimental; urgency=low + + * New SVN snapshot. + - Provides LZMA support (not yet used in the package). + - Fix grub-mkrescue manpage generation. (Closes: #489440) + + * Rename grub-linuxbios to grub-coreboot (and leave a dummy grub-linuxbios + package to handle upgrades). + + [ Updated translations ] + * Spanish (es.po) by Maria Germana Oliveira Blazetic (Closes: #489877) + * Portuguese (pt.po) by Ricardo Silva (Closes: #489807) + + -- Robert Millan Sat, 12 Jul 2008 17:47:09 +0200 + +grub2 (1.96+20080704-2) unstable; urgency=high + + * patches/02_old_linux_version_comparison.diff: Set interpreter to /bin/bash. + (Closes: #489426, #489446) + + -- Robert Millan Mon, 7 Jul 2008 15:17:58 +0200 + +grub2 (1.96+20080704-1) unstable; urgency=high + + * New SVN snapshot. + * default/grub: Add commented example to disable graphical terminal. + * Use substvars to support linking with liblzo1. + * Bring 03_disable_floppies.diff to pre-r805 state. (Closes: #488375) + * patches/02_old_linux_version_comparison.diff: New patch. Steal version + comparison code from GRUB Legacy's update-grub. (Closes: #464086, #489133) + * patches/00_speed_up_font_load.diff: New patch. Generate font files with + only the needed characters. (Closes: #476479, #477083) + + -- Robert Millan Fri, 4 Jul 2008 21:39:07 +0200 + +grub2 (1.96+20080626-1) unstable; urgency=high + + * New CVS snapshot. + - Avoids passing UUID to Linux when not using initrd. (Closes: #484228) + - patches/04_uuids_and_abstraction_dont_play_along_nicely.diff: Resync. + + -- Robert Millan Thu, 26 Jun 2008 16:43:48 +0200 + +grub2 (1.96+20080621-1) unstable; urgency=high + + * Urgency set to "high" because of #482688. + * New CVS snapshot. + - Fix module load hook in prepare_grub_to_access_device(). + (Closes: #486804) + - Call prepare_grub_to_access_device() before accessing devices, never + afterwards. (Closes: #487198) + * grub.d/05_debian_theme: Prefer /boot/grub over /usr for image + loading, since chances are it's less LVMed. + + -- Robert Millan Sat, 21 Jun 2008 15:52:48 +0200 + +grub2 (1.96+20080617-1) unstable; urgency=low + + * New CVS snapshot. + - Supports IDA block devices. (Closes: #483858) + - Fixes some problems in ext2/ext3. (Closes: #485068, #485065) + - Uses EUID instead of UID in update-grub. (Closes: #486043, #486039, + #486040, #486041). + - Fixes incomplete I2O device support. Thanks Sven Mueller. + (Closes: #486505) + - Fixes recent regressions in fs/ext2.c. (Closes: #485279) + - Only use UUIDs when requested device is not the same as the one + providing /boot. (Closes: #486119) + - patches/02_libgcc_powerpc_hack.diff: Remove. Probably not needed + anymore. + - patches/04_uuids_and_abstraction_dont_play_along_nicely.diff: Update. + * patches/06_olpc_prefix_hack.diff: Hardcode prefix to (sd,1) on OLPC. + * Refurbish 03_disable_floppy_support_in_util_biosdisk.diff into + 03_disable_floppies.diff. + + -- Robert Millan Tue, 17 Jun 2008 01:07:52 +0200 + +grub2 (1.96+20080601-2) unstable; urgency=low + + * 04_run_grub_mkdevicemap_when_grub_probe_fails.diff: Remove. Argueably + makes grub-probe unreliable and is quite annoying. + * 04_uuids_and_abstraction_dont_play_along_nicely.diff: New patch. Disable + UUID parameter to Linux when LVM or dmRAID is in use. (Closes: #484228) + This is a workaround for bug #484297 in udev. + + -- Robert Millan Tue, 3 Jun 2008 16:29:53 +0200 + +grub2 (1.96+20080601-1) unstable; urgency=low + + * New CVS snapshot. + - patches/06_backward_compat_in_uuid_support.diff: Merged. + - Fixes NULL pointer dereference in biosdisk.c. (Closes: #483895, #483900) + - Extends UUID support for XFS and ReiserFS. + + -- Robert Millan Sun, 1 Jun 2008 15:44:08 +0200 + +grub2 (1.96+20080531-1) unstable; urgency=low + + * New CVS snapshot. + - Work around BIOS bug affecting keyboard on macbooks. (Closes: #482860) + - Adjust grub.d/05_debian_theme to use the new UUID-compatible API. + - default/grub: Add commented GRUB_DISABLE_LINUX_UUID variable. + - patches/06_backward_compat_in_uuid_support.diff: New. Make update-grub + generate code that is compatible with older GRUB installs. + - util/biosdisk.c no longer complains about duplicated device.map entries. + (Closes: #481236) + + [ Updated translations ] + * Galician (gl.po) by Jacobo Tarrio (Closes: #480977) + + -- Robert Millan Sat, 31 May 2008 00:02:54 +0200 + +grub2 (1.96+20080512-1) unstable; urgency=low + + * New CVS snapshot. + - Adds support for default-only Linux cmdline options. (Closes: #460843) + - Supports Xen virtual block devices. (Closes: #456777) + - Supports Virtio block devices. (Closes: #479056) + - Supports CCISS block devices. (Closes: #479735) + - Fixes handling of more LVM abnormal conditions. (Closes: #474343, + #474931, #477175) + + * Switch to liblzo2 now that it's GPLv3-compatible. (Closes: #466375) + * grub-pc.postinst: Escape \ and / in cmdline sed invokation. + (Closes: #479279) + + [ Updated translations ] + * Italian (it.po) by Luca Monducci (Closes: #480740) + + -- Robert Millan Mon, 12 May 2008 17:46:38 +0200 + +grub2 (1.96+20080429-1) unstable; urgency=high + + * New CVS snapshot. + - Includes sample grub.cfg file; we use it for grub-rescue-pc. + (Closes: #478324) + * grub-common: Upgrade Replaces to << 1.96+20080426-3. (Closes: #478224, + #478353, #478144) + + [ Updated translations ] + * French (fr.po) by Christian Perrier (Closes: #471291) + + -- Robert Millan Tue, 29 Apr 2008 13:27:52 +0200 + +grub2 (1.96+20080426-1) unstable; urgency=high + + * New CVS snapshot. + - Fixes syntax error when setting GRUB_PRELOAD_MODULES. (Closes: #476517) + * Move os-prober to Suggests, to avoid trouble with #476184. + (Closes: #476684) + * patches/04_run_grub_mkdevicemap_when_grub_probe_fails.diff: New patch, + does what its name says. (Closes: #467127) + - Also move grub-mkdevicemap from grub-pc to grub-common, so that GRUB + Legacy can use it. + + [ Updated translations ] + * Basque (eu.po) by Piarres Beobide (Closes: #476708) + + -- Robert Millan Sat, 26 Apr 2008 20:06:55 +0200 + +grub2 (1.96+20080413-1) unstable; urgency=high + + * New CVS snapshot. + - Provides 30_os-prober update-grub add-on. Thanks Fabian Greffrath. + (Closes: #461442) + - Improves robustness when handling LVM. + (Closes: #474931, #474343) + * patches/03_disable_floppy_support_in_util_biosdisk.diff: New. Does + what its name says. (Closes: #475177) + + -- Robert Millan Sun, 13 Apr 2008 13:53:28 +0200 + +grub2 (1.96+20080408-1) unstable; urgency=low + + * New CVS snapshot. + - grub-probe skips non-existant devices when processing device.map. + (Closes: #473209) + * control: Fix syntax error. + + [ Updated translations ] + * Finnish (fi.po) by Esko Arajärvi (Closes: #468641) + + -- Robert Millan Tue, 8 Apr 2008 15:45:25 +0200 + +grub2 (1.96+20080228-1) unstable; urgency=low + + * New CVS snapshot. + * Split grub-probe into grub-common package. Make all flavours depend on it. + (Closes: #241972) + * Suggest multiboot-doc. + * patches/01_grub_legacy_0_based_partitions.diff: New patch. Add a hack that + tells grub-probe you want 0-based partition count + (GRUB_LEGACY_0_BASED_PARTITIONS variable) + * Stop depending on lsb-release (too heavy! we don't need python in base). + Instead of assuming it's there, try calling it and otherwise just echo + Debian. + + -- Robert Millan Thu, 28 Feb 2008 16:43:40 +0100 + +grub2 (1.96+20080219-3) unstable; urgency=low + + * default/grub: Use lsb_release to support Debian derivatives. + (Closes: #466561) + * grub.d/05_debian_theme: Only setup background image when a reader for it + is present in /boot/grub. (Closes: #467111) + + [ Updated translations ] + * Russian (ru.po) by Yuri Kozlov (Closes: #467181) + + -- Robert Millan Sun, 24 Feb 2008 15:39:50 +0100 + +grub2 (1.96+20080219-2) unstable; urgency=high + + * grub-pc.postinst: Create /boot/grub if it doesn't exist. + + -- Robert Millan Wed, 20 Feb 2008 07:15:14 +0100 + +grub2 (1.96+20080219-1) unstable; urgency=high + + * New CVS snapshot. + - Improves GPT support, allowing it to work without blocklists. + + -- Robert Millan Tue, 19 Feb 2008 15:05:10 +0100 + +grub2 (1.96+20080216-1) unstable; urgency=high + + * New CVS snapshot. + - Fixes offset calculation issue when installing on GPT (urgency set + to high because of this). + * Fix Vcs-Browser tag. Thanks James. (Closes: #465697) + * Only process grub-pc/linux_cmdline if /boot/grub/menu.lst exists. + (Closes: #465708) + + [ Updated translations ] + * French (fr.po) by Christian Perrier (Closes: #465706) + + -- Robert Millan Sat, 16 Feb 2008 23:30:55 +0100 + +grub2 (1.96+20080213-1) unstable; urgency=low + + * New CVS snapshot. + - Failure to read one device in a RAID-1 array no longer causes boot + to fail (so long as there's a member that works). (Closes: #426341) + * script: For /proc/mounts, only report lines that start with /dev/. + * Add new upgrade-from-grub-legacy script for the user to complete the upgrade + process from GRUB Legacy, and advertise it prominently in menu.lst. + (Closes: #464912) + * Add a hack to support gfxterm / background_image on systems where /usr + isn't accessible. (Closes: #464911, #463144) + - grub-pc.postinst + - grub.d/05_debian_theme + * Fix a pair of spelling mistakes in debconf. (Closes: #465296) + * Migrate kopt from menu.lst. (Closes: #461164, #464918) + + [ Updated translations ] + * Portuguese (pt.po) by Ricardo Silva (Closes: #465137) + * German (de.po) by Helge Kreutzmann (Closes: #465295) + + -- Robert Millan Wed, 13 Feb 2008 16:37:13 +0100 + +grub2 (1.96+20080210-1) unstable; urgency=high + + * New CVS snapshot. + - Errors that cause GRUB to enter rescue mode are displayed now. + (Closes: #425149) + - Build LVM/RAID modules into a few commands that were missing them + (notably, grub-setup). (Closes: #465033) + * Fix license violation (incompatibility between GRUB and LZO2). + (Closes: #465056) + - Urgency set to high. + - control: Move liblzo2-dev from Build-Depends to Build-Conflicts + (leaving liblzo-dev as the only option). + + -- Robert Millan Sun, 10 Feb 2008 17:09:15 +0100 + +grub2 (1.96+20080209-1) unstable; urgency=low + + * New CVS snapshot. + - Fix a root device setting issue in grub-setup. (Closes: #463391) + - Fix partmap detection under LVM/RAID. + - Add scripting commands that would allow user to implement hiddenmenu-like + functionality (http://grub.enbug.org/Hiddenmenu). + - Provide manpages for grub-setup, grub-emu, grub-mkimage and others. + (Closes: #333516, #372890) + * Fix a pair of spelling errors in debconf templates. Thanks Christian + Perrier. (Closes: #464133) + * Run debconf-updatepo. (Closes: #463918) + * Lower base-files versioned dependency to >= 4.0.1~bpo40+1. + + -- Robert Millan Sat, 9 Feb 2008 13:43:49 +0100 + +grub2 (1.96+20080203-1) unstable; urgency=low + + * New CVS snapshot (and release, but we skipped that ;-)) + - patches/01_regparm.diff: Delete. + - Improved XFS support. + - util/grub.d/00_header.in: Add runtime error detection (for gfxterm). + - Fixes problem when chainloading to Vista. + * Fix po-debconf errors. Thanks Thomas Huriaux. (Closes: #402972) + * grub.d/05_debian_theme: + - Add runtime error detection. + - Detect/Enable PNG background when it is present. + * control (grub-ieee1275): Remove versioned dependency on powerpc-ibm-utils. + + -- Robert Millan Sun, 3 Feb 2008 19:31:23 +0100 + +grub2 (1.95+20080201-1) unstable; urgency=low + + * New CVS snapshot. + * presubj: Improve notice. + * patches/01_regparm.diff: Fix CPU context corruption affecting fs/xfs.c. + (Closes: #463081, #419766, #462159) + * patches/02_libgcc_powerpc_hack.diff: Fix FTBFS on powerpc. (Closes: #457491) + * patches/disable_xfs.diff: Actually remove this time... + + -- Robert Millan Fri, 1 Feb 2008 17:06:00 +0100 + +grub2 (1.95+20080128-1) unstable; urgency=low + + * New CVS snapshot. + - Fixes bogus CLAIM problems on Apple firmware. (Closes: #449135, #422729) + - grub-probe performs sanity checks to make sure our filesystem drivers + are usable. (Closes: #462449) + - patches/disable_ata.diff: Remove. ATA module isn't auto-loaded in + rescue floppies now. + - patches/disable_xfs.diff: Remove. See above (about grub-probe). + * Bring back grub-emu; it can help a lot with debugging feedback. + - control + - rules + + -- Robert Millan Mon, 28 Jan 2008 00:01:11 +0100 + +grub2 (1.95+20080116-2) unstable; urgency=low + + * grub.d/05_debian_theme: Enable swirlish beauty. + * rules: Obtain debian/legacy/update-grub dynamicaly from GRUB Legacy svn. + + -- Robert Millan Sat, 19 Jan 2008 13:16:18 +0100 + +grub2 (1.95+20080116-1) unstable; urgency=low + + * New CVS snapshot. + - update-grub ignores stale *.dpkg-* files. (Closes: #422708, #424223) + - LVM/RAID now working properly (except when it affects /boot). + (Closes: #425666) + - Fixes flickery in timeout message. (Closes: #437275) + * grub-pc.postinst: Use `--no-floppy' whenever possible. Die, floppies, + die! + * Resync with latest version of GRUB Legacy's update-grub. This time, + using the $LET_US_TRY_GRUB_2 hack to reuse the same script both for + addition of core.img and its removal. + * grub-*.install: Add update-grub2 stub. Packages providing /etc/grub.d/ + scripts should invoke update-grub2 in both postinst and postrm (whenever + it is found, of course). + * control: Reorganize a bit, including a complete rewrite of the + package descriptions. + * control (grub-ieee1275): Enable for i386/amd64. + + -- Robert Millan Wed, 16 Jan 2008 15:00:54 +0100 + +grub2 (1.95+20080107-1) unstable; urgency=low + + * New CVS snapshot. + - Supports ReiserFS. (Closes: #430742) + - patches/disable_ata.diff: Resync. + + -- Robert Millan Mon, 7 Jan 2008 12:46:39 +0100 + +grub2 (1.95+20080105-2) unstable; urgency=low + + * grub-pc.postinst: Fix covered assumption that menu.lst exists. + (Closes: #459247) + * copyright: Fix copyright/license reference. + + -- Robert Millan Sun, 6 Jan 2008 18:02:28 +0100 + +grub2 (1.95+20080105-1) unstable; urgency=low + + * New CVS snapshot. + - Fixes install on non-devfs systems with devfs-style paths (ouch). + (Closes: #450709). + - Fixes boot of "Linux" zImages (including memtest86+). (Closes: #436113). + - Corrects usage message in grub-setup. (Closes: #458600). + - patches/menu_color.diff: Remove. Made obsolete by `menu_color_normal' + and `menu_color_highlight' variables. Add/install grub.d/05_debian_theme + to make use of them. + * Reestructure grub-pc.postinst. Notably: + - Do not touch menu.lst unless user has confirmed it (via debconf). + (Closes: #459247) + - When we do, keep a backup in /boot/grub/menu.lst_backup_by_grub2_postinst. + + -- Robert Millan Sat, 5 Jan 2008 17:55:37 +0100 + +grub2 (1.95+20080101-1) unstable; urgency=low + + * New CVS snapshot. + - patches/disable_xfs.diff: Rewrite in a way that won't collide with + upstream changes so often. + - unifont.hex now processed by upstream. + - rules: Disable build of unifont.pff. + - *.install: Remove build/unifont.pff line. + - patches/menu_color.diff: Change menu color to our traditional blue theme. + * Support new dpkg fields (Homepage, Vcs-Svn, Vcs-Browser). + * patches/disable_ata.diff: Prevent ATA module from being built on i386-pc. + + -- Robert Millan Tue, 1 Jan 2008 19:45:30 +0100 + +grub2 (1.95+20071101-1) unstable; urgency=low + + * New CVS snapshot. + - patches/linuxbios.diff: Remove (supported in upstream now). + + -- Robert Millan Thu, 1 Nov 2007 13:18:51 +0100 + +grub2 (1.95+20071004-2) unstable; urgency=low + + * Rename debian/grub-of.* to debian/grub-ieee1275.*. + * Add debian/grub-linuxbios.{postinst,dirs,install}. + * rules: Fix/Overrride lintian warnings (unstripped-binary-or-object). + * Remove grub-linuxbios.postinst. + + -- Robert Millan Wed, 10 Oct 2007 23:56:35 +0200 + +grub2 (1.95+20071004-1) unstable; urgency=low + + * New CVS snapshot. + * Add grub-linuxbios package. + - patches/linuxbios.diff + - control + - rules + * Rename grub-of to grub-ieee1275 to match with upstream conventions. + - control + - rules + + -- Robert Millan Thu, 4 Oct 2007 14:42:30 +0200 + +grub2 (1.95+20070829-1) unstable; urgency=low + + * New CVS snapshot. + - Includes fix for parallel builds. + * rules: Append -j flag to $(MAKE) to take advantage of >1 processors. + * Add reference to /usr/share/common-licenses. + - debian/copyright + - debian/control (all packages): Add base-files (>= 4.0.1) dependency. + + -- Robert Millan Sat, 1 Sep 2007 19:00:22 +0200 + +grub2 (1.95+20070828-2) unstable; urgency=low + + * control (grub-of): Make depends on powerpc-ibm-utils versioned as + >= 1.0.6 (older versions don't have -a flag). + + -- Robert Millan Tue, 28 Aug 2007 23:32:32 +0200 + +grub2 (1.95+20070828-1) unstable; urgency=low + + * New CVS snapshot. + - Adds ntfs support. + - Fixes a pair of issues indirectly breaking grub-probe on powerpc. + (Closes: #431488) + - patches/disable_xfs.diff: Resync. + - copyright: License upgraded to GPLv3. + * control (grub-of Depends): Add powerpc-utils (for nvsetenv) and bc. + + -- Robert Millan Tue, 28 Aug 2007 21:24:14 +0200 + +grub2 (1.95+20070626-1) unstable; urgency=low + + * New CVS snapshot. + - More fixes to cope with unreadable /. (Closes: #427289) + - update-grub supports multiple terminals. + * control (Build-Depends): Add genisoimage. + * patches/partmap_fallback.diff: Remove. It didn't archieve anything as + it also needs support for proper identification of raid / lvm (this is + being worked on). + * patches/disable_xfs.diff: Disable xfs in grub-probe. + * grub-rescue-pc.README.Debian: New. Explain how to use the rescue + images. + + -- Robert Millan Tue, 26 Jun 2007 08:39:14 +0200 + +grub2 (1.95+20070614-1) unstable; urgency=low + + * New CVS snapshot. + - update-grub is tollerant to unreadable / (as long as /boot is + accessible). (Closes: #427289) + * grub-pc.postinst: Generate new grub.cfg when menu.lst exists. + * New package grub-rescue-pc. + - control: Add it. + - README.Debian.in: Remove obsolete documentation. + - rules: Build rescue images using grub-mkrescue. + - grub-rescue-pc.dirs: Prepare their directory. + - grub-rescue-pc.install: Install them. + * legacy/update-grub: Fix core.img detection on separate /boot. + + -- Robert Millan Thu, 14 Jun 2007 08:17:21 +0200 + +grub2 (1.95+20070604-1) unstable; urgency=low + + * New CVS snapshot. + - patches/grub_probe_for_everyone.diff: Remove (merged). + - update-grub exports user-defined GRUB_CMDLINE_LINUX. (Closes: #425453) + - Fix those nasty powerpc bugs. (Closes: #422729) + + -- Robert Millan Mon, 4 Jun 2007 21:30:55 +0200 + +grub2 (1.95+20070520-1) unstable; urgency=low + + * New CVS snapshot. + - LVM / RAID fixes. (Closes: #423648, #381150) + - Fix memory management bug. (Closes: #423409) + - patches/efi.diff: Remove (merged). + - patches/grub_probe_for_everyone.diff: Use the new paths for + util/grub-probe.c, util/biosdisk.c, util/getroot.c. Enable + grub-mkdevicemap. (Closes: #424985) + * legacy/update-grub: Get rid of all grub-set-default calls. (Closes: #425054) + * grub-{pc,efi,of}.postinst: Only run update-grub if grub.cfg already exists. + * grub-pc.postinst: Only run GRUB Legacy compat stuff if menu.lst is found. + * patches/partmap_fallback.diff: New. Implement fallback "pc gpt" for partmap + detection failures. (Closes: #423022) + * control: Update XS-Vcs-* fields. Thanks Sam Morris . + (Closes: #425146) + * grub-{pc,efi,of}.{dirs,postinst}: Move unifont.pff to /usr/share/grub. + + -- Robert Millan Sun, 20 May 2007 11:13:03 +0200 + +grub2 (1.95+20070515-1) unstable; urgency=low + + * New CVS snapshot. + - Fix assumptions about /, /boot and /boot/grub being the same device. + (Closes: #423268, #422459) + - Proper sorting of Linux images. (Closes: #422580) + - update-grub lets /etc/default/grub override its variables now. + (Closes: #423649) + - update-grub mentions /etc/default/grub in the grub.cfg header. + (Closes: #423651) + - update-grub sets 800x600x16 as the default gfxmode. (Closes: #422794) + - update-grub runs grub-mkdevicemap before attempting to use grub-probe + (part of #423217) + + [ Otavio Salvador ] + * Add support to DEB_BUILD_OPTIONS=noopt. Thanks to Sam Morris + for the patch. (Closes: #423005) + * Add Robert Millan as uploader. + * Change build-dependency from liblzo-dev to liblzo2-dev. (Closes: #423358) + + [ Robert Millan ] + * grub-pc.postinst: + - Remove /boot/grub/device.map before running grub-install. + (Closes: #422851) + - Always run update-grub after grub-install. (part of #423217) + - Use grub-mkdevicemap instead of removing device.map, since update-grub + needs it but grub-install is not run unconditionaly. + - Redirect grub-install invocation to /dev/null, since it can mislead + users into thinking that MBR was overwritten. (part of #423217) + * default/grub: Stop exporting the variables (update-grub does that now). + * Misc EFI fixes, including new grub-install. + - patches/efi.diff: New. + - patches/grub_probe_for_everyone.diff: Move some bits to efi.diff. + - grub-efi.install: Stop installing dummy grub-install. + - grub-install: Remove. + * grub-pc.postinst: Avoid generating core.img when menu.lst is not present, + to avoid duplicated work (this is specialy important for d-i). (part of + #423217). + * See multiple references above. (Closes: #423217) + * grub-{pc,efi,of}.{dirs,install}: Install presubj in the right directory + to make it work again (oops). + * Add reportbug script to gather debugging information. (Closes: #423218) + - script: New. + - grub-{pc,efi,of}.install: Install it. + * Install the reportbug scripts for grub2 too, since users might still use + it for bugfiling. + - grub2.dirs + - grub2.install + * Fix some lintian warnings. + - control (grub2): Depend on debconf. + - README.Debian.in: Fix mispell. + - grub2.templates: Remove extra dot. + + -- Robert Millan Tue, 15 May 2007 22:08:53 +0200 + +grub2 (1.95+20070507-1) unstable; urgency=low + + [ Robert Millan ] + * New CVS snapshot. + - patches/build_neq_src.diff: Remove (merged). + * Fix debhelper files to ensure each package gets the right thing. + * Enable gfxterm/unifont support. + * On grub-pc, if there's no core.img setup, create one (but do not + risk writing to MBR). + * On grub-pc, if menu.lst is found, regenerate it to include our + core.img. + + [ Otavio Salvador ] + * Move debian/update-grub to debian/legacy/update-grub otherwise the + source gets messy. + + -- Otavio Salvador Mon, 07 May 2007 18:48:14 -0300 + +grub2 (1.95+20070505.1-3) unstable; urgency=low + + * Split postinst into grub2.postinst (with the transition warning) and + postinst.in, with update-grub invocation for grub-{pc,efi,of}. + - postinst.in + - grub2.postinst + - rules + + -- Robert Millan Sun, 6 May 2007 01:20:04 +0200 + +grub2 (1.95+20070505.1-2) unstable; urgency=low + + * Add EFI build of GRUB. + - control: Restructure to provide 3 packages: grub-pc (x86), + grub-efi (x86) and grub-of (powerpc). + - rules: Handle a separate build for each package. + - patches/build_neq_src.diff: Fix builddir == srcdir assumptions. + - patches/grub_probe_for_everyone.diff: New (superceds + powerpc_probe.diff). Enable grub-probe on powerpc and i386-efi. + - grub-install: Dummy informational grub-install for EFI. + - grub-efi.install: Installs it. + + -- Robert Millan Sun, 6 May 2007 00:23:56 +0200 + +grub2 (1.95+20070505.1-1) unstable; urgency=low + + * New CVS snapshot. + * patches/powerpc_probe.diff: Add partmap/gpt.c to grub-probe. + * control (Architecture): Temporarily disable powerpc. Sorry, but runtime + is currently broken and we don't have the hardware to debug it. Will be + re-enabled in next upload. + + -- Robert Millan Sat, 5 May 2007 21:52:49 +0200 + +grub2 (1.95+20070505-1) unstable; urgency=low + + * New CVS snapshot. + - Improved grub.cfg parser. (Closes: #381215) + - patches/fix-grub-install.diff: Remove (merged). + - control (Build-Depends): Remove libncurses5-dev (no longer needed). + - provides update-grub2. (Closes: #419151) + - Supports GPT in PC/BIOS systems. (Closes: #409073) + * control (Build-Depends): Add gcc-multilib to fix FTBFS. + * control (Description): Make it less scary, and more informative. + * postinst: Run update-grub to ensure the latest improvements always are + applied. + * patches/powerpc_probe.diff: Attempt at making grub-probe build/install + on powerpc (and hopefuly update-grub). + + -- Robert Millan Sat, 5 May 2007 01:49:07 +0200 + +grub2 (1.95-5) unstable; urgency=low + + * Fix FTBFS on kFreeBSD. Thanks to Aurelien Jarno + by providing the patch. Closes: #416408 + + -- Otavio Salvador Fri, 30 Mar 2007 19:20:48 -0300 + +grub2 (1.95-4) unstable; urgency=low + + * Fix powerpc grub-install binary path. Closes: #402838 + + -- Otavio Salvador Thu, 22 Mar 2007 23:45:56 -0300 + +grub2 (1.95-3) unstable; urgency=low + + [ Christian Perrier ] + * Switch to po-debconf for debconf templates. Closes: #402972 + * Depend on ${misc:Depends} and not "debconf" to allow cdebconf to be used + * Debconf translations: + - French + - Czech. Closes: #413327 + - Galician. Closes: #413323 + - Swedish. Closes: #413325 + - Portuguese. Closes: #413332 + - German. Closes: #413365 + - Tamil. Closes: #413478 + - Russian. Closes: #413542 + - Italian. Closes: #413904 + - Romanian. Closes: #414443 + + -- Otavio Salvador Tue, 20 Mar 2007 23:46:38 -0300 + +grub2 (1.95-2) unstable; urgency=low + + [ Robert Millan ] + * update-grub: Fix for Xen hypervisor entries, thanks Aaron Schrab. + (Closes: #394706) + * Transition to new numbering scheme for partitions. (Closes: #395019) + - update-grub: Don't substract 1 when converting partition device names to + grub drives. + - Add debconf warning explaining the situation. + * Rewrite Architecture line back to hardcoded list :(. (Closes: #398060) + + -- Otavio Salvador Mon, 11 Dec 2006 05:08:41 -0200 + +grub2 (1.95-1) unstable; urgency=low + + * New upstream release. + - patches/03_revert_partition_numbering.diff: Delete (obsoleted). + + -- Robert Millan Sat, 14 Oct 2006 21:19:21 +0200 + +grub2 (1.94+20061003-1) unstable; urgency=high + + * New CVS snapshot. + + [ Otavio Salvador ] + * Change debhelper compatibility mode to 5: + - debian/compat: setted to 5; + * control (Build-Depends): Add lib32ncurses5-dev for ppc64. + Closes: #389873 + * Set urgency=high since it's experimental stuff and tagged likewise. It + also solved a serious bug on PowerPC that leave users with a black + screen. + + [ Robert Millan ] + * control (Depends): Add powerpc-ibm-utils for powerpc/ppc64. + (Closes: #372186) + + -- Otavio Salvador Tue, 3 Oct 2006 16:49:32 -0300 + +grub2 (1.94+20060926-1) unstable; urgency=high + + * New CVS snapshot. + - Command-line editting fix (Closes: #381214). + - Fixes runtime breakage on amd64 (not in BTS). + - Delete a few patches (merged). + + [ Robert Millan ] + * Set urgency=high. Might seem like a rush, but it can't possibly be worse than + 1.94-5 (broken on systems that use udev, broken on amd64...). + * Pure ppc64 support. + - control (Architecture): Add any-ppc64. + - control (Build-Depends): Add libc6-dev-powerpc [ppc64]. + * rules: Remove moddep.lst install command (no longer needed). + * patches/03_revert_partition_numbering.diff: New. Revert a commit that + broke grub-probefs. + * Add bug template to encourage sending upstream stuff directly to + upstream. + - presubj: New. + + [ Otavio Salvador ] + * Add XS-X-Vcs-Svn on control file and point it to our current svn + repository. + * Add cvs-snapshot to rules. + + -- Otavio Salvador Tue, 26 Sep 2006 16:14:36 -0300 + +grub2 (1.94-6) unstable; urgency=low + + [ Robert Millan ] + * update-grub: Set interpreter to /bin/bash to cope with non-POSIX + extensions. (mentioned in #361929) + * patches/03_avoid_recursing_into_dot_static.diff: New. Avoid recursing into + dotdirs (e.g. ".static"). + * patches/04_mkdevicemap_dont_assume_floppies.diff: New. Don't assume + /dev/fd0 exists when generating device.map. + + -- Otavio Salvador Thu, 14 Sep 2006 16:07:30 -0300 + +grub2 (1.94-5) unstable; urgency=low + + [ Robert Millan ] + * control (Build-Depends): s/any-amd64/amd64 kfreebsd-amd64/g (this seems to + confuse buildds). + * 02_not_remove_menu_lst.patch: New patch. Skip menu.lst removal in + grub-install. (Closes: #372934) + + -- Otavio Salvador Sun, 20 Aug 2006 12:02:13 -0300 + +grub2 (1.94-4) unstable; urgency=low + + [ Otavio Salvador ] + * 01_fix_amd64_building.patch: dropped since it now supports amd64 + native building. + * Remove convert_kernel26 usage since it's not necessary anymore and due + initramfs-tools changes it's bug too. + + [ Robert Millan ] + * Fork update-grub from grub legacy, and tweak a few commands in output to + make it work for grub2. + * Update README.Debian.in with more recent (and easier) install instructions. + * Add grub to Conflicts/Replaces. Too many commands with the same name, + even if they don't use the same path yet (but will likely do in the + future, see #361929). + * Get rid of control.in, which I introduced in 0.6+20040805-1 and turned out + to be an endless source of problems (and forbidden by policy as well). + * Fix FTBFS on amd64. Really closes: #372548. + + -- Otavio Salvador Fri, 18 Aug 2006 15:38:25 -0300 + +grub2 (1.94-3) unstable; urgency=low + + * Fix FTBFS in amd64. Closes: 372548 + + -- Otavio Salvador Sat, 10 Jun 2006 19:57:01 -0300 + +grub2 (1.94-2) unstable; urgency=low + + * Update grub images paths in README.Debian + * 01_fix_grub-install.patch: add to fix a problem with PowerPC + installation. Refs: #371069 + * Fix FTBFS in amd64. Closes: #370803 + + -- Otavio Salvador Fri, 9 Jun 2006 09:29:40 -0300 + +grub2 (1.94-1) unstable; urgency=low + + * New upstream release. + - Fix powerpc building. Closes: #370259 + - 01_fix_grub-install.patch: merged upstream. + - Moved modules to /usr/lib/grub since they are architecture + dependent. + * Leave CDBS set debhelper compatibility level. + * Allow amd64 build to happen. Closes: #364956 + * Enforce building in 32bits while running in x86_64 machines. + * Update Standards version to 3.7.2. No changes need. + + -- Otavio Salvador Mon, 5 Jun 2006 12:49:09 -0300 + +grub2 (1.93-1) unstable; urgency=low + + * New upstream release. + - Added support to PowerPC. Closes: #357853 + - 01_fix_grub-install.patch: rediff. + * Update Standards version to 3.6.2. No changes need. + * Start to use new dpkg architecture definition. Closes: #360134 + + -- Otavio Salvador Sat, 1 Apr 2006 10:07:17 -0300 + +grub2 (1.92-2) unstable; urgency=low + + * Add bison on build-depends field. Closes: #346178 + * Add more fixes in 01_fix_grub-install.patch. Closes: #346177 + + -- Otavio Salvador Fri, 6 Jan 2006 09:48:08 -0200 + +grub2 (1.92-1) unstable; urgency=low + + * New upstream release. + - Add support for GPT partition table format. + - Add a new command "play" to play an audio file on PC. + - Add support for Linux/ADFS partition table format. + - Add support for BASH-like scripting. + - Add support for Apple HFS+ filesystems. + * 01_fix_grub-install.patch: Added. Fix grub-install to use + /bin/grub-mkimage instead of /sbin/grub-mkimage. Closes: #338824 + * Do not use CDBS tarball mode anymore. Closes: #344272 + + -- Otavio Salvador Thu, 5 Jan 2006 15:20:40 -0200 + +grub2 (1.91-0) unstable; urgency=low + + * New upstream release. Closes: #331211 + * debian/watch: added. + * debian/control.in, debian/control: Add libncurses5-dev in + Build-Depends. Closes: #304638 + * Remove Robert Millan as uploader; + * Add myself as uploader; + + -- Otavio Salvador Sat, 12 Nov 2005 16:35:18 -0200 + +grub2 (0.6+20050203-2) unstable; urgency=low + + * Disable for powerpc. Reportedly it fails to boot. + + -- Robert Millan Fri, 4 Feb 2005 01:52:09 +0100 + +grub2 (0.6+20050203-1) unstable; urgency=low + + * New upstream snapshot. + * Install moddep.lst properly in a cpu-independant way. (Closes: #264115) + * Use cdbs debian/control autogeneration. + - Set DEB_AUTO_UPDATE_DEBIAN_CONTROL = yes. + - Move control to control.in. + - Add a @cdbs@ tag and replace Architecture with Cpu/System. + * control.in (Build-Depends): Add ruby. + + -- Robert Millan Thu, 3 Feb 2005 22:33:39 +0100 + +grub2 (0.6+20040805-1) unstable; urgency=low + + * New upstream snapshot. + * Uploading to unstable so that powerpc users can be blessed by GRUB too. + * Use type-handling to generate dpkg arch list. + - control.in + - rules + + -- Robert Millan Thu, 5 Aug 2004 20:50:16 +0200 + +grub2 (0.6+20040502-1) experimental; urgency=low + + * New upstream snapshot. + - Fix FTBFS on powerpc. + + -- Robert Millan Sun, 2 May 2004 18:16:29 +0200 + +grub2 (0.6+20040429-1) experimental; urgency=low + + * New upstream snapshot. + - control (Architecture): Add powerpc. + + -- Robert Millan Thu, 29 Apr 2004 20:41:31 +0200 + +grub2 (0.6+20031125-1) experimental; urgency=low + + * New upstream snapshot. + - patches/multiboot.diff: Nuked. + - install,docs: Update directory name. + * control (Maintainer): Set to pkg-grub-devel mailing list. + * control (Uploaders): Add myself. + * control (Architecture): Add freebsd-i386 and netbsd-i386. + + -- Robert Millan Tue, 25 Nov 2003 23:48:18 +0100 + +grub2 (0.6+20031114-1) experimental; urgency=low + + * New upstream snapshot. + - README.Debian: s/fat/ext2/g (We now have ext2fs support). + * Add multiboot support, thanks to Jeroen Dekkers for his patch. + - patches/multiboot.diff: New. + - control (Architecture): Add hurd-i386 (which needed multiboot). + * Rename package to grub2 (to follow upstream tendency). + - control: Ditto. + - README.Debian: Likewise. + * Switch to tarball mode. + - rules: Ditto. + - docs: Prefix paths in order to workaround dh_installdocs bug. + - install: Likewise, but not because of bug (should be in rules, actualy). + * Fix FTBFS. (Closes: #213868) + - control (Build-Depends): Add autoconf. + - control (Build-Conflicts): Add autoconf2.13. + + -- Robert Millan Fri, 14 Nov 2003 13:16:12 +0100 + +pupa (0.6+20031008-1) experimental; urgency=low + + * New upstream snapshot. + * Uploading to experimental. + * debian/control: Add Jason Thomas to Uploaders. + + -- Robert Millan Wed, 8 Oct 2003 13:22:50 +0000 + +pupa (0.6+20030915-1) unstable; urgency=low + + * Initial Release. (Closes: #211030) + + -- Robert Millan Mon, 15 Sep 2003 14:58:42 +0000 --- grub2-1.98+20100804.orig/debian/update-grub +++ grub2-1.98+20100804/debian/update-grub @@ -0,0 +1,3 @@ +#!/bin/sh +set -e +exec grub-mkconfig -o /boot/grub/grub.cfg "$@" --- grub2-1.98+20100804.orig/debian/rules +++ grub2-1.98+20100804/debian/rules @@ -0,0 +1,230 @@ +#!/usr/bin/make -f +SHELL := bash + +deb_version := $(shell dpkg-parsechangelog | sed -ne "s/^Version: \(.*\)/\1/p") +upstream_version := $(shell echo $(deb_version) | sed -e "s/-[^-]*$$//") + +package := grub2 + +DEB_HOST_ARCH_CPU ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU 2>/dev/null) + +CFLAGS := -g -Wall + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif + +ifeq (,$(shell which qemu-system-i386 2>/dev/null)) +with_check := no +else +with_check := yes +endif + +CC := gcc-4.4 + +# Enable external modules from grub-extras. +export GRUB_CONTRIB := $(CURDIR)/debian/grub-extras + +confflags = CC=$(CC) TARGET_CC=$(CC) --enable-grub-mkfont --disable-grub-fstest + +# autogen.sh runs util/import_gcry.py after autoconf et al, so +# conf/gcry.rmk's timestamp will be later and we need to disregard it. +AUTOGEN_FILES = configure $(filter-out conf/gcry.mk,$(wildcard conf/*.mk)) debian/grub-extras/*/conf/*.mk +AUTOGEN_DEB_FILES = examples manpages config templates preinst postinst postrm dirs install + +$(AUTOGEN_FILES): autogen.sh configure.ac $(filter-out conf/gcry.rmk,$(wildcard conf/*.rmk)) debian/grub-extras/*/conf/*.rmk + sed -i configure.ac -e "s/^AC_INIT.*/AC_INIT(\[GRUB\],\[$(deb_version)\],\[bug-grub@gnu.org\])/" + ./autogen.sh + +BUILD_PACKAGES := $(strip $(shell dh_listpackages)) +REAL_PACKAGES = grub-common grub-emu grub-pc grub-coreboot grub-efi-ia32 grub-efi-amd64 grub-ieee1275 grub-firmware-qemu grub-yeeloong + +%: + dh $@ --with quilt + +override_dh_auto_configure: $(patsubst %,configure/%,$(BUILD_PACKAGES)) + +override_dh_auto_build: $(patsubst %,build/%,$(BUILD_PACKAGES)) + +override_dh_auto_install: $(patsubst %,install/%,$(BUILD_PACKAGES)) + +$(patsubst %,configure/%,$(REAL_PACKAGES)) :: configure/% : build/stamps/configure-% +$(patsubst %,build/%,$(REAL_PACKAGES) grub-rescue-pc) :: build/% : build/stamps/build-% + +build/stamps/configure-%: package = $(subst build/stamps/configure-,,$@) +build/stamps/configure-%: export DH_OPTIONS = -p$(package) -Bbuild/$(package) + +build/stamps/build-%: package = $(subst build/stamps/build-,,$@) +build/stamps/build-%: export DH_OPTIONS = -p$(package) -Bbuild/$(package) + +install/%: package = $(subst install/,,$@) +install/%: export DH_OPTIONS = -p$(package) -Bbuild/$(package) + +build/stamps/configure-grub-pc build/stamps/configure-grub-ieee1275 build/stamps/configure-grub-coreboot build/stamps/configure-grub-emu build/stamps/configure-grub-yeeloong: $(AUTOGEN_FILES) + mkdir -p build/stamps build/$(package) + dh_auto_configure -- $(confflags) --with-platform=$(subst grub-,,$(package)) + touch $@ + +# This name scheme leaves room for things like ia64 or amd32 someday +build/stamps/configure-grub-efi-ia32: $(AUTOGEN_FILES) + mkdir -p build/stamps build/$(package) + dh_auto_configure -- $(confflags) --with-platform=efi --target=i386-pe --program-prefix="" + touch $@ +build/stamps/configure-grub-efi-amd64: $(AUTOGEN_FILES) + mkdir -p build/stamps $(subst build/stamps/configure-,build/,$@) + dh_auto_configure -- $(confflags) --with-platform=efi --target=amd64-pe --program-prefix="" + touch $@ + +build/stamps/configure-grub-firmware-qemu: $(AUTOGEN_FILES) + mkdir -p build/stamps $(subst build/stamps/configure-,build/,$@) + dh_auto_configure -- $(confflags) --with-platform=qemu + touch $@ + +build/stamps/configure-grub-common: $(AUTOGEN_FILES) + mkdir -p build/stamps $(subst build/stamps/configure-,build/,$@) + dh_auto_configure -- $(confflags) + touch $@ + +build/stamps/build-grub-common build/stamps/build-grub-efi-ia32 build/stamps/build-grub-efi-amd64 build/stamps/build-grub-ieee1275 build/stamps/build-grub-coreboot build/stamps/build-grub-emu build/stamps/build-grub-yeeloong: build/stamps/build-%: build/stamps/configure-% + dh_auto_build + touch $@ + +build/stamps/build-grub-pc: build/stamps/configure-grub-pc + dh_auto_build +ifeq ($(with_check), yes) + dh_auto_test +endif + touch $@ + +build/stamps/build-grub-firmware-qemu: build/stamps/configure-grub-firmware-qemu + dh_auto_build + grub_dir=`mktemp -d` ; \ + grub_memdisk=`mktemp` ; \ + trap "rm -rf $${grub_dir} $${grub_memdisk}" EXIT HUP INT QUIT TERM ; \ + mkdir -p $${grub_dir}/boot/grub ; \ + cp debian/grub-firmware-qemu_grub.cfg $${grub_dir}/boot/grub/grub.cfg ; \ + tar -cf - -C $${grub_dir} boot > $${grub_memdisk} ; \ + $(CURDIR)/build/$(package)/grub-mkimage \ + -O i386-qemu \ + -d $(CURDIR)/build/$(package) \ + $(CURDIR)/build/$(package)/*.mod \ + -m $${grub_memdisk} \ + -o $(CURDIR)/build/$(package)/grub.bin + touch $@ + +build/stamps/build-grub-rescue-pc: build/stamps/build-grub-pc + mkdir -p build/grub-rescue-pc + cp -a build/grub-pc/grub-mkrescue build/grub-rescue-pc/grub-mkrescue + mkdir -p build/grub-rescue-pc/rescue-disk/boot/grub + cp docs/grub.cfg build/grub-rescue-pc/rescue-disk/boot/grub/ + sed -i 's,^prefix=.*,prefix=$(CURDIR)/build/grub-rescue-pc,' \ + build/grub-rescue-pc/grub-mkrescue + mkdir -p build/grub-rescue-pc/lib/grub + rm -rf build/grub-rescue-pc/lib/grub/i386-pc + cp -a build/grub-pc build/grub-rescue-pc/lib/grub/i386-pc + $(CURDIR)/build/grub-rescue-pc/grub-mkrescue \ + --grub-mkimage=$(CURDIR)/build/grub-pc/grub-mkimage \ + --output=$(CURDIR)/build/grub-rescue-pc/grub-rescue-cdrom.iso \ + $(CURDIR)/build/grub-rescue-pc/rescue-disk + # save space for floppy image + rm -rf build/grub-rescue-pc/lib/grub/i386-pc/po + $(CURDIR)/build/grub-rescue-pc/grub-mkrescue \ + --grub-mkimage=$(CURDIR)/build/grub-pc/grub-mkimage \ + --output=$(CURDIR)/build/grub-rescue-pc/grub-rescue-floppy.img \ + --diet \ + $(CURDIR)/build/grub-rescue-pc/rescue-disk + touch $@ + +install/grub-pc install/grub-efi-ia32 install/grub-efi-amd64 install/grub-ieee1275 install/grub-coreboot install/grub-emu install/grub-yeeloong: + dh_auto_install --destdir=debian/$(package) + + # shipped with grub-common + rm -rf $(CURDIR)/debian/$(package)/etc/grub.d + rm -f $(CURDIR)/debian/$(package)/usr/{sbin,share/man/man8}/{grub-dumpbios,grub-probe,grub-mkconfig,grub-mkdevicemap,grub-ofpathname}{,.8} + rm -f $(CURDIR)/debian/$(package)/usr/{bin,share/man/man1}/{grub-bin2h,grub-mkelfimage,grub-mkfont,grub-mkimage,grub-editenv,grub-mkrescue,grub-mkrelpath,grub-script-check,grub-mkpasswd-pbkdf2}{,.1} + rm -f $(CURDIR)/debian/$(package)/usr/lib/grub/{grub-mkconfig_lib,update-grub_lib} + rm -rf $(CURDIR)/debian/$(package)/usr/share/{grub,info,locale}/ + rm -rf $(CURDIR)/debian/$(package)/usr/include + + if [ "$@" = "install/grub-emu" ] ; then \ + rm -f $(CURDIR)/debian/$(package)/usr/{sbin,share/man/man8}/{grub-reboot,grub-set-default}{,.8} ; \ + fi + + if [ "$@" != "install/grub-emu" ] ; then \ + for i in $(AUTOGEN_DEB_FILES) ; do \ + sed debian/$$i.in \ + -e "s/@PACKAGE@/$(package)/g" \ + > debian/$(package).$$i ; \ + done ; \ + fi + + # grub-pc is a bit special. It includes a few overlays for autogen files. + if [ "$@" = "install/grub-pc" ] ; then \ + for i in templates install dirs ; do \ + cat debian/grub-pc.$$i.in >> debian/grub-pc.$$i ; \ + done ; \ + fi + + mkdir -p $(CURDIR)/debian/$(package)/usr/share/lintian/overrides + echo "$(package): unstripped-binary-or-object *.mod" \ + >> $(CURDIR)/debian/$(package)/usr/share/lintian/overrides/$(package) + cd $(CURDIR)/debian/$(package) && find ./usr/lib/grub -name kernel.img \ + | sed -e "s%.*%$(package): statically-linked-binary &%g" \ + >> $(CURDIR)/debian/$(package)/usr/share/lintian/overrides/$(package) + cd $(CURDIR)/debian/$(package) && find ./usr/lib/grub -name kernel.img \ + | sed -e "s%.*%$(package): unstripped-binary-or-object &%g" \ + >> $(CURDIR)/debian/$(package)/usr/share/lintian/overrides/$(package) + if [ "$@" = "install/grub-efi-amd64" ] && [ "$(DEB_HOST_ARCH_CPU)" = "i386" ] ; then \ + echo "$(package): binary-from-other-architecture *.mod" \ + >> $(CURDIR)/debian/$(package)/usr/share/lintian/overrides/$(package) ; \ + cd $(CURDIR)/debian/$(package) && find ./usr/lib/grub -name kernel.img \ + | sed -e "s%.*%$(package): binary-from-other-architecture &%g" \ + >> $(CURDIR)/debian/$(package)/usr/share/lintian/overrides/$(package) ; \ + fi + if [ "$@" = "install/grub-pc" ] && [ "$(DEB_HOST_ARCH_CPU)" = "i386" ] ; then \ + echo "$(package): binary-from-other-architecture *efiemu64.o" \ + >> $(CURDIR)/debian/$(package)/usr/share/lintian/overrides/$(package) ; \ + fi + +install/grub-common: + dh_auto_install --destdir=debian/$(package) + rm -rf $(CURDIR)/debian/$(package)/usr/lib/grub/{i386,powerpc,sparc64,mips}-* + rm -f $(CURDIR)/debian/$(package)/usr/{sbin,share/man/man8}/{update-grub,grub-install,grub-setup,grub-reboot,grub-set-default}{,.8} + rm -f $(CURDIR)/debian/$(package)/usr/share/info/dir* + +override_dh_installdocs: + dh_installdocs -A AUTHORS NEWS README THANKS TODO + +override_dh_strip: + dh_strip -X/usr/bin/grub-emu + +override_dh_auto_clean: + -rm -rf build + sed -i configure.ac -e "s/^AC_INIT.*/AC_INIT(\[GRUB\],\[0\],\[bug-grub@gnu.org\]) dnl version is filled by debian\/rules/" + +override_dh_clean: debian/legacy/update-grub debian/grub-extras + dh_clean + + chmod +x debian/{script,grub.d/*,legacy/*,kernel/*} + + for i in $(AUTOGEN_DEB_FILES) ; do \ + rm -f debian/grub-{pc,efi-*,ieee1275,coreboot,yeeloong}.$$i ; \ + done + + # make sure PO files are always up-to-date + debconf-updatepo + + # clean regenerated Catalan gmo + rm -f po/ca.gmo + +debian/legacy/update-grub: + @echo "Missing $@. Try: \"bzr cat http://bzr.debian.org/bzr/pkg-grub/trunk/grub-legacy/debian/update-grub > $@\"" + exit 1 + +debian/grub-extras: + @echo "Missing $@. Try: \"mkdir -p $@; for extra in 915resolution ntldr-img zfs; do bzr export $@/\$$extra http://bzr.savannah.nongnu.org/r/grub-extras/\$$extra; done\"" + exit 1 + +.PHONY: $(patsubst %,configure/%,$(BUILD_PACKAGES)) $(patsubst %,build/%,$(BUILD_PACKAGES)) $(patsubst %,install/%,$(BUILD_PACKAGES)) --- grub2-1.98+20100804.orig/debian/watch +++ grub2-1.98+20100804/debian/watch @@ -0,0 +1,2 @@ +version=3 +ftp://alpha.gnu.org/gnu/grub/grub-([a-z0-9.~]+).tar.gz debian uupdate --- grub2-1.98+20100804.orig/debian/manpages.in +++ grub2-1.98+20100804/debian/manpages.in @@ -0,0 +1,3 @@ +debian/update-grub.8 +debian/update-grub2.8 + --- grub2-1.98+20100804.orig/debian/grub-common.preinst +++ grub2-1.98+20100804/debian/grub-common.preinst @@ -0,0 +1,52 @@ +#!/bin/bash +set -e + +# Taken from http://wiki.debian.org/DpkgConffileHandling +# Remove a no-longer used conffile +rm_conffile() { + local PKGNAME="grub-common" + local CONFFILE="$1" + + [ -e "$CONFFILE" ] || return 0 + + local md5sum="$(md5sum $CONFFILE | sed -e 's/ .*//')" + local old_md5sum="$(dpkg-query -W -f='${Conffiles}' $PKGNAME | \ + sed -n -e "\' $CONFFILE ' { s/ obsolete$//; s/.* //; p }")" + if [ "$md5sum" != "$old_md5sum" ]; then + echo "Obsolete conffile $CONFFILE has been modified by you." + echo "Saving as $CONFFILE.dpkg-bak ..." + mv -f "$CONFFILE" "$CONFFILE".dpkg-bak + else + echo "Removing obsolete conffile $CONFFILE ..." + rm -f "$CONFFILE" + fi +} + +case "$1" in + install|upgrade) + if dpkg --compare-versions "$2" lt "1.98~20091229-1" ; then + rm_conffile "/etc/grub.d/10_freebsd" + fi + if dpkg --compare-versions "$2" lt "1.96+20090521-1" ; then + if [[ `dpkg --print-architecture` != hurd-* ]] ; then + rm_conffile "/etc/grub.d/10_hurd" + fi + if [[ `dpkg --print-architecture` = hurd-* ]] || [[ `dpkg --print-architecture` = kfreebsd-* ]] ; then + rm_conffile "/etc/grub.d/10_linux" + fi + fi + ;; + abort-upgrade) + ;; + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 --- grub2-1.98+20100804.orig/debian/grub2.install +++ grub2-1.98+20100804/debian/grub2.install @@ -0,0 +1,2 @@ +debian/presubj usr/share/bug/grub2 +debian/script usr/share/bug/grub2 --- grub2-1.98+20100804.orig/debian/grub-common.install +++ grub2-1.98+20100804/debian/grub-common.install @@ -0,0 +1 @@ +debian/presubj usr/share/bug/grub-common --- grub2-1.98+20100804.orig/debian/update-grub2 +++ grub2-1.98+20100804/debian/update-grub2 @@ -0,0 +1,3 @@ +#!/bin/sh +set -e +exec update-grub "$@" --- grub2-1.98+20100804.orig/debian/grub-pc.templates.in +++ grub2-1.98+20100804/debian/grub-pc.templates.in @@ -0,0 +1,147 @@ + +# This file is concatenated. Do not delete the newline above. + +Template: grub-pc/chainload_from_menu.lst +Type: boolean +Default: true +#flag:translate!:6 +_Description: Chainload from menu.lst? + GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub. + . + In order to replace the Legacy version of GRUB in your system, it is + recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot + image from your existing GRUB Legacy setup. This step can be automatically + performed now. + . + It's recommended that you accept chainloading GRUB 2 from menu.lst, and + verify that the new GRUB 2 setup works before it is written to the MBR + (Master Boot Record). + . + Whatever your decision, you can replace the old MBR image with GRUB 2 + later by issuing the following command as root: + . + upgrade-from-grub-legacy + +Template: grub-pc/install_devices +Type: multiselect +Choices-C: ${RAW_CHOICES} +Choices: ${CHOICES} +_Description: GRUB install devices: + The grub-pc package is being upgraded. This menu allows you to select which + devices you'd like grub-install to be automatically run for, if any. + . + Running grub-install automatically is recommended in most situations, to + prevent the installed GRUB core image from getting out of sync with GRUB + modules or grub.cfg. + . + If you're unsure which drive is designated as boot drive by your BIOS, it is + often a good idea to install GRUB to all of them. + . + Note: it is possible to install GRUB to partition boot records as well, and + some appropriate partitions are offered here. However, this forces GRUB to + use the blocklist mechanism, which makes it less reliable, and therefore is + not recommended. + +Template: grub-pc/install_devices_disks_changed +Type: multiselect +Choices-C: ${RAW_CHOICES} +Choices: ${CHOICES} +_Description: GRUB install devices: + The GRUB boot loader was previously installed to a disk that is no longer + present, or whose unique identifier has changed for some reason. It is + important to make sure that the installed GRUB core image stays in sync + with GRUB modules and grub.cfg. Please check again to make sure that GRUB + is written to the appropriate boot devices. + . + If you're unsure which drive is designated as boot drive by your BIOS, it is + often a good idea to install GRUB to all of them. + . + Note: it is possible to install GRUB to partition boot records as well, and + some appropriate partitions are offered here. However, this forces GRUB to + use the blocklist mechanism, which makes it less reliable, and therefore is + not recommended. + +Template: grub-pc/disk_description +Type: text +# Disk sizes are in decimal megabytes, to match how disk manufacturers +# usually describe them. +_Description: ${DEVICE} (${SIZE} MB; ${MODEL}) + +Template: grub-pc/partition_description +Type: text +# The "-" is used to indicate indentation. Leading spaces may not work. +_Description: - ${DEVICE} (${SIZE} MB; ${PATH}) + +Template: grub-pc/install_devices_failed +Type: boolean +Default: false +#flag:translate!:3 +_Description: Writing GRUB to boot device failed - continue? + GRUB failed to install to the following devices: + . + ${FAILED_DEVICES} + . + Do you want to continue anyway? If you do, your computer may not start up + properly. + +Template: grub-pc/install_devices_failed_upgrade +Type: boolean +Default: true +#flag:translate!:3 +_Description: Writing GRUB to boot device failed - try again? + GRUB failed to install to the following devices: + . + ${FAILED_DEVICES} + . + You may be able to install GRUB to some other device, although you should + check that your system will boot from that device. Otherwise, the upgrade + from GRUB Legacy will be canceled. + +Template: grub-pc/install_devices_empty +Type: boolean +Default: false +_Description: Continue without installing GRUB? + You chose not to install GRUB to any devices. If you continue, the boot + loader may not be properly configured, and when this computer next starts + up it will use whatever was previously in the boot sector. If there is an + earlier version of GRUB 2 in the boot sector, it may be unable to load + modules or handle the current configuration file. + . + If you are already using a different boot loader and want to carry on + doing so, or if this is a special environment where you do not need a boot + loader, then you should continue anyway. Otherwise, you should install + GRUB somewhere. + +Template: grub-pc/postrm_purge_boot_grub +Type: boolean +Default: false +_Description: Remove GRUB 2 from /boot/grub? + Do you want to have all GRUB 2 files removed from /boot/grub? + . + This will make the system unbootable unless another boot loader is + installed. + +Template: grub-pc/mixed_legacy_and_grub2 +Type: boolean +Default: true +#flag:translate!:3 +_Description: Finish conversion to GRUB 2 now? + This system still has files from the GRUB Legacy boot loader installed, but + it now also has GRUB 2 boot records installed on these disks: + . + ${DISKS} + . + It seems likely that GRUB Legacy is no longer in use, and that you should + instead upgrade the GRUB 2 images on these disks and finish the conversion + to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these + GRUB 2 images, then they may be incompatible with the new packages and + cause your system to stop booting properly. + . + You should generally finish the conversion to GRUB 2 unless these boot + records were created by a GRUB 2 installation on some other operating + system. + +Template: grub-pc/kopt_extracted +Type: boolean +Default: false +Description: for internal use --- grub2-1.98+20100804.orig/debian/grub-firmware-qemu_grub.cfg +++ grub2-1.98+20100804/debian/grub-firmware-qemu_grub.cfg @@ -0,0 +1,37 @@ +set default=0 +set fallback=1 +set timeout=10 + +menuentry "Search & load /boot/multiboot.img" { + search -s -f /boot/multiboot.img + if multiboot /boot/multiboot.img ; then + boot + fi + unset timeout +} + +# For separate /boot partition. +menuentry "Search & load /multiboot.img" { + search -s -f /multiboot.img + if multiboot /multiboot.img ; then + boot + fi + unset timeout +} + +menuentry "Search & source /boot/grub/grub.cfg" { + search -s -f /boot/grub/grub.cfg + source /boot/grub/grub.cfg + unset timeout +} + +# For separate /boot partition. +menuentry "Search & source /grub/grub.cfg" { + search -s -f /grub/grub.cfg + source /grub/grub.cfg + unset timeout +} + +menuentry "Reboot" { + reboot +} --- grub2-1.98+20100804.orig/debian/postrm.in +++ grub2-1.98+20100804/debian/postrm.in @@ -0,0 +1,47 @@ +#!/bin/bash +set -e + +case "$1" in + purge) + rm -f /etc/default/grub + + if which ucf >/dev/null ; then + ucf --purge /etc/default/grub + fi + if which ucfr >/dev/null ; then + ucfr --purge @PACKAGE@ /etc/default/grub || true + fi + + case @PACKAGE@ in + grub-pc) + # debconf could have been purged + if [ -e /usr/share/debconf/confmodule ] ; then + . /usr/share/debconf/confmodule + fi + + db_input high grub-pc/postrm_purge_boot_grub || true + db_go || true + db_get grub-pc/postrm_purge_boot_grub || true + if [ "$RET" = "true" ] ; then + rm -f /boot/grub/{grub.cfg,ascii.pf2,unicode.pf2,moreblue-orbit-grub.png,*.mod,*.lst,*.img,efiemu32.o,efiemu64.o,device.map,grubenv,installed-version,.background_cache.jpeg,.background_cache.png,.background_cache.tga} || true + rm -rf /boot/grub/locale + rmdir --ignore-fail-on-non-empty /boot/grub || true + fi + ;; + esac + + ;; + remove|upgrade|failed-upgrade|abort-upgrade|abort-install) + ;; + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 --- grub2-1.98+20100804.orig/debian/grub-firmware-qemu.install +++ grub2-1.98+20100804/debian/grub-firmware-qemu.install @@ -0,0 +1 @@ +build/grub-firmware-qemu/grub.bin usr/share/qemu --- grub2-1.98+20100804.orig/debian/compat +++ grub2-1.98+20100804/debian/compat @@ -0,0 +1 @@ +7 --- grub2-1.98+20100804.orig/debian/grub-common.examples +++ grub2-1.98+20100804/debian/grub-common.examples @@ -0,0 +1 @@ +docs/grub.cfg --- grub2-1.98+20100804.orig/debian/config.in +++ grub2-1.98+20100804/debian/config.in @@ -0,0 +1,48 @@ +#!/bin/sh +set -e + +case `dpkg --print-architecture` in + kfreebsd-*) + # No migration from GRUB Legacy, no Linux cmdline + exit 0 + ;; +esac + +. /usr/share/debconf/confmodule + +priority=high + +case @PACKAGE@ in + grub-pc) + if test -e /boot/grub/stage2 && test -e /boot/grub/menu.lst && ! test -e /boot/grub/core.img ; then + + db_input high grub-pc/chainload_from_menu.lst || true + + db_get grub-pc/kopt_extracted || true + # this check ensures we only do this once + if [ "$RET" = "false" ] ; then + kopt=`sed -ne "s/^# kopt=//p" /boot/grub/menu.lst | tr -s " " "\n" | grep -vx "\(ro\|root=[^ ]*\)" | paste -s -d ' '` || true + db_set grub2/linux_cmdline "${kopt}" || true + db_set grub-pc/kopt_extracted true || true + if [ "${kopt}" = "" ] ; then + # something smells bad. give user a chance to correct it. + priority=high + else + # if we got something from menu.lst, it must be correct? + priority=medium + fi + fi + fi + ;; +esac + +if test -e /etc/default/grub ; then + . /etc/default/grub + + db_set grub2/linux_cmdline "$GRUB_CMDLINE_LINUX" + db_set grub2/linux_cmdline_default "$GRUB_CMDLINE_LINUX_DEFAULT" +fi + +db_input ${priority} grub2/linux_cmdline || true +db_input medium grub2/linux_cmdline_default || true +db_go --- grub2-1.98+20100804.orig/debian/control +++ grub2-1.98+20100804/debian/control @@ -0,0 +1,229 @@ +Source: grub2 +Section: admin +Priority: extra +Maintainer: GRUB Maintainers +Uploaders: Robert Millan , Felix Zielcke , Jordi Mallach , Colin Watson +DM-Upload-Allowed: yes +Build-Depends: debhelper (>= 7.0.50~), + quilt (>= 0.46-7), + patchutils, + autoconf, + automake, + python, + ruby, + flex (>= 2.5.35), + bison, + po-debconf, + help2man, + texinfo, + gcc-4.4-multilib [i386 kopensolaris-i386 amd64 kfreebsd-amd64 sparc], + gcc-4.4, + libncurses5-dev, + xfonts-unifont, + libfreetype6-dev, + gettext, + libusb-dev [!hurd-i386], + libdevmapper-dev [amd64 i386 powerpc mipsel sparc], + libzfs-dev [kfreebsd-i386 kfreebsd-amd64], + libnvpair-dev [kfreebsd-i386 kfreebsd-amd64], + libsdl1.2-dev [!hurd-i386], + xorriso (>= 0.5.6.pl00), + qemu-system [i386 kfreebsd-i386 kopensolaris-i386 amd64 kfreebsd-amd64], +Build-Conflicts: autoconf2.13 +Standards-Version: 3.8.4 +Homepage: http://www.gnu.org/software/grub/ +Vcs-Bzr: https://alioth.debian.org/anonscm/bzr/pkg-grub/trunk/grub/ +Vcs-Browser: http://bzr.debian.org/loggerhead/pkg-grub/ + + +Package: grub2 +Architecture: i386 kfreebsd-i386 hurd-i386 kopensolaris-i386 amd64 kfreebsd-amd64 powerpc sparc +Depends: grub-pc (= ${binary:Version}) [i386 kfreebsd-i386 hurd-i386 kopensolaris-i386 amd64 kfreebsd-amd64] | grub-ieee1275 (= ${binary:Version}) [powerpc sparc], ${misc:Depends} +Description: GRand Unified Bootloader, version 2 (dummy package) + This is a dummy transitional package to handle GRUB 2 upgrades. It can be + safely removed. + +Package: grub-linuxbios +Architecture: i386 kfreebsd-i386 hurd-i386 kopensolaris-i386 amd64 kfreebsd-amd64 +Depends: grub-coreboot (= ${binary:Version}), ${misc:Depends} +Description: GRand Unified Bootloader, version 2 (dummy package) + This is a dummy transitional package that depends on grub-coreboot. + +Package: grub-efi +Architecture: i386 kfreebsd-i386 hurd-i386 kopensolaris-i386 amd64 kfreebsd-amd64 +Depends: ${misc:Depends}, grub-efi-ia32 (= ${binary:Version}) [i386 kfreebsd-i386 hurd-i386 kopensolaris-i386], grub-efi-amd64 (= ${binary:Version}) [amd64 kfreebsd-amd64] +Description: GRand Unified Bootloader, version 2 (dummy package) + This is a dummy transitional package that depends on either grub-efi-ia32 or + grub-efi-amd64, depending on the architecture. + + +Package: grub-common +Priority: optional +Architecture: i386 kfreebsd-i386 hurd-i386 kopensolaris-i386 amd64 kfreebsd-amd64 powerpc sparc mipsel +Depends: base-files (>= 4.0.1~), dpkg (>= 1.15.4) | install-info | dpkg (<= 1.14.25), ${shlibs:Depends}, ${misc:Depends}, gettext-base +Replaces: grub-pc (<< 1.98+20100527-1), grub-ieee1275 (<< 1.98+20100527-1), grub-efi (<< 1.96+20080831-1), grub-coreboot (<< 1.97+20091114-1), grub-linuxbios (<< 1.96+20080831-1), grub-efi-ia32 (<< 1.98+20100527-1), grub-efi-amd64 (<< 1.98+20100527-1), grub-yeeloong (<< 1.98+20100527-1) +Recommends: os-prober (>= 1.33) +Suggests: multiboot-doc [i386 kfreebsd-i386 hurd-i386 kopensolaris-i386 amd64 kfreebsd-amd64], grub-emu, xorriso (>= 0.5.6.pl00) +# See bugs #435983 and #455746 +Conflicts: mdadm (<< 2.6.7-2), grub-doc (<< 0.97-32), grub-legacy-doc (<< 0.97-59) +Breaks: lupin-support (<< 0.30) +Description: GRand Unified Bootloader, version 2 (common files) + This package contains common files shared by the distinct flavours of GRUB. + +Package: grub-emu +Architecture: i386 kfreebsd-i386 hurd-i386 kopensolaris-i386 amd64 kfreebsd-amd64 powerpc +Depends: ${shlibs:Depends}, base-files (>= 4.0.1~), ${misc:Depends} +Replaces: grub-common (<= 1.97~beta3-1) +Description: GRand Unified Bootloader, version 2 (emulated version) + This package contains grub-emu, an emulated version of GRUB. It is only + provided for debugging purposes. + +Package: grub-pc +Priority: optional +Architecture: i386 kfreebsd-i386 hurd-i386 kopensolaris-i386 amd64 kfreebsd-amd64 +Depends: ${shlibs:Depends}, ${misc:Depends}, grub-common (= ${binary:Version}), ucf +Replaces: grub, grub-legacy, grub2 (<< ${source:Version}), grub-common (<= 1.96+20080413-1), grub-efi-amd64, grub-efi-ia32, grub-coreboot, grub-ieee1275 +Conflicts: grub (<< 0.97-54), grub-legacy, desktop-base (= 4.0.5), grub-efi-amd64, grub-efi-ia32, grub-coreboot, grub-ieee1275 +Suggests: desktop-base (>= 4.0.6) +Description: GRand Unified Bootloader, version 2 (PC/BIOS version) + GRUB is a portable, powerful bootloader. This version of GRUB is based on a + cleaner design than its predecessors, and provides the following new features: + . + - Scripting in grub.cfg using BASH-like syntax. + - Support for modern partition maps such as GPT. + - Modular generation of grub.cfg via update-grub. Packages providing GRUB + add-ons can plug in their own script rules and trigger updates by invoking + update-grub2. + - VESA-based graphical mode with background image support and complete 24-bit + color set. + - Support for extended charsets. Users can write UTF-8 text to their menu + entries. + . + This package contains a version of GRUB that has been built for use with + traditional PC/BIOS architecture. + +Package: grub-rescue-pc +Architecture: i386 kfreebsd-i386 hurd-i386 kopensolaris-i386 amd64 kfreebsd-amd64 +Depends: ${misc:Depends} +Description: GRUB bootable rescue images, version 2 (PC/BIOS version) + This package contains three GRUB rescue images that have been built for use + with the traditional PC/BIOS architecture: + . + - grub-rescue-floppy.img: floppy image. + - grub-rescue-cdrom.iso: El Torito CDROM image. + - grub-rescue-usb.img: USB image. + +Package: grub-coreboot +Architecture: i386 kfreebsd-i386 hurd-i386 kopensolaris-i386 amd64 kfreebsd-amd64 +Depends: ${shlibs:Depends}, grub-common (= ${binary:Version}), ${misc:Depends}, ucf +Replaces: grub-legacy, grub2 (<< ${source:Version}), grub-common (<= 1.96+20080413-1), grub-linuxbios, grub-efi-amd64, grub-efi-ia32, grub-pc, grub-ieee1275 +Conflicts: grub (<< 0.97-54), grub-legacy, grub-linuxbios (<< ${source:Version}), grub-efi-amd64, grub-efi-ia32, grub-pc, grub-ieee1275 +Suggests: os-prober +Description: GRand Unified Bootloader, version 2 (Coreboot version) + GRUB is a portable, powerful bootloader. This version of GRUB is based on a + cleaner design than its predecessors, and provides the following new features: + . + - Scripting in grub.cfg using BASH-like syntax. + - Support for modern partition maps such as GPT. + - Modular generation of grub.cfg via update-grub. Packages providing GRUB + add-ons can plug in their own script rules and trigger updates by invoking + update-grub2. + . + This package contains a version of GRUB that has been built for use with + platforms running the Coreboot firmware. + +Package: grub-efi-ia32 +Architecture: i386 kfreebsd-i386 hurd-i386 kopensolaris-i386 amd64 kfreebsd-amd64 +Depends: ${shlibs:Depends}, grub-common (= ${binary:Version}), ${misc:Depends}, ucf +Replaces: grub, grub-legacy, grub2 (<< ${source:Version}), grub-common (<= 1.96+20080413-1), grub-efi, grub-efi-amd64, grub-pc, grub-coreboot, grub-ieee1275 +Conflicts: grub (<< 0.97-54), grub-legacy, grub-efi-amd64, grub-pc, grub-coreboot, grub-ieee1275 +Suggests: os-prober, efibootmgr +Description: GRand Unified Bootloader, version 2 (EFI-IA32 version) + GRUB is a portable, powerful bootloader. This version of GRUB is based on a + cleaner design than its predecessors, and provides the following new features: + . + - Scripting in grub.cfg using BASH-like syntax. + - Support for modern partition maps such as GPT. + - Modular generation of grub.cfg via update-grub. Packages providing GRUB + add-ons can plug in their own script rules and trigger updates by invoking + update-grub2. + . + This package contains a version of GRUB that has been built for use with + EFI-IA32 architecture, such as the one provided by Intel Macs (that is, unless + a BIOS interface has been activated). + +Package: grub-efi-amd64 +Architecture: i386 kopensolaris-i386 amd64 kfreebsd-amd64 +Depends: ${shlibs:Depends}, grub-common (= ${binary:Version}), ${misc:Depends}, ucf +Replaces: grub, grub-legacy, grub2 (<< ${source:Version}), grub-common (<= 1.96+20080413-1), grub-pc, grub-efi-ia32, grub-coreboot, grub-ieee1275 +Conflicts: grub, grub-legacy, grub-efi-ia32, grub-pc, grub-coreboot, grub-ieee1275 +Suggests: os-prober, efibootmgr +Description: GRand Unified Bootloader, version 2 (EFI-AMD64 version) + GRUB is a portable, powerful bootloader. This version of GRUB is based on a + cleaner design than its predecessors, and provides the following new features: + . + - Scripting in grub.cfg using BASH-like syntax. + - Support for modern partition maps such as GPT. + - Modular generation of grub.cfg via update-grub. Packages providing GRUB + add-ons can plug in their own script rules and trigger updates by invoking + update-grub2. + . + This package contains a version of GRUB that has been built for use with + EFI-AMD64 architecture, such as the one provided by Intel Macs (that is, unless + a BIOS interface has been activated). + +Package: grub-ieee1275 +Architecture: i386 kfreebsd-i386 hurd-i386 kopensolaris-i386 amd64 kfreebsd-amd64 powerpc sparc +Depends: ${shlibs:Depends}, grub-common (= ${binary:Version}), + powerpc-ibm-utils [powerpc], powerpc-utils [powerpc], bc [powerpc], ${misc:Depends}, ucf +Replaces: grub-legacy, grub2 (<< ${source:Version}), grub-common (<= 1.96+20080413-1), grub-efi-amd64, grub-efi-ia32, grub-coreboot, grub-pc +Conflicts: grub (<< 0.97-54), grub-legacy, grub-efi-amd64, grub-efi-ia32, grub-coreboot, grub-pc +Suggests: os-prober, genisoimage [powerpc] +Description: GRand Unified Bootloader, version 2 (Open Firmware version) + GRUB is a portable, powerful bootloader. This version of GRUB is based on a + cleaner design than its predecessors, and provides the following new features: + . + - Scripting in grub.cfg using BASH-like syntax. + - Support for modern partition maps such as GPT. + - Modular generation of grub.cfg via update-grub. Packages providing GRUB + add-ons can plug in their own script rules and trigger updates by invoking + update-grub2. + . + This package contains a version of GRUB that has been built for use with + Open Firmware implementations. + +Package: grub-firmware-qemu +Architecture: i386 kfreebsd-i386 hurd-i386 kopensolaris-i386 amd64 kfreebsd-amd64 +Depends: base-files (>= 4.0.1~), ${misc:Depends} +Recommends: qemu +Enhances: qemu +Description: GRUB firmware image for QEMU + This package contains a binary of GRUB that has been built for use as + firmware for QEMU. It can be used as a replacement for the standard + PC BIOS provided by the bochsbios package (bios.bin). + . + In order to make QEMU use this firmware, simply add `-bios grub.bin' when + invoking it. + . + This package behaves in the same way as GRUB for coreboot, but doesn't + contain any code from coreboot itself, and is only suitable for QEMU. If + you want to install GRUB as firmware on real hardware, you need to use the + grub-coreboot package, and manually combine that with coreboot. + +Package: grub-yeeloong +Architecture: mipsel +Depends: ${shlibs:Depends}, grub-common (= ${binary:Version}), ${misc:Depends}, ucf +Replaces: grub-common (<< 1.98+20100617-2) +Suggests: os-prober +Description: GRand Unified Bootloader, version 2 (Yeeloong version) + GRUB is a portable, powerful bootloader. This version of GRUB is based on a + cleaner design than its predecessors, and provides the following new features: + . + - Scripting in grub.cfg using BASH-like syntax. + - Support for modern partition maps such as GPT. + - Modular generation of grub.cfg via update-grub. Packages providing GRUB + add-ons can plug in their own script rules and trigger updates by invoking + update-grub2. + . + This package contains a version of GRUB that has been built for use with + the Lemote Yeeloong laptop. --- grub2-1.98+20100804.orig/debian/templates.in +++ grub2-1.98+20100804/debian/templates.in @@ -0,0 +1,45 @@ +Template: grub2/linux_cmdline +Type: string +_Description: Linux command line: + The following Linux command line was extracted from /etc/default/grub or the + `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is correct, + and modify it if necessary. + +Template: grub2/linux_cmdline_default +Type: string +Default: quiet +_Description: Linux default command line: + The following string will be used as Linux parameters for the default menu + entry but not for the recovery mode. + +# still unused +Template: grub2/kfreebsd_cmdline +Type: string +_Description: kFreeBSD command line: + The following kFreeBSD command line was extracted from /etc/default/grub or the + `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is correct, + and modify it if necessary. + +# still unused +Template: grub2/kfreebsd_cmdline_default +Type: string +Default: quiet +_Description: kFreeBSD default command line: + The following string will be used as kFreeBSD parameters for the default menu + entry but not for the recovery mode. + +Template: grub2/device_map_regenerated +Type: note +_Description: /boot/grub/device.map has been regenerated + The file /boot/grub/device.map has been rewritten to use stable device + names. In most cases, this should significantly reduce the need to change + it in future, and boot menu entries generated by GRUB should not be + affected. + . + However, since more than one disk is present in the system, it is possible + that the system is depending on the old device map. Please check whether + there are any custom boot menu entries that rely on GRUB's (hdN) drive + numbering, and update them if necessary. + . + If you do not understand this message, or if there are no custom + boot menu entries, you can ignore this message. --- grub2-1.98+20100804.orig/debian/grub-pc.dirs.in +++ grub2-1.98+20100804/debian/grub-pc.dirs.in @@ -0,0 +1 @@ +usr/lib/grub-legacy --- grub2-1.98+20100804.orig/debian/NEWS +++ grub2-1.98+20100804/debian/NEWS @@ -0,0 +1,13 @@ +grub2 (1.96+20090609-1) experimental; urgency=low + + Before this version, grub-efi was 32bit on i386 and 64bit on amd64. + However, EFI can be 32bit even if you have a 64bit CPU, like in the + first MacBook models with Core 2 Duo released in late 2006. Thus, + grub-efi has been split into grub-efi-amd64 and grub-efi-ia32 which are + available on both amd64 and i386. + + If you've experienced problems trying to load grub.efi, please try + again using the package that doesn't match your CPU's architecture. + + -- Felix Zielcke Tue, 09 Jun 2009 19:21:15 +0200 + --- grub2-1.98+20100804.orig/debian/grub2.dirs +++ grub2-1.98+20100804/debian/grub2.dirs @@ -0,0 +1 @@ +usr/share/bug/grub2 --- grub2-1.98+20100804.orig/debian/dirs.in +++ grub2-1.98+20100804/debian/dirs.in @@ -0,0 +1,4 @@ +usr/bin +usr/sbin +usr/share/grub +usr/share/bug/@PACKAGE@ --- grub2-1.98+20100804.orig/debian/update-grub2.8 +++ grub2-1.98+20100804/debian/update-grub2.8 @@ -0,0 +1,16 @@ +.\" Copyright 2009 Felix Zielcke +.\" Lincensed under GPL3+ +.TH UPDATE-GRUB2 "8" "April 2009" +.SH NAME +update-grub2 \- stub for update-grub +.SH SYNOPSIS +.B update-grub2 +.SH DESCRIPTION +.B update-grub2 +is a stub for running +.B update-grub +which itself is a stub for running +.B grub-mkconfig -o /boot/grub/grub.cfg +to generate a grub2 config file. +.SH "SEE ALSO" +.BR update-grub (8), grub-mkconfig (8) --- grub2-1.98+20100804.orig/debian/postinst.in +++ grub2-1.98+20100804/debian/postinst.in @@ -0,0 +1,611 @@ +#!/bin/bash +set -e + +merge_debconf_into_conf() +{ + local tmpfile; tmpfile="$1" + local setting; setting="$2" + local template; template="$3" + + db_get "$template" + local value; value="$(echo "$RET" | sed -e 's,[$`"\@],\\&,g')" + if grep -q "^${setting}=" "$tmpfile"; then + sed -i -re "s@^(${setting}=).*@\1\"${value}\"@" "$tmpfile" + else + echo >> "$tmpfile" + echo "${setting}=\"${value}\"" >> "$tmpfile" + fi +} + +# This only works on a Linux system with udev running. This is probably the +# vast majority of systems where we need any of this, though, and we fall +# back reasonably gracefully if we don't have it. +cached_available_ids= +available_ids() +{ + local id path + + if [ "$cached_available_ids" ]; then + echo "$cached_available_ids" + return + fi + + [ -d /dev/disk/by-id ] || return + cached_available_ids="$( + for path in /dev/disk/by-id/*; do + [ -e "$path" ] || continue + printf '%s %s\n' "$path" "$(readlink -f "$path")" + done | sort -k2 -s -u | cut -d' ' -f1 + )" + echo "$cached_available_ids" +} + +# Returns non-zero and no output if no mapping can be found. +device_to_id() +{ + local id + for id in $(available_ids); do + if [ "$(readlink -f "$id")" = "$(readlink -f "$1")" ]; then + echo "$id" + return 0 + fi + done + # Fall back to the plain device name if there's no by-id link for it. + if [ -e "$1" ]; then + echo "$1" + return 0 + fi + return 1 +} + +devices_to_ids() +{ + local device id ids + ids= + for device; do + id="$(device_to_id "$device" || true)" + if [ "$id" ]; then + ids="${ids:+$ids, }$id" + fi + done + echo "$ids" +} + +all_disks() +{ + local id + for id in $(available_ids); do + case $id in + *-part*) ;; + *) echo "$id" ;; + esac + done +} + +all_partitions() +{ + local id ids + ids= + for id in $(available_ids); do + if [ "$id" != "$1" ] && [ "${id%-part*}" = "$1" ]; then + ids="${ids:+$ids }$id" + fi + done + echo "$ids" +} + +# In order to determine whether we accidentally ran grub-install without +# upgrade-from-grub-legacy on versions older than 1.98+20100617-1, we need +# to be able to scan a disk to determine whether GRUB 2 was installed in its +# boot sector. This is specific to i386-pc (but that's the only platform +# where we need it). +scan_grub2() +{ + if ! dd if="$1" bs=512 count=1 2>/dev/null | grep -aq GRUB; then + # No version of GRUB is installed. + return 1 + fi + + # The GRUB boot sector always starts with a JMP instruction. + initial_jmp="$(dd if="$1" bs=2 count=1 2>/dev/null | od -Ax -tx1 | \ + head -n1 | cut -d' ' -f2,3)" + [ "$initial_jmp" ] || return 1 + initial_jmp_opcode="${initial_jmp%% *}" + [ "$initial_jmp_opcode" = eb ] || return 1 + initial_jmp_operand="${initial_jmp#* }" + case $initial_jmp_operand in + 47|4b|4c|63) + # I believe this covers all versions of GRUB 2 up to the package + # version where we gained a more explicit mechanism. GRUB Legacy + # always had 48 here. + return 0 + ;; + esac + + return 1 +} + +# for Linux +sysfs_size() +{ + local num_sectors sector_size size + # Try to find out the size without relying on a partitioning tool being + # installed. This isn't too hard on Linux 2.6 with sysfs, but we have to + # try a couple of variants on detection of the sector size. + if [ -e "$1/size" ]; then + num_sectors="$(cat "$1/size")" + sector_size=512 + if [ -e "$1/queue/logical_block_size" ]; then + sector_size="$(cat "$1/queue/logical_block_size")" + elif [ -e "$1/queue/hw_sector_size" ]; then + sector_size="$(cat "$1/queue/hw_sector_size")" + fi + size="$(expr "$num_sectors" \* "$sector_size" / 1000 / 1000)" + fi + [ "$size" ] || size='???' + echo "$size" +} + +# for kFreeBSD +camcontrol_size() +{ + local num_sectors sector_size size + + num_sectors="$(camcontrol readcap "$1" -q -s -N)" + sector_size="$(camcontrol readcap "$1" -q -b)" + size="$(expr "$num_sectors" \* "$sector_size" / 1000 / 1000)" + + [ "$size" ] || size='???' + echo "$size" +} + +# Returns value in $RET, like a debconf command. +describe_disk() +{ + local disk id base size + disk="$1" + id="$2" + + model= + case $(uname -s) in + Linux) + if which udevadm >/dev/null 2>&1; then + size="$(sysfs_size "/sys$(udevadm info -n "$disk" -q path)")" + else + base="${disk#/dev/}" + base="$(printf %s "$base" | sed 's,/,!,g')" + size="$(sysfs_size "/sys/block/$base")" + fi + + if which udevadm >/dev/null 2>&1; then + model="$(udevadm info -n "$disk" -q property | sed -n 's/^ID_MODEL=//p')" + if [ -z "$model" ]; then + model="$(udevadm info -n "$disk" -q property | sed -n 's/^DM_NAME=//p')" + if [ -z "$model" ]; then + model="$(udevadm info -n "$disk" -q property | sed -n 's/^MD_NAME=//p')" + if [ -z "$model" ] && which dmsetup >/dev/null 2>&1; then + model="$(dmsetup info -c --noheadings -o name "$disk" 2>/dev/null || true)" + fi + fi + fi + fi + ;; + GNU/kFreeBSD) + disk_basename=$(basename "$disk") + size="$(camcontrol_size "$disk_basename")" + model="$(camcontrol inquiry "$disk_basename" | sed -ne "s/^pass0: <\([^>]*\)>.*/\1/p")" + ;; + esac + + [ "$model" ] || model='???' + + db_subst grub-pc/disk_description DEVICE "$disk" + db_subst grub-pc/disk_description SIZE "$size" + db_subst grub-pc/disk_description MODEL "$model" + db_metaget grub-pc/disk_description description +} + +# Returns value in $RET, like a debconf command. +describe_partition() +{ + local disk part id path diskbase partbase size + disk="$1" + part="$2" + id="$3" + path="$4" + + if which udevadm >/dev/null 2>&1; then + size="$(sysfs_size "/sys$(udevadm info -n "$part" -q path)")" + else + diskbase="${disk#/dev/}" + diskbase="$(printf %s "$diskbase" | sed 's,/,!,g')" + partbase="${part#/dev/}" + partbase="$(printf %s "$partbase" | sed 's,/,!,g')" + size="$(sysfs_size "/sys/block/$diskbase/$partbase")" + fi + + db_subst grub-pc/partition_description DEVICE "$part" + db_subst grub-pc/partition_description SIZE "$size" + db_subst grub-pc/partition_description PATH "$path" + db_metaget grub-pc/partition_description description +} + +usable_partitions() +{ + local last_partition path partition partition_id + + last_partition= + for path in / /boot /boot/grub; do + partition="$(grub-probe -t device "$path" || true)" + if [ -z "$partition" ] || [ "$partition" = "$last_partition" ]; then + continue + fi + partition_id="$(device_to_id "$partition" || true)" + echo "$path:$partition_id" + last_partition="$partition" + done | sort -t: -k2 +} + +get_mountpoint() +{ + local relpath boot_mountpoint + + relpath="$(grub-mkrelpath "$1")" + boot_mountpoint="${1#$relpath}" + echo "${boot_mountpoint:-/}" +} + +case "$1" in + configure) + . /usr/share/debconf/confmodule + + devicemap_regenerated= + + if egrep -q '^[[:space:]]*post(inst|rm)_hook[[:space:]]*=[[:space:]]*(/sbin/|/usr/sbin/)?update-grub' /etc/kernel-img.conf 2>/dev/null; then + echo 'Removing update-grub hooks from /etc/kernel-img.conf in favour of' >&2 + echo '/etc/kernel/ hooks.' >&2 + sed -ri /etc/kernel-img.conf -e '\%^[[:space:]]*post(inst|rm)_hook[[:space:]]*=[[:space:]]*(/sbin/|/usr/sbin/)?update-grub%d' + fi + + case @PACKAGE@ in + grub-pc) + mkdir -p /boot/grub + + if test -e /boot/grub/device.map && ! test -e /boot/grub/core.img ; then + # Looks like your device.map was generated by GRUB Legacy, which + # used to generate broken device.map (see #422851). Avoid the risk + # by regenerating it. + grub-mkdevicemap --no-floppy + devicemap_regenerated=1 + fi + ;; + esac + + if test -z "$devicemap_regenerated" && test -s /boot/grub/device.map && \ + dpkg --compare-versions "$2" lt-nl 1.98+20100702-1 && \ + test "$(uname -s)" = Linux; then + # Earlier versions of GRUB used unstable device names in device.map, + # which caused a variety of problems. There is some risk associated with + # regenerating it (so we prompt the user if it's non-trivial), but on the + # whole it's less risky to move to /dev/disk/by-id/. + devicemap_lines="$(egrep -v '^[[:space:]]+#' /boot/grub/device.map | wc -l)" + grub-mkdevicemap --no-floppy + if test "$devicemap_lines" != 1; then + db_input critical grub2/device_map_regenerated || true + db_go || true + fi + fi + + tmp_default_grub="$(mktemp -t grub.XXXXXXXXXX)" + trap "rm -f ${tmp_default_grub}" EXIT + cp -p /usr/share/grub/default/grub ${tmp_default_grub} + + merge_debconf_into_conf "$tmp_default_grub" GRUB_CMDLINE_LINUX grub2/linux_cmdline + merge_debconf_into_conf "$tmp_default_grub" GRUB_CMDLINE_LINUX_DEFAULT grub2/linux_cmdline_default + + ucf --three-way --debconf-ok --sum-file=/usr/share/grub/default/grub.md5sum ${tmp_default_grub} /etc/default/grub + package="$(ucfq --with-colons /etc/default/grub | cut -d : -f 2)" + if echo $package | grep -q "^grub-" ; then + ucfr --force @PACKAGE@ /etc/default/grub + else + ucfr @PACKAGE@ /etc/default/grub + fi + + case @PACKAGE@ in + grub-pc) + + fix_mixed_system= + if test -e /boot/grub/stage2 && test -e /boot/grub/menu.lst && \ + ! test -e /boot/grub/grub2-installed && \ + test -z "$UPGRADE_FROM_GRUB_LEGACY"; then + # Unfortunately, it's still possible that the user upgraded fully + # to GRUB 2 in some way other than running + # upgrade-from-grub-legacy; perhaps they ran grub-install by hand + # for some reason. It's really quite difficult to detect this + # situation, because the only difference between this and a + # working chainloaded setup is that in this case grub-setup has + # been run. So, to try to tell the difference, we scan the boot + # sectors of all disks for a GRUB 2 boot sector. Hopefully this + # won't cause too much to explode, since I can't think of a better + # method. + grub2_disks= + for disk in $(all_disks); do + if scan_grub2 "$disk"; then + grub2_disks="${grub2_disks:+$grub2_disks }$(readlink -f "$disk")" + fi + done + if [ "$grub2_disks" ]; then + # No || true here; it's vital that the user sees this, and it's + # better to throw an error than to do the wrong thing. + db_subst grub-pc/mixed_legacy_and_grub2 DISKS "$grub2_disks" + db_input critical grub-pc/mixed_legacy_and_grub2 + db_go + db_get grub-pc/mixed_legacy_and_grub2 + if [ "$RET" = true ]; then + db_reset grub-pc/install_devices + UPGRADE_FROM_GRUB_LEGACY=1 + fix_mixed_system=1 + # Fall through to normal installation logic. + fi + fi + fi + + if test -e /boot/grub/stage2 && test -e /boot/grub/menu.lst && \ + ! test -e /boot/grub/grub2-installed && \ + test -z "$UPGRADE_FROM_GRUB_LEGACY"; then + db_get grub-pc/chainload_from_menu.lst + if $RET ; then + # Create core.img (but do not risk writing to MBR). + # Using grub-probe instead of "(hd0)" avoids (UUID=) hack slowness + # in case /boot/grub is not on (hd0) in device.map. + echo "Generating core.img" >&2 + grub-install --no-floppy --grub-setup=/bin/true "$(grub-probe -t drive /boot/grub)" > /dev/null + + # Update menu.lst to reflect that: + # - core.img is present now + # - core.img has to be the first option + echo "Saving menu.lst backup in /boot/grub/menu.lst_backup_by_grub2_postinst" >&2 + cp /boot/grub/menu.lst{,_backup_by_grub2_postinst} + echo "Running update-grub Legacy to hook our core.img in it" >&2 + LET_US_TRY_GRUB_2=true /usr/lib/grub-legacy/update-grub 2>&1 | sed -e "s/^/ /g" >&2 + # We just hooked GRUB 2 in menu.lst; then also generate grub.cfg. + touch /boot/grub/grub.cfg + fi + else + question=grub-pc/install_devices + device_map="$(grub-mkdevicemap -m - | grep -v '^(fd[0-9]\+)' || true)" + devices="$(echo "$device_map" | cut -f2)" + if dpkg --compare-versions "$2" lt 1.98+20100702-1 && \ + test "$(uname -s)" = Linux; then + # Migrate to new by-id naming scheme. + db_get grub-pc/install_devices + old_devices="$RET" + new_devices= + # Common-case optimisation: if the list of devices is + # identical to the LHS of grub-mkdevicemap's output, then + # there's no point asking again; just install to all disks. + # (This handles e.g. "(hd0)" with one disk.) + if [ "$(echo "$device_map" | cut -f1 | sort)" = \ + "$(echo "$old_devices" | xargs -n1 | sort)" ]; then + new_devices="$(devices_to_ids $devices)" + db_set grub-pc/install_devices "$new_devices" + # Alternatively, we might be installing to a single partition + # on a single disk, and we can deal with that too if there's + # only one available disk and it has an appropriate partition. + # This doesn't necessarily work for multiple disks because now + # the order matters. + elif [ "$(echo "$device_map" | wc -l)" = 1 ] && \ + [ "$(echo "$old_devices" | wc -w)" = 1 ] && \ + echo "$old_devices" | grep -q ,; then + old_device="${old_devices#(}" + old_device="${old_device%)}" + old_disk="${old_device%,*}" + old_partition="${old_device##*,}" + new_device="$(echo "$device_map" | grep "^($old_disk)" | \ + cut -f2)" + new_device="$(device_to_id $new_device)" + if [ "$new_device" ]; then + new_device="$new_device-part$old_partition" + # Run through device_to_id again to check for existence. + new_device="$(device_to_id $new_device)" + fi + if [ "$new_device" ]; then + new_devices="$new_device" + db_set grub-pc/install_devices "$new_device" + fi + fi + if [ -z "$new_devices" ]; then + new_devices="$(devices_to_ids $old_devices)" + db_set grub-pc/install_devices "$new_devices" + # Common-case optimisation: if all devices are translatable + # to by-id and the number of devices there is the same as + # the number of devices GRUB can see, then there's no point + # asking again. (This handles e.g. "/dev/sda" with one + # disk.) + old_devices_count="$(echo "$old_devices" | wc -w)" + new_devices_count="$(echo "$new_devices" | wc -w)" + devices_count="$(echo "$devices" | wc -w)" + if [ "$old_devices_count" != "$new_devices_count" ] || \ + [ "$new_devices_count" != "$devices_count" ]; then + db_fset grub-pc/install_devices seen false + db_fset grub-pc/install_devices_empty seen false + fi + fi + else + db_get grub-pc/install_devices + valid=1 + for device in $RET; do + if [ ! -e "$device" ]; then + valid=0 + break + fi + done + if [ "$valid" = 0 ]; then + question=grub-pc/install_devices_disks_changed + db_set "$question" "$RET" + db_fset "$question" seen false + db_fset grub-pc/install_devices_empty seen false + fi + fi + + while :; do + ids= + descriptions= + partitions="$(usable_partitions)" + for device in $devices; do + disk_id="$(device_to_id "$device" || true)" + if [ "$disk_id" ]; then + ids="${ids:+$ids, }$disk_id" + describe_disk "$(readlink -f "$device")" "$disk_id" + RET="$(printf %s "$RET" | sed 's/,/\\,/g')" + descriptions="${descriptions:+$descriptions, }$RET" + for partition_pair in $partitions; do + partition_id="${partition_pair#*:}" + if [ "${partition_id#$disk_id-part}" != "$partition_id" ]; then + ids="${ids:+$ids, }$partition_id" + describe_partition "$(readlink -f "$device")" "$(readlink -f "$partition_id")" "$partition_id" "$(get_mountpoint "${partition_pair%%:*}")" + RET="$(printf %s "$RET" | sed 's/,/\\,/g')" + descriptions="${descriptions:+$descriptions, }$RET" + fi + done + fi + done + # Some "partitions" may in fact be at the disk level, e.g. RAID. + # List these as well if they haven't already been listed. + for partition_pair in $partitions; do + partition_id="${partition_pair#*:}" + if [ "${partition_id#*-part}" = "$partition_id" ]; then + case ", $ids, " in + ", $partition_id, ") ;; + *) + ids="${ids:+$ids, }$partition_id" + describe_disk "$(readlink -f "$partition_id")" "$partition_id" + RET="$(printf %s "$RET" | sed 's/,/\\,/g')" + descriptions="${descriptions:+$descriptions, }$RET" + ;; + esac + fi + done + db_subst "$question" RAW_CHOICES "$ids" + db_subst "$question" CHOICES "$descriptions" + db_input high "$question" || true + db_go + db_get "$question" + failed_devices= + for i in `echo $RET | sed -e 's/,/ /g'` ; do + real_device="$(readlink -f "$i")" + if grub-install --force --no-floppy $real_device ; then + # We just installed GRUB 2; then also generate grub.cfg. + touch /boot/grub/grub.cfg + else + failed_devices="$failed_devices $real_device" + fi + done + + if [ "$question" != grub-pc/install_devices ]; then + db_set grub-pc/install_devices "$RET" + db_fset grub-pc/install_devices seen true + fi + + if [ "$failed_devices" ]; then + if [ "$UPGRADE_FROM_GRUB_LEGACY" ]; then + db_subst grub-pc/install_devices_failed_upgrade FAILED_DEVICES "$failed_devices" + db_fset grub-pc/install_devices_failed_upgrade seen false + if db_input critical grub-pc/install_devices_failed_upgrade; then + db_go + db_get grub-pc/install_devices_failed_upgrade + if [ "$RET" = true ]; then + db_fset "$question" seen false + db_fset grub-pc/install_devices_failed_upgrade seen false + continue + else + exit 1 + fi + else + exit 1 # noninteractive + fi + else + db_subst grub-pc/install_devices_failed FAILED_DEVICES "$failed_devices" + db_fset grub-pc/install_devices_failed seen false + if db_input critical grub-pc/install_devices_failed; then + db_go + db_get grub-pc/install_devices_failed + if [ "$RET" = true ]; then + break + else + db_fset "$question" seen false + db_fset grub-pc/install_devices_failed seen false + continue + fi + else + break # noninteractive + fi + fi + fi + + db_get grub-pc/install_devices + if [ -z "$RET" ]; then + # Reset the seen flag if the current answer is false, since + # otherwise we'll loop with no indication of why. + db_get grub-pc/install_devices_empty + if [ "$RET" = false ]; then + db_fset grub-pc/install_devices_empty seen false + fi + if db_input critical grub-pc/install_devices_empty; then + db_go + db_get grub-pc/install_devices_empty + if [ "$RET" = true ]; then + break + else + db_fset "$question" seen false + db_fset grub-pc/install_devices_empty seen false + fi + else + break # noninteractive + fi + else + break + fi + done + fi + + # /boot/grub/ has more chances of being accessible by GRUB + if test -e /boot/grub/grub.cfg ; then + for i in /usr/share/grub/unicode.pf2 ; do + if test -e $i ; then + cp $i /boot/grub/ + fi + done + fi + + if [ "$fix_mixed_system" ]; then + # These never contain any valuable information, and they aren't + # useful for boot any more, since we just overwrote MBR/PBR. + rm -f /boot/grub/{{xfs,reiserfs,e2fs,fat,jfs,minix}_stage1_5,stage{1,2}} + # Remove marker file used to indicate that grub-install was run + # rather than upgrade-from-grub-legacy. Since stage2 has been + # removed, we don't need this any more. + rm -f /boot/grub/grub2-installed + fi + ;; + esac + + # If grub.cfg has been generated, update it. + if test -e /boot/grub/grub.cfg ; then + update-grub 3>&- + fi + ;; + abort-upgrade|abort-remove|abort-deconfigure) + ;; + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 --- grub2-1.98+20100804.orig/debian/grub-firmware-qemu.dirs +++ grub2-1.98+20100804/debian/grub-firmware-qemu.dirs @@ -0,0 +1 @@ +usr/share/qemu --- grub2-1.98+20100804.orig/debian/copyright +++ grub2-1.98+20100804/debian/copyright @@ -0,0 +1,25 @@ +Name: GNU GRUB +Source: http://www.gnu.org/software/grub/ + +Files: * +Copyright: 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc +License: GPL-3+ + + +Files: debian/* +Copyright: 2003, 2004, 2005, 2006, 2007, 2008, 2009, Robert Millan + 2005, 2006, 2007, Otavio Salvador + 2008, 2009, Felix Zielcke + 2009, Jordi Mallach +License: GPL-3+ + +Files: debian/grub-extras/* +Copyright: Nathan Coulson + 2003, 2007 Free Software Foundation, Inc + 2003 NIIBE Yutaka +License: GPL-3+ + +License: GPL-3+ + On Debian systems the full text of the GNU General Public + License can be found in the `/usr/share/common-licenses/GPL' + file. --- grub2-1.98+20100804.orig/debian/grub-pc.prerm +++ grub2-1.98+20100804/debian/grub-pc.prerm @@ -0,0 +1,28 @@ +#!/bin/bash +set -e + +case "$1" in + remove|deconfigure) + . /usr/share/debconf/confmodule + db_get grub-pc/chainload_from_menu.lst + if $RET && test -e /boot/grub/menu.lst ; then + echo "Saving menu.lst backup in /boot/grub/menu.lst_backup_by_grub2_prerm" >&2 + cp /boot/grub/menu.lst{,_backup_by_grub2_prerm} + echo "Running update-grub Legacy to remove our core.img in it" >&2 + /usr/lib/grub-legacy/update-grub 2>&1 | sed -e "s/^/ /g" >&2 + fi + ;; + failed-upgrade|upgrade) + ;; + *) + echo "prerm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 --- grub2-1.98+20100804.orig/debian/grub-common.dirs +++ grub2-1.98+20100804/debian/grub-common.dirs @@ -0,0 +1 @@ +usr/sbin --- grub2-1.98+20100804.orig/debian/grub-rescue-pc.README.Debian +++ grub2-1.98+20100804/debian/grub-rescue-pc.README.Debian @@ -0,0 +1,22 @@ +grub-rescue-pc +~~~~~~~~~~~~~~ + +How to test the images with qemu: + + qemu -fda /usr/lib/grub-rescue/grub-rescue-floppy.img + + qemu -cdrom /usr/lib/grub-rescue/grub-rescue-cdrom.iso + + qemu -hda /usr/lib/grub-rescue/grub-rescue-usb.img + +How to write the images to bootable media: + + sudo dd if=/usr/lib/grub-rescue/grub-rescue-floppy.img of=/dev/fd0 bs=32k + + sudo wodim /usr/lib/grub-rescue/grub-rescue-cdrom.iso + # or just use your favourite CD burning program + + sudo dd if=/usr/lib/grub-rescue/grub-rescue-usb.img of=DEVICE bs=32k + # where DEVICE is something like /dev/sdb, corresponding to your USB + # stick's device name; be VERY CAREFUL that this is the correct device as + # otherwise you could destroy data on your hard disk! --- grub2-1.98+20100804.orig/debian/grub-pc.install.in +++ grub2-1.98+20100804/debian/grub-pc.install.in @@ -0,0 +1,2 @@ +debian/legacy/update-grub usr/lib/grub-legacy +debian/legacy/upgrade-from-grub-legacy usr/sbin --- grub2-1.98+20100804.orig/debian/preinst.in +++ grub2-1.98+20100804/debian/preinst.in @@ -0,0 +1,15 @@ +#!/bin/bash +set -e + +case "$1" in + install|upgrade) + if dpkg --compare-versions "$2" lt 1.98+20100804-2 && \ + test -h /etc/kernel/postrm.d/zz-update-grub; then + rm -f /etc/kernel/postrm.d/zz-update-grub + fi + ;; +esac + +#DEBHELPER# + +exit 0 --- grub2-1.98+20100804.orig/debian/grub-rescue-pc.links +++ grub2-1.98+20100804/debian/grub-rescue-pc.links @@ -0,0 +1,3 @@ +# Truth would be uselessly confusing for users. Let's give 'em what they +# wanted instead. +usr/lib/grub-rescue/grub-rescue-cdrom.iso usr/lib/grub-rescue/grub-rescue-usb.img --- grub2-1.98+20100804.orig/debian/script +++ grub2-1.98+20100804/debian/script @@ -0,0 +1,31 @@ +#!/bin/bash +set -e + +if test -e /boot/grub/setup_left_core_image_in_filesystem ; then + echo -e "\n*********************** WARNING grub-setup left core.img in filesystem" >&3 +fi + +for i in /proc/mounts ; do + if test -e $i ; then + echo -e "\n*********************** BEGIN $i" >&3 + grep ^/dev/ $i >&3 + echo "*********************** END $i" >&3 + fi +done + +for i in /boot/grub/{device.map,grub.cfg} ; do + if ! test -e $i ; then + continue + fi + echo -e "\n*********************** BEGIN $i" >&3 + if test -r $i ; then + sed $i -e "s/.*password.*/### PASSWORD LINE REMOVED ###/g" >&3 + else + echo "$i is not readable by you. Please enter your root password." + echo "Any password line in it gets removed." + su root -c "sed $i -e 's/.*password.*/### PASSWORD LINE REMOVED ###/g'" >&3 + fi + echo "*********************** END $i" >&3 +done + +exit 0 --- grub2-1.98+20100804.orig/debian/grub-rescue-pc.install +++ grub2-1.98+20100804/debian/grub-rescue-pc.install @@ -0,0 +1,2 @@ +build/grub-rescue-pc/grub-rescue-cdrom.iso usr/lib/grub-rescue +build/grub-rescue-pc/grub-rescue-floppy.img usr/lib/grub-rescue --- grub2-1.98+20100804.orig/debian/update-grub.8 +++ grub2-1.98+20100804/debian/update-grub.8 @@ -0,0 +1,14 @@ +.\" Copyright 2009 Felix Zielcke +.\" Lincensed under GPL3+ +.TH UPDATE-GRUB "8" "April 2009" +.SH NAME +update-grub \- stub for grub-mkconfig +.SH SYNOPSIS +.B update-grub +.SH DESCRIPTION +.B update-grub +is a stub for running +.B grub-mkconfig -o /boot/grub/grub.cfg +to generate a grub2 config file. +.SH "SEE ALSO" +.BR grub-mkconfig (8) --- grub2-1.98+20100804.orig/debian/examples.in +++ grub2-1.98+20100804/debian/examples.in @@ -0,0 +1 @@ +docs/grub.cfg --- grub2-1.98+20100804.orig/debian/install.in +++ grub2-1.98+20100804/debian/install.in @@ -0,0 +1,8 @@ +debian/presubj usr/share/bug/@PACKAGE@ +debian/script usr/share/bug/@PACKAGE@ +debian/default usr/share/grub +debian/grub.d etc +debian/update-grub2 usr/sbin +debian/update-grub usr/sbin +debian/kernel/zz-update-grub etc/kernel/postinst.d +debian/kernel/zz-update-grub etc/kernel/postrm.d --- grub2-1.98+20100804.orig/debian/presubj +++ grub2-1.98+20100804/debian/presubj @@ -0,0 +1,23 @@ + +MAKE SURE YOU ARE RUNNING THE LATEST VERSION + +The grub packages never update the installed version of GRUB +automatically, except if you choose a device in the debconf prompt +`GRUB install devices', which is currently only implemented for grub-pc. + +Because of this, you need to make sure you're running the LATEST VERSION of +GRUB before you report a bug. Use grub-install to update it, and then check +if the bug still applies. Debugging problems we already fixed makes us waste +valuable time, so please try to avoid it. + +IMPORTANT NOTE WHEN SUBMITTING PATCHES + +Like many other FSF projects, GRUB upstream has specific requirements for +accepting patches with regard to copyright assignment. If you're going to +submit a patch, it is likely that it will only be accepted in upstream if you're +willing to submit your paperwork as well. + +Because of this, we want to avoid diverging from upstream by adding patches to +the Debian package unless we know the copyright issues can be sorted out. We +encourage you to submit your work to upstream directly by sending a mail to the +GRUB maintainers . --- grub2-1.98+20100804.orig/debian/grub.d/05_debian_theme +++ grub2-1.98+20100804/debian/grub.d/05_debian_theme @@ -0,0 +1,134 @@ +#!/bin/sh +set -e + +# grub-mkconfig helper script. +# Copyright (C) 2010 Alexander Kurtz +# +# 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 the GRUB helper library for grub-mkconfig. +. /usr/lib/grub/grub-mkconfig_lib + +# We want to work in /boot/grub/ only. +test -d "${GRUB_PREFIX}"; cd "${GRUB_PREFIX}" + +# Set the location of a possibly necessary cache file for the background image. +# NOTE: This MUST BE A DOTFILE to avoid confusing it with user-defined images. +BACKGROUND_CACHE=".background_cache" + +set_default_theme(){ + # Set the traditional Debian blue theme. + echo "${1}set menu_color_normal=cyan/blue" + echo "${1}set menu_color_highlight=white/blue" +} + +set_background_image(){ + # Step #1: Search all available output modes ... + local output + for output in ${GRUB_TERMINAL_OUTPUT}; do + if [ "x$output" = "xgfxterm" ]; then + break + fi + done + + # ... and check if we are able to display a background image at all. + if ! [ "x${output}" = "xgfxterm" ]; then + return 1 + fi + + # Step #2: Check if the specified background image exists. + if ! [ -f "${1}" ]; then + return 2 + fi + + # Step #3: Search the correct GRUB module for our background image. + local reader + case "${1}" in + *.jpg|*.JPG|*.jpeg|*.JPEG) reader="jpeg";; + *.png|*.PNG) reader="png";; + *.tga|*.TGA) reader="tga";; + *) return 3;; # Unknown image type. + esac + + # Step #4: Check if the necessary GRUB module is available. + if ! [ -f "${reader}.mod" ]; then + return 4 + fi + + # Step #5: Check if GRUB can read the background image directly. + # If so, we can remove the cache file (if any). Otherwise the backgound + # image needs to be cached under /boot/grub/. + if is_path_readable_by_grub "${1}"; then + rm --force "${BACKGROUND_CACHE}.jpeg" \ + "${BACKGROUND_CACHE}.png" "${BACKGROUND_CACHE}.tga" + elif cp "${1}" "${BACKGROUND_CACHE}.${reader}"; then + set -- "${BACKGROUND_CACHE}.${reader}" "${2}" "${3}" + else + return 5 + fi + + # Step #6: Prepare GRUB to read the background image. + if ! prepare_grub_to_access_device "`${grub_probe} --target=device "${1}"`"; then + return 6 + fi + + # Step #7: Everything went fine, print out a message to stderr ... + echo "Found background image: ${1}" >&2 + + # ... and write our configuration snippet to stdout. Use the colors + # desktop-base specified. If we're using a user-defined background, use + # the default colors since we've got no idea how the image looks like. + # If loading the background image fails, use the default theme. + echo "insmod ${reader}" + echo "if background_image `make_system_path_relative_to_its_root "${1}"`; then" + echo " set color_normal=${2:-black/black}" + echo " set color_highlight=${3:-magenta/black}" + echo "else" + set_default_theme " " + echo "fi" +} + +# Earlier versions of grub-pc copied the default background image to /boot/grub +# during postinst. Remove those obsolete images if they haven't been touched by +# the user. They are still available under /usr/share/images/desktop-base/ if +# desktop-base is installed. +while read checksum background; do + if [ -f "${background}" ] && [ "x`sha1sum "${background}"`" = "x${checksum} ${background}" ]; then + echo "Removing old background image: ${background}" >&2 + rm "${background}" + fi +done </dev/null | head -1`" || +set_background_image "${WALLPAPER}" "${COLOR_NORMAL}" "${COLOR_HIGHLIGHT}" || +set_background_image "/usr/share/images/desktop-base/desktop-grub.png" || +set_default_theme --- grub2-1.98+20100804.orig/debian/patches/zfs_v23.patch +++ grub2-1.98+20100804/debian/patches/zfs_v23.patch @@ -0,0 +1,17 @@ +Description: Accept ZFS up to v23 (no changes required) +Author: Robert Millan +Forwarded: not needed, patch from upstream Bazaar +Last-Update: 2010-09-22 + +--- a/debian/grub-extras/zfs/include/grub/zfs/zfs.h 2009-10-26 20:15:26 +0000 ++++ b/debian/grub-extras/zfs/include/grub/zfs/zfs.h 2010-09-22 15:43:24 +0000 +@@ -31,7 +31,7 @@ + /* + * On-disk version number. + */ +-#define SPA_VERSION 14ULL ++#define SPA_VERSION 23ULL + + /* + * The following are configuration names used in the nvlist describing a pool's + --- grub2-1.98+20100804.orig/debian/patches/raid_spurious_members.patch +++ grub2-1.98+20100804/debian/patches/raid_spurious_members.patch @@ -0,0 +1,32 @@ +Description: Don't add spurious RAID array members +Author: Jeroen Dekkers +Origin: upstream, http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/2996 +Bug-Debian: http://bugs.debian.org/605357 +Forwarded: yes +Last-Update: 2011-01-04 + +Index: b/disk/raid.c +=================================================================== +--- a/disk/raid.c ++++ b/disk/raid.c +@@ -514,14 +514,16 @@ + /* We found more members of the array than the array + actually has according to its superblock. This shouldn't + happen normally. */ +- grub_dprintf ("raid", "array->nr_devs > array->total_devs (%d)?!?", +- array->total_devs); ++ return grub_error (GRUB_ERR_BAD_DEVICE, ++ "superfluous RAID member (%d found)", ++ array->total_devs); + + if (array->members[new_array->index].device != NULL) + /* We found multiple devices with the same number. Again, + this shouldn't happen. */ +- grub_dprintf ("raid", "Found two disks with the number %d?!?", +- new_array->number); ++ return grub_error (GRUB_ERR_BAD_DEVICE, ++ "found two disks with the number %d", ++ new_array->number); + + if (new_array->disk_size < array->disk_size) + array->disk_size = new_array->disk_size; --- grub2-1.98+20100804.orig/debian/patches/disable_floppies.patch +++ grub2-1.98+20100804/debian/patches/disable_floppies.patch @@ -0,0 +1,28 @@ + +Author: Robert Millan + +An ugly kludge. Should this be merged upstream? + +Index: b/kern/emu/hostdisk.c +=================================================================== +--- a/kern/emu/hostdisk.c ++++ b/kern/emu/hostdisk.c +@@ -953,6 +953,18 @@ + continue; + } + ++ if (! strncmp (p, "/dev/fd", sizeof ("/dev/fd") - 1)) ++ { ++ char *q = p + sizeof ("/dev/fd") - 1; ++ if (*q >= '0' && *q <= '9') ++ { ++ free (map[drive].drive); ++ map[drive].drive = NULL; ++ grub_util_info ("`%s' looks like a floppy drive, skipping", p); ++ continue; ++ } ++ } ++ + #ifdef __linux__ + /* On Linux, the devfs uses symbolic links horribly, and that + confuses the interface very much, so use realpath to expand --- grub2-1.98+20100804.orig/debian/patches/zfs_fix_chroot.patch +++ grub2-1.98+20100804/debian/patches/zfs_fix_chroot.patch @@ -0,0 +1,26 @@ +Description: Fix breakage when running grub-probe inside chroot +Author: Robert Millan +Forwarded: not needed, patch from upstream Bazaar +Last-Update: 2010-08-16 + +--- a/kern/emu/misc.c 2010-08-03 22:15:29 +0000 ++++ b/kern/emu/misc.c 2010-08-16 13:07:46 +0000 +@@ -344,7 +345,17 @@ grub_find_zpool_from_mount_point (const + + *poolname = *poolfs = NULL; + +-#if defined(HAVE_GETFSSTAT) /* FreeBSD and GNU/kFreeBSD */ ++#if 1 ++ { ++ struct statfs mnt; ++ ++ if (statfs (mnt_point, &mnt) != 0) ++ error (1, errno, "statfs"); ++ ++ if (!strcmp (mnt.f_fstypename, "zfs")) ++ *poolname = xstrdup (mnt.f_mntfromname); ++ } ++#elif defined(HAVE_GETFSSTAT) /* FreeBSD and GNU/kFreeBSD */ + { + int mnt_count = getfsstat (NULL, 0, MNT_WAIT); + if (mnt_count == -1) --- grub2-1.98+20100804.orig/debian/patches/dpkg_version_comparison.patch +++ grub2-1.98+20100804/debian/patches/dpkg_version_comparison.patch @@ -0,0 +1,25 @@ +Index: b/util/grub-mkconfig_lib.in +=================================================================== +--- a/util/grub-mkconfig_lib.in ++++ b/util/grub-mkconfig_lib.in +@@ -161,8 +161,9 @@ + + version_test_gt () + { +- local a=`echo $1 | sed -e "s/[^-]*-//"` +- local b=`echo $2 | sed -e "s/[^-]*-//"` ++ local sedexp="s/[^-]*-//;s/[._-]\(pre\|rc\|test\|git\|old\|trunk\)/~\1/g" ++ local a=`echo $1 | sed -e "$sedexp"` ++ local b=`echo $2 | sed -e "$sedexp"` + local cmp=gt + if [ "x$b" = "x" ] ; then + return 0 +@@ -172,7 +173,7 @@ + *.old:*) a=`echo -n $a | sed -e s/\.old$//` ; cmp=gt ;; + *:*.old) b=`echo -n $b | sed -e s/\.old$//` ; cmp=ge ;; + esac +- version_test_numeric $a $cmp $b ++ dpkg --compare-versions "$a" $cmp "$b" + return $? + } + --- grub2-1.98+20100804.orig/debian/patches/mkrescue_diet.patch +++ grub2-1.98+20100804/debian/patches/mkrescue_diet.patch @@ -0,0 +1,54 @@ +Description: Allow reducing size of xorriso-created rescue images + This lets us create smaller images that will fit on floppy disks. It has + been approved by the upstream maintainer but has not yet been applied. +Author: Thomas Schmitt +Origin: other, http://lists.gnu.org/archive/html/grub-devel/2010-05/msg00100.html +Forwarded: yes +Last-Update: 2010-06-02 + +Index: b/util/grub-mkrescue.in +=================================================================== +--- a/util/grub-mkrescue.in ++++ b/util/grub-mkrescue.in +@@ -44,6 +44,7 @@ + grub_mkimage=${bindir}/`echo grub-mkimage | sed ${transform}` + + xorriso=xorriso ++diet=no + + # Usage: usage + # Print the usage. +@@ -59,6 +60,7 @@ + --rom-directory=DIR save rom images in DIR [optional] + --xorriso=FILE use FILE as xorriso [optional] + --grub-mkimage=FILE use FILE as grub-mkimage ++ --diet apply size reducing measures [optional] + + $self generates a bootable rescue image with specified source files, source + directories, or mkisofs options listed by: xorriso -as mkisofs -help +@@ -132,6 +134,9 @@ + --xorriso=*) + xorriso=`echo "${option}/" | sed 's/--xorriso=//'` ;; + ++ --diet) ++ diet=yes ;; ++ + *) + source="${source} ${option} $@"; break ;; + esac +@@ -310,7 +315,14 @@ + fi + + # build iso image +-"${xorriso}" -as mkisofs -graft-points ${grub_mkisofs_arguments} --protective-msdos-label -o ${output_image} -r ${iso9660_dir} --sort-weight 0 / --sort-weight 1 /boot ${source} ++if [ "${diet}" = yes ]; then ++ if [ -e "${output_image}" ]; then ++ rm "${output_image}" || exit 1 ++ fi ++ "${xorriso}" -report_about HINT -as mkisofs -graft-points -no-pad ${grub_mkisofs_arguments} --protective-msdos-label -r ${iso9660_dir} --sort-weight 0 / --sort-weight 1 /boot ${source} | cat >"${output_image}" ++else ++ "${xorriso}" -report_about HINT -as mkisofs -graft-points ${grub_mkisofs_arguments} --protective-msdos-label -o ${output_image} -r ${iso9660_dir} --sort-weight 0 / --sort-weight 1 /boot ${source} ++fi + rm -rf ${iso9660_dir} + + rm -f ${embed_img} --- grub2-1.98+20100804.orig/debian/patches/zfs_fix_segfault.patch +++ grub2-1.98+20100804/debian/patches/zfs_fix_segfault.patch @@ -0,0 +1,38 @@ +Description: Fix segfault when /dev is not mounted +Author: Robert Millan +Forwarded: not needed, patch from upstream Bazaar +Last-Update: 2010-08-16 + +--- a/kern/emu/getroot.c 2010-08-01 21:12:24 +0000 ++++ b/kern/emu/getroot.c 2010-08-16 13:07:46 +0000 +@@ -193,11 +193,16 @@ find_root_device_from_libzfs (const char + + { + zpool_handle_t *zpool; ++ libzfs_handle_t *libzfs; + nvlist_t *nvlist; + nvlist_t **nvlist_array; + unsigned int nvlist_count; + +- zpool = zpool_open (grub_get_libzfs_handle (), poolname); ++ libzfs = grub_get_libzfs_handle (); ++ if (! libzfs) ++ return NULL; ++ ++ zpool = zpool_open (libzfs, poolname); + nvlist = zpool_get_config (zpool, NULL); + + if (nvlist_lookup_nvlist (nvlist, "vdev_tree", &nvlist) != 0) + +--- a/kern/emu/misc.c 2010-08-03 22:15:29 +0000 ++++ b/kern/emu/misc.c 2010-08-16 13:07:46 +0000 +@@ -268,7 +268,8 @@ grub_get_libzfs_handle (void) + if (! __libzfs_handle) + { + __libzfs_handle = libzfs_init (); +- atexit (fini_libzfs); ++ if (__libzfs_handle) ++ atexit (fini_libzfs); + } + + return __libzfs_handle; --- grub2-1.98+20100804.orig/debian/patches/pci_probe.patch +++ grub2-1.98+20100804/debian/patches/pci_probe.patch @@ -0,0 +1,28 @@ +Description: Fix PCI probing hangs + Skip remaining functions on devices that do not implement function 0. +Author: Colin Watson +Origin: upstream, http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/3010 +Bug-Debian: http://bugs.debian.org/594967 +Forwarded: yes +Last-Update: 2011-01-04 + +Index: b/bus/pci.c +=================================================================== +--- a/bus/pci.c ++++ b/bus/pci.c +@@ -90,7 +90,14 @@ + + /* Check if there is a device present. */ + if (id >> 16 == 0xFFFF) +- continue; ++ { ++ if (dev.function == 0) ++ /* Devices are required to implement function 0, so if ++ it's missing then there is no device here. */ ++ break; ++ else ++ continue; ++ } + + #ifdef GRUB_MACHINE_MIPS_YEELOONG + /* Skip ghosts. */ --- grub2-1.98+20100804.orig/debian/patches/zfs_fix_pathname.patch +++ grub2-1.98+20100804/debian/patches/zfs_fix_pathname.patch @@ -0,0 +1,18 @@ +Description: Fix pathname for non-root ZFS filesystems +Author: Robert Millan +Forwarded: not needed, patch from upstream Bazaar +Last-Update: 2010-08-16 + +Index: b/kern/emu/misc.c +=================================================================== +--- a/kern/emu/misc.c ++++ b/kern/emu/misc.c +@@ -519,7 +519,7 @@ + + if (poolfs) + { +- ret = xasprintf ("/%s@%s", poolfs, buf3); ++ ret = xasprintf ("/%s/@%s", poolfs, buf3); + free (buf3); + } + else --- grub2-1.98+20100804.orig/debian/patches/linux_mdraid_1x.patch +++ grub2-1.98+20100804/debian/patches/linux_mdraid_1x.patch @@ -0,0 +1,307 @@ +Description: Support mdraid 1.x +Author: Robert Millan +Forwarded: not-needed, patch from upstream +Last-Update: 2010-11-04 + +--- a/disk/mdraid_linux.c ++++ b/disk/mdraid_linux.c +@@ -254,6 +254,9 @@ grub_mdraid_detect_09 (grub_disk_addr_t + sb->level != 5 && sb->level != 6 && sb->level != 10) + return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, + "unsupported RAID level: %d", sb->level); ++ if (sb->this_disk.number == 0xffff || sb->this_disk.number == 0xfffe) ++ return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, ++ "spares aren't implemented"); + + array->name = NULL; + array->number = sb->md_minor; +@@ -328,12 +331,13 @@ grub_mdraid_detect_1x (grub_disk_t disk, + array->total_devs = grub_le_to_cpu32 (real_sb->raid_disks); + array->disk_size = grub_le_to_cpu64 (real_sb->size); + array->chunk_size = grub_le_to_cpu32 (real_sb->chunksize); +- if (grub_le_to_cpu32 (real_sb->dev_number) < ++ if (grub_le_to_cpu32 (real_sb->dev_number) >= + grub_le_to_cpu32 (real_sb->max_dev)) +- array->index = grub_le_to_cpu16 +- (real_sb->dev_roles[grub_le_to_cpu32 (real_sb->dev_number)]); +- else +- array->index = 0xffff; /* disk will be later not used! */ ++ return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, ++ "spares aren't implemented"); ++ ++ array->index = grub_le_to_cpu16 ++ (real_sb->dev_roles[grub_le_to_cpu32 (real_sb->dev_number)]); + array->uuid_len = 16; + array->uuid = grub_malloc (16); + if (!array->uuid) + +--- a/disk/raid.c ++++ b/disk/raid.c +@@ -97,10 +97,10 @@ grub_raid_memberlist (grub_disk_t disk) + unsigned int i; + + for (i = 0; i < array->total_devs; i++) +- if (array->device[i]) ++ if (array->members[i].device) + { + tmp = grub_malloc (sizeof (*tmp)); +- tmp->disk = array->device[i]; ++ tmp->disk = array->members[i].device; + tmp->next = list; + list = tmp; + } +@@ -248,13 +248,13 @@ grub_raid_read (grub_disk_t disk, grub_d + k = disknr; + for (j = 0; j < far; j++) + { +- if (array->device[k]) ++ if (array->members[k].device) + { + if (grub_errno == GRUB_ERR_READ_ERROR) + grub_errno = GRUB_ERR_NONE; + +- err = grub_disk_read (array->device[k], +- array->start_sector[k] + ++ err = grub_disk_read (array->members[k].device, ++ array->members[k].start_sector + + read_sector + j * far_ofs + b, + 0, + read_size << GRUB_DISK_SECTOR_BITS, +@@ -360,14 +360,14 @@ grub_raid_read (grub_disk_t disk, grub_d + read_size = size; + + e = 0; +- if (array->device[disknr]) ++ if (array->members[disknr].device) + { + /* Reset read error. */ + if (grub_errno == GRUB_ERR_READ_ERROR) + grub_errno = GRUB_ERR_NONE; + +- err = grub_disk_read (array->device[disknr], +- array->start_sector[disknr] + ++ err = grub_disk_read (array->members[disknr].device, ++ array->members[disknr].start_sector + + read_sector + b, 0, + read_size << GRUB_DISK_SECTOR_BITS, + buf); +@@ -492,6 +492,21 @@ insert_array (grub_disk_t disk, struct g + + /* Do some checks before adding the device to the array. */ + ++ if (new_array->index >= array->allocated_devs) ++ { ++ void *tmp; ++ unsigned int newnum = 2 * (new_array->index + 1); ++ tmp = grub_realloc (array->members, newnum ++ * sizeof (array->members[0])); ++ if (!tmp) ++ return grub_errno; ++ array->members = tmp; ++ grub_memset (array->members + array->allocated_devs, ++ 0, (newnum - array->allocated_devs) ++ * sizeof (array->members[0])); ++ array->allocated_devs = newnum; ++ } ++ + /* FIXME: Check whether the update time of the superblocks are + the same. */ + +@@ -502,7 +517,7 @@ insert_array (grub_disk_t disk, struct g + grub_dprintf ("raid", "array->nr_devs > array->total_devs (%d)?!?", + array->total_devs); + +- if (array->device[new_array->index] != NULL) ++ if (array->members[new_array->index].device != NULL) + /* We found multiple devices with the same number. Again, + this shouldn't happen. */ + grub_dprintf ("raid", "Found two disks with the number %d?!?", +@@ -525,8 +540,18 @@ insert_array (grub_disk_t disk, struct g + + *array = *new_array; + array->nr_devs = 0; +- grub_memset (&array->device, 0, sizeof (array->device)); +- grub_memset (&array->start_sector, 0, sizeof (array->start_sector)); ++ array->allocated_devs = 32; ++ if (new_array->index >= array->allocated_devs) ++ array->allocated_devs = 2 * (new_array->index + 1); ++ ++ array->members = grub_zalloc (array->allocated_devs ++ * sizeof (array->members[0])); ++ ++ if (!array->members) ++ { ++ grub_free (new_array->uuid); ++ return grub_errno; ++ } + + if (! array->name) + { +@@ -571,6 +596,7 @@ insert_array (grub_disk_t disk, struct g + array->name = grub_xasprintf ("md%d", array->number); + if (! array->name) + { ++ grub_free (array->members); + grub_free (array->uuid); + grub_free (array); + +@@ -586,6 +612,7 @@ insert_array (grub_disk_t disk, struct g + + if (! new_name) + { ++ grub_free (array->members); + grub_free (array->uuid); + grub_free (array); + +@@ -610,8 +637,8 @@ insert_array (grub_disk_t disk, struct g + } + + /* Add the device to the array. */ +- array->device[new_array->index] = disk; +- array->start_sector[new_array->index] = start_sector; ++ array->members[new_array->index].device = disk; ++ array->members[new_array->index].start_sector = start_sector; + array->nr_devs++; + + return 0; +@@ -628,14 +655,15 @@ free_array (void) + while (array) + { + struct grub_raid_array *p; +- int i; ++ unsigned int i; + + p = array; + array = array->next; + +- for (i = 0; i < GRUB_RAID_MAX_DEVICES; i++) +- if (p->device[i]) +- grub_disk_close (p->device[i]); ++ for (i = 0; i < p->allocated_devs; i++) ++ if (p->members[i].device) ++ grub_disk_close (p->members[i].device); ++ grub_free (p->members); + + grub_free (p->uuid); + grub_free (p->name); + +--- a/disk/raid5_recover.c ++++ b/disk/raid5_recover.c +@@ -45,7 +45,7 @@ grub_raid5_recover (struct grub_raid_arr + if (i == disknr) + continue; + +- err = grub_disk_read (array->device[i], sector, 0, size, buf2); ++ err = grub_disk_read (array->members[i].device, sector, 0, size, buf2); + + if (err) + { + +--- a/disk/raid6_recover.c ++++ b/disk/raid6_recover.c +@@ -118,8 +118,9 @@ grub_raid6_recover (struct grub_raid_arr + bad1 = i; + else + { +- if ((array->device[pos]) && +- (! grub_disk_read (array->device[pos], sector, 0, size, buf))) ++ if ((array->members[pos].device) && ++ (! grub_disk_read (array->members[pos].device, sector, ++ 0, size, buf))) + { + grub_raid_block_xor (pbuf, buf, size); + grub_raid_block_mul (raid6_table2[i][i], buf, size); +@@ -148,21 +149,21 @@ grub_raid6_recover (struct grub_raid_arr + if (bad2 < 0) + { + /* One bad device */ +- if ((array->device[p]) && +- (! grub_disk_read (array->device[p], sector, 0, size, buf))) ++ if ((array->members[p].device) && ++ (! grub_disk_read (array->members[p].device, sector, 0, size, buf))) + { + grub_raid_block_xor (buf, pbuf, size); + goto quit; + } + +- if (! array->device[q]) ++ if (! array->members[q].device) + { + grub_error (GRUB_ERR_READ_ERROR, "not enough disk to restore"); + goto quit; + } + + grub_errno = GRUB_ERR_NONE; +- if (grub_disk_read (array->device[q], sector, 0, size, buf)) ++ if (grub_disk_read (array->members[q].device, sector, 0, size, buf)) + goto quit; + + grub_raid_block_xor (buf, qbuf, size); +@@ -174,18 +175,18 @@ grub_raid6_recover (struct grub_raid_arr + /* Two bad devices */ + grub_uint8_t c; + +- if ((! array->device[p]) || (! array->device[q])) ++ if ((! array->members[p].device) || (! array->members[q].device)) + { + grub_error (GRUB_ERR_READ_ERROR, "not enough disk to restore"); + goto quit; + } + +- if (grub_disk_read (array->device[p], sector, 0, size, buf)) ++ if (grub_disk_read (array->members[p].device, sector, 0, size, buf)) + goto quit; + + grub_raid_block_xor (pbuf, buf, size); + +- if (grub_disk_read (array->device[q], sector, 0, size, buf)) ++ if (grub_disk_read (array->members[q].device, sector, 0, size, buf)) + goto quit; + + grub_raid_block_xor (qbuf, buf, size); + +--- a/include/grub/raid.h ++++ b/include/grub/raid.h +@@ -22,8 +22,6 @@ + + #include + +-#define GRUB_RAID_MAX_DEVICES 32 +- + #define GRUB_RAID_LAYOUT_LEFT_ASYMMETRIC 0 + #define GRUB_RAID_LAYOUT_RIGHT_ASYMMETRIC 1 + #define GRUB_RAID_LAYOUT_LEFT_SYMMETRIC 2 +@@ -32,6 +30,13 @@ + #define GRUB_RAID_LAYOUT_RIGHT_MASK 1 + #define GRUB_RAID_LAYOUT_SYMMETRIC_MASK 2 + ++struct grub_raid_member ++{ ++ grub_disk_t device; /* Array of total_devs devices. */ ++ grub_disk_addr_t start_sector; ++ /* Start of each device, in 512 byte sectors. */ ++}; ++ + struct grub_raid_array + { + int number; /* The device number, taken from md_minor so we +@@ -43,16 +48,15 @@ struct grub_raid_array + grub_size_t chunk_size; /* The size of a chunk, in 512 byte sectors. */ + grub_uint64_t disk_size; /* Size of an individual disk, in 512 byte + sectors. */ +- int index; /* Index of current device. */ ++ unsigned int index; /* Index of current device. */ + int uuid_len; /* The length of uuid. */ + char *uuid; /* The UUID of the device. */ + + /* The following field is setup by the caller. */ + char *name; /* That will be "md". */ + unsigned int nr_devs; /* The number of devices we've found so far. */ +- grub_disk_t device[GRUB_RAID_MAX_DEVICES]; /* Array of total_devs devices. */ +- grub_disk_addr_t start_sector[GRUB_RAID_MAX_DEVICES]; +- /* Start of each device, in 512 byte sectors. */ ++ unsigned int allocated_devs; ++ struct grub_raid_member *members; + struct grub_raid_array *next; + }; + --- grub2-1.98+20100804.orig/debian/patches/boot_blocklist_hack.patch +++ grub2-1.98+20100804/debian/patches/boot_blocklist_hack.patch @@ -0,0 +1,20 @@ +Index: b/util/i386/pc/grub-setup.c +=================================================================== +--- a/util/i386/pc/grub-setup.c ++++ b/util/i386/pc/grub-setup.c +@@ -482,6 +482,15 @@ + grub_disk_cache_invalidate_all (); + + file = grub_file_open (core_path_dev); ++ ++ if (grub_errno == GRUB_ERR_FILE_NOT_FOUND) ++ { ++ /* Clean the previous grub_errno */ ++ grub_errno = GRUB_ERR_NONE; ++ strcpy (core_path_dev, "/grub/core.img"); ++ file = grub_file_open (core_path_dev); ++ } ++ + if (file) + { + if (grub_file_size (file) != core_size) --- grub2-1.98+20100804.orig/debian/patches/enable_zfs.patch +++ grub2-1.98+20100804/debian/patches/enable_zfs.patch @@ -0,0 +1,90 @@ +Description: Enable ZFS support in grub-probe and grub-setup +Author: Robert Millan +Forwarded: not-needed +Last-Update: 2010-09-10 + +--- a/conf/common.rmk 2010-07-06 18:27:55 +0000 ++++ b/conf/common.rmk 2010-07-29 14:19:10 +0000 +@@ -35,11 +35,17 @@ + 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 \ + \ ++ $(GRUB_CONTRIB)/zfs/zfs.c \ ++ $(GRUB_CONTRIB)/zfs/zfs_lzjb.c \ ++ $(GRUB_CONTRIB)/zfs/zfs_sha256.c \ ++ $(GRUB_CONTRIB)/zfs/zfs_fletcher.c \ ++ \ + partmap/msdos.c partmap/bsdlabel.c partmap/apple.c \ + partmap/sun.c partmap/sunpc.c partmap/gpt.c \ + kern/fs.c kern/env.c fs/fshelp.c \ + disk/raid.c disk/raid5_recover.c disk/raid6_recover.c \ + disk/mdraid_linux.c disk/lvm.c grub_probe_init.c ++grub_probe_CFLAGS = -I$(GRUB_CONTRIB)/zfs/include + + ifeq ($(enable_grub_fstest), yes) + bin_UTILITIES += grub-fstest +@@ -60,6 +66,11 @@ + 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 \ + \ ++ $(GRUB_CONTRIB)/zfs/zfs.c \ ++ $(GRUB_CONTRIB)/zfs/zfs_lzjb.c \ ++ $(GRUB_CONTRIB)/zfs/zfs_sha256.c \ ++ $(GRUB_CONTRIB)/zfs/zfs_fletcher.c \ ++ \ + kern/partition.c partmap/msdos.c partmap/bsdlabel.c \ + partmap/apple.c partmap/sun.c partmap/sunpc.c partmap/gpt.c \ + kern/fs.c kern/env.c fs/fshelp.c disk/raid.c \ + disk/raid5_recover.c disk/raid6_recover.c \ + disk/mdraid_linux.c disk/dmraid_nvidia.c disk/lvm.c \ + grub_fstest_init.c ++grub_fstest_CFLAGS = -I$(GRUB_CONTRIB)/zfs/include + + # For grub-mkfont. + ifeq ($(enable_grub_mkfont), yes) +--- a/conf/i386-pc.rmk 2010-07-06 18:27:55 +0000 ++++ b/conf/i386-pc.rmk 2010-07-29 14:19:31 +0000 +@@ -75,6 +75,12 @@ + 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 \ + \ ++ $(GRUB_CONTRIB)/zfs/zfs.c \ ++ $(GRUB_CONTRIB)/zfs/zfs_lzjb.c \ ++ $(GRUB_CONTRIB)/zfs/zfs_sha256.c \ ++ $(GRUB_CONTRIB)/zfs/zfs_fletcher.c \ ++ \ ++ \ + partmap/msdos.c partmap/bsdlabel.c partmap/sunpc.c \ + partmap/gpt.c \ + \ +@@ -82,6 +88,7 @@ + disk/mdraid_linux.c disk/lvm.c \ + util/raid.c util/lvm.c \ + grub_setup_init.c ++grub_setup_CFLAGS = -I$(GRUB_CONTRIB)/zfs/include + + sbin_SCRIPTS += grub-install + grub_install_SOURCES = util/grub-install.in + +--- a/conf/sparc64-ieee1275.rmk 2010-07-06 18:27:55 +0000 ++++ b/conf/sparc64-ieee1275.rmk 2010-07-29 14:19:40 +0000 +@@ -59,12 +59,18 @@ + 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 \ + \ ++ $(GRUB_CONTRIB)/zfs/zfs.c \ ++ $(GRUB_CONTRIB)/zfs/zfs_lzjb.c \ ++ $(GRUB_CONTRIB)/zfs/zfs_sha256.c \ ++ $(GRUB_CONTRIB)/zfs/zfs_fletcher.c \ ++ \ + partmap/amiga.c partmap/apple.c partmap/msdos.c \ + partmap/bsdlabel.c partmap/sun.c partmap/acorn.c \ + \ + disk/raid.c disk/raid5_recover.c disk/raid6_recover.c \ + disk/mdraid_linux.c disk/lvm.c util/raid.c \ + util/lvm.c gnulib/progname.c grub_setup_init.c ++grub_setup_CFLAGS = -I$(GRUB_CONTRIB)/zfs/include + + # For grub-ofpathname. + grub_ofpathname_SOURCES = util/ieee1275/grub-ofpathname.c \ + --- grub2-1.98+20100804.orig/debian/patches/grub.cfg_400.patch +++ grub2-1.98+20100804/debian/patches/grub.cfg_400.patch @@ -0,0 +1,15 @@ +Index: b/util/grub-mkconfig.in +=================================================================== +--- a/util/grub-mkconfig.in ++++ b/util/grub-mkconfig.in +@@ -313,6 +313,10 @@ + esac + done + ++if [ "x${grub_cfg}" != "x" ] && ! grep -q "^password " ${grub_cfg}.new ; then ++ chmod 444 ${grub_cfg}.new || true ++fi ++ + if test "x${grub_cfg}" != "x" ; then + # none of the children aborted with error, install the new grub.cfg + mv -f ${grub_cfg}.new ${grub_cfg} --- grub2-1.98+20100804.orig/debian/patches/ddf1_fakeraid.patch +++ grub2-1.98+20100804/debian/patches/ddf1_fakeraid.patch @@ -0,0 +1,19 @@ +Description: Recognise DDF1 DM-RAID +Author: Modestas Vainius +Origin: upstream, http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/2946 +Forwarded: yes +Last-Update: 2010-12-18 + +Index: b/kern/emu/getroot.c +=================================================================== +--- a/kern/emu/getroot.c ++++ b/kern/emu/getroot.c +@@ -569,6 +569,8 @@ + return 1; + else if (! strncmp (os_dev, "/dev/mapper/sil_", 16)) + return 1; ++ else if (! strncmp (os_dev, "/dev/mapper/ddf1_", 17)) ++ return 1; + + return 0; + } --- grub2-1.98+20100804.orig/debian/patches/olpc_prefix_hack.patch +++ grub2-1.98+20100804/debian/patches/olpc_prefix_hack.patch @@ -0,0 +1,50 @@ + +This sucks, but it's better than what OFW was giving us. + +Index: b/kern/ieee1275/init.c +=================================================================== +--- a/kern/ieee1275/init.c ++++ b/kern/ieee1275/init.c +@@ -52,6 +52,7 @@ + grub_ieee1275_exit (); + } + ++#ifndef __i386__ + /* Translate an OF filesystem path (separated by backslashes), into a GRUB + path (separated by forward slashes). */ + static void +@@ -66,13 +67,16 @@ + backslash = grub_strchr (filepath, '\\'); + } + } ++#endif + + void + grub_machine_set_prefix (void) + { ++#ifndef __i386__ + char bootpath[64]; /* XXX check length */ + char *filename; + char *prefix; ++#endif + + if (grub_prefix[0]) + { +@@ -81,6 +85,9 @@ + return; + } + ++#ifdef __i386__ ++ grub_env_set ("prefix", "(sd,1)/"); ++#else + if (grub_ieee1275_get_property (grub_ieee1275_chosen, "bootpath", &bootpath, + sizeof (bootpath), 0)) + { +@@ -119,6 +126,7 @@ + + grub_free (filename); + grub_free (prefix); ++#endif + } + + /* Claim some available memory in the first /memory node. */ --- grub2-1.98+20100804.orig/debian/patches/message_refresh.patch +++ grub2-1.98+20100804/debian/patches/message_refresh.patch @@ -0,0 +1,36 @@ +Description: Make error messages visible again +Author: Robert Millan +Forwarded: not needed, patch from upstream Bazaar +Last-Update: 2010-11-30 + +--- a/commands/echo.c 2010-01-03 18:24:22 +0000 ++++ b/commands/echo.c 2010-11-30 14:35:32 +0000 +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + + static const struct grub_arg_option options[] = + { +@@ -106,6 +106,8 @@ grub_cmd_echo (grub_extcmd_t cmd, int ar + if (newline) + grub_printf ("\n"); + ++ grub_refresh (); ++ + return 0; + } + + +--- a/normal/menu.c 2010-07-02 17:35:07 +0000 ++++ b/normal/menu.c 2010-11-30 14:32:13 +0000 +@@ -45,6 +45,7 @@ grub_wait_after_message (void) + { + grub_xputs ("\n"); + grub_printf_ (N_("Press any key to continue...")); ++ grub_refresh (); + (void) grub_getkey (); + grub_xputs ("\n"); + } + --- grub2-1.98+20100804.orig/debian/patches/ca_l10n.patch +++ grub2-1.98+20100804/debian/patches/ca_l10n.patch @@ -0,0 +1,1213 @@ +Index: grub2-1.98+20100804/po/ca.po +=================================================================== +--- grub2-1.98+20100804.orig/po/ca.po 2010-11-21 17:51:04.793431842 +0100 ++++ grub2-1.98+20100804/po/ca.po 2010-10-25 21:12:02.000000000 +0200 +@@ -3,16 +3,15 @@ + # This file is distributed under the same license as the grub package. + # Robert Millan , 2009. + # Àngel Mompó , 2010. +-# Àngel Mompó , 2010. ++# + msgid "" + msgstr "" + "Project-Id-Version: grub-1.97+20100124\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2010-06-19 01:35+0100\n" +-"PO-Revision-Date: 2010-03-21 21:47+0100\n" ++"POT-Creation-Date: 2010-01-24 19:29+0000\n" ++"PO-Revision-Date: 2010-10-25 21:03+0200\n" + "Last-Translator: Àngel Mompó \n" + "Language-Team: Catalan \n" +-"Language: ca\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=utf-8\n" + "Content-Transfer-Encoding: 8bit\n" +@@ -20,9 +19,7 @@ + + #: commands/acpi.c:40 + msgid "Don't load host tables specified by comma-separated list." +-msgstr "" +-"No carreguis les taules d'amfitrions especificades en llistes separades per " +-"comes." ++msgstr "No carreguis les taules d'amfitrions especificades en llistes separades per comes." + + #: commands/acpi.c:43 + msgid "Load only tables specified by comma-separated list." +@@ -57,35 +54,25 @@ + msgstr "Aplica la revisió del creador de l'RSDP, XSDT i l'RSDT." + + #: commands/acpi.c:55 +-msgid "" +-"Don't update EBDA. May fix failures or hangs on some. BIOSes but makes it " +-"ineffective with OS not receiving RSDP from GRUB." +-msgstr "" +-"No actualitzis EBDA. Pot corregir defectes o penjades a algunes BIOS, però " +-"el fa ineficaç amb SO que no rebin RSDP del GRUB." ++msgid "Don't update EBDA. May fix failures or hangs on some. BIOSes but makes it ineffective with OS not receiving RSDP from GRUB." ++msgstr "No actualitzis l'EBDA. Pot corregir defectes o penjades a algunes BIOS, però el fa ineficaç amb SO que no rebin el RSDP del GRUB." + + #: commands/acpi.c:763 +-msgid "" +-"[-1|-2] [--exclude=TABLE1,TABLE2|--load-only=table1,table2] FILE1 [FILE2] " +-"[...]" +-msgstr "" +-"[-1|-2] [--exclude=TAULA1,TAULA2|--load-only=taula1,taula2] FITXER1 " +-"[FITXER2] [...]" ++msgid "[-1|-2] [--exclude=TABLE1,TABLE2|--load-only=table1,table2] FILE1 [FILE2] [...]" ++msgstr "[-1|-2] [--exclude=TAULA1,TAULA2|--load-only=taula1,taula2] FITXER1 [FITXER2] [...]" + + #: commands/acpi.c:766 + msgid "Load host ACPI tables and tables specified by arguments." +-msgstr "" +-"Carrega les taules d'amfitrions ACPI i les taules especificades per " +-"arguments." ++msgstr "Carrega les taules d'amfitrions ACPI i les taules especificades per arguments." + +-#: commands/blocklist.c:113 commands/cat.c:82 commands/configfile.c:57 ++#: commands/blocklist.c:114 commands/cat.c:82 commands/configfile.c:57 + #: commands/configfile.c:60 commands/configfile.c:65 commands/crc.c:64 +-#: commands/minicmd.c:353 loader/i386/bsd.c:1287 loader/i386/bsd.c:1291 +-#: loader/i386/bsd.c:1295 ++#: commands/i386/pc/play.c:211 commands/minicmd.c:358 loader/i386/bsd.c:1296 ++#: loader/i386/bsd.c:1300 loader/i386/bsd.c:1304 + msgid "FILE" + msgstr "FITXER" + +-#: commands/blocklist.c:113 ++#: commands/blocklist.c:114 + msgid "Print a block list." + msgstr "Mostra una llista de blocs." + +@@ -93,7 +80,7 @@ + msgid "Boot an operating system." + msgstr "Arrenca un sistema operatiu." + +-#: commands/cat.c:82 commands/minicmd.c:353 ++#: commands/cat.c:82 commands/minicmd.c:358 + msgid "Show the contents of a file." + msgstr "Mostra el contingut d'un fitxer." + +@@ -158,24 +145,20 @@ + msgstr "DISPOSITIU [PARTICIÓ[+/-[TIPUS]]]" + + #: commands/gptsync.c:245 +-#, fuzzy +-msgid "" +-"Fill hybrid MBR of GPT drive DEVICE. Specified partitions will be a part of " +-"hybrid MBR. Up to 3 partitions are allowed. TYPE is an MBR type. + means " +-"that partition is active. Only one partition can be active." +-msgstr "" +-"Omple l'MBR híbrid del DISPOSITIU unitat GPT. Les particions especificades " +-"seran una part del MBR híbrid. Es permeten fins a 3 particions. TIPUS és un " +-"tipus de MBR. + significa que la partició és activa. Només es pot activar " +-"una partició." ++msgid "Fill hybrid MBR of GPT drive DEVICE. specified partitions will be a part of hybrid mbr. Up to 3 partitions are allowed. TYPE is an MBR type. + means that partition is active. Only one partition can be active." ++msgstr "Omple l'MBR híbrid del DISPOSITIU unitat GPT. Les particions especificades seran una part de l'MBR híbrid. Es permeten fins a 3 particions. TIPUS és un tipus de MBR. + significa que la partició és activa. Només es pot activar una partició." + + #: commands/halt.c:39 +-msgid "" +-"Halts the computer. This command does not work on all firmware " +-"implementations." +-msgstr "" +-"Atura l'ordinador. Aquesta ordre no funciona en totes les implementacions de " +-"microprogramari." ++msgid "Halts the computer. This command does not work on all firmware implementations." ++msgstr "Atura l'ordinador. Aquesta ordre no funciona en totes les implementacions de microprogramari." ++ ++#: commands/handler.c:94 ++msgid "[class [handler]]" ++msgstr "[classe [gestor]]" ++ ++#: commands/handler.c:95 ++msgid "List or select a handler." ++msgstr "Llista o selecciona un gestor." + + #: commands/hdparm.c:30 + msgid "" +@@ -191,7 +174,7 @@ + + #: commands/hdparm.c:34 + msgid "Freeze ATA security settings until reset." +-msgstr "Congela la configuració de seguretat ATA fins que es reinicïi." ++msgstr "Congela la configuració de seguretat ATA fins que es reiniciï." + + #: commands/hdparm.c:36 + msgid "Check SMART health status." +@@ -231,7 +214,7 @@ + + #: commands/hdparm.c:49 + msgid "Disable/enable SMART (0/1)." +-msgstr "Habilita/deshabilita SMART (1/0)." ++msgstr "Habilita/deshabilita l'SMART (1/0)." + + #: commands/hdparm.c:50 + msgid "Do not print messages." +@@ -245,15 +228,15 @@ + msgid "Get/set ATA disk parameters." + msgstr "Llegeix/escriu els paràmetres del disc ATA." + +-#: commands/help.c:112 lib/arg.c:110 ++#: commands/help.c:103 lib/arg.c:110 + msgid "Usage:" +-msgstr "Ús:" ++msgstr "Forma d'ús:" + +-#: commands/help.c:129 ++#: commands/help.c:136 + msgid "[PATTERN ...]" + msgstr "[PATRÓ...]" + +-#: commands/help.c:130 ++#: commands/help.c:137 + msgid "Show a help message." + msgstr "Mostra un missatge de text." + +@@ -287,33 +270,29 @@ + + #: commands/i386/pc/drivemap.c:38 + msgid "Reset all mappings to the default values." +-msgstr "Es reinicien tots els mapats als valors per defecte." ++msgstr "Es reinicien tots els mapatges als valors per defecte." + + #: commands/i386/pc/drivemap.c:39 + msgid "Perform both direct and reverse mappings." +-msgstr "Realitza ambdós mapats, el directe i l'invers." ++msgstr "Realitza ambdós mapatges, el directe i l'invers." + +-#: commands/i386/pc/drivemap.c:406 ++#: commands/i386/pc/drivemap.c:407 + msgid "-l | -r | [-s] grubdev osdisk." + msgstr "-l | -r | [-s] grubdev osdisk." + +-#: commands/i386/pc/drivemap.c:407 ++#: commands/i386/pc/drivemap.c:408 + msgid "Manage the BIOS drive mappings." +-msgstr "Gestiona els mapats d'unitats de la BIOS." ++msgstr "Gestiona els mapatges d'unitats de la BIOS." + + #: commands/i386/pc/halt.c:27 + msgid "Do not use APM to halt the computer." +-msgstr "No utilitzis APM per aturar l'ordinador." ++msgstr "No utilitzis l'APM per aturar l'ordinador." + + #: commands/i386/pc/halt.c:51 + msgid "Halt the system, if possible using APM." +-msgstr "Atura el sistema, si pots, fent servir APM." +- +-#: commands/i386/pc/play.c:266 +-msgid "FILE | TEMPO [PITCH1 DURATION1] [PITCH2 DURATION2] ... " +-msgstr "" ++msgstr "Atura el sistema, si pots, fent servir l'APM." + +-#: commands/i386/pc/play.c:267 ++#: commands/i386/pc/play.c:211 + msgid "Play a tune." + msgstr "Reprodueix una melodia." + +@@ -325,7 +304,7 @@ + msgid "List compatible VESA BIOS extension video modes." + msgstr "Llista les extensions de vídeo compatibles de VESA BIOS." + +-#: commands/i386/pc/vbetest.c:173 ++#: commands/i386/pc/vbetest.c:172 + msgid "Test VESA BIOS Extension 2.0+ support." + msgstr "Prova el suport per l'extensió 2.0+ de VESA BIOS." + +@@ -357,23 +336,23 @@ + msgid "Specify filename." + msgstr "Especifica el nom del fitxer." + +-#: commands/loadenv.c:378 commands/loadenv.c:384 ++#: commands/loadenv.c:383 commands/loadenv.c:389 + msgid "[-f FILE]" + msgstr "[-f FITXER]" + +-#: commands/loadenv.c:379 ++#: commands/loadenv.c:384 + msgid "Load variables from environment block file." + msgstr "Carrega les variables del bloc del fitxer d'entorn." + +-#: commands/loadenv.c:385 ++#: commands/loadenv.c:390 + msgid "List variables from environment block file." + msgstr "Llista les variables del bloc del fitxer d'entorn." + +-#: commands/loadenv.c:390 ++#: commands/loadenv.c:395 + msgid "[-f FILE] variable_name [...]" + msgstr "[-f FITXER] nom_de_variable [...]" + +-#: commands/loadenv.c:391 ++#: commands/loadenv.c:396 + msgid "Save variables to environment block file." + msgstr "Desa les variables al bloc del fitxer d'entorn." + +@@ -389,15 +368,15 @@ + msgid "List all files." + msgstr "Llista tots els fitxers." + +-#: commands/ls.c:269 ++#: commands/ls.c:268 + msgid "[-l|-h|-a] [FILE]" + msgstr "[-l|-h|-a] [FITXER]" + +-#: commands/ls.c:270 ++#: commands/ls.c:269 + msgid "List devices and files." + msgstr "Llista dispositius i fitxers." + +-#: commands/lsmmap.c:51 ++#: commands/lsmmap.c:47 + msgid "List memory map provided by firmware." + msgstr "Llista el mapa de memòria proveït pel microprogramari." + +@@ -410,7 +389,7 @@ + msgstr "Desa el valor llegit a la variable NOMVARIABLE." + + #: commands/memrw.c:123 commands/memrw.c:126 commands/memrw.c:129 +-#: commands/minicmd.c:362 ++#: commands/minicmd.c:367 + msgid "ADDR" + msgstr "ADDR" + +@@ -442,45 +421,45 @@ + msgid "Write dword VALUE to ADDR." + msgstr "Escriu una paraula doble VALOR a ADDR" + +-#: commands/minicmd.c:356 ++#: commands/minicmd.c:361 + msgid "Show this message." + msgstr "Mostra aquest missatge." + +-#: commands/minicmd.c:359 commands/probe.c:154 ++#: commands/minicmd.c:364 commands/probe.c:154 + msgid "[DEVICE]" + msgstr "[DISPOSITIU]" + +-#: commands/minicmd.c:359 ++#: commands/minicmd.c:364 + msgid "Set the root device." + msgstr "Estableix el dispositiu arrel." + +-#: commands/minicmd.c:362 ++#: commands/minicmd.c:367 + msgid "Dump memory." + msgstr "Bolca la memòria." + +-#: commands/minicmd.c:365 ++#: commands/minicmd.c:370 + msgid "MODULE" + msgstr "MÒDUL" + +-#: commands/minicmd.c:365 ++#: commands/minicmd.c:370 + msgid "Remove a module." + msgstr "Treu un mòdul." + +-#: commands/minicmd.c:368 ++#: commands/minicmd.c:373 + msgid "Show loaded modules." + msgstr "Mostra els mòduls carregats." + +-#: commands/minicmd.c:371 ++#: commands/minicmd.c:376 + msgid "Exit from GRUB." +-msgstr "Surt de GRUB." ++msgstr "Surt del GRUB." + +-#: commands/minicmd.c:374 ++#: commands/minicmd.c:379 + msgid "Clear the screen." + msgstr "Neteja la pantalla." + + #: commands/parttool.c:325 + msgid "PARTITION COMMANDS" +-msgstr "COMANDES DE PARTICIONAT" ++msgstr "ORDRES DE PARTICIONAT" + + #: commands/password.c:78 + msgid "USER PASSWORD" +@@ -508,7 +487,7 @@ + + #: commands/probe.c:42 + msgid "Determine filesystem UUID." +-msgstr "Determina el UUID del sistema de fitxers." ++msgstr "Determina l'UUID del sistema de fitxers." + + #: commands/probe.c:43 + msgid "Determine filesystem label." +@@ -520,7 +499,7 @@ + + #: commands/read.c:83 + msgid "[ENVVAR]" +-msgstr "[ENVVAR]" ++msgstr "[VARENTORN]" + + #: commands/read.c:84 + msgid "Set variable with user input." +@@ -535,42 +514,30 @@ + msgstr "NOM [VARIABLE]" + + #: commands/search_file.c:5 +-msgid "" +-"Search devices by file. If VARIABLE is specified, the first device found is " +-"set to a variable." +-msgstr "" +-"Cerca dispositius pel fitxer. Si s'especifica VARIABLE, el nom del primer " +-"dispositiu trobat s'escriu a la variable." ++msgid "Search devices by file. If VARIABLE is specified, the first device found is set to a variable." ++msgstr "Cerca dispositius pel fitxer. Si s'especifica VARIABLE, el nom del primer dispositiu trobat s'escriu a la variable." + + #: commands/search_label.c:5 +-msgid "" +-"Search devices by label. If VARIABLE is specified, the first device found is " +-"set to a variable." +-msgstr "" +-"Cerca dispositius per l'etiqueta. Si s'especifica VARIABLE, el nom del " +-"primer dispositiu trobat s'escriu a la variable." ++msgid "Search devices by label. If VARIABLE is specified, the first device found is set to a variable." ++msgstr "Cerca dispositius per l'etiqueta. Si s'especifica VARIABLE, el nom del primer dispositiu trobat s'escriu a la variable." + + #: commands/search_uuid.c:5 +-msgid "" +-"Search devices by UUID. If VARIABLE is specified, the first device found is " +-"set to a variable." +-msgstr "" +-"Cerca dispositius per l'UUID. Si s'especifica VARIABLE, el nom del primer " +-"dispositiu trobat s'escriu a la variable." ++msgid "Search devices by UUID. If VARIABLE is specified, the first device found is set to a variable." ++msgstr "Cerca dispositius per l'UUID. Si s'especifica VARIABLE, el nom del primer dispositiu trobat s'escriu a la variable." + +-#: commands/sleep.c:30 ++#: commands/sleep.c:31 + msgid "Verbose countdown." + msgstr "Compte enrere detallat." + +-#: commands/sleep.c:31 ++#: commands/sleep.c:32 + msgid "Interruptible with ESC." + msgstr "Es pot interrompre amb ESC." + +-#: commands/sleep.c:105 ++#: commands/sleep.c:106 + msgid "NUMBER_OF_SECONDS" + msgstr "NOMBRE_DE_SEGONS" + +-#: commands/sleep.c:106 ++#: commands/sleep.c:107 + msgid "Wait for a specified number of seconds." + msgstr "Espera un nombre especificat de segons." + +@@ -594,17 +561,17 @@ + msgid "Do nothing, unsuccessfully." + msgstr "No facis res, sense èxit." + +-#: commands/usbtest.c:208 ++#: commands/usbtest.c:199 + msgid "Test USB support." + msgstr "Prova el suport USB." + +-#: commands/videotest.c:180 ++#: commands/videotest.c:185 + msgid "Test video subsystem." + msgstr "Prova el subsistema de video." + + #: commands/xnu_uuid.c:92 + msgid "GRUBUUID [VARNAME]" +-msgstr "GRUBUUID [VARNOM]" ++msgstr "GRUBUUID [NOMVARIABLE]" + + #: commands/xnu_uuid.c:93 + msgid "Transform 64-bit UUID to format suitable for XNU." +@@ -628,7 +595,7 @@ + + #: hello/hello.c:43 + msgid "Say \"Hello World\"." +-msgstr "Diu «Hola Mon»." ++msgstr "Diu «Hola món»." + + #: lib/arg.c:34 + msgid "Display this help and exit." +@@ -636,15 +603,15 @@ + + #: lib/arg.c:36 + msgid "Display the usage of this command and exit." +-msgstr "Mostra l'ús d'aquesta comanda i surt." ++msgstr "Mostra l'ús d'aquesta ordre i surt." + + #: loader/efi/appleloader.c:325 + msgid "Boot legacy system." + msgstr "Arrenca el sistema heretat." + +-#: loader/efi/chainloader.c:340 loader/i386/pc/chainloader.c:166 ++#: loader/efi/chainloader.c:340 loader/i386/pc/chainloader.c:153 + msgid "Load another boot loader." +-msgstr "Carrega un altre gestor d'engegada." ++msgstr "Carrega un altre gestor d'arrencada." + + #: loader/i386/bsd.c:65 + msgid "Display output on all consoles." +@@ -656,7 +623,7 @@ + + #: loader/i386/bsd.c:67 loader/i386/bsd.c:93 loader/i386/bsd.c:114 + msgid "Ask for file name to reboot from." +-msgstr "Demana el nom del fitxer des d'on tornar a engegar." ++msgstr "Demana el nom del fitxer des d'on arrencar de nou." + + #: loader/i386/bsd.c:68 + msgid "Use CDROM as root." +@@ -668,11 +635,11 @@ + + #: loader/i386/bsd.c:70 loader/i386/bsd.c:97 loader/i386/bsd.c:117 + msgid "Enter in KDB on boot." +-msgstr "Entra en KDB al arrencar." ++msgstr "Entra en KDB a l'arrencar." + + #: loader/i386/bsd.c:71 + msgid "Use GDB remote debugger instead of DDB." +-msgstr "Fes servir el depuració remot GDB en comptes de DDB." ++msgstr "Fes servir el depurador remot GDB en comptes del DDB." + + #: loader/i386/bsd.c:72 + msgid "Disable all boot output." +@@ -708,11 +675,11 @@ + + #: loader/i386/bsd.c:112 + msgid "Disable SMP." +-msgstr "Deshabilita SMP." ++msgstr "Deshabilita el SMP." + + #: loader/i386/bsd.c:113 + msgid "Disable ACPI." +-msgstr "Deshabilita ACPI." ++msgstr "Deshabilita l'ACPI." + + #: loader/i386/bsd.c:119 + msgid "Don't display boot diagnostic messages." +@@ -730,100 +697,99 @@ + msgid "DEVICE" + msgstr "DISPOSITIU" + +-#: loader/i386/bsd.c:1287 ++#: loader/i386/bsd.c:1296 + msgid "Load kernel of FreeBSD." +-msgstr "Carrega el nucli de FreeBSD" ++msgstr "Carrega el nucli del FreeBSD" + +-#: loader/i386/bsd.c:1291 ++#: loader/i386/bsd.c:1300 + msgid "Load kernel of OpenBSD." +-msgstr "Carrega el nucli de OpenBSD." ++msgstr "Carrega el nucli del OpenBSD." + +-#: loader/i386/bsd.c:1295 ++#: loader/i386/bsd.c:1304 + msgid "Load kernel of NetBSD." +-msgstr "Carrega el nucli de NetBSD." ++msgstr "Carrega el nucli del NetBSD." + +-#: loader/i386/bsd.c:1299 ++#: loader/i386/bsd.c:1308 + msgid "Load FreeBSD env." +-msgstr "Carrega l'entorn FreeBSD." ++msgstr "Carrega l'entorn del FreeBSD." + +-#: loader/i386/bsd.c:1302 ++#: loader/i386/bsd.c:1311 + msgid "Load FreeBSD kernel module." +-msgstr "Carrega el mòdul del nucli FreeBSD." ++msgstr "Carrega el mòdul del nucli del FreeBSD." + +-#: loader/i386/bsd.c:1305 ++#: loader/i386/bsd.c:1314 + msgid "Load FreeBSD kernel module (ELF)." +-msgstr "Carrega el mòdul del nucli FreeBSD (ELF)." ++msgstr "Carrega el mòdul del nucli del FreeBSD (ELF)." + + #: loader/i386/efi/linux.c:1011 loader/i386/ieee1275/linux.c:301 +-#: loader/i386/linux.c:1012 loader/i386/pc/linux.c:399 +-#: loader/powerpc/ieee1275/linux.c:353 loader/sparc64/ieee1275/linux.c:519 ++#: loader/i386/linux.c:1007 loader/i386/pc/linux.c:399 ++#: loader/powerpc/ieee1275/linux.c:353 loader/sparc64/ieee1275/linux.c:520 + msgid "Load Linux." +-msgstr "Carrega Linux." ++msgstr "Carrega el Linux." + + #: loader/i386/efi/linux.c:1013 loader/i386/ieee1275/linux.c:303 +-#: loader/i386/linux.c:1014 loader/i386/pc/linux.c:402 +-#: loader/powerpc/ieee1275/linux.c:355 loader/sparc64/ieee1275/linux.c:521 ++#: loader/i386/linux.c:1009 loader/i386/pc/linux.c:402 ++#: loader/powerpc/ieee1275/linux.c:355 loader/sparc64/ieee1275/linux.c:522 + msgid "Load initrd." +-msgstr "Carrega initrd." ++msgstr "Carrega l'initrd." + + #: loader/i386/xnu.c:1032 + msgid "Load device-properties dump." + msgstr "Carrega el bolcat de les propietats del dispositiu." + +-#: loader/multiboot.c:337 ++#: loader/multiboot_loader.c:133 + msgid "Load a multiboot 2 kernel." +-msgstr "Carrega un nucli multiarranc 2." +- +-#: loader/multiboot.c:340 +-#, fuzzy +-msgid "Load a multiboot 2 module." +-msgstr "Carrega un mòdul multiarranc." ++msgstr "Carrega un nucli multiarrencada 2." + +-#: loader/multiboot.c:343 ++#: loader/multiboot_loader.c:136 + msgid "Load a multiboot kernel." +-msgstr "Carrega un nucli multiarranc." ++msgstr "Carrega un nucli multiarrencada." + +-#: loader/multiboot.c:346 ++#: loader/multiboot_loader.c:141 + msgid "Load a multiboot module." +-msgstr "Carrega un mòdul multiarranc." ++msgstr "Carrega un mòdul multiarrencada." + +-#: loader/xnu.c:1428 ++#: loader/xnu.c:1407 + msgid "Load XNU image." +-msgstr "Carrega una imatge XNU." ++msgstr "Carrega una imatge del XNU." + +-#: loader/xnu.c:1430 ++#: loader/xnu.c:1409 + msgid "Load 64-bit XNU image." +-msgstr "Carrega una imatge XNU de 64 bits." ++msgstr "Carrega una imatge del XNU de 64 bits." + +-#: loader/xnu.c:1432 ++#: loader/xnu.c:1411 + msgid "Load XNU extension package." +-msgstr "Carrega un paquet d'extensió XNU." ++msgstr "Carrega un paquet d'extensió del XNU." + +-#: loader/xnu.c:1434 ++#: loader/xnu.c:1413 + msgid "Load XNU extension." +-msgstr "Carrega una extensió XNU." ++msgstr "Carrega una extensió del XNU." + +-#: loader/xnu.c:1436 ++#: loader/xnu.c:1415 + msgid "DIRECTORY [OSBundleRequired]" + msgstr "DIRECTORI [NecessitaOSBundle]" + +-#: loader/xnu.c:1437 ++#: loader/xnu.c:1416 + msgid "Load XNU extension directory." +-msgstr "Carrega el directori de les extensions XNU." ++msgstr "Carrega el directori de les extensions del XNU." + +-#: loader/xnu.c:1444 ++#: loader/xnu.c:1418 ++msgid "Load XNU ramdisk. It will be seen as md0." ++msgstr "Carrega un disc ram del XNU. Es veurà com md0." ++ ++#: loader/xnu.c:1421 + msgid "Load a splash image for XNU." +-msgstr "Carrega una imatge de presentació per XNU." ++msgstr "Carrega una imatge de presentació pel XNU." + +-#: loader/xnu.c:1449 ++#: loader/xnu.c:1425 + msgid "Load XNU hibernate image." +-msgstr "Carrega una imatge hibernada de XNU." ++msgstr "Carrega una imatge hibernada del XNU." + +-#: normal/auth.c:217 ++#: normal/auth.c:233 + msgid "Enter username: " + msgstr "Introdueix el nom d'usuari: " + +-#: normal/auth.c:222 ++#: normal/auth.c:238 + msgid "Enter password: " + msgstr "Introdueix la contrasenya: " + +@@ -842,115 +808,74 @@ + msgid "Warning: invalid background color `%s'\n" + msgstr "Avís: color de fons invàlid «%s»\n" + +-#: normal/dyncmd.c:144 ++#: normal/dyncmd.c:147 + msgid "not loaded" + msgstr "no s'ha carregat" + +-#: normal/main.c:415 ++#: normal/main.c:408 + #, c-format + msgid "GNU GRUB version %s" +-msgstr "Versió %s de GNU GRUB" ++msgstr "Versió %s del GNU GRUB" + +-#: normal/main.c:552 ++#: normal/main.c:538 + #, c-format +-msgid "" +-"Minimal BASH-like line editing is supported. For the first word, TAB lists " +-"possible command completions. Anywhere else TAB lists possible device or " +-"file completions. %s" +-msgstr "" +-"Es suporta una línia d'edició mínima tipus BASH. Per la primera paraula, TAB " +-"mostra les possibles opcions per completar. A qualsevol altre lloc, TAB " +-"mostra possibles completats de dispositius o fitxers. %s" ++msgid "Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists possible device or file completions. %s" ++msgstr "Es suporta una línia d'edició mínima tipus BASH. Per la primera paraula, TAB mostra les opcions per completar possibles. A qualsevol altre lloc, TAB mostra completats de dispositius o fitxers possibles. %s" + +-#: normal/main.c:555 ++#: normal/main.c:541 + msgid "ESC at any time exits." + msgstr "En qualsevol moment ESC surt." + +-#: normal/main.c:670 +-msgid "Enter normal mode." +-msgstr "" +- +-#: normal/main.c:672 +-msgid "Exit from normal mode." +-msgstr "" +- +-#: normal/menu_entry.c:1061 ++#: normal/menu_entry.c:1060 + msgid "Possible commands are:" +-msgstr "Les possibles ordres són:" ++msgstr "Les ordres possibles són:" + +-#: normal/menu_entry.c:1065 ++#: normal/menu_entry.c:1064 + msgid "Possible devices are:" +-msgstr "Els possibles dispositius són:" ++msgstr "Els dispositius possibles són:" + +-#: normal/menu_entry.c:1069 ++#: normal/menu_entry.c:1068 + msgid "Possible files are:" +-msgstr "Els possibles fitxers són:" ++msgstr "Els fitxers possibles són:" + +-#: normal/menu_entry.c:1073 ++#: normal/menu_entry.c:1072 + msgid "Possible partitions are:" +-msgstr "Les possibles particions són:" ++msgstr "Les particions possibles són:" + +-#: normal/menu_entry.c:1077 ++#: normal/menu_entry.c:1076 + msgid "Possible arguments are:" +-msgstr "Els possibles arguments són:" ++msgstr "Els arguments possibles són:" + +-#: normal/menu_entry.c:1081 ++#: normal/menu_entry.c:1080 + msgid "Possible things are:" + msgstr "Les possibilitats són:" + +-#: normal/menu_entry.c:1185 ++#: normal/menu_entry.c:1184 + msgid "Booting a command list" +-msgstr "Arrencant una llista d'ordres" ++msgstr "S'esta arrencant una llista d'ordres" + +-#: normal/menu_entry.c:1398 ++#: normal/menu_entry.c:1397 + msgid "Press any key to continue..." + msgstr "Premeu una tecla per continuar..." + +-#: normal/menu_text.c:180 +-#, fuzzy +-msgid "" +-"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +-"F1 to boot, F2=Ctrl-a, F3=Ctrl-e, F4 for a command-line or ESC to discard " +-"edits and return to the GRUB menu." +-msgstr "" +-"Es suporta una pantalla d'edició mínima semblant a Emacs. TAB llista els " +-"completats. Premeu Ctrl+x per arrencar, Ctrl+c per una línia d'ordres o ESC " +-"per tornar al menú." +- +-#: normal/menu_text.c:185 +-#, fuzzy +-msgid "" +-"Minimum Emacs-like screen editing is supported. TAB lists completions. Press " +-"Ctrl-x to boot, Ctrl-c for a command-line or ESC to discard edits and return " +-"to the GRUB menu." +-msgstr "" +-"Es suporta una pantalla d'edició mínima semblant a Emacs. TAB llista els " +-"completats. Premeu Ctrl+x per arrencar, Ctrl+c per una línia d'ordres o ESC " +-"per tornar al menú." ++#: normal/menu_text.c:179 ++msgid "Minimum Emacs-like screen editing is supported. TAB lists completions. Press Ctrl-x to boot, Ctrl-c for a command-line or ESC to return menu." ++msgstr "Es suporta una pantalla d'edició mínima semblant a l'Emacs. TAB llista els completats. Premeu Ctrl+x per arrencar, Ctrl+c per una línia d'ordres o ESC per tornar al menú." + +-#: normal/menu_text.c:193 ++#: normal/menu_text.c:186 + #, c-format + msgid "Use the %C and %C keys to select which entry is highlighted.\n" +-msgstr "" +-"Utilitzeu les tecles %C i %C per seleccionar quina entrada voleu realçar.\n" ++msgstr "Utilitzeu les tecles %C i %C per seleccionar quina entrada voleu realçar.\n" + +-#: normal/menu_text.c:210 +-msgid "" +-"Press enter to boot the selected OS, 'e' to edit the commands before booting " +-"or 'c' for a command-line. ESC to return previous menu.\n" +-msgstr "" +-"Premeu enter per arrencar el SO seleccionat, «e» per editar les ordres abans " +-"d'arrencar o «c» per una línia de comandes. ESC torna al menú anterior.\n" ++#: normal/menu_text.c:203 ++msgid "Press enter to boot the selected OS, 'e' to edit the commands before booting or 'c' for a command-line. ESC to return previous menu.\n" ++msgstr "Premeu enter per arrencar el SO seleccionat, «e» per editar les ordres abans d'arrencar o «c» per una línia d'ordres. ESC torna al menú anterior.\n" + +-#: normal/menu_text.c:218 +-msgid "" +-"Press enter to boot the selected OS, 'e' to edit the commands before booting " +-"or 'c' for a command-line.\n" +-msgstr "" +-"Premeu enter per arrencar el SO seleccionat, «e» per editar les ordres abans " +-"d'arrencar o «c» per una línia de comandes.\n" ++#: normal/menu_text.c:211 ++msgid "Press enter to boot the selected OS, 'e' to edit the commands before booting or 'c' for a command-line.\n" ++msgstr "Premeu enter per arrencar el SO seleccionat, «e» per editar les ordres abans d'arrencar o «c» per una línia d'ordres.\n" + +-#: normal/menu_text.c:370 ++#: normal/menu_text.c:363 + #, c-format + msgid "The highlighted entry will be executed automatically in %ds." + msgstr "L'entrada realçada s'executarà automàticament en %ds." +@@ -1016,245 +941,190 @@ + msgid "Set the serial port stop bits." + msgstr "Indica el nombre de bits d'aturada del port sèrie." + +-#: term/serial.c:619 +-#, fuzzy +-msgid "[OPTIONS...]" +-msgstr "[OPCIONS] DISC" +- +-#: term/serial.c:620 +-msgid "Configure serial port." +-msgstr "" +- +-#: util/grub-mkimage.c:440 ++#: util/grub-mkrawimage.c:67 + msgid "the core image is too small" + msgstr "la imatge del nucli és massa petita" + +-#: util/grub-mkimage.c:451 ++#: util/grub-mkrawimage.c:79 + msgid "cannot compress the kernel image" + msgstr "no es pot comprimir la imatge del nucli" + +-#: util/grub-mkimage.c:548 ++#: util/grub-mkrawimage.c:154 + msgid "prefix is too long" + msgstr "el prefix és massa llarg" + +-#: util/grub-mkimage.c:672 +-#, c-format +-msgid "core image is too big (%p > %p)" +-msgstr "la imatge del nucli és massa gran (%p > %p)" +- +-#: util/grub-mkimage.c:678 ++#: util/grub-mkrawimage.c:240 + msgid "the core image is too big" + msgstr "la imatge del nucli és massa gran" + +-#: util/grub-mkimage.c:683 ++#: util/grub-mkrawimage.c:245 + #, c-format + msgid "diskboot.img size must be %u bytes" + msgstr "la mida de diskboot.img ha de ser de %u bytes" + +-#: util/grub-mkimage.c:1168 util/i386/pc/grub-setup.c:619 ++#: util/grub-mkrawimage.c:328 ++#, c-format ++msgid "core image is too big (%p > %p)" ++msgstr "la imatge del nucli és massa gran (%p > %p)" ++ ++#: util/grub-mkrawimage.c:432 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" + +-#: util/grub-mkimage.c:1187 +-#, fuzzy, c-format ++#: util/grub-mkrawimage.c:434 ++#, c-format + msgid "" + "Usage: %s [OPTION]... [MODULES]\n" + "\n" + "Make a bootable image of GRUB.\n" + "\n" +-" -d, --directory=DIR use images and modules under DIR [default=%s/" +-"@platform@]\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" + " -f, --font=FILE embed FILE as a boot font\n" + " -c, --config=FILE embed FILE as boot config\n" +-" -n, --note add NOTE segment for CHRP Open Firmware\n" + " -o, --output=FILE output a generated image to FILE [default=stdout]\n" +-" -O, --format=FORMAT generate an image in format\n" +-" available formats: %s\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" ++" -O, --format=FORMAT generate an image in format [default=" + msgstr "" +-"Ús: %s [OPCIÓ]... [MÒDULS]\n" ++"Forma d'ús: %s [OPCIÓ]... [MÒDULS]\n" + "\n" +-"Fa una imatge que pot arrencar de GRUB\n" ++"Fa una imatge que pot arrencar del GRUB\n" + "\n" +-" -d, --directory=DIR utilitza les imatges i els mòduls de DIR [per " +-"defecte=%s]\n" +-" -p, --prefix=DIR utilitza el directori grub_prefix [per defecte=" +-"%s]\n" ++" -d, --directory=DIR utilitza les imatges i els mòduls de DIR [per defecte=%s]\n" ++" -p, --prefix=DIR utilitza el directori grub_prefix [per defecte=%s]\n" + " -m, --memdisk=FITXER incrusta el FITXER com una imatge memdisk\n" +-" -f, --font=FITXER incrusta el FITXER com a font d'arranc\n" +-" -c, --config=FITXER incrusa el FITXER com a configuració d'arranc\n" +-" -o, --outut=FITXER posa una imatge generada al FITXER [per " +-"defecte=stdout]\n" ++" -f, --font=FITXER incrusta el FITXER com a font d'arrencada\n" ++" -c, --config=FITXER incrusta el FITXER com a configuració d'arrencada\n" ++" -o, --outut=FITXER posa una imatge generada al FITXER [per defecte=stdout]\n" + " -O, --format=FORMAT genera una imatge amb el format [defecte=" + +-#: util/grub-mkimage.c:1333 ++#: util/grub-mkrawimage.c:573 + #, c-format + msgid "cannot open %s" + msgstr "no es pot obrir %s" + +-#: util/i386/pc/grub-setup.c:164 ++#: util/i386/pc/grub-setup.c:159 + msgid "the first sector of the core file is not sector-aligned" + msgstr "el primer sector del fitxer del nucli no està alineat amb el sector" + +-#: util/i386/pc/grub-setup.c:178 ++#: util/i386/pc/grub-setup.c:173 + msgid "non-sector-aligned data is found in the core file" + msgstr "s'han trobat dades no alineades amb el sector al fitxer del nucli" + +-#: util/i386/pc/grub-setup.c:192 ++#: util/i386/pc/grub-setup.c:187 + msgid "the sectors of the core file are too fragmented" + msgstr "els sectors del fitxer del nucli estan massa fragmentats" + +-#: util/i386/pc/grub-setup.c:203 ++#: util/i386/pc/grub-setup.c:198 + #, c-format + msgid "the size of `%s' is not %u" + msgstr "la mida de «%s» no és %u" + +-#: util/i386/pc/grub-setup.c:220 ++#: util/i386/pc/grub-setup.c:215 + #, c-format + msgid "the size of `%s' is too small" + msgstr "la mida de «%s» és massa petita" + +-#: util/i386/pc/grub-setup.c:222 ++#: util/i386/pc/grub-setup.c:217 + #, c-format + msgid "the size of `%s' is too large" + msgstr "la mida de «%s» és massa gran" + +-#: util/i386/pc/grub-setup.c:261 ++#: util/i386/pc/grub-setup.c:254 + #, c-format + msgid "unable to identify a filesystem in %s; safety check can't be performed" +-msgstr "" +-"No s'ha pogut identificar el sistema de fitxers de %s; no es pot comprovar " +-"la seguretat" ++msgstr "No s'ha pogut identificar el sistema de fitxers de %s; no es pot comprovar la seguretat" + +-#: util/i386/pc/grub-setup.c:265 ++#: util/i386/pc/grub-setup.c:258 + #, 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 sembla contenir un sistema de fitxers %s que no sé si pot reservar espai " +-"pel sistema d'arrencada de l'estil de DOS. Instal·lar GRUB pot DESTRUIR EL " +-"SISTEMA DE FITXERS si el grub-setup sobreescriu dades importants (--skip-fs-" +-"probe deshabilita la comprovació. Feu-la servir sota la vostra " +-"responsabilitat)" ++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 sembla contenir un sistema de fitxers %s que no sé si pot reservar espai pel sistema d'arrencada de l'estil del DOS. Instal·lar el GRUB pot DESTRUIR EL SISTEMA DE FITXERS si el grub-setup sobreescriu dades importants (--skip-fs-probe deshabilita la comprovació. Feu-la servir sota la vostra responsabilitat)" + +-#: util/i386/pc/grub-setup.c:339 util/i386/pc/grub-setup.c:366 +-msgid "" +-"Attempting to install GRUB to a partitionless disk. This is a BAD idea." +-msgstr "" +-"Esteu intentant instal·lar GRUB a un disc sense particions. És una MALA idea." ++#: util/i386/pc/grub-setup.c:307 ++msgid "no DOS-style partitions found" ++msgstr "no s'ha trobat cap partició d'estil DOS" + +-#: util/i386/pc/grub-setup.c:345 +-msgid "" +-"Attempting to install GRUB to a partition instead of the MBR. This is a BAD " +-"idea." +-msgstr "" +-"Esteu intentant instal·lar GRUB a una partició en lloc de al MBR. És una " +-"MALA idea." ++#: util/i386/pc/grub-setup.c:323 util/i386/pc/grub-setup.c:348 ++msgid "Attempting to install GRUB to a partitionless disk. This is a BAD idea." ++msgstr "Esteu intentant instal·lar el GRUB a un disc sense particions. És una MALA idea." ++ ++#: util/i386/pc/grub-setup.c:329 ++msgid "Attempting to install GRUB to a partition instead of the MBR. This is a BAD idea." ++msgstr "Esteu intentant instal·lar el GRUB a una partició en lloc de al MBR. És una MALA idea." + +-#: util/i386/pc/grub-setup.c:375 ++#: util/i386/pc/grub-setup.c:357 + msgid "No DOS-style partitions found" + msgstr "No s'ha trobat cap partició d'estil DOS" + +-#: util/i386/pc/grub-setup.c:380 +-msgid "" +-"This msdos-style partition label has no post-MBR gap; embedding won't be " +-"possible!" +-msgstr "" +-"Aquesta etiqueta de partició d'estil msdos no té espai després del MBR; no " +-"es podrà incrustar!" +- +-#: util/i386/pc/grub-setup.c:382 +-msgid "" +-"This GPT partition label has no BIOS Boot Partition; embedding won't be " +-"possible!" +-msgstr "" +-"Aquesta etiqueta de partició GPT no té una partició d'arranc per a la BIOS; " +-"no es podrà incrustar!" ++#: util/i386/pc/grub-setup.c:362 ++msgid "This msdos-style partition label has no post-MBR gap; embedding won't be possible!" ++msgstr "Aquesta etiqueta de partició d'estil msdos no té espai després del MBR; no es podrà incrustar!" ++ ++#: util/i386/pc/grub-setup.c:364 ++msgid "This GPT partition label has no BIOS Boot Partition; embedding won't be possible!" ++msgstr "Aquesta etiqueta de partició GPT no té una partició d'arrencada per a la BIOS; no es podrà incrustar!" + +-#: util/i386/pc/grub-setup.c:389 ++#: util/i386/pc/grub-setup.c:371 + msgid "Your core.img is unusually large. It won't fit in the embedding area." + msgstr "El vostre core.img és massa gran. No cabrà a l'àrea d'incrustació." + +-#: util/i386/pc/grub-setup.c:391 ++#: util/i386/pc/grub-setup.c:373 + msgid "Your embedding area is unusually small. core.img won't fit in it." +-msgstr "" +-"La vostra àrea d'incrustació és petita. El fitxer core.img no hi cabrà." ++msgstr "La vostra àrea d'incrustació és petita. El fitxer core.img no hi cabrà." + +-#: util/i386/pc/grub-setup.c:436 +-msgid "" +-"embedding is not possible, but this is required when the root device is on a " +-"RAID array or LVM volume" +-msgstr "" +-"No s'ha pogut incrustar, però és imprescindible quan el dispositiu arrel és " +-"a una matriu RAID o a un volum LVM." ++#: util/i386/pc/grub-setup.c:416 ++msgid "embedding is not possible, but this is required when the root device is on a RAID array or LVM volume" ++msgstr "No s'ha pogut incrustar, però és imprescindible quan el dispositiu arrel és a una matriu RAID o a un volum LVM." + +-#: util/i386/pc/grub-setup.c:439 +-#, fuzzy +-msgid "" +-"Embedding is not possible. GRUB can only be installed in this setup by " +-"using blocklists. However, blocklists are UNRELIABLE and their use is " +-"discouraged." +-msgstr "" +-"No s'ha pogut incrustar. El GRUB només es pot instal·lar d'aquesta manera " +-"fent servir llistes de blocs. De tota manera, les llistes de blocs NO SÓN " +-"FIABLES i es desaconsella el seu ús." ++#: util/i386/pc/grub-setup.c:419 ++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 "No s'ha pogut incrustar. El GRUB només es pot instal·lar d'aquesta manera fent servir llistes de blocs. De tota manera, les llistes de blocs NO SÓN FIABLES i es desaconsella el seu ús." + +-#: util/i386/pc/grub-setup.c:443 ++#: util/i386/pc/grub-setup.c:423 + msgid "if you really want blocklists, use --force" + msgstr "Si realment voleu fer servir llistes de blocs, empreu --force." + +-#: util/i386/pc/grub-setup.c:462 ++#: util/i386/pc/grub-setup.c:439 + #, c-format + msgid "attempting to read the core image `%s' from GRUB" +-msgstr "s'intenta llegir la imatge del nucli «%s» des del GRUB" ++msgstr "s'està intentant llegir la imatge del nucli «%s» des del GRUB" + +-#: util/i386/pc/grub-setup.c:463 ++#: util/i386/pc/grub-setup.c:440 + #, c-format + msgid "attempting to read the core image `%s' from GRUB again" +-msgstr "s'intenta llegir la imatge del nucli «%s» des del GRUB un altre cop" ++msgstr "sestà intentant llegir la imatge del nucli «%s» des del GRUB un altre cop" + +-#: util/i386/pc/grub-setup.c:530 ++#: util/i386/pc/grub-setup.c:498 + #, c-format + msgid "cannot read `%s' correctly" + msgstr "no es pot llegir «%s» correctament" + +-#: util/i386/pc/grub-setup.c:543 ++#: util/i386/pc/grub-setup.c:511 + msgid "no terminator in the core image" + msgstr "no hi ha terminació a la imatge del nucli" + +-#: util/i386/pc/grub-setup.c:554 ++#: util/i386/pc/grub-setup.c:522 + msgid "failed to read the first sector of the core image" + msgstr "no s'ha pogut llegir el primer sector de la imatge del nucli" + +-#: util/i386/pc/grub-setup.c:560 ++#: util/i386/pc/grub-setup.c:528 + msgid "failed to read the rest sectors of the core image" + msgstr "no s'ha pogut llegir la resta de sectors de la imatge del nucli" + +-#: util/i386/pc/grub-setup.c:579 ++#: util/i386/pc/grub-setup.c:547 + #, c-format + msgid "cannot open `%s'" + msgstr "no es pot obrir %s" + +-#: util/i386/pc/grub-setup.c:621 +-#, fuzzy, c-format ++#: util/i386/pc/grub-setup.c:589 ++#, c-format + msgid "" + "Usage: %s [OPTION]... DEVICE\n" + "\n" + "Set up images to boot from DEVICE.\n" + "DEVICE must be a GRUB device (e.g. `(hd0,1)').\n" + "\n" +-"You should not normally run %s directly. Use grub-install instead.\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" +@@ -1268,19 +1138,16 @@ + "\n" + "Report bugs to <%s>.\n" + msgstr "" +-"Sintaxi: %s [OPCIÓ]... DISPOSITIU\n" ++"Forma d'ús: %s [OPCIÓ]... DISPOSITIU\n" + "\n" + "Configura imatges per arrencar des del DISPOSITIU.\n" +-"DISPOSITIU ha de ser un dispositiu GRUB (p.e. «(hd0,1)»).\n" ++"DISPOSITIU ha de ser un dispositiu del GRUB (p.e. «(hd0,1)»).\n" + "\n" +-" -b, --boot-image=FITXER usa FITXER com a imatge d'arranc [per defecte=%s]\n" +-" -c, --core-image=FITXER usa FITXER com a imatge del nucli [per defecte=" +-"%s]\n" +-" -d, --directory=DIR usa els fitxers del GRUB del directori DIR [def=" +-"%s]\n" ++" -b, --boot-image=FITXER usa FITXER com a imatge d'arrencada [per defecte=%s]\n" ++" -c, --core-image=FITXER usa FITXER com a imatge del nucli [per defecte=%s]\n" ++" -d, --directory=DIR usa els fitxers del GRUB del directori DIR [def=%s]\n" + " -m, --device-map=FITXER usa el FITXER com a mapa del dispositiu [def=%s]\n" +-" -r, --root-device=DISP usa DISP com a dispositiu arrel [per " +-"defecte=dedueix]\n" ++" -r, --root-device=DISP usa DISP com a dispositiu arrel [per defecte=dedueix]\n" + " -f, --force instal·la encara que es detectin problemes\n" + " -s, --skip-fs-probe no comprovis els sistemes de fitxers a DISPOSITIU\n" + " -h, --help mostra aquest missatge i surt\n" +@@ -1289,57 +1156,50 @@ + "\n" + "Informeu dels errors a <%s>.\n" + +-#: util/i386/pc/grub-setup.c:753 ++#: util/i386/pc/grub-setup.c:719 + #, c-format + msgid "No device is specified.\n" + msgstr "No s'ha especificat cap dispositiu.\n" + +-#: util/i386/pc/grub-setup.c:759 ++#: util/i386/pc/grub-setup.c:725 + #, c-format + msgid "Unknown extra argument `%s'.\n" + msgstr "Argument extra desconegut «%s».\n" + +-#: util/i386/pc/grub-setup.c:776 ++#: util/i386/pc/grub-setup.c:742 + #, c-format + msgid "Invalid device `%s'.\n" + msgstr "Dispositiu «%s» invàlid.\n" + +-#: util/i386/pc/grub-setup.c:789 ++#: util/i386/pc/grub-setup.c:755 + #, c-format + msgid "invalid root device `%s'" + msgstr "dispositiu arrel «%s» invàlid" + +-#: util/i386/pc/grub-setup.c:802 ++#: util/i386/pc/grub-setup.c:768 + msgid "cannot guess the root device. Specify the option `--root-device'" +-msgstr "" +-"No es pot deduir el dispositiu arrel. Especifiqueu la opció «--root-device»" +- +-#~ msgid "[class [handler]]" +-#~ msgstr "[classe [gestor]]" +- +-#~ msgid "List or select a handler." +-#~ msgstr "Llista o selecciona un gestor." +- +-#~ msgid "Load XNU ramdisk. It will be seen as md0." +-#~ msgstr "Carrega un disc ram XNU. Es veurà com md0." +- +-#~ msgid "no DOS-style partitions found" +-#~ msgstr "no s'ha trobat cap partició d'estil DOS" +- +-#~ msgid "%s, with kFreeBSD %s" +-#~ msgstr "%s, amb kFreeBSD %s" +- +-#~ msgid "Loading kernel of FreeBSD %s ..." +-#~ msgstr "Es carrega el nucli de FreeBSD %s ..." +- +-#~ msgid "%s, with Linux %s (recovery mode)" +-#~ msgstr "%s, amb Linux %s (mode de restabliment)" +- +-#~ msgid "%s, with Linux %s" +-#~ msgstr "%s, amb Linux %s" +- +-#~ msgid "Loading Linux %s ..." +-#~ msgstr "Carregant Linux %s ..." ++msgstr "No es pot deduir el dispositiu arrel. Especifiqueu l'opció «--root-device»" + +-#~ msgid "Loading initial ramdisk ..." +-#~ msgstr "S'està carregant la ramdisk inicial ..." ++#: util/grub.d/10_kfreebsd.in:40 ++msgid "%s, with kFreeBSD %s" ++msgstr "%s, amb el kFreeBSD %s" ++ ++#: util/grub.d/10_kfreebsd.in:48 ++msgid "Loading kernel of FreeBSD %s ..." ++msgstr "S'està carregant el nucli de FreeBSD %s ..." ++ ++#: util/grub.d/10_linux.in:57 ++msgid "%s, with Linux %s (recovery mode)" ++msgstr "%s, amb el Linux %s (mode de restabliment)" ++ ++#: util/grub.d/10_linux.in:59 ++msgid "%s, with Linux %s" ++msgstr "%s, amb el Linux %s" ++ ++#: util/grub.d/10_linux.in:77 ++msgid "Loading Linux %s ..." ++msgstr "S'està carregant el Linux %s ..." ++ ++#: util/grub.d/10_linux.in:82 ++msgid "Loading initial ramdisk ..." ++msgstr "S'està carregant la ramdisk inicial ..." --- grub2-1.98+20100804.orig/debian/patches/multiboot_unaligned_pointer.patch +++ grub2-1.98+20100804/debian/patches/multiboot_unaligned_pointer.patch @@ -0,0 +1,19 @@ +Description: Initialise next pointer when creating multiboot module +Author: Vladimir Serbinenko +Origin: upstream, http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/2986 +Bug-Debian: http://bugs.debian.org/605567 +Forwarded: yes +Last-Update: 2010-12-21 + +Index: b/loader/i386/multiboot_mbi.c +=================================================================== +--- a/loader/i386/multiboot_mbi.c ++++ b/loader/i386/multiboot_mbi.c +@@ -465,6 +465,7 @@ + return grub_errno; + newmod->start = start; + newmod->size = size; ++ newmod->next = 0; + + for (i = 0; i < argc; i++) + len += grub_strlen (argv[i]) + 1; --- grub2-1.98+20100804.orig/debian/patches/yeeloong_boot_info.patch +++ grub2-1.98+20100804/debian/patches/yeeloong_boot_info.patch @@ -0,0 +1,62 @@ +Description: On Yeeloong, pass machine type information to Linux. +Author: Robert Millan +Forwarded: not-needed, patch from upstream +Last-Update: 2010-11-05 + +--- a/loader/mips/linux.c ++++ b/loader/mips/linux.c +@@ -36,6 +36,14 @@ + #define ELF32_LOADMASK (0x00000000UL) + #define ELF64_LOADMASK (0x0000000000000000ULL) + ++#ifdef GRUB_MACHINE_MIPS_YEELOONG ++/* This can be detected on runtime from PMON, but: ++ a) it wouldn't work when GRUB is the firmware ++ and ++ b) for now we only support Yeeloong anyway. */ ++#define LOONGSON_MACHTYPE "machtype=lemote-yeeloong-2f-8.9inches" ++#endif ++ + static grub_dl_t my_mod; + + static int loaded; +@@ -205,6 +213,9 @@ grub_cmd_linux (grub_command_t cmd __att + + /* For arguments. */ + linux_argc = argc; ++#ifdef LOONGSON_MACHTYPE ++ linux_argc++; ++#endif + /* Main arguments. */ + size = (linux_argc) * sizeof (grub_uint32_t); + /* Initrd address and size. */ +@@ -217,7 +228,10 @@ grub_cmd_linux (grub_command_t cmd __att + /* Normal arguments. */ + for (i = 1; i < argc; i++) + size += ALIGN_UP (grub_strlen (argv[i]) + 1, 4); +- ++#ifdef LOONGSON_MACHTYPE ++ size += ALIGN_UP (sizeof (LOONGSON_MACHTYPE), 4); ++#endif ++ + /* rd arguments. */ + size += ALIGN_UP (sizeof ("rd_start=0xXXXXXXXXXXXXXXXX"), 4); + size += ALIGN_UP (sizeof ("rd_size=0xXXXXXXXXXXXXXXXX"), 4); +@@ -254,6 +268,16 @@ grub_cmd_linux (grub_command_t cmd __att + linux_argv++; + linux_args += ALIGN_UP (sizeof ("a0"), 4); + ++#ifdef LOONGSON_MACHTYPE ++ /* In Loongson platform, it is the responsibility of the bootloader/firmware ++ to supply the OS kernel with machine type information. */ ++ grub_memcpy (linux_args, LOONGSON_MACHTYPE, sizeof (LOONGSON_MACHTYPE)); ++ *linux_argv = (grub_uint8_t *) linux_args - (grub_uint8_t *) playground ++ + target_addr; ++ linux_argv++; ++ linux_args += ALIGN_UP (sizeof (LOONGSON_MACHTYPE), 4); ++#endif ++ + for (i = 1; i < argc; i++) + { + grub_memcpy (linux_args, argv[i], grub_strlen (argv[i]) + 1); + --- grub2-1.98+20100804.orig/debian/patches/mkconfig_skip_dmcrypt.patch +++ grub2-1.98+20100804/debian/patches/mkconfig_skip_dmcrypt.patch @@ -0,0 +1,30 @@ +Description: Warn and return without error if /boot is a dm-crypt device + With any luck the administrator knows what they're doing; in any event, we + probably can't improve matters by having update-grub exit non-zero. +Author: Marc Haber +Author: Colin Watson +Origin: other, http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=542165#25 +Bug-Debian: http://bugs.debian.org/542165 +Forwarded: no +Last-Update: 2010-06-05 + +Index: b/util/grub-mkconfig_lib.in +=================================================================== +--- a/util/grub-mkconfig_lib.in ++++ b/util/grub-mkconfig_lib.in +@@ -99,6 +99,15 @@ + { + device=$1 + ++ if dmsetup status $device 2>/dev/null | grep -q 'crypt[[:space:]]$'; then ++ grub_warn \ ++ "$device is a crypto device, which GRUB cannot read directly. Some" \ ++ "necessary modules may be missing from /boot/grub/grub.cfg. You may" \ ++ "need to write an /etc/grub.d/01_modules script to load them. See" \ ++ "http://bugs.debian.org/542165 for details." ++ return 0 ++ fi ++ + # Abstraction modules aren't auto-loaded. + abstraction="`${grub_probe} --device ${device} --target=abstraction`" + for module in ${abstraction} ; do --- grub2-1.98+20100804.orig/debian/patches/refuse_embedingless_cross_disk.patch +++ grub2-1.98+20100804/debian/patches/refuse_embedingless_cross_disk.patch @@ -0,0 +1,21 @@ +Description: Refuse to do a cross-disk embeddingless install + rather than creating a broken install. +Author: Vladimir 'phcoder' Serbinenko +Forwarded: not needed, patch from upstream Bazaar +Last-Update: 2010-11-13 + +--- a/util/i386/pc/grub-setup.c ++++ b/util/i386/pc/grub-setup.c +@@ -482,6 +482,12 @@ + grub_util_error (_("embedding is not possible, but this is required when " + "the root device is on a RAID array or LVM volume")); + ++#ifdef GRUB_MACHINE_PCBIOS ++ if (dest_dev->disk->id != root_dev->disk->id) ++ grub_util_error (_("embedding is not possible, but this is required for " ++ "cross-disk install")); ++#endif ++ + grub_util_warn (_("Embedding is not possible. GRUB can only be installed in this " + "setup by using blocklists. However, blocklists are UNRELIABLE and " + "their use is discouraged.")); --- grub2-1.98+20100804.orig/debian/patches/kfreebsd_ext2.patch +++ grub2-1.98+20100804/debian/patches/kfreebsd_ext2.patch @@ -0,0 +1,33 @@ +Description: Add support for ext2 root on GNU/kFreeBSD +Author: Aurelien Jarno +Bug-Debian: http://bugs.debian.org/593467 +Forwarded: http://lists.gnu.org/archive/html/grub-devel/2010-08/msg00038.html +Last-Update: 2010-08-19 + +Index: b/util/grub.d/10_kfreebsd.in +=================================================================== +--- a/util/grub.d/10_kfreebsd.in ++++ b/util/grub.d/10_kfreebsd.in +@@ -75,6 +75,14 @@ + fi + + case "${kfreebsd_fs}" in ++ ext2fs) ++ test -e "${module_dir}/ext2fs.ko" ++ ++ printf '%s\n' "${prepare_module_dir_cache}" ++ cat << EOF ++ kfreebsd_module_elf ${module_dir_rel}/ext2fs.ko ++EOF ++ ;; + zfs) + test -e "${module_dir}/opensolaris.ko" + test -e "${module_dir}/zfs.ko" +@@ -121,6 +129,7 @@ + + case ${GRUB_FS} in + ufs1 | ufs2) kfreebsd_fs=ufs ;; ++ ext2) kfreebsd_fs=ext2fs ;; + *) kfreebsd_fs=${GRUB_FS} ;; + esac + --- grub2-1.98+20100804.orig/debian/patches/fix_crash_condition_in_kfreebsd_loader.patch +++ grub2-1.98+20100804/debian/patches/fix_crash_condition_in_kfreebsd_loader.patch @@ -0,0 +1,27 @@ +Description: Fix crash condition in case kfreebsd_* commands are + used after kfreebsd has (gracefully) failed. +Author: Robert Millan +Forwarded: not needed, patch from upstream Bazaar +Last-Update: 2010-11-30 + +--- a/loader/i386/bsd.c 2010-03-26 14:44:13 +0000 ++++ b/loader/i386/bsd.c 2010-11-30 18:35:33 +0000 +@@ -1072,7 +1072,7 @@ grub_cmd_freebsd_loadenv (grub_command_t + char *buf = 0, *curr, *next; + int len; + +- if (kernel_type == KERNEL_TYPE_NONE) ++ if (! grub_loader_is_loaded ()) + return grub_error (GRUB_ERR_BAD_ARGUMENT, + "you need to load the kernel first"); + +@@ -1238,7 +1238,7 @@ grub_cmd_freebsd_module_elf (grub_comman + grub_file_t file = 0; + grub_err_t err; + +- if (kernel_type == KERNEL_TYPE_NONE) ++ if (! grub_loader_is_loaded ()) + return grub_error (GRUB_ERR_BAD_ARGUMENT, + "you need to load the kernel first"); + + --- grub2-1.98+20100804.orig/debian/patches/gettext_quoting.patch +++ grub2-1.98+20100804/debian/patches/gettext_quoting.patch @@ -0,0 +1,135 @@ +Description: Fix gettext quoting to work with bash as /bin/sh +Author: Colin Watson +Origin: backport, http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/2987 +Bug-Debian: http://bugs.debian.org/605615 +Forwarded: yes +Last-Update: 2010-12-21 + +Index: b/util/grub-mkconfig_lib.in +=================================================================== +--- a/util/grub-mkconfig_lib.in ++++ b/util/grub-mkconfig_lib.in +@@ -197,8 +197,20 @@ + echo "$a" + } + ++# One layer of quotation is eaten by "", the second by sed, and the third by ++# printf; so this turns ' into \'. Note that you must use the output of ++# this function in a printf format string. + gettext_quoted () { +- $gettext "$@" | sed "s/'/'\\\\''/g" ++ $gettext "$@" | sed "s/'/'\\\\\\\\''/g" ++} ++ ++# Run the first argument through gettext_quoted, and then pass that and all ++# remaining arguments to printf. This is a useful abbreviation and tends to ++# be easier to type. ++gettext_printf () { ++ local format="$1" ++ shift ++ printf "$(gettext_quoted "$format")" "$@" + } + + uses_abstraction () { +Index: b/util/grub.d/10_hurd.in +=================================================================== +--- a/util/grub.d/10_hurd.in ++++ b/util/grub.d/10_hurd.in +@@ -81,14 +81,16 @@ + menuentry "${OS} ${KERNEL}" ${CLASS} { + EOF + prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/" ++ message="$(gettext_printf "Loading GNU Mach ...")" + cat << EOF +- echo '$(gettext_quoted "Loading GNU Mach ...")' ++ echo '$message' + multiboot ${kernel} root=device:${GRUB_DEVICE#/dev/} + EOF + save_default_entry | sed -e "s/^/\t/" + prepare_grub_to_access_device ${GRUB_DEVICE} | sed -e "s/^/\t/" ++ message="$(gettext_printf "Loading the Hurd ...")" + cat << EOF +- echo '$(gettext_quoted "Loading the Hurd ...")' ++ echo '$message' + module /hurd/${hurd_fs}.static ${hurd_fs} --readonly \\ + --multiboot-command-line='\${kernel-command-line}' \\ + --host-priv-port='\${host-port}' \\ +@@ -103,14 +105,16 @@ + menuentry "${OS} ${KERNEL} (recovery mode)" ${CLASS} { + EOF + prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/" ++ message="$(gettext_printf "Loading GNU Mach ...")" + cat << EOF +- echo '$(gettext_quoted "Loading GNU Mach ...")' ++ echo '$message' + multiboot ${kernel} root=device:${GRUB_DEVICE#/dev/} -s + EOF + save_default_entry | sed -e "s/^/\t/" + prepare_grub_to_access_device ${GRUB_DEVICE} | sed -e "s/^/\t/" ++ message="$(gettext_printf "Loading the Hurd ...")" + cat << EOF +- echo '$(gettext_quoted "Loading the Hurd ...")' ++ echo '$message' + module /hurd/${hurd_fs}.static ${hurd_fs} \\ + --multiboot-command-line='\${kernel-command-line}' \\ + --host-priv-port='\${host-port}' \\ +Index: b/util/grub.d/10_kfreebsd.in +=================================================================== +--- a/util/grub.d/10_kfreebsd.in ++++ b/util/grub.d/10_kfreebsd.in +@@ -56,8 +56,9 @@ + fi + + printf '%s\n' "${prepare_boot_cache}" ++ message="$(gettext_printf "Loading kernel of FreeBSD %s ..." ${version})" + cat << EOF +- echo '$(printf "$(gettext_quoted "Loading kernel of FreeBSD %s ...")" ${version})' ++ echo '$message' + kfreebsd ${rel_dirname}/${basename} + EOF + +Index: b/util/grub.d/10_linux.in +=================================================================== +--- a/util/grub.d/10_linux.in ++++ b/util/grub.d/10_linux.in +@@ -77,13 +77,15 @@ + prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/")" + fi + printf '%s\n' "${prepare_boot_cache}" ++ message="$(gettext_printf "Loading Linux %s ..." ${version})" + cat << EOF +- echo '$(printf "$(gettext_quoted "Loading Linux %s ...")" ${version})' ++ echo '$message' + linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} + EOF + if test -n "${initrd}" ; then ++ message="$(gettext_printf "Loading initial ramdisk ...")" + cat << EOF +- echo '$(gettext_quoted "Loading initial ramdisk ...")' ++ echo '$message' + initrd ${rel_dirname}/${initrd} + EOF + fi +Index: b/util/grub.d/20_linux_xen.in +=================================================================== +--- a/util/grub.d/20_linux_xen.in ++++ b/util/grub.d/20_linux_xen.in +@@ -71,14 +71,16 @@ + prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/")" + fi + printf '%s\n' "${prepare_boot_cache}" ++ message="$(gettext_printf "Loading Linux %s ..." ${version})" + cat << EOF +- echo '$(printf "$(gettext_quoted "Loading Linux %s ...")" ${version})' ++ echo '$message' + multiboot ${rel_xen_dirname}/${xen_basename} placeholder ${xen_args} + module ${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args} + EOF + if test -n "${initrd}" ; then ++ message="$(gettext_printf "Loading initial ramdisk ...")" + cat << EOF +- echo '$(gettext_quoted "Loading initial ramdisk ...")' ++ echo '$message' + module ${rel_dirname}/${initrd} + EOF + fi --- grub2-1.98+20100804.orig/debian/patches/fix_usb_boot.patch +++ grub2-1.98+20100804/debian/patches/fix_usb_boot.patch @@ -0,0 +1,17 @@ +Description: Fix boot on USB devices, for BIOSes that expose them as floppies. +Author: Robert Millan +Forwarded: not-needed, this is a safer / less intrusive version of upstream + commit (upstream change also affects CD-ROM boot). +Last-Update: 2010-10-21 + +--- a/disk/i386/pc/biosdisk.c ++++ b/disk/i386/pc/biosdisk.c +@@ -107,7 +107,7 @@ + if (drive < 0) + return grub_errno; + +- disk->has_partitions = ((drive & 0x80) && (drive != cd_drive)); ++ disk->has_partitions = cd_drive ? (drive != cd_drive) : 1; + disk->id = drive; + + data = (struct grub_biosdisk_data *) grub_zalloc (sizeof (*data)); --- grub2-1.98+20100804.orig/debian/patches/grub_legacy_0_based_partitions.patch +++ grub2-1.98+20100804/debian/patches/grub_legacy_0_based_partitions.patch @@ -0,0 +1,43 @@ +Index: b/kern/emu/hostdisk.c +=================================================================== +--- a/kern/emu/hostdisk.c ++++ b/kern/emu/hostdisk.c +@@ -1005,7 +1005,7 @@ + char *bsd_part_str = NULL; + + if (dos_part >= 0) +- dos_part_str = xasprintf (",%d", dos_part + 1); ++ dos_part_str = xasprintf (",%d", dos_part + (getenv ("GRUB_LEGACY_0_BASED_PARTITIONS") ? 0 : 1)); + + if (bsd_part >= 0) + bsd_part_str = xasprintf (",%d", bsd_part + 1); +@@ -1422,6 +1422,29 @@ + + if (start == part_start) + { ++ if (getenv ("GRUB_LEGACY_0_BASED_PARTITIONS")) ++ { ++ int dos_part, bsd_part; ++ char *fullname, *comma; ++ ++ if (partition->parent) ++ { ++ dos_part = partition->parent->number; ++ bsd_part = partition->number; ++ } ++ else ++ { ++ dos_part = partition->number; ++ bsd_part = -1; ++ } ++ ++ fullname = make_device_name (drive, dos_part, bsd_part); ++ comma = strchr (fullname, ','); ++ partname = comma ? xstrdup (comma + 1) : NULL; ++ free (fullname); ++ return 1; ++ } ++ + partname = grub_partition_get_name (partition); + return 1; + } --- grub2-1.98+20100804.orig/debian/patches/fix_grub_install_error_msg.patch +++ grub2-1.98+20100804/debian/patches/fix_grub_install_error_msg.patch @@ -0,0 +1,20 @@ +Description: Replace useless recomendation to pass --modules + with a recomendation to report a bug. +Author: Vladimir 'phcoder' Serbinenko +Forwarded: not needed, patch from upstream Bazaar +Last-Update: 2010-11-13 + +--- a/util/grub-install.in ++++ b/util/grub-install.in +@@ -466,9 +466,9 @@ + + # Create the core image. First, auto-detect the filesystem module. + fs_module=`$grub_probe --target=fs --device ${grub_device}` +-if test "x$fs_module" = x -a "x$modules" = x; then +- echo "Auto-detection of a filesystem module failed." 1>&2 +- echo "Please specify the module with the option \`--modules' explicitly." 1>&2 ++if test "x$fs_module" = x ; then ++ echo "Auto-detection of a filesystem of ${grub_device} failed." 1>&2 ++ echo "Please report this together with the output of \"$grub_probe --target=fs -v ${grubdir}\" to " 1>&2 + exit 1 + fi --- grub2-1.98+20100804.orig/debian/patches/zfs_fix_label_arg.patch +++ grub2-1.98+20100804/debian/patches/zfs_fix_label_arg.patch @@ -0,0 +1,17 @@ +Description: Fix kfreebsd_device initialization on ZFS +Author: Robert Millan +Forwarded: not needed, patch from upstream Bazaar +Last-Update: 2010-09-10 + +--- a/util/grub.d/10_kfreebsd.in 2010-08-01 21:21:09 +0000 ++++ b/util/grub.d/10_kfreebsd.in 2010-08-16 13:07:46 +0000 +@@ -125,7 +125,7 @@ while [ "x$list" != "x" ] ; do + esac + + case ${GRUB_FS} in +- zfs) kfreebsd_device=$(grub-probe -t label --device ${GRUB_DEVICE}) ;; ++ zfs) kfreebsd_device=$(grub-probe -t fs_label --device ${GRUB_DEVICE})$(grub-mkrelpath / | sed -e "s,/*@$,,") ;; + *) kfreebsd_device=${GRUB_DEVICE} ;; + esac + + --- grub2-1.98+20100804.orig/debian/patches/zfs_fix_mkrelpath.patch +++ grub2-1.98+20100804/debian/patches/zfs_fix_mkrelpath.patch @@ -0,0 +1,19 @@ +Description: Fix grub-mkrelpath for non-root ZFS +Author: Vladimir 'phcoder' Serbinenko +Forwarded: not needed, patch from upstream Bazaar (r2905) +Last-Update: 2010-10-24 + +--- a/kern/emu/misc.c 2010-10-23 18:34:50 +0000 ++++ b/kern/emu/misc.c 2010-10-23 18:39:08 +0000 +@@ -416,6 +416,10 @@ grub_make_system_path_relative_to_its_ro + { + free (buf); + free (buf2); ++#if defined(HAVE_LIBZFS) && defined(HAVE_LIBNVPAIR) ++ if (poolfs) ++ return xasprintf ("/%s/@", poolfs); ++#endif + return xstrdup (""); + } + else + --- grub2-1.98+20100804.orig/debian/patches/install_stage2_confusion.patch +++ grub2-1.98+20100804/debian/patches/install_stage2_confusion.patch @@ -0,0 +1,23 @@ +Description: If GRUB Legacy is still around, tell packaging to ignore it +Author: Colin Watson +Bug-Debian: http://bugs.debian.org/586143 +Forwarded: not-needed +Last-Update: 2010-06-18 + +Index: b/util/grub-install.in +=================================================================== +--- a/util/grub-install.in ++++ b/util/grub-install.in +@@ -420,6 +420,12 @@ + $grub_mkimage -O ${mkimage_target} ${config_opt} -d ${pkglibdir} --output=/boot/multiboot.img --prefix=${prefix_drive}${relative_grubdir} $modules || exit 1 + fi + ++# If vestiges of GRUB Legacy still exist, tell the Debian packaging that ++# they can ignore them. ++if test -e /boot/grub/stage2 && test -e /boot/grub/menu.lst; then ++ touch /boot/grub/grub2-installed ++fi ++ + echo "Installation finished. No error reported." + + # Bye. --- grub2-1.98+20100804.orig/debian/patches/gfxpayload_keep_default.patch +++ grub2-1.98+20100804/debian/patches/gfxpayload_keep_default.patch @@ -0,0 +1,38 @@ +Description: Disable gfxpayload=keep by default + Setting gfxpayload=keep has been known to cause efifb to be inappropriately + enabled. In any case, with the current Linux kernel the result of this + option is that early kernelspace will be unable to print anything to the + console, so (for example) if boot fails and you end up dumped to an + initramfs prompt, you won't be able to see anything on the screen. As such + it shouldn't be enabled by default in Debian, no matter what kernel options + are enabled. + . + gfxpayload=keep is a good idea but rather ahead of its time ... +Author: Colin Watson +Bug-Debian: http://bugs.debian.org/567245 +Forwarded: no +Last-Update: 2010-03-09 + +Index: b/util/grub.d/10_linux.in +=================================================================== +--- a/util/grub.d/10_linux.in ++++ b/util/grub.d/10_linux.in +@@ -67,17 +67,7 @@ + + # Use ELILO's generic "efifb" when it's known to be available. + # FIXME: We need an interface to select vesafb in case efifb can't be used. +- if [ "x$GRUB_GFXPAYLOAD_LINUX" = x ]; then +- cat << EOF +- load_video +-EOF +- if grep -qx "CONFIG_FB_EFI=y" /boot/config-${version} 2> /dev/null \ +- && grep -qx "CONFIG_VT_HW_CONSOLE_BINDING=y" /boot/config-${version} 2> /dev/null; then +- cat << EOF +- set gfxpayload=keep +-EOF +- fi +- else ++ if [ "x$GRUB_GFXPAYLOAD_LINUX" != x ]; then + cat << EOF + set gfxpayload=$GRUB_GFXPAYLOAD_LINUX + EOF --- grub2-1.98+20100804.orig/debian/patches/echo_utf-8_clean.patch +++ grub2-1.98+20100804/debian/patches/echo_utf-8_clean.patch @@ -0,0 +1,85 @@ +Description: Make echo UTF-8-clean +Author: Colin Watson +Origin: upstream, http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/2989 +Bug-Debian: http://bugs.debian.org/605615 +Forwarded: yes +Last-Update: 2010-12-21 + +Index: b/commands/echo.c +=================================================================== +--- a/commands/echo.c ++++ b/commands/echo.c +@@ -44,8 +44,14 @@ + for (i = 0; i < argc; i++) + { + char *arg = *args; ++ /* Unescaping results in a string no longer than the original. */ ++ char *unescaped = grub_malloc (grub_strlen (arg) + 1); ++ char *p = unescaped; + args++; + ++ if (!unescaped) ++ return grub_errno; ++ + while (*arg) + { + /* In case `-e' is used, parse backslashes. */ +@@ -58,11 +64,11 @@ + switch (*arg) + { + case '\\': +- grub_printf ("\\"); ++ *p++ = '\\'; + break; + + case 'a': +- grub_printf ("\a"); ++ *p++ = '\a'; + break; + + case 'c': +@@ -70,23 +76,23 @@ + break; + + case 'f': +- grub_printf ("\f"); ++ *p++ = '\f'; + break; + + case 'n': +- grub_printf ("\n"); ++ *p++ = '\n'; + break; + + case 'r': +- grub_printf ("\r"); ++ *p++ = '\r'; + break; + + case 't': +- grub_printf ("\t"); ++ *p++ = '\t'; + break; + + case 'v': +- grub_printf ("\v"); ++ *p++ = '\v'; + break; + } + arg++; +@@ -95,10 +101,14 @@ + + /* This was not an escaped character, or escaping is not + enabled. */ +- grub_printf ("%c", *arg); ++ *p++ = *arg; + arg++; + } + ++ *p = '\0'; ++ grub_xputs (unescaped); ++ grub_free (unescaped); ++ + /* If another argument follows, insert a space. */ + if (i != argc - 1) + grub_printf (" " ); --- grub2-1.98+20100804.orig/debian/patches/ext2_big_files.patch +++ grub2-1.98+20100804/debian/patches/ext2_big_files.patch @@ -0,0 +1,86 @@ +Description: Support big ext2 files +Author: Vladimir Serbinenko +Origin: upstream, http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/2936 +Bug-Debian: http://bugs.debian.org/543924 +Forwarded: yes +Last-Update: 2010-12-21 + +Index: b/fs/ext2.c +=================================================================== +--- a/fs/ext2.c ++++ b/fs/ext2.c +@@ -229,7 +229,7 @@ + }; + grub_uint32_t version; + grub_uint32_t acl; +- grub_uint32_t dir_acl; ++ grub_uint32_t size_high; + grub_uint32_t fragment_addr; + grub_uint32_t osd2[3]; + }; +@@ -470,10 +470,41 @@ + blknr = grub_le_to_cpu32 (indir[rblock % perblock]); + } + /* triple indirect. */ ++ else if (fileblock < INDIRECT_BLOCKS + blksz / 4 * (blksz / 4 + 1) ++ + (blksz / 4) * (blksz / 4) * (blksz / 4 + 1)) ++ { ++ unsigned int perblock = blksz / 4; ++ unsigned int rblock = fileblock - (INDIRECT_BLOCKS + blksz / 4 ++ * (blksz / 4 + 1)); ++ grub_uint32_t indir[blksz / 4]; ++ ++ if (grub_disk_read (data->disk, ++ ((grub_disk_addr_t) ++ grub_le_to_cpu32 (inode->blocks.triple_indir_block)) ++ << log2_blksz, ++ 0, blksz, indir)) ++ return grub_errno; ++ ++ if (grub_disk_read (data->disk, ++ ((grub_disk_addr_t) ++ grub_le_to_cpu32 (indir[(rblock / perblock) / perblock])) ++ << log2_blksz, ++ 0, blksz, indir)) ++ return grub_errno; ++ ++ if (grub_disk_read (data->disk, ++ ((grub_disk_addr_t) ++ grub_le_to_cpu32 (indir[(rblock / perblock) % perblock])) ++ << log2_blksz, ++ 0, blksz, indir)) ++ return grub_errno; ++ ++ blknr = grub_le_to_cpu32 (indir[rblock % perblock]); ++ } + else + { + grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, +- "ext2fs doesn't support triple indirect blocks"); ++ "ext2fs doesn't support quadruple indirect blocks"); + } + + return blknr; +@@ -485,11 +516,12 @@ + grub_ext2_read_file (grub_fshelp_node_t node, + void NESTED_FUNC_ATTR (*read_hook) (grub_disk_addr_t sector, + unsigned offset, unsigned length), +- int pos, grub_size_t len, char *buf) ++ grub_off_t pos, grub_size_t len, char *buf) + { + return grub_fshelp_read_file (node->data->disk, node, read_hook, + pos, len, buf, grub_ext2_read_block, +- node->inode.size, ++ grub_cpu_to_le32 (node->inode.size) ++ | (((grub_off_t) grub_cpu_to_le32 (node->inode.size_high)) << 32), + LOG2_EXT2_BLOCK_SIZE (node->data)); + + } +@@ -751,6 +783,7 @@ + grub_free (fdiro); + + file->size = grub_le_to_cpu32 (data->inode->size); ++ file->size |= ((grub_off_t) grub_le_to_cpu32 (data->inode->size_high)) << 32; + file->data = data; + file->offset = 0; + --- grub2-1.98+20100804.orig/debian/patches/increase_disk_limit.patch +++ grub2-1.98+20100804/debian/patches/increase_disk_limit.patch @@ -0,0 +1,25 @@ +Description: Increase SCSI limit to 48 and IDE limit to 96 (to cope with Sun Fire X4500) +Author: Robert Millan +Forwarded: not-needed, patch from upstream +Last-Update: 2010-11-04 + +--- a/util/deviceiter.c ++++ b/util/deviceiter.c +@@ -601,7 +601,7 @@ grub_util_iterate_devices (int NESTED_FU + #endif /* __linux__ */ + + /* IDE disks. */ +- for (i = 0; i < 26; i++) ++ for (i = 0; i < 96; i++) + { + char name[16]; + +@@ -655,7 +655,7 @@ grub_util_iterate_devices (int NESTED_FU + #endif /* __linux__ */ + + /* The rest is SCSI disks. */ +- for (i = 0; i < 26; i++) ++ for (i = 0; i < 48; i++) + { + char name[16]; + --- grub2-1.98+20100804.orig/debian/patches/core_in_fs.patch +++ grub2-1.98+20100804/debian/patches/core_in_fs.patch @@ -0,0 +1,31 @@ +Index: b/util/i386/pc/grub-setup.c +=================================================================== +--- a/util/i386/pc/grub-setup.c ++++ b/util/i386/pc/grub-setup.c +@@ -56,6 +56,7 @@ + + #define DEFAULT_BOOT_FILE "boot.img" + #define DEFAULT_CORE_FILE "core.img" ++#define CORE_IMG_IN_FS "setup_left_core_image_in_filesystem" + + #define grub_target_to_host16(x) grub_le_to_cpu16(x) + #define grub_target_to_host32(x) grub_le_to_cpu32(x) +@@ -441,6 +442,8 @@ + boot_img)) + grub_util_error ("%s", grub_errmsg); + ++ unlink (DEFAULT_DIRECTORY "/" CORE_IMG_IN_FS); ++ + goto finish; + + unable_to_embed: +@@ -455,6 +458,9 @@ + if (! force) + grub_util_error (_("if you really want blocklists, use --force")); + ++ fp = fopen (DEFAULT_DIRECTORY "/" CORE_IMG_IN_FS, "w"); ++ fclose (fp); ++ + /* Make sure that GRUB reads the identical image as the OS. */ + tmp_img = xmalloc (core_size); + core_path_dev_full = grub_util_get_path (dir, core_file); --- grub2-1.98+20100804.orig/debian/patches/dmraid_pool_leak.patch +++ grub2-1.98+20100804/debian/patches/dmraid_pool_leak.patch @@ -0,0 +1,99 @@ +Description: Fix devmapper memory pool leak with DM-RAID +Author: Modestas Vainius +Author: Colin Watson +Origin: upstream, http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/2781 +Forwarded: yes +Last-Update: 2010-09-17 + +Index: b/kern/emu/hostdisk.c +=================================================================== +--- a/kern/emu/hostdisk.c ++++ b/kern/emu/hostdisk.c +@@ -1164,19 +1164,17 @@ + /dev/mapper/ are often symlinks. */ + if ((strncmp ("/dev/mapper/", os_dev, 12) == 0)) + { +- static struct dm_tree *tree = NULL; ++ struct dm_tree *tree; + uint32_t maj, min; +- struct dm_tree_node *node, *child; ++ struct dm_tree_node *node = NULL, *child; + void *handle; +- const char *node_uuid, *mapper_name, *child_uuid, *child_name; +- +- if (! tree) +- tree = dm_tree_create (); ++ const char *node_uuid, *mapper_name = NULL, *child_uuid, *child_name; + ++ tree = dm_tree_create (); + if (! tree) + { + grub_dprintf ("hostdisk", "dm_tree_create failed\n"); +- return NULL; ++ goto devmapper_out; + } + + maj = major (st->st_rdev); +@@ -1184,29 +1182,30 @@ + if (! dm_tree_add_dev (tree, maj, min)) + { + grub_dprintf ("hostdisk", "dm_tree_add_dev failed\n"); +- return NULL; ++ goto devmapper_out; + } + + node = dm_tree_find_node (tree, maj, min); + if (! node) + { + grub_dprintf ("hostdisk", "dm_tree_find_node failed\n"); +- return NULL; ++ goto devmapper_out; + } + node_uuid = dm_tree_node_get_uuid (node); + if (! node_uuid) + { + grub_dprintf ("hostdisk", "%s has no DM uuid\n", path); +- return NULL; ++ node = NULL; ++ goto devmapper_out; + } + else if (strncmp (node_uuid, "DMRAID-", 7) != 0) + { + grub_dprintf ("hostdisk", "%s is not DM-RAID\n", path); +- return NULL; ++ node = NULL; ++ goto devmapper_out; + } + + handle = NULL; +- mapper_name = NULL; + /* Counter-intuitively, device-mapper refers to the disk-like + device containing a DM-RAID partition device as a "child" of + the partition device. */ +@@ -1236,17 +1235,20 @@ + mapper_name = child_name; + + devmapper_out: +- if (! mapper_name) ++ if (! mapper_name && node) + { + /* This is a DM-RAID disk, not a partition. */ + mapper_name = dm_tree_node_get_name (node); + if (! mapper_name) +- { +- grub_dprintf ("hostdisk", "%s has no DM name\n", path); +- return NULL; +- } ++ grub_dprintf ("hostdisk", "%s has no DM name\n", path); + } +- return xasprintf ("/dev/mapper/%s", mapper_name); ++ if (tree) ++ dm_tree_free (tree); ++ free (path); ++ if (mapper_name) ++ return xasprintf ("/dev/mapper/%s", mapper_name); ++ else ++ return NULL; + } + #endif /* HAVE_DEVICE_MAPPER */ + } --- grub2-1.98+20100804.orig/debian/patches/dmraid_mapper_paths.patch +++ grub2-1.98+20100804/debian/patches/dmraid_mapper_paths.patch @@ -0,0 +1,46 @@ +Description: Fix DM-RAID probing with recent device-mapper udev rules +Author: Colin Watson +Origin: upstream, http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/2780 +Forwarded: yes +Last-Update: 2010-09-17 + +Index: b/kern/emu/hostdisk.c +=================================================================== +--- a/kern/emu/hostdisk.c ++++ b/kern/emu/hostdisk.c +@@ -968,13 +968,16 @@ + #ifdef __linux__ + /* On Linux, the devfs uses symbolic links horribly, and that + confuses the interface very much, so use realpath to expand +- symbolic links. */ +- map[drive].device = xmalloc (PATH_MAX); +- if (! realpath (p, map[drive].device)) +- grub_util_error ("cannot get the real path of `%s'", p); +-#else +- map[drive].device = xstrdup (p); ++ symbolic links. Leave /dev/mapper/ alone, though. */ ++ if (strncmp (p, "/dev/mapper/", 12) != 0) ++ { ++ map[drive].device = xmalloc (PATH_MAX); ++ if (! realpath (p, map[drive].device)) ++ grub_util_error ("cannot get the real path of `%s'", p); ++ } ++ else + #endif ++ map[drive].device = xstrdup (p); + } + + fclose (fp); +@@ -1156,8 +1159,10 @@ + } + + #ifdef HAVE_DEVICE_MAPPER +- /* If this is a DM-RAID device. */ +- if ((strncmp ("mapper/", p, 7) == 0)) ++ /* If this is a DM-RAID device. ++ Compare os_dev rather than path here, since nodes under ++ /dev/mapper/ are often symlinks. */ ++ if ((strncmp ("/dev/mapper/", os_dev, 12) == 0)) + { + static struct dm_tree *tree = NULL; + uint32_t maj, min; --- grub2-1.98+20100804.orig/debian/patches/series +++ grub2-1.98+20100804/debian/patches/series @@ -0,0 +1,37 @@ +ca_l10n.patch +olpc_prefix_hack.patch +core_in_fs.patch +dpkg_version_comparison.patch +boot_blocklist_hack.patch +grub_legacy_0_based_partitions.patch +disable_floppies.patch +grub.cfg_400.patch +gfxpayload_keep_default.patch +mkrescue_diet.patch +mkconfig_skip_dmcrypt.patch +install_stage2_confusion.patch +enable_zfs.patch +zfs_fix_chroot.patch +zfs_fix_segfault.patch +zfs_fix_pathname.patch +zfs_fix_label_arg.patch +zfs_v23.patch +kfreebsd_ext2.patch +dmraid_mapper_paths.patch +dmraid_pool_leak.patch +fix_usb_boot.patch +zfs_fix_mkrelpath.patch +increase_disk_limit.patch +linux_mdraid_1x.patch +yeeloong_boot_info.patch +refuse_embedingless_cross_disk.patch +fix_grub_install_error_msg.patch +message_refresh.patch +fix_crash_condition_in_kfreebsd_loader.patch +ddf1_fakeraid.patch +ext2_big_files.patch +gettext_quoting.patch +echo_utf-8_clean.patch +multiboot_unaligned_pointer.patch +pci_probe.patch +raid_spurious_members.patch --- grub2-1.98+20100804.orig/debian/po/gl.po +++ grub2-1.98+20100804/debian/po/gl.po @@ -0,0 +1,438 @@ +# translation of grub2_1.98+20100804-2_gl.po to Galician +# Galician translation of grub2's debconf templates +# This file is distributed under the same license as the grub2 package. +# +# Jacobo Tarrio , 2007, 2008. +# Jorge Barreiro , 2010. +msgid "" +msgstr "" +"Project-Id-Version: grub2_1.98+20100804-2_gl\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 18:02-0400\n" +"PO-Revision-Date: 2010-08-13 02:53+0200\n" +"Last-Translator: Jorge Barreiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "¿Cargar en cadea desde menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Os scripts de actualización de GRUB detectaron unha configuración do GRUB " +"antigo en /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Para substituír a versión antiga de GRUB do sistema, recoméndase axustar /" +"boot/grub/menu.lst para cargar GRUB 2 en cadea desde a configuración " +"existente do GRUB antigo. Pódese realizar este paso automaticamente agora." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Recoméndase que acepte cargar en cadea GRUB 2 desde menu.lst, e que " +"verifique que a nova configuración de GRUB 2 funciona para vostede, antes de " +"instalalo directamente no MBR (rexistro mestre de inicio)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "Non se puido instalar GRUB nos seguintes dispositivos:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Non se puido instalar GRUB nos seguintes dispositivos:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Quere continuar de todas maneiras? Se o fai, pode que a súa computadora non " +"poida iniciar correctamente." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "A instalación de GRUB fallou. Quere tentalo de novo?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Ó mellor pode instalar GRUB en outro dispositivo, pero debería comprobar que " +"o seu sistema pode iniciar desde él. Se non, a instalación desde GRUB Legacy " +"cancelarase." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Continuar sen instalar GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is an " +#| "earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Escolleu non instalar GRUB en ningún dispositivo. De continuar, o cargador " +"de arranque pode non quedar adecuadamente configurado, e a próxima vez que " +"arranque o sistema usarase o que houbese antes no sector de arranque. Se nel " +"hai unha versión antiga de GRUB 2 pode que esta sexa incapaz de cargar os " +"módulos ou de manexar o ficheiro de configuración actual." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Se xa está usando un cargador de arranque diferente e quere seguir usandoo, " +"ou se este é un ambiente especial onde non necesita un cargador de arranque, " +"debería continuar. En caso contrario debería instalar GRUB en algún lugar." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Rematar a conversión a GRUB 2 agora?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Este sistema aínda ten instalados ficheiros do cargador de arranque GRUB " +"Legacy, pero agora tamén ten rexistros de arranque de GRUB 2 nestes discos:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Asemella que GRUB Legacy xa non se usa, e que debería actualizar as imaxes " +"de GRUB 2 nestes discos e rematar a conversión a GRUB2 eliminando os " +"ficheiros vellos de GRUB Legacy. Se non actualiza estas imaxes de GRUB 2, " +"poderían ser incompatibles cos novos paquetes e provocar que sistema non " +"arranque correctamente." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"En xeral, debería rematar a conversión a GRUB 2 a menos que estos rexistros " +"de inicio fosen creatos por unha instalación de GRUB 2 en outro sistema " +"operativo." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Liña de comando de Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"A seguinte liña de comando de Linux sacouse de /etc/default/grub ou do " +"parámetro \"kopt\" no ficheiro menu.lst de GRUB Legacy. Verifique que sexa " +"correcta e modifíquea de ser preciso." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Liña de comando por defecto para Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"A seguinte liña será usada como parámetros para Linux na entrada por defecto " +"do menú, pero non no modo de recuperación." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Liña de comando de kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"A seguinte liña de comando de kFreeBSD sacouse de /etc/default/grub, ou do " +"parámetro \"kopt\" no ficheiro menu.lst de GRUB Legacy. Verifique que sexa " +"correcta e modifíquea de ser preciso." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Liña de comando por defecto para kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"A seguinte cadea usarase como parámetros para kFreeBSD para a entrada por " +"defecto do menú, pero non para o modo de recuperación." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map foi rexenerado." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"O ficheiro /boot/grub/device.map foi reescrito para usar nomes de " +"dispostivos estables. Na maioría dos casos esto debería reducir " +"significativamente a necesidade de cambialos en un futuro, e as entradas no " +"menú de GRUB non se verían afectadas." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Porén, como ten máis de un disco no seu sistema, pode que dependa do vello " +"«device map». Comprobe se ten algunha entrada personalizada no menú de " +"arranque que use a numeración de GRUB (hdN) e actualícea de ser necesario." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Se non comprende esta mensaxe, ou se non ten ningunha entrada personalizada " +"no menú de arranque, pode ignorala." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "En calquera caso, cando queira cargar GRUB 2 directamente desde o MBR, " +#~ "pode facelo executando (coma administrador) a seguinte orde:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "A instalación de GRUB fallou. Quere continuar?" --- grub2-1.98+20100804.orig/debian/po/nb.po +++ grub2-1.98+20100804/debian/po/nb.po @@ -0,0 +1,442 @@ +# Norwegian Bokmål translation for grub2. +# Copyright (C) 2010 grub2 +# This file is distributed under the same license as the grub2 package. +# Hans Nordhaug , 2010. +# +# Currently "Chainload" is kept untranslated (as in the Danish translation). +# If a good Norwegian word for "Chainload" is discovered, please update the +# translation. +msgid "" +msgstr "" +"Project-Id-Version: grub2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 18:02-0400\n" +"PO-Revision-Date: 2010-08-04 00:39+0200\n" +"Last-Translator: Hans Nordhaug \n" +"Language-Team: Norwegian Bokmål \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Chainload fra menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Oppgraderingsskriptene til GRUB har funnet et GRUB Legacy-oppsett i /boot/" +"grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"For å erstatte Legacy versjonen av GRUB på ditt system anbefales det at /" +"boot/grub/menu.lst justeres til å chainloade GRUB 2 fra ditt eksisterende " +"GRUB Legacy-oppsett. Dette steget kan utføres automatisk nå." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Det anbefales at du aksepter å chainloade GRUB 2 fra menu.lst og verifiserer " +"at ditt nye GRUB 2-oppsett virker for deg, før du installerer den direkte på " +"din MBR (Master Boot Record)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "Klarte ikke installere GRUB på følgende enheter:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Klarte ikke installere GRUB på følgende enheter:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Ønsker du å fortsette likevel? Hvis du fortsetter, vil kanskje ikke din " +"datamaskin starte opp skikkelig." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Klarte ikke installere GRUB. prøv igjen?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Du kan klare å installere GRUB på en annen enhet, selvom du bør sjekke at " +"systemet ditt kan/vil starte opp fra den enheten. Ellers vil oppgraderingen " +"fra GRUB Legacy bli avbrutt." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Fortsett uten å installere GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is an " +#| "earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Du har valgt å ikke installere GRUB på noen enhet. Hvis du fortsetter, vil " +"oppstartslasteren kanskje ikke være skikkelig satt opp, og når din " +"datamaskin starter opp neste gang vil den bruke det tidligere innholdet i " +"din oppstartssektor. Hvis det er en tidligere versjon av GRUB 2 i " +"oppstartsektoren, vil den kanskje ikke være i stand til å laste inn moduler " +"eller håndtere den aktuelle konfigurasjonsfilen." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Hvis du allerede kjører en annen oppstartslaster og ønsker å fortsætte med " +"det, eller hvis dette er et spesielt miljø hvor du ikke har bruk for en " +"oppstartslaster, så skal du fortsette likevel. Ellers, bør du installere " +"GRUB et eller annet sted." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Avslutt konvertering til GRUB 2 nå?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Dette systemet har fremdeles installert filer fra GRUB Legacy-" +"oppstartslasteren, men systemet har nå også GRUB 2 oppstartsposter " +"installert på disse diskene:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Det virker sannsynlig at GRUB Legacy ikke lenger er i bruk, og at du i " +"steden for skal oppgradere GRUB 2-bildene på disse diskene og avslutte " +"konverteringen til GRUB 2 ved å fjerne eldre GRUB Legacy-filer. Hvis du ikke " +"oppgraderer disse GRUB 2-bildene, så er de kanskje ikke kompatible med de " +"nye pakkene og kan få ditt system til å stoppe å starte opp skikkelig." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Du bør generelt avslutte konverteringen til GRUB 2 med mindre disse " +"oppstartspostene ble opprettet av en GRUB 2-installasjon på et annet " +"operativsystem." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Kommandolinje i Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Den følgende Linux-kommandolinjen ble trukket ut fra /etc/default/grub eller " +"parameteren `kopt' i GRUB Legacys menu.lst. Verifiser at den er korrekt og " +"endre den om nødvendig." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Standardkommandolinje i Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Den følgende teksten vil bli brukt som Linux-parametre for " +"standardmenupunktet, men ikke for gjenopprettelsesmodus." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Kommandolinje i kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Den følgende kFreeBSD-kommandolinjen ble trukket ut fra /etc/default/grub " +"eller fra parameteren `kopt' i GRUB Legacys menu.lst. Verifiser at den er " +"korrekt, og endre den om nødvendig." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Standardkommandolinje i kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Den følgende teksten vil bli brukt som kFreeBSD-parametre for " +"standardmenupunktet men ikke for gjenopprettelsesmodus." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map er regenerert" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Filen /boot/grub/device.map er oppdatert til å bruke stabile enhetsnavn. I " +"de fleste tilfeller vil dette markant redusere behovet for å endre filen " +"fremover, og oppstartsmenupunkter opprettet av GRUB skal ikke bli påvirket." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Da du har mer enn en disk i ditt sytem, er det mulig at du er avhengig av " +"det gamle enhetskartet. Sjekk om du har noen tilpassede oppstartsmenupunkter " +"som er avhengig av GRUB's (hdn) disknummerering, og oppdater dem om " +"nødvendig." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Hvis du ikke forstår denne beskjeden, eller du ikke har noen tilpassede " +"oppstartsmenupunkter, kan du ignorere denne beskjeden." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Uansett hva, når du ønsker at GRUB 2 skal lastes inn direkte fra MBR, kan " +#~ "du gjøre ved å utføre følgende kommando (som root):" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Klarte ikke installere GRUB. Fortsett?" --- grub2-1.98+20100804.orig/debian/po/pt_BR.po +++ grub2-1.98+20100804/debian/po/pt_BR.po @@ -0,0 +1,485 @@ +# grub2 Brazilian Portuguese translation +# Copyright (C) 2009 THE grub2'S COPYRIGHT HOLDER +# This file is distributed under the same license as the grub2 package. +# Flamarion Jorge , 2009, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2 1.98\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 18:02-0400\n" +"PO-Revision-Date: 2010-07-16 18:23-0300\n" +"Last-Translator: Flamarion Jorge \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"pt_BR utf-8\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Carregar em cadeia a partir do menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Os scripts de atualização do GRUB detectaram uma configuração do GRUB Legado " +"em /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"A fim de substituir a versão Legada do GRUB no seu sistema, é recomendável " +"que o /boot/grub/menu.lst seja ajustado para carregar em cadeia o GRUB 2 a " +"partir da sua configuração existente do GRUB Legado. Este passo pode ser " +"executado automaticamente agora." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"É recomendado que você aceite o carregamento em cadeia do GRUB 2 a partir do " +"menu.lst, e verifique que sua nova configuração do GRUB 2 está funcional " +"para você, antes de instalá-lo diretamente no seu MBR (\"Master Boot Record" +"\")." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "Falha ao instalar o GRUB nos seguintes dispositivos:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Falha ao instalar o GRUB nos seguintes dispositivos:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Você deseja continuar de qualquer maneira? Se você continuar, seu computador " +"talvez não inicialize corretamente." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "A instalação do GRUB falhou. Tentar novamente?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Você pode conseguir instalar o GRUB em outro dispositivo, mas você deve " +"verificar se o seu sistema vai conseguir inicializar a partir deste " +"dispositivo. Caso contrário, a atualização do GRUB Legado será cancelada." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Continuar sem instalar o GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is an " +#| "earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Você escolheu não instalar o GRUB em nenhum dispositivo. Se você continuar, " +"o sistema de inicialização (\"boot loader\") poderá não ser configurado " +"corretamente, e na próxima vez que seu computador inicializar ele usará a " +"versão que estava anteriormente no setor de inicialização (\"boot\"). Se " +"houver uma versão anterior do GRUB 2 no setor de inicialização, pode ser que " +"ele não consiga carregar módulos ou manipular corretamente o arquivo de " +"configuração." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Se você já estiver executando um sistema de inicialização (\"boot loader\") " +"diferente e quiser continuar a fazê-lo, ou se este é um ambiente especial, " +"onde você não precisa de um sistema de inicialização, então você deve " +"continuar de qualquer maneira. Caso contrário, você deve instalar o GRUB em " +"algum outro lugar." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Completar a conversão para o GRUB 2 agora?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Este sistema ainda tem arquivos do GRUB Legado instalados, mas agora também " +"tem registros de inicialização (\"boot records\") do GRUB 2 instalados " +"nestes discos:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Parece provável que o GRUB Legado não está mais em uso, e que você deva " +"atualizar as imagens do GRUB 2 nestes discos e completar a conversão para o " +"GRUB 2, removendo arquivos antigos do GRUB Legado. Se você não atualizar " +"essas imagens do GRUB 2, então elas podem ser incompatíveis com os novos " +"pacotes e fazer com que o sistema deixe de inicializar corretamente." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Você normalmente deveria completar a conversão para o GRUB 2, a menos que " +"esses registros de inicialização (\"boot records\") tenham sido criados por " +"uma instalação do GRUB 2 em algum outro sistema operacional." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linha de comando Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"A linha de comando Linux a seguir foi extraída de /etc/default/grub ou do " +"parâmetro 'kopt' do menu.lst do Grub Legado. Por favor, verifique se ela " +"está correta, e modifique-a se necessário." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Linha de comando padrão Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"O seguinte texto (\"string\") será usado como lista de parâmetros do Linux " +"para a entrada padrão do menu, mas não para o modo de recuperação." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Linha de comando kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"A linha de comando kFreeBSD a seguir foi extraída de /etc/default/grub ou do " +"parâmetro 'kopt' do menu.lst do Grub Legado. Por favor, verifique se ela " +"está correta, e modifique-a se necessário." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Linha de comando padrão kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"O seguinte texto (\"string\") será usado como lista de parâmetros do " +"kFreeBSD para a entrada padrão do menu, mas não para o modo de recuperação." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map foi gerado novamente" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"O arquivo /boot/grub/device.map foi reescrito para usar nomes estáveis de " +"dispositivo. Na maioria dos casos, isto pode reduzir de forma significativa " +"a necessidade de mudá-los no futuro, e as entradas do menu de inicialização " +"(\"boot\") geradas pelo GRUB não devem ser afetadas." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Entretanto, desde que você tenha mais de um disco no seu sistema, é possível " +"que você dependesse do antigo mapa de dispositivos. Por favor, verifique se " +"você tem quaisquer outras entradas personalizadas no menu de inicialização " +"(\"boot\") que dependam da numeração de \"drive\" do GRUB (hdN), e atualize-" +"as se necessário." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Se você não compreende esta mensagem, ou se não tem nenhuma entrada " +"personalizada no menu de inicialização (\"boot\"), você pode ignorar esta " +"mensagem." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Em todo caso, sempre que você quiser que o GRUB 2 seja carregado " +#~ "diretamente do MBR, você pode fazê-lo (como root) através do seguinte " +#~ "comando:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "A instalação do GRUB falhou. Continuar?" + +#~ msgid "GRUB 1.95 numbering scheme transition" +#~ msgstr "Transição do esquema de numeração do GRUB 1.95" + +#~ msgid "" +#~ "As of version 1.95, GRUB 2 has changed its numbering scheme. Partitions " +#~ "are now counted starting from 1 rather than 0. This is to make it " +#~ "consistent with device names of Linux and the other kernels used in " +#~ "Debian. For example, when using Linux as the kernel, \"(hd0,1)\" refers " +#~ "to the same partition as the /dev/sda1 device node." +#~ msgstr "" +#~ "A partir da versão 1.95, o GRUB 2 mudou seu esquema de numeração. Agora " +#~ "partições são contadas a partir de 1 em vez de 0. Isto é para torná-lo " +#~ "consistente com nomes de dispositivos do Linux e de outros kernels usados " +#~ "no Debian. Por exemplo, quando se usa o Linux como kernel, \"(hd0,1)\" se " +#~ "refere à mesma partição que o nó de dispositivo /dev/sda1." + +#~ msgid "" +#~ "Because of this, there's a chance your system becomes unbootable if " +#~ "update-grub(8) is run before GRUB is updated, generating a grub.cfg file " +#~ "that your installed GRUB won't yet be able to parse correctly. To ensure " +#~ "your system will be able to boot, you have to:" +#~ msgstr "" +#~ "Por causa disso, existe uma chance de seu sistema tornar-se não " +#~ "inicializável se o update-grub(8) for executado antes do GRUB ser " +#~ "atualizado, gerando um arquivo grub.cfg que o GRUB instalado ainda não " +#~ "será capaz de analisar corretamente. Para garantir que seu sistema será " +#~ "capaz de inicializar, você tem que:" + +#~ msgid "" +#~ " - Reinstall GRUB (typically, by running grub-install).\n" +#~ " - Rerun update-grub to generate a new grub.cfg." +#~ msgstr "" +#~ " - Reinstalar o GRUB (tipicamente, executando grub-install).\n" +#~ " - Re-executar update-grub para gerar um novo grub.cfg." --- grub2-1.98+20100804.orig/debian/po/cs.po +++ grub2-1.98+20100804/debian/po/cs.po @@ -0,0 +1,416 @@ +# Czech translation of grub2 debconf messages. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the grub2 package. +# Miroslav Kure , 2008 -- 2010 +# +msgid "" +msgstr "" +"Project-Id-Version: grub2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 21:22+0000\n" +"PO-Revision-Date: 2010-12-12 13:35+0100\n" +"Last-Translator: Miroslav Kure \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Zavést přes menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Aktualizační skripty GRUBu rozpoznaly v /boot/grub nastavení pro předchozí " +"verzi GRUBu (tzv. GRUB Legacy)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Abyste na svém systému nahradili zastaralou verzi GRUBu, je doporučeno " +"upravit /boot/grub/menu.lst tak, aby zavedl obraz GRUBu 2 pomocí stávajícího " +"GRUB Legacy. Tento krok je nyní možné provést automaticky." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Před instalací GRUBu 2 přímo do MBR (Master Boot Record) se doporučuje " +"nejprve vyzkoušet zavedení GRUBu 2 skrze menu.lst a teprve po ověření, že " +"vše funguje očekávaným způsobem, zkusit instalaci do MBR." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Ať se rozhodnete jakkoliv, obraz v MBR můžete kdykoliv později nahradit " +"GRUBem 2. Stačí jako root spustit následující příkaz:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Zařízení pro instalaci GRUBu:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Balík grub-pc se právě aktualizuje. Tato nabídka vám umožňuje zvolit " +"zařízení, na kterých se má automaticky spouštět grub-install." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Automatické spouštění grub-install je ve většině případů doporučeno, protože " +"tak předcházíte tomu, aby se obraz jádra GRUBu rozcházel s GRUB moduly nebo " +"souborem grub.cfg." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Pokud si nejste jisti, který disk je v BIOSu označen jako zaváděcí, bývá " +"často dobrým nápadem nainstalovat GRUB na všechny disky." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Poznámka: GRUB je možné instalovat také do zaváděcích záznamů jednotlivých " +"oblastí, jejichž seznam zde vidíte. Tímto však donutíte GRUB, aby používal " +"mechanismus zvaný blocklist, který je méně spolehlivý tudíž se nedoporučuje." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Zavaděč GRUB byl dříve nainstalován na disk, který již není dostupný, nebo " +"jehož unikátní identifikátor se z nějakého důvodu změnil. Je důležité, aby " +"nainstalovaný obraz jádra GRUBu odpovídal GRUB modulům a souboru grub.cfg. " +"Ještě jednou se prosím ujistěte, že je GRUB zapsán na příslušných zaváděcích " +"zařízeních." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Zápis GRUBu na zaváděcí zařízení selhal - pokračovat?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUB se nepodařilo nainstalovat na následující zařízení:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Chcete přesto pokračovat? Pokud ano, je možné, že počítač nemusí korektně " +"nastartovat." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Zápis GRUBu na zaváděcí zařízení selhal - zkusit znovu?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Je možné, že se povede instalace GRUBu na nějaké jiné zařízení, ovšem měli " +"byste se ujistit, že váš systém umí z daného zařízení zavádět. V opačném " +"případě bude aktualizace z GRUB Legacy zrušena." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Pokračovat bez instalace GRUBu?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Rozhodli jste se neinstalovat GRUB na žádné zařízení. Budete-li pokračovat, " +"zavaděč nemusí být nastaven správně a při příštím spuštění počítače se " +"použije cokoliv, co bylo dříve v zaváděcím sektoru. Pokud tam je dřívější " +"verze GRUBu 2, nemusí se jí podařit načíst moduly, nebo zpracovat současný " +"konfigurační soubor." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Pokud používáte jiný zavaděč a chcete ho používat i nadále, nebo pokud je " +"toto speciální prostředí, ve kterém zavaděč nepotřebujete, můžete " +"pokračovat. V opačném případě byste někam měli GRUB nainstalovat." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Odstranit GRUB 2 z /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Chcete z /boot/grub odstranit všechny soubory GRUBu 2?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Tímto se stane systém nezaveditelným do doby, než nainstalujete jiný zavaděč." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Dokončit nyní přechod na GRUB 2?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Tento systém stále obsahuje soubory starého zavaděče GRUB Legacy, ale na " +"následujících discích již má zaváděcí záznamy GRUBu 2:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Je dosti pravděpodobné, že se GRUB Legacy již nepoužívá a tudíž byste na " +"těchto discích měli aktualizovat obrazy GRUBu 2 a dokončit konverzi na GRUB " +"2 odstraněním starých souborů z GRUB Legacy. Neaktualizujete-li tyto obrazy " +"GRUBu 2, nemusí být kompatibilní s novými balíky a mohou způsobit, že se váš " +"systém přestane zavádět správně." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Obvykle byste měli konverzi na GRUB 2 dokončit, s výjimkou situace, kdy tyto " +"zaváděcí záznamy vytvořila instalace nějakého jiného operačního systému." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Parametry pro Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Následující řádka s parametry pro Linux byla získána ze starého souboru menu." +"lst z parametru „kopt“ nebo ze souboru /etc/default/grub. Zkontrolujte " +"prosím, zda jsou parametry v pořádku a případně je upravte do požadované " +"podoby." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Výchozí parametry pro Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Následující parametry pro Linux se použijí pro výchozí položku menu, ale ne " +"pro záchranný režim." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Parametry pro kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Následující řádka s parametry pro kFreeBSD byla získána ze starého souboru " +"menu.lst z parametru „kopt“ nebo ze souboru /etc/default/grub. Zkontrolujte " +"prosím, zda jsou parametry v pořádku a případně je upravte do požadované " +"podoby." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Výchozí parametry pro kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Následující parametry pro kFreeBSD se použijí pro výchozí položku menu, ale " +"ne pro záchranný režim." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map byl aktualizován" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Soubor /boot/grub/device.map byl přepsán tak, aby používal stabilní jména " +"zařízení. Ve většině případů by to mělo výrazně snížit potřebu jejich změny " +"v budoucnosti a položky v zaváděcí nabídce vygenerované GRUBem by neměly být " +"nijak ovlivněny." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Nicméně je možné (protože je v systému více než jeden disk), že se systém " +"spoléhal na starý soubor device.map. Zkontrolujte prosím, zda používáte " +"vlastní upravené položky zaváděcí nabídky, které spoléhají na GRUBovské " +"číslování disků (hdN) a podle potřeby je aktualizujte." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Nerozumíte-li této zprávě, nebo pokud žádné vlastní upravené položky " +"zaváděcí nabídky nemáte, můžete tuto zprávu ignorovat." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Až se rozhodnete zavádět GRUB 2 přímo z MBR, stačí jako uživatel root " +#~ "spustit příkaz:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Instalace GRUBu selhala. Pokračovat?" --- grub2-1.98+20100804.orig/debian/po/it.po +++ grub2-1.98+20100804/debian/po/it.po @@ -0,0 +1,470 @@ +# Italian (it) translation of debconf templates for grub2 +# This file is distributed under the same license as the grub2 package. +# Luca Monducci , 2007-2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2 1.98+20100710-2 italian debconf templates\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 21:22+0000\n" +"PO-Revision-Date: 2010-08-22 14:32+0200\n" +"Last-Translator: Luca Monducci \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Effettuare il caricamento in cascata da menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Gli script di aggiornamento hanno rilevato la configurazione di GRUB Legacy " +"in /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Per sostituire la versione Legacy di GRUB sul proprio sistema, si raccomanda " +"di correggere il file /boot/grub/menu.lst in modo da caricare GRUB 2 in " +"cascata dalla versione di GRUB esistente. Questa modifica può essere " +"effettuata automaticamente adesso." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Si raccomanda di accettare il caricamento in cascata di GRUB 2 da menu.lst e " +"di verificare che la nuova configurazione di GRUB 2 sia adatta alle proprie " +"necessità prima di procedere con l'installazione diretta sul MBR (Master " +"Boot Record)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "L'installazione di GRUB sui seguenti device non è riuscita:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +#, fuzzy +#| msgid "GRUB installation failed. Continue?" +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Installazione di GRUB non riuscita. Continuare?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "L'installazione di GRUB sui seguenti device non è riuscita:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +#, fuzzy +#| msgid "" +#| "Do you want to continue anyway? If you do, your computer may not start " +#| "up properly." +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Si vuole continuare? Continuando, il computer potrebbe non avviarsi più " +"correttamente." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Installazione di GRUB non riuscita. Riprovare?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "" +#| "You may be able to install GRUB to some other device, although you should " +#| "check that your system will boot from that device. Otherwise, the " +#| "upgrade from GRUB Legacy will be cancelled." +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"È possibile installare GRUB su un altro device però è necessario verificare " +"che il propio sistema si possa avviare da quel device. Altrimenti, " +"l'aggiornamento da GRUB Legacy verrà annullato." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Continuare senza installare GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is " +#| "an earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Si è scelto di non installare GRUB su alcun device. Continuando, il boot " +"loader potrebbe non essere configurato correttamente e al prossimo avvio del " +"computer verrà usato il vecchio contenuto del settore di boot. Se nel " +"settore di boot è presente una versione precedente di GRUB 2, questa " +"potrebbe non essere in grado di caricare i moduli o di gestire l'attuale " +"file di configurazione." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Se già si usa un altro boot loader e si vuole continuare a farlo oppure se " +"non si ha necessità di usare un boot loader allora è possibile continuare. " +"Altrimenti è necessario installare GRUB da qualche parte." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Completare la conversione a GRUB 2 adesso?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Su questo sistema sono ancora presenti i file del boot loader GRUB Legacy ma " +"adesso sui seguenti dischi sono installati anche i boot record di GRUB 2:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +#, fuzzy +#| msgid "" +#| "It seems likely that GRUB Legacy is no longer in use, and that you should " +#| "instead upgrade the GRUB 2 images on these disks and finish the " +#| "conversion to GRUB 2 by removing old GRUB Legacy files. If you do not " +#| "upgrade these GRUB 2 images, then they may be incompatible with the new " +#| "packages and cause your system to stop booting properly." +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Sembra che GRUB Legacy non sia più usato quindi si dovrebbero aggiornare le " +"immagini sui dischi con GRUB 2 e completare la conversione a GRUB 2 " +"eliminando i vecchi file di GRUB Legacy. Se non si aggiornano le immagini " +"con GRUB 2, in futuro potrebbero non essere più compatibili con i nuovi " +"pacchetti e potrebbero impedire il corretto avvio del sistema." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Si dovrebbe completare la conversione a GRUB 2 a meno che i boot record non " +"siano stati creati da un'altra installazione di GRUB 2 su un altro sistema " +"operativo." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Riga di comando Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"La seguente riga di comando Linux è stata estratta da /etc/default/grub " +"oppure dal parametro \"kopt\" presente nel file menu.lst del vecchio GRUB. " +"Controllare che sia corretta e modificarla se necessario." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Riga di comando Linux predefinita:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Questa stringa verrà usata come parametri per Linux nella voce di menu " +"predefinita ma non nella modalità di ripristino." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Riga di comando kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"La seguente riga di comando kFreeBSD è stata estratta da /etc/default/grub " +"oppure dal parametro \"kopt\" presente nel file menu.lst del vecchio GRUB. " +"Controllare che sia corretta e modificarla se necessario." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Riga di comando kFreeBSD predefinita:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Questa stringa verrà usata come parametri per kFreeBSD nella voce di menu " +"predefinita ma non nella modalità di ripristino." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map è stato rigenerato" + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "The file /boot/grub/device.map has been rewritten to use stable device " +#| "names. In most cases, this should significantly reduce the need to " +#| "change it in future, and boot menu entries generated by GRUB should not " +#| "be affected." +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Il file /boot/grub/device.map è stato riscritto in modo da usare i nomi " +"stabili dei device. In molti casi questo dovrebbe ridurre in modo " +"significativo la necessità di cambiarli in futuro e le voci nel menu di GRUB " +"non dovrebbero essere influenzate." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Comunque, visto che sul sistema ci sono più dischi, è possibile che si fosse " +"dipendenti dalla vecchia mappa dei device. Controllare se nel menu di GRUB " +"ci sono delle voci personalizzate che usano la numerazione dei device di " +"GRUB (hdN) e, se necessario, aggiornarle." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Se non si capisce questo messaggio o non si hanno voci di menu " +"personalizzate, ignorare questo messaggio." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "In ogni caso, per caricare GRUB 2 direttamente dal MBR, è necessario " +#~ "eseguire (da root) il seguente comando:" --- grub2-1.98+20100804.orig/debian/po/nl.po +++ grub2-1.98+20100804/debian/po/nl.po @@ -0,0 +1,415 @@ +# translation of grub2.pot to Dutch +# Copyright (C) 2008-2010 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the grub2 package. +# +# Paul Gevers , 2008-2010. +msgid "" +msgstr "" +"Project-Id-Version: grub2_1.96+20099829_nl\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 18:02-0400\n" +"PO-Revision-Date: 2010-12-11 22:39+0100\n" +"Last-Translator: Paul Gevers \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Doorschakelen vanuit menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"GRUBs opwaardeerscripts hebben een oude-stijl GRUB opstelling in /boot/grub " +"gedetecteerd." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Om de oude-stijl versie van GRUB op uw systeem te vervangen wordt het " +"aangeraden om het /boot/grub/menu.lst bestand zo te laten aanpassen dat er " +"een GRUB 2 opstartopname wordt geladen vanuit uw bestaande oude-stijl GRUB " +"opstelling. Deze stap kan nu automatisch worden uitgevoerd." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"U wordt aangeraden om het doorschakelen van GRUB 2 vanuit menu.lst te " +"accepteren, en daarna te verifiëren dat de nieuwe GRUB 2 opstelling werkt " +"voordat het in de MBR (Master Boot Record) wordt geïnstalleerd." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Waar u ook voor kiest, u kunt de oude MBR opname later door GRUB 2 vervangen " +"door het volgende commando uit te voeren (met beheerdersrechten (root)):" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "GRUB installatie apparaten:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Het grub-pc pakket wordt bijgewerkt. Dit menu stelt u in staat om de " +"apparaten te selecteren waar u wilt dat grub-install automatisch gedraaid " +"wordt." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Het wordt over het algemeen aanbevolen om grub-install automatisch te laten " +"draaien om te voorkomen dat de geïnstalleerde GRUB kernopname niet meer " +"gesynchroniseerd is met GRUB modules of grub.cfg. " + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Indien u niet zeker weet welk station door de BIOS wordt gebruikt als " +"opstartstation, is het vaak een goed idee om GRUB op alle stations te " +"installeren." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Merk op dat het ook mogelijk is om GRUB naar opstartstructuren op partities " +"te installeren. Enkele geschikte partities worden hier aangeboden. Dit wordt " +"echter niet aangeraden omdat het GRUB dwingt om een bloklijstmechanisme te " +"gebruiken waar het minder betrouwbaar van wordt." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Het GRUB opstartprogramma was voorheen geïnstalleerd op een schijf die niet " +"langer aanwezig is, of waarvan de unieke identificatie is veranderd. Het is " +"belangrijk om ervoor te zorgen dat de geïnstalleerde GRUB kernopname " +"gesynchroniseerd blijft met GRUB modules en grub.cfg. Controleer of GRUB wel " +"naar het juiste opstartapparaat wordt geschreven." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Schrijven van GRUB naar opstartapparaat mislukt. Doorgaan?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Het installeren van de volgende apparaten is mislukt: " + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Wilt u desondanks verder gaan? Verder gaan kan ervoor zorgen dat uw computer " +"niet meer goed opstart." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Schrijven van GRUB naar opstartapparaat mislukt. Opnieuw proberen?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"U kunt proberen om GRUB te installeren op een ander apparaat, maar het wordt " +"aangeraden om eerst te controleren of u kunt opstarten vanaf dat apparaat. " +"Als u dit niet probeert, zal het nu opwaarderen van de oude-stijl GRUB " +"geannuleerd worden." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Verder gaan zonder GRUB te installeren?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"U heeft ervoor gekozen om GRUB niet te installeren. Als u nu doorgaat zou " +"het kunnen dat het opstartprogramma niet correct geconfigureerd is en dat de " +"computer bij de volgende start de informatie gebruikt die vroeger in de " +"opstartsector stond. Indien daar een eerdere versie van GRUB 2 staat, kan " +"het zijn dat modules niet geladen kunnen worden of dat het huidige " +"configuratiebestand niet verwerkt kan worden." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"U kunt verder gaan als u al een ander opstartprogramma gebruikt en deze wilt " +"blijven gebruiken, of als dit een speciale omgeving is waar u geen " +"opstartprogramma nodig heeft. In de overige gevallen wilt u waarschijnlijk " +"GRUB installeren." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "GRUB 2 uit /boot/grub verwijderen?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Wilt u dat alle GRUB 2 bestanden worden verwijderd uit /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Dit heeft tot gevolg dat het systeem niet opgestart kan worden tenzij er een " +"ander opstartprogramma is geïnstalleerd." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Wilt u de conversie naar GRUB 2 nu afronden?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Dit systeem heeft nog steeds bestanden van het oude-stijl GRUB " +"opstartprogramma geïnstalleerd, maar er zijn nu ook GRUB 2 opstartopnames " +"geïnstalleerd op de volgende schijven:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Het lijkt erop dat de oude-stijl GRUB niet langer gebruikt wordt en het " +"wordt aanbevolen dat u de conversie naar GRUB 2 afrond door de GRUB 2 " +"opnames op deze schijven op te waarderen en de oude-stijl GRUB bestanden te " +"verwijderen. Indien u de GRUB 2 opnames niet opwaardeert, is het mogelijk " +"dat ze incompatibel zijn met de nieuwe pakketten en kunnen ze uw systeem " +"verhinderen correct op te starten." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"In het algemeen zult u de conversie naar GRUB 2 willen afmaken, tenzij deze " +"opstartopnames gemaakt zijn door een GRUB 2 op een ander besturingssysteem." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linux-commandoregel:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"De volgende Linux-commandoregel is gebaseerd op /etc/default/grub of op de " +"'kopt'-parameter gevonden in het menu.lst bestand van de oude-stijl GRUB. " +"Wilt u deze op correctheid controleren en indien nodig aanpassen?" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Standaard Linux-commandoregel:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"De volgende regel zal, behalve in de herstelmodus, gebruikt worden voor de " +"Linux parameters in de standaard menuoptie." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "kFreeBSD-commandoregel:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"De volgende kFreeBSD-commandoregel is gebaseerd op /etc/default/grub of op " +"de 'kopt'-parameter gevonden in het menu.lst bestand van de oude-stijl GRUB. " +"Wilt u deze op correctheid controleren en indien nodig aanpassen?" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Standaard kFreeBSD-commandoregel:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"De volgende regel zal, behalve in de herstelmodus, gebruikt worden voor de " +"kFreeBSD parameters in de standaard menuoptie." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map is opnieuw aangemaakt" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Het bestand /boot/grub/device.map is zo herschreven dat het stabiele " +"apparaatnamen gebruikt. In de meeste gevallen zal dit de noodzaak van " +"toekomstige veranderingen verlagen en zullen door GRUB gegenereerde " +"opstartmenu-items ongewijzigd zijn." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Het is mogelijk dat het systeem afhankelijk was van de oude apparatenlijst, " +"aangezien er meer dan één schijf aanwezig is. Het wordt aanbevolen dat u de " +"opstartmenu-items controleert op het gebruik van GRUB's schijfbenummering " +"(hdN) en deze zo nodig aanpast." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"U kunt deze melding negeren indien u deze melding niet begrijpt, of als er " +"geen zelfgemaakte menu-items aanwezig zijn." --- grub2-1.98+20100804.orig/debian/po/vi.po +++ grub2-1.98+20100804/debian/po/vi.po @@ -0,0 +1,437 @@ +# Vietnamese translation for Grub2_Debian. +# Copyright © 2010 Free Software Foundation, Inc. +# Clytie Siddall , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 18:02-0400\n" +"PO-Revision-Date: 2010-09-28 19:02+0930\n" +"Last-Translator: Clytie Siddall \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: LocFactoryEditor 1.8\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Nạp dãy từ menu.lst ?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Văn lệnh nâng cấp GRUB phát hiện được một thiết lập GRUB Thừa Tự (GRUB " +"Legacy) trong « /boot/grub »." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Để thay thế phiên bản Thừ Tự của GRUB trong hệ thống này, khuyến khích điều " +"chỉnh « /boot/grub/menu.lst » để nạp dãy (chainload) GRUB 2 từ thiết lập " +"GRUB Thừa Tự đã có. Bước này có thể được tự động thực hiện ngay bây giờ." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Khuyên bạn đồng ý với nạp dãy GRUB 2 từ menu.lst, và thẩm tra thiết lập GRUB " +"2 mới có chức năng, trước khi ghi nó trực tiếp vào MBR (mục ghi khởi động " +"chủ)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "GRUB không cài đặt được vào những thiết bị theo đây:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +# Variable: don't translate; Biến: đừng dịch +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +# Variable: don't translate; Biến: đừng dịch +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUB không cài đặt được vào những thiết bị theo đây:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Bạn vẫn muốn tiếp tục không? Có thì máy tính có thể không khởi động đúng." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Lỗi cài đặt GRUB. Thử lại ?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Có thể là bạn cài đặt được GRUB vào một thiết bị khác (trước tiên nên kiểm " +"tra nếu hệ thống sẽ khởi động từ thiết bị đó). Không thì tiến trình nâng cấp " +"từ GRUB Cũ (Legacy) sẽ bị thôi." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Tiếp tục lại mà không cài đặt GRUB ?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is an " +#| "earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Bạn đã chọn không cài đặt GRUB vào thiết bị nào. Tiếp tục thì có thể là bộ " +"nạp khởi động bị sai cấu hình, và máy tính khởi động lại sẽ sử dụng dữ liệu " +"nào đã có trong phân vùng khởi động. Nếu phiên bản khởi động chứa một phiên " +"bản GRUB2 cũ, có thể là nó không nạp được mô-đun hoặc không xử lý được tập " +"tin cấu hình hiện thời." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Nếu bạn muốn tiếp tục chạy một bộ nạp khởi động đã có, hoặc nếu đây là một " +"môi trường đặc biệt mà không cần thiết bộ nạp khởi động, thì bạn nên tiếp " +"tục. Khác thì bạn nên cài đặt GRUB vào một vị trí nào đó." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Kết thúc chuyển đổi sang GRUB2 ngay bây giờ ?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Hệ thống này vẫn còn có tập tin được cài đặt bởi bộ nạp khởi động GRUB Cũ " +"(Legacy), nhưng mà cũng có mục ghi GRUB2 được cài đặt vào những đĩa này:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Rất có thể là GRUB Cũ (Legacy) không còn được sử dụng, vì thế bạn nên nâng " +"cấp các ảnh GRUB2 trên những đĩa này và kết thúc chuyển đổi sang GRUB2 bằng " +"cách gỡ bỏ tất cả các tập tin GRUB Cũ. Không nâng cấp các ảnh GRUB2 thì " +"chúng có thể không tương thích với gói mới và gây ra hệ thống này không khởi " +"động đúng." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Nói chung bạn nên kết thúc chuyển đổi sang GRUB2 nếu các mục ghi khởi động " +"này không được tạo bởi một bản cài đặt GRUB2 trên một hệ điều hành khác." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Dòng lệnh Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Dòng lệnh Linux theo đây đã được trích ra « /etc/default/grub » hoặc từ tham " +"số « kopt » trong menu.lst của GRUB Thừa Tự. Hãy thẩm tra nó vẫn đúng, không " +"thích hợp thì cũng sửa đổi." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Dòng lệnh Linux mặc định:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Chuỗi theo đây sẽ được sử dụng làm các tham số Linux cho mục nhập trình đơn " +"mặc định, mà không phải cho chế độ phục hồi." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Dòng lệnh kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Dòng lệnh kFreeBSD theo đây đã được trích ra « /etc/default/grub » hoặc từ " +"tham số « kopt » trong menu.lst của GRUB Thừa Tự. Hãy thẩm tra nó vẫn đúng, " +"không thích hợp thì cũng sửa đổi." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Dòng lệnh kFreeBSD mặc định:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Chuỗi theo đây sẽ được sử dụng làm các tham số kFreeBSD cho mục nhập trình " +"đơn mặc định, mà không phải cho chế độ phục hồi." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "Tập tin « /boot/grub/device.map » đã được tạo lại." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Tập tin « /boot/grub/device.map » đã được ghi nhớ lại để sử dụng tên thiết " +"bị kiểu ổn định. Trong phần lớn các trường hợp, bản cập nhật này nên giảm " +"một cách đáng kể sự cần sửa đổi về sau, và không nên tác động trình đơn khởi " +"động được GRUB tạo." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Tuy nhiên, vì bạn có nhiều đĩa trong hệ thống, có thể là bạn vẫn còn phụ " +"thuộc vào sơ đồ thiết bị cũ. Hãy kiểm tra nếu bạn có mục trình đơn khởi động " +"riêng mà dựa vào số thứ tự ổ đĩa của GRUB (hdN) và cập nhật nếu thích hợp." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Nếu bạn không hiểu thông điệp này, hoặc nếu bạn không có mục trình đơn khởi " +"động riêng nào, thì bạn có thể bỏ qua thông điệp này." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Trong cả hai trường hợp, khi nào bạn muốn nạp GRUB2 một cách trực tiếp từ " +#~ "MBR, chỉ cần chạy (dưới người chủ) câu lệnh theo đây:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Lỗi cài đặt GRUB. Tiếp tục ?" --- grub2-1.98+20100804.orig/debian/po/eu.po +++ grub2-1.98+20100804/debian/po/eu.po @@ -0,0 +1,411 @@ +# translation of grub2_1.98+20100804-10_eu.po to Basque +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Piarres Beobide , 2008. +# Iñaki Larrañaga Murgoitio , 2008, 2009, 2010. +msgid "" +msgstr "" +"Project-Id-Version: grub2_1.98+20100804-10_eu\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 21:22+0000\n" +"PO-Revision-Date: 2010-12-10 15:40+0100\n" +"Last-Translator: Iñaki Larrañaga Murgoitio \n" +"Language-Team: Basque \n" +"Language: eu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Kargatu menu.lst fitxategitik?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"GRUB eguneratzeko script-ek GRUB zahar baten konfigurazioa aurkitu dute /" +"boot/grub-en." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Sistemako GRUB zaharraren bertsioa behar bezala ordezkatzeko, gomendagarria " +"da /boot/grub/menu.lst doitzea GRUB 2 dagoeneko instalatuta duzun GRUB " +"zaharraren bidez kargatzeko. Urrats hau automatikoki egin daiteke orain." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Gomendagarria da GRUB 2 menu.lst bidez kargatzea onartzea, eta GRUB 2-ren " +"konfigurazioak zure beharrak betetzen dituela egiaztatzea MBRan (Master Boot " +"Record) idatzi aurretik." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Berdin dio zer erabakitzen duzun, MBRren irudi zaharra GRUB 2rekin ordeztu " +"dezakezu supererabiltzaile (root) gisa honako komandoa exekutatuz:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "GRUB instalatzeko gailuak:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"grub-pc paketea eguneratzen ari da. Menu honek zer gailuentzako automatikoki " +"grub-install exekutatzea nahi duzun hautatzea (hautatzen baduzu) uzten dizu." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Egoera gehienetan grub-install automatikoki exekutatzea gomendatzen da, " +"instalatutako GRUBaren bihotzaren irudia GRUBaren modulu edo grub.cfg " +"fitxategiarekin sinkronizatzetik kanpo gelditzea saihesteko." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Ez badakizu BIOSak zer gailu izendatuta daukan abioko gailu gisa, burutazio " +"ona izan ohi da GRUB guztietan instalatzea." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Oharra: GRUB, partizio bateko abioko erregistroan instala daiteke baita ere, " +"hori dela eta, partizio egoki batzuk eskaintzen dira hemen. Hala ere, honek " +"GRUBek bloke-zerrenden mekanismoa erabiltzera derrigortzen du, ondorioz " +"fidagarritasuna jaitsiz, eta gauzak horrela ez da bat ere gomendagarria." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Lehenago GRUB abioko kargatzailea agertzen ez den disko batean instalatu " +"zen, edo edozer arrazoirengatik identifikatzaile esklusiboa aldatuta dauka. " +"Garrantzitsua da instalatutako GRUBaren bihotzaren irudia sinkronizatuta " +"egotea GRUBaren modulu eta grub.cfg fitxategiarekin. Egiaztatu ezazu berriro " +"GRUB abioko gailu egokian idatzi dela." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Huts egin du GRUB abioko gailuan idaztean - jarraitu?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUBek huts egin du honako gailuetan instalatzean:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Jarraitzea nahi duzu dena den? Jarraituz gero, baliteke ordenagailua ongi ez " +"abiaraztea." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Huts egin du GRUB abioko gailuan idaztean - saiatu berriro?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"GRUB beste gailu batean instalatzeko aukera duzu, hala ere, sistema beste " +"gailu horretatik abiatzeko ahalmena duela egiaztatu behar duzu. Bestela, " +"'GRUB Legacy' eguneratzea bertan behera utz daiteke." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Jarraitu GRUB instalatu gabe?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"GRUB inolako gailuetan ez instalatzea aukeratu duzu. Jarraitzen baduzu, " +"baliteke abioko kargatzailea ongi konfiguratuta ez egotea, eta abioko " +"sektorean aurretik zegoena erabiliko da ordenagailua hurrengo batean " +"abiatzean. Abioko sektorean GRUB 2ren aurreko bertsio bat egonez gero, agian " +"ezin izango du moduluak kargatu edo uneko konfigurazioko fitxategia kudeatu." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Unean bestelako abioko kargatzaile bat erabiltzean ari bazara, eta horrela " +"jarraitzea nahi baduzu, edo hau abioko kargatzailearen beharrik ez duen " +"ingurune berezi bat bada, aurrera jarrai dezakezu. Bestela, GRUB nonbaiten " +"instalatu beharko zenuke." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Kendu 'GRUB 2' /boot/grub direktoriotik?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Nahi duzu GRUB 2ren fitxategi guztiak /boot/grub-etik kentzea?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Honek sistema ezin abiaraztea eragingo du bestelako abioko kargatzaile bat " +"instalatzen ez bada." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Amaitu GRUB 2-rako bihurketa orain?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Sistemak oraindik 'GRUB Legacy' abioko kargatzailearen fitxategiak ditu " +"oraindik, baina orain GRUB 2 bertsioko abioko erregistroak ere baditu honako " +"diskoetan:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Badirudi 'GRUB Legacy' ez denez aurrerantzean erabiliko, disko hauetako GRUB " +"2 bertsioko irudiak eguneratu eta 'GRUB Legacy'-ko fitxategiak kenduz GRUB 2-" +"ren eguneraketa amaitu beharko zenuke. GRUB 2-ko irudi hauek ez badituzu " +"eguneratzen, pakete berriekin ez dira bateragarriak izango eta sistema ongi " +"abiatzea galaraz dezake." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"GRUB 2-rako bihurketa amaitu beharko zenuke, abioko erregistro hauek beste " +"sistema eragile batzuetako GRUB 2 bertsioaren instalazioan ez badira sortuak " +"izan." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linux-eko komando-lerroa:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Linux-eko komando-lerro hau /etc/default/grub edo GRUB zaharraren menu.lst " +"fitxategiko 'kopt' parametrotik atera da. Egiaztatu zuzena dela, eta " +"eraldatu behar izanez gero." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Linux-eko komando-lerro lehenetsia:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Honako katea menuko sarrera lehenetsiaren Linux-eko parametro gisa erabiliko " +"da, baina ez berreskuratzeko moduan." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "KFreeBSD-ko komando-lerroa:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"KFreeBSD-ko komando-lerro hau /etc/default/grub edo GRUB zaharraren menu.lst " +"fitxategiko 'kopt' parametrotik atera da. Egiaztatu zuzena dela, eta " +"eraldatu behar izanez gero." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "KFreeBSD-ko komando-lerro lehenetsia:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Honako katea menuko sarrera lehenetsiaren KFreeBSD-ko parametro gisa " +"erabiliko da, baina ez berreskuratzeko moduan." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map berriro sortu da" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"/boot/grub/device.map fitxategia berriro idatzi da gailuen izen egonkorrak " +"erabiltzeko. Gehienetan, etorkizunean hau aldatzeko beharra asko murriztu " +"beharko luke, eta GRUBek sortutako menuko sarrerei ez die eragingo." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Hala ere, sisteman disko bat baino gehiago dagoenez, baliteke sistema " +"gailuen mapa zaharrean mende egotea. Egiaztatu ezazu GRUBen unitateko " +"zenbaketan oinarrituta abioaren menuko sarrera pertsonalizaturen bat duzun " +"edo ez, eta egunera itzazu beharrezkoa izanez gero." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Mezu hau ez baduzu ulertzen, edo abioaren menuko sarrera pertsonalizaturik " +"ez baduzu, ezikusi egin diezaiokezu mezu honi." --- grub2-1.98+20100804.orig/debian/po/pt.po +++ grub2-1.98+20100804/debian/po/pt.po @@ -0,0 +1,428 @@ +# Portuguese translation for grub2's debconf messages +# Copyright (C) 2007 Miguel Figueiredo +# This file is distributed under the same license as the grub2 package. +# +# Miguel Figueiredo , 2007, 2010. +# Ricardo Silva , 2008. +# Tiago Fernandes , 2010. +msgid "" +msgstr "" +"Project-Id-Version: grub2 1.98-1\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 21:22+0000\n" +"PO-Revision-Date: 2010-12-12 21:57+0000\n" +"Last-Translator: Miguel Figueiredo \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Carregar em cadeia a partir do menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Os scripts de actualização do GRUB detectaram uma configuração do GRUB " +"Legacy em /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Por forma a substituir a versão antiga do GRUB que se encontra no sistema, é " +"recomendado que o /boot/grub/menu.lst seja ajustado para permitir carregar " +"imagem de boot do GRUB 2 a partir da configuração actual do GRUB antigo. " +"Esta etapa agora pode ser feita automaticamente." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"É recomendado que aceite carregar em cadeia o GRUB 2 a partir do menu.lst, e " +"verificar que a configuração do novo GRUB 2 está funcional, antes de ser " +"escrito no MBR (Master Boot Record)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Qualquer que seja a sua decisão, pode substituir mais tarde a antiga imagem " +"do MBR com o GRUB 2, executando como root o seguinte comando:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "dispositivos de instalação GRUB:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"O pacote grub-pc está a ser actualizado. Este menu permite-lhe seleccionar " +"quais os dispositivos onde gostaria que o grub-install corresse " +"automaticamente, se algum." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Correr o grub-install automaticamente é recomendado na maior parte das " +"situações, para prevenir que a imagem core do GRUB instalada não fique " +"dessincronizada com os módulos do GRUB ou grub.cfg." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Se não têm a certeza de qual a drive designada como driver de arranque pela " +"sua BIOS, é normalmente boa ideia instalar o GRUB em todas elas." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Nota: é possível instalar o GRUB no boot record de partições, e são " +"oferecidas algumas partições aqui. No entanto, isto força o GRUB a utilizar " +"o mecanismo blocklist, que o torna menos fiável. Assim não é recomendável." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"O boot loader do GRUB foi instalado num disco que não se encontra presente, " +"ou então o seu identificador único foi alterado por alguma razão. É " +"importante ter a certeza que a imagem core do GRUB se mantêm sincronizada " +"com os módulos do GRUB e grub.cfg. Por favor verifique de novo para ter a " +"certeza de que o GRUB é escrito nos dispositivos apropriados de arranque." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "A escrita do GRUB para o dispositivo de arranque falhou - continuar?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "A instalação do GRUB falhou nos seguintes dispositivos:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Pretende continuar de qualquer modo? Em caso afirmativo, o seu computador " +"pode não arrancar em condições. " + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" +"A escrita do GRUB para o dispositivo de arranque falhou - tentar de novo?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Poderá instalar o GRUB noutro dispositivo, no entanto deverá verificar que o " +"seu sistema arranca desse dispositivo. Se não o fizer, a actualização a " +"partir do GRUB Legacy será cancelada." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Continuar sem instalar o GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Escolheu não instalar o GRUB em qualquer dispositivo. Se continuar, o gestor " +"de arranque pode não ficar correctamente configurado, e quando o computador " +"arrancar da próxima vez irá usar o que estiver anteriormente no sector de " +"arranque. Se existir uma versão anterior do GRUB 2 no sector de arranque, " +"poderá não ser capaz de carregar os módulos e gerir o ficheiro de " +"configuração actual." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Se já estiver a utilizar um gestor de arranque diferente e quiser continuar " +"a fazê-lo, ou se se tratar de um ambiente especial onde não necessita de " +"gestor de arranque, deverá então continuar de qualquer modo. Caso contrário, " +"deverá instalar o GRUB em algum sitio." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Remover o GRUB 2 de /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Deseja remover todos os ficheiros do GRUB 2 de /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Isto fará com que o sistema não arranque até que seja instalado outro gestor " +"de arranque." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Finalizar a conversão para o GRUB 2 agora?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Este sistema ainda tem ficheiros instalados do gestor de arranque GRUB " +"Legacy, no entanto agora também tem registos de arranque do GRUB 2 " +"instalados nos discos seguintes:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Parece provável que o GRUB Legacy não esteja a ser usado, deve fazer a " +"actualização das imagens do GRUB 2 nestes discos e finalizar a conversão " +"para o GRUB 2 removendo os ficheiros antigos do GRUB Legacy. Se não " +"actualizar estas imagens GRUB 2 então estas podem ser incompatíveis com " +"novos pacotes e provocar uma falha no arranque do sistema." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Normalmente deverá finalizar a conversão para o GRUB 2 a não ser que estes " +"registos de arranque tenham sido criados por uma instalação do GRUB 2 noutro " +"sistema operativo." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linha de comandos do Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"A seguinte linha de comandos Linux foi extraída a partir de /etc/default/" +"grub ou do parâmetro `kopt' no menu.lst do GRUB Legacy. Por favor verifique " +"que está correcta, e modifique se necessário." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Linha de comandos padrão do Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"A seguinte linha será utilizada como parâmetros para o Linux na entrada " +"predefinida do menu, mas não para o modo de recuperação." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "linha de comandos kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"A seguinte linha de comandos kFreeBSD foi extraída a partir de /etc/default/" +"grub ou do parâmetro `kopt' no menu.lst do GRUB Legacy. Por favor verifique " +"que está correcta, e modifique se necessário." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Linha de comandos padrão do kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"A seguinte linha será utilizada como parâmetros para o kFreeBSD para a " +"entrada por omissão do menu, mas não para o modo de recuperação." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "O /boot/grub/device.map foi recriado" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"O ficheiro /boot/grub/device.map foi reescrito para usar nomes de " +"dispositivos estáveis. Na maioria dos casos, esta acção reduz " +"significativamente a necessidade de alterações no futuro e as entradas de " +"menu geradas pelo GRUB não deverão ser afectadas." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"No entanto, desde que está presente no sistema mais do que um disco, é " +"possível que o sistema esteja dependente do mapa antigo de dispositivos " +"(device map). Por favor verifique se tem algumas entradas personalizadas no " +"menu de arranque que dependam da numeração de drives do GRUB (hdN), e " +"actualize-as se necessário." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Se não entende esta mensagem ou se não tiver entradas personalizadas no menu " +"de arranque, pode ignorar esta mensagem." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Em qualquer dos casos, quando quiser que o GRUB 2 seja carregado " +#~ "directamente a partir do MBR, pode fazê-lo executando (como root) o " +#~ "seguinte comando: " + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "A instalação do GRUB falhou. Continuar?" --- grub2-1.98+20100804.orig/debian/po/fr.po +++ grub2-1.98+20100804/debian/po/fr.po @@ -0,0 +1,438 @@ +# translation of fr.po to French +# Translation of grub2 debconf templates to French +# Copyright (C) 2008-2010 Debian French l10n +# This file is distributed under the same license as the grub2 package. +# +# Christian Perrier , 2007, 2008, 2009, 2010. +msgid "" +msgstr "" +"Project-Id-Version: fr\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 21:22+0000\n" +"PO-Revision-Date: 2010-12-11 00:04+0100\n" +"Last-Translator: Christian Perrier \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Faut-il enchaîner le chargement depuis menu.lst ?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "Une installation standard de GRUB a été détectée dans /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Afin de remplacer cette installation, il est recommandé de modifier /boot/" +"grub/menu.lst pour charger GRUB 2 depuis l'installation standard de GRUB " +"(« chainload »). Veuillez choisir si vous souhaitez effectuer cette " +"modification." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Il est recommandé de choisir cette option pour pouvoir confirmer le bon " +"fonctionnement de GRUB 2 avant de l'installer directement sur le secteur " +"d'amorçage (MBR : « Master Boot Record »)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Quel que soit votre choix, vous pourrez, plus tard, remplacer l'ancien " +"secteur d'amorçage par GRUB 2 avec la commande suivante, exécutée avec les " +"privilèges du superutilisateur :" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Périphériques où installer GRUB :" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Le paquet grub-pc est en cours de mise à jour. Ce menu permet de choisir " +"pour quels périphériques vous souhaitez exécuter la commande grub-install " +"automatiquement." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Il est en général recommandé d'exécuter grub-install automatiquement, afin " +"d'éviter la situation où l'image de GRUB est désynchronisée avec les modules " +"de GRUB ou le fichier grub.cfg." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Si vous n'avez pas la certitude du périphérique utilisé comme périphérique " +"d'amorçage par le BIOS, il est en général conseillé d'installer GRUB sur " +"l'ensemble des périphériques." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Veuillez noter que GRUB peut également être installé sur les secteurs " +"d'amorçage de partitions également. Certains partitions où cela pourrait " +"être nécessaire sont indiquées ici. Cependant, cela impose que GRUB utilise " +"le mécanisme « blocklist », ce qui le rend moins fiable et n'est donc pas " +"recommandé." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Le chargeur d'amorçage GRUB était précédemment installé sur un disque qui " +"n'est plus présent ou dont l'identifiant unique a changé pour une raison ou " +"une autre. Il est important de vous assurer que l'image de GRUB qui est " +"installée reste synchronisée avec les modules de GRUB ou grub.cfg. Veuillez " +"vérifier à nouveau que GRUB sera bien installé sur les périphériques " +"d'amorçage pertinents." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} Mo; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} Mo; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" +"Échec de l'installation de GRUB sur le périphérique d'amorçage. Continuer ?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUB n'a pas pu être installé sur les périphériques suivants :" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Veuillez confirmer si vous souhaitez continuer malgré le risque d'un " +"démarrage incorrect de la machine." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" +"Échec de l'installation de GRUB sur le périphérique d'amorçage. Essayer à " +"nouveau ?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Il est peut-être possible d'installer GRUB sur un autre périphérique après " +"avoir vérifié que le système pourra démarrer sur ce périphérique. Dans le " +"cas contraire, la mise à jour depuis l'ancienne version de GRUB va échouer." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Faut-il poursuivre sans installer GRUB ?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Vous avez choisi de n'installer GRUB sur aucun périphérique. Si vous " +"poursuivez, il est possible que le programme de démarrage ne soit pas " +"configuré correctement et que la machine démarre avec ce qui était " +"précédemment installé sur le secteur d'amorçage. Si une ancienne version de " +"GRUB 2 s'y trouve, il est possible qu'elle ne puisse pas charger certains " +"modules ou lire le fichier de configuration actuel." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Si vous utilisez déjà un autre programme de démarrage et souhaitez " +"poursuivre ou si, en raison d'un environnement particulier, vous n'avez pas " +"besoin de programme de démarrage, vous pouvez continuer malgré tout. Dans le " +"cas contraire, il est nécessaire d'installer GRUB quelque part." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Faut-il supprimer GRUB 2 de /boot/grub ?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" +"Veuillez choisir si vous voulez vraiment supprimer tous les fichiers de " +"GRUB 2 de /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Cela peut rendre le système impossible à démarrer tant qu'un autre chargeur " +"d'amorçage ne sera pas installé." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Faut-il terminer la migration vers GRUB 2 maintenant ?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Ce système comporte encore des fichiers de la version précédente du " +"programme de démarrage GRUB mais comporte également des secteurs d'amorçage " +"de GRUB 2 sur les disques suivants :" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Il est très probable que la version précédente de GRUB ne soit plus utilisée " +"et il est donc conseillé de mettre à jour les images de GRUB 2 sur ces " +"disques, puis terminer la migration vers GRUB 2 en supprimant les anciens " +"fichiers de la version précédente. Si vous ne mettez pas ces images de " +"GRUB 2 à jour, elles pourraient être incompatibles avec de nouvelles " +"versions, ce qui pourrait empêcher un démarrage normal." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Il est donc très probablement nécessaire de terminer la migration vers " +"GRUB 2 à moins que ces secteurs d'amorçage n'aient été créés par une " +"installation de GRUB 2 d'un autre système d'exploitation." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Ligne de commande de Linux :" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"La ligne de commande de Linux suivante a été récupérée via le fichier /etc/" +"default/grub ou le paramètre « kopt » du fichier menu.lst utilisé par la " +"version originelle de GRUB. Veuillez contrôler qu'elle est correcte et la " +"modifier si nécessaire." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Ligne de commande par défaut de Linux :" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Les paramètres indiqués seront utilisés pour le noyau Linux de l'entrée de " +"menu par défaut mais pas pour le mode de secours." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Ligne de commande de kFreeBSD :" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"La ligne de commande de kFreeBSD suivante a été récupérée via le fichier /" +"etc/default/grub ou le paramètre « kopt » du fichier menu.lst utilisé par la " +"version originelle de GRUB. Veuillez contrôler qu'elle est correcte et la " +"modifier si nécessaire." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Ligne de commande par défaut de kFreeBSD :" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Les paramètres indiqués seront utilisés pour le noyau kFreeBSD de l'entrée " +"de menu par défaut mais pas pour le mode de secours." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "Recréation de /boot/grub/device.map" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Le fichier /boot/grub/device.map a été réécrit afin d'utiliser des noms de " +"périphériques stables. Dans la majorité des cas, cela devrait éviter d'avoir " +"à le modifier dans le futur et les entrées de menu créées par GRUB ne " +"devraient pas être affectées par ce changement." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Cependant, si la machine comporte plus d'un disque, il est possible que le " +"démarrage dépende de l'ancien système de cartographie des périphériques " +"(« device map »). Vous devriez vérifier s'il existe des entrées de menu de " +"démarrage personnalisées qui se servent encore de la numérotation de disques " +"de GRUB (hdN), puis les mettre à jour si nécessaire." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Si vous ne comprenez pas ces explications ou n'utilisez pas d'entrées " +"personnalisées dans le menu de démarrage, vous pouvez ignorer cet " +"avertissement. " + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Dans tous les cas, pour charger GRUB 2 directement depuis le secteur " +#~ "d'amorçage, vous devrez utiliser la commande suivante avec les privilèges " +#~ "du superutilisateur :" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Échec de l'installation de GRUB. Continuer ?" --- grub2-1.98+20100804.orig/debian/po/ca.po +++ grub2-1.98+20100804/debian/po/ca.po @@ -0,0 +1,389 @@ +# Catalan translation of grub2's debconf messages +# Copyright © 2009, 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the grub2 package. +# +# Jordi Mallach , 2009, 2010. +# Juan Andrés Gimeno Crespo , 2009. +msgid "" +msgstr "" +"Project-Id-Version: grub2 1.98+20100804-11\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 18:02-0400\n" +"PO-Revision-Date: 2010-12-10 19:54+0100\n" +"Last-Translator: Jordi Mallach \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Voleu carregar en cadena des del menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Els scripts d'actualització del GRUB han detectat una configuració del GRUB " +"Legacy en /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "A l'hora de reemplaçar la versió Legacy del GRUB que hi ha al sistema, és recomanable que es modifique /boot/grub/menu.lst per a carregar una imatge d'arrencada del GRUB 2 des de la vostra configuració del GRUB Legacy existent. Aquest pas es pot dur a terme ara." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "És recomanable que accepteu la càrrega en cadena del GRUB 2 des del menu.lst, per a verificar que la nova configuració del GRUB 2 funciona correctament, abans de que que s'escriga al registre mestre d'arrencada (MBR)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "Independentment de la vostra decisió, podeu reemplaçar la imatge antiga de l'MBR amb el GRUB2 executant l'ordre següent com a root:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Dispositius d'instaŀlació del GRUB:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "S'està actualitzant el paquet grub-pc. Aquest menú us permet seleccionar sobre quins dispositius voleu que s'execute el grub-install automàticament, en cas de voler-ho." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "L'execució automàtica del grub-install és recomanable en la majoria de les situacions, per a evitar que la imatge del nucli del GRUB es desincronitze amb els mòduls del GRUB o el grub.cfg." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "Si no esteu segur sobre quina és la unitat designada com a unitat d'arrencada per la BIOS, normalment és una bona idea instaŀlar el GRUB a tots ells." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "Nota: també és possible instaŀlar el GRUB a registres d'arrencada de particions, i s'ofereixen algunes particions addients. Tanmateix, això força al GRUB a usar el mecanisme de llistes de blocs, que fa que siga menys fiable, per la qual cosa no és recomanable." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "El carregador GRUB estava instaŀlat a un disc que ja no és present, o per al qual ha canviat el seu identificador únic per alguna raó. És important assegurar-se que la imatge del nucli del GRUB roman sincronitzada amb els mòduls del GRUB i el grub.cfg. Comproveu de nou que el GRUB s'escriu als dispositius d'arrencada apropiats." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Ha fallat l'escriptura del GRUB al dispositiu. Voleu continuar?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "El GRUB no s'ha pogut instaŀlar als dispositius següents:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Voleu continuar tot i això? Si ho feu, és possible que l'ordinador no " +"arrenque correctament." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Ha fallat l'escriptura del GRUB al dispositiu. Voleu tornar a provar-ho?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"És possible que pugueu instaŀlar el GRUB en un altre dispositiu, tot i que " +"haurieu de comprovar que el sistema arrencarà des d'aquell dispositiu. En " +"cas contrari, es canceŀlarà l'actualització des del GRUB Legacy." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Voleu continuar sense instaŀlar el GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Heu triat no instaŀlar el GRUB en cap dispositiu. Si continueu, és possible " +"que el carregador no estiga configurat correctament, i quan s'arrenque " +"l'ordinador la pròxima vegada, emprarà allò que estigués al sector " +"d'arrencada. Si hi ha una versió anterior del GRUB2 al sector d'arrencada, " +"és possible que no puga carregar mòduls o gestionar el fitxer de " +"configuració actual." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Si ja esteu emprant un altre carregador i voleu continuar fent-ho, o aquest " +"és un entorn especial on no necessiteu un carregador, hauríeu de continuar. " +"Si no és així, hauríeu d'instaŀlar el GRUB en algun lloc." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Voleu suprimir el GRUB 2 de /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Voleu suprimir tots els fitxers del GRUB 2 de /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "Això farà que el sistema no arrenque si no s'instaŀla un altre carregador." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Voleu finalitzar la conversió al GRUB 2 ara?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Aquest sistema encara té fitxers antics del carregador GRUB Legacy " +"instaŀlats, però ara també té registres d'arrencada del GRUB 2 instaŀlats " +"als discs següents:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Sembla probable que el GRUB Legacy no estiga ja en ús, i que hauríeu " +"d'actualitzar les imatges del GRUB 2 presents a aquests discs per a " +"finalitzar la conversió al GRUB 2, suprimint els fitxers vells del GRUB " +"Legacy. Si no actualitzeu aquestes imatges del GRUB 2, és possible que " +"romanen incompatibles amb els paquets nous i que causen que el sistema deixe " +"d'arrencar correctament." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"En general, hauríeu de finalitzar la conversió al GRUB 2 a no ser que " +"aquests registres d'arrencada els haja creat una instaŀlació del GRUB 2 des " +"d'un altre sistema operatiu." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Línia d'ordres de Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"La línia d'ordres de Linux següent ha sigut extreta de /etc/default/grub o " +"del paràmetre «kopt» del fitxer menu.lst del GRUB Legacy. Verifiqueu que és " +"correcta, i modifiqueu-la si és necessari." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Línia d'ordres de Linux per defecte:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"La cadena següent serà emprada com a paràmetres del Linux per al menú " +"d'entrada per defecte però no per al mode de recuperació." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Línia d'ordres de kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"La línia d'ordres de kFreeBSD següent ha sigut extreta de /etc/default/grub " +"o del paràmetre «kopt» del fitxer menu.lst del GRUB Legacy. Verifiqueu que " +"és correcta, i modifiqueu-la si és necessari." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Línia d'ordres de kFreeBSD per defecte:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"La cadena següent serà emprada com a paràmetres del kFreeBSD per al menú " +"d'entrada per defecte però no per al mode de recuperació." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "S'ha regenerat el fitxer «/boot/grub/device.map»" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"S'ha reescrit el fitxer «/boot/grub/device.map» per a usar noms estables de " +"dispositiu. En la majoria dels casos, això hauria de reduir la necessitat de " +"canviar-ho en el futur, i no hauria d'afectar les entrades del menú " +"d'arrencada generades pel GRUB." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "Tanmateix, com hi ha més d'un disc al sistema, és possible que el sistema depenga del mapa de dispositius antic. Comproveu si hi ha entrades del menú d'arrencada personalitzades que requerisquen la numeració d'unitats del GRUB (hdN), i actualitzeu-les si és necessari." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "Si no enteneu aquest missatge, o si no hi ha cap entrada del menú d'arrencada personalitzada, podeu descartar aquest missatge." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "En qualsevol cas, quan vulgueu que es carregue el GRUB 2 directament des " +#~ "de l'MBR, podeu fer-ho executant (com a root) l'ordre següent:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Ha fallat la instaŀlació del GRUB. Voleu continuar?" --- grub2-1.98+20100804.orig/debian/po/sl.po +++ grub2-1.98+20100804/debian/po/sl.po @@ -0,0 +1,420 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 21:22+0000\n" +"PO-Revision-Date: 2010-12-09 10:50+0100\n" +"Last-Translator: Vanja Cvelbar \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" +"%100==4 ? 3 : 0);\n" +"X-Poedit-Language: Slovenian\n" +"X-Poedit-Country: SLOVENIA\n" +"X-Poedit-SourceCharset: utf-8\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Verižno nalaganje iz menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "Skript za nadgradnjo je zaznal namestitev GRUB Legacy v /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Da zamenjate različico GRUB Legacy na vašem sistemu vam priporočamo, da se /" +"boot/grub/menu.lst spremeni tako, da verižno naloži GRUB 2 iz vaše obstoječe " +"namestitve GRUB Legacy. To dejanje lahko zdaj izvedete samodejno." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Priporočamo vam, da sprejmete verižno nalaganje GRUB 2 iz datoteke menu.lst " +"in preverite delovanje namestitve GRUB2 preden ga namestite na MBR (Master " +"Boot Record)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Kakorkoli se odločite, stari MBR lahko kasneje vedno zamenjate z GRUB 2, če " +"izvedete kot root sledeči ukaz:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Namestitvene naprave za GRUB:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Nadgrajevanje paketa grub-pc. Ta meni vam omogoči izbiro naprav za katere " +"želite samodejno zagnati grub-install." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"V večini primerov je priporočen samodejni zagon grub-install, da preprečite " +"neskladja med jedrom GRUBa in moduli ali grub.cfg." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"V primeru, da niste prepričani kateri pogon je označuje vaš BIOS za " +"zagonskega, je ponavadi dobro, da namestite GRUB kar na vse." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Opomba: GRUB je mogoče namestiti tudi na zagonski zapis razdelka. Primerni " +"razdelki so na tem spisku. To pa zahteva uporabo mehanizma blocklist, ki je " +"manj zanesljiv in zato ni priporočen." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Zagonski nalagalnik GRUB je bil nameščen na disku, ki ni več prisoten ali se " +"mu je spremenil enolični identifikator. Važno je, da so jedro GRUBa in " +"moduli ter grub.cfg skladni. Preverite prosim, da je GRUB zapisan na " +"pravilno zagonsko napravo." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Napaka pri pisanju na zagonsko napravo za GRUB. Želite nadaljevati?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Napaka pri nameščanju GRUBa na sledeče naprave:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Želite vseeno nadaljevati? V primeru, da boste nadaljevali se računalnik " +"mogoče ne bo pravilno zagnal." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" +"Nameščanje GRUBa na zagonsko napravo ni uspelo. Želite še enkrat poskusiti?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Mogoče lahko namestite GRUB na katero drugo napravo, preveriti pa morate, da " +"se bo lahko vaš sistem zagnal iz te naprave. Drugače bo posodobitev iz " +"zastarelega GRUB prekinjena ." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Želite nadaljevati, ne da bi namestili GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Izbrali ste, da ne boste namestili GRUBa na nobeno napravo. V primeru, da " +"nadaljujete zagonski nalagalnik ne bo pravilno nastavljen. Računalnik bo ob " +"naslednjem zagonu uporabil karkoli je bilo prej nameščeno na zagonskem " +"sektorju. V primeru, da se tam nahaja starejša različica GRUB 2 mogoče ta ne " +"bo uspela naložiti modulov ali brati sedanje nastavitvene datoteke." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"V primeru, da že uporabljate različen zagonski nalagalnik in želite s tem " +"nadaljevati ali pa je to posebno zagonsko okolje kjer ne rabite zagonskega " +"nalagalnika lahko vsekakor nadaljujete. V ostalih primerih bi morali nekam " +"namestiti GRUB." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Želite odstraniti GRUB 2 iz /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" +"Želite odstraniti iz /boot/grub vse datoteke, ki se nanašajo na GRUB 2?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Zaradi tega se sistem ne bo mogel zagnati, razen, če uporabite drugi " +"zagonski nalagalnik." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Želite zdaj dokončati pretvorbo v GRUB 2?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Na tem sistemu so še nameščene datoteke iz zastarelega GRUBa, a zdaj je " +"nameščen tudi zagonski zapis GRUB 2 na sledečih diskih:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Zdi se verjetno, da zastareli GRUB ni več v uporabi in da bi morali namesto " +"tega nadgraditi te diske na GRUB 2 ter dokončati pretvorbo v GRUB 2 z " +"odstranitvijo datotek za zastareli GRUB. V primeru, da ne boste izvedli " +"nadgradnje na GRUB 2 lahko pride do nezdružljivosti z novimi paketi in težav " +"pri zagonu." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Običajno bi morali dokončati pretvorbo v GRUB 2 razen, če so bili ti " +"zagonski zapisi ustvarjeni pri nameščanju GRUB 2 na drugem operacijskem " +"sistemu." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Ukazna vrstica Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Sledeči ukaz za Linux je vzet iz datoteke /etc/default/grub ali iz parametra " +"`kopt' v datoteki menu.lst sistema GRUB Legacy. Preverite prosim, da je " +"točen in ga po potrebi popravite." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Privzeta ukazna vrstica Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Sledeča vrstica bo uporabljena kot parameter Linuxa za privzeti vnos v " +"meniju, ne pa za reševalni način." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Ukazna vrstica kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Sledeči ukaz za kFreeBSD je vzet iz datoteke /etc/default/grub ali iz " +"parametra `kopt' v datoteki menu.lst sistema GRUB Legacy. Preverite " +"prosim, da je točen in ga po potrebi popravite." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Privzeta ukazna vrstica kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Sledeča vrstica bo uporabljena kot parameter kFreeBSD za privzeti vnos v " +"meniju, ne pa za reševalni način." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "ustvarjena je bila datoteka /boot/grub/device.map" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Datoteka /boot/grub/device.map je bila prepisana s stabilnimi imeni naprav. " +"V večini primerov bo to v prihodnosti močno zmanjšalo potrebo po njenih " +"spremembah. Na vnose v zagonskem meniju, ki jih ustvari GRUB to ne bi smelo " +"imeti učinka." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Ker imate več kot en disk na vašem sistemu je možno, da ste bili odvisni od " +"starega spiska naprav. Preverite prosim ali imate kakšen vnos po meri v " +"zagonskem meniju, ki se naslanja na poimenovanje diskov (hdN) v GRUBu in ga " +"posodobite, če je to potrebno." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"V primeru, da tega sporočila ne razumete ali nimate nobenih vnosov po meri " +"v zagonskem meniju se za to sporočilo ne menite." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "V primeru, da želite, da se GRUB 2 naloži neposredno iz MBRja, lahko v " +#~ "obeh primerih zaženete (kot sistemski skrbnik) sledeči ukaz:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "GRUB ni bil nameščen. Želite nadaljevati?" --- grub2-1.98+20100804.orig/debian/po/de.po +++ grub2-1.98+20100804/debian/po/de.po @@ -0,0 +1,421 @@ +# Translation of GRUB 2 debconf templates to German +# Copyright (C) Helge Kreutzmann , 2007-2009. +# Martin Eberhard Schauer , 2010. +# This file is distributed under the same license as the grub2 package. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2 1.98+20100710-2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 21:22+0000\n" +"PO-Revision-Date: 2010-12-11 11:07+0100\n" +"Last-Translator: Martin Eberhard Schauer \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Aus »menu.lst« laden (Chainload)?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Die Upgrade-Skripte von GRUB haben eine Installation von »GRUB Legacy« in /" +"boot/grub gefunden." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Um die Legacy-Version von GRUB auf Ihrem System zu ersetzen, wird die " +"Anpassung von /boot/grub/menu.lst empfohlen, so dass GRUB 2 aus Ihrer " +"bestehenden GRUB-Legacy-Konfiguration heraus geladen wird. Dieser Schritt " +"kann jetzt automatisch vollzogen werden." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Es wird empfohlen, dass Sie dem Laden von GRUB 2 aus menu.lst zustimmen und " +"überprüfen, dass Ihre neue »GRUB 2«-Installation funktioniert, bevor diese " +"in den MBR (Master Boot Record) geschrieben wird." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Unabhängig von Ihrer Entscheidung können Sie den alten MBR später durch GRUB " +"2 ersetzen. Geben Sie dazu als »root« den folgenden Befehl ein:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Geräte für die GRUB-Installation:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Für das Paket grub-pc wird gerade ein Upgrade durchgeführt. In diesem Menü " +"können Sie auswählen, ob und für welche Geräte grub-install automatisch " +"ausgeführt werden soll." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Für die Mehrzahl der Fälle wird empfohlen, grub-install automatisch laufen " +"zu lassen. So wird vermieden, dass das installierte GRUB-Image nicht zu den " +"GRUB-Modulen oder grub.cfg passt." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Wenn Sie nicht sicher sind, welches Gerät das BIOS zum Booten benutzt, ist " +"es oft eine gute Idee, GRUB auf allen Geräten zu installieren." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Hinweis: Sie können GRUB auch in die Boot-Blöcke von Partionen schreiben." +"Hier werden auch einige geeignete Partitionen angeboten. Das zwingt GRUB " +"allerdings dazu, den Blocklist-Mechanismus zu verwenden. Dieser ist weniger " +"zuverlässig und wird daher nicht empfohlen." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Der GRUB-Bootloader wurde zuvor auf einem Datenträger, der nicht mehr im " +"System vorhanden ist oder dessen eindeutige Kennung aus irgendeinem Grund " +"geändert wurde, installiert. Es ist wichtig, sicherzustellen, dass das " +"installierte GRUB-Core-Image synchron mit den GRUB-Modulen und grub.cfg " +"bleibt. Bitte prüfen Sie erneut, um sicherzustellen, dass GRUB auf die " +"entsprechenden Boot-Geräte geschrieben wird." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "GRUB konnte nicht auf das Boot-Gerät geschrieben werden - fortfahren?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUB konnte nicht auf den folgenden Geräten installiert werden:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Wollen Sie trotzdem fortfahren? Falls ja, wird Ihr Rechner vielleicht nicht " +"problemlos hochfahren." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" +"Das Schreiben von GRUB auf das Boot-Gerät ist fehlgeschlagen. Noch einmal " +"versuchen?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Vielleicht können Sie GRUB auf einem anderen Gerät installieren. Sie sollten " +"aber prüfen, ob Ihr System von diesem Gerät startet. Sonst wird das Upgrade " +"von GRUB Legacy abgebrochen." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Fortsetzen, ohne Grub zu installieren?" + +# (mes) Seht Ihr einen Unterschied zwischen der alten und der neuen Version. +# Ich habe jetzt nur das fuzzy rausgenommen. +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Sie haben sich entschieden, GRUB auf kein Gerät zu installieren. Wenn Sie " +"fortfahren, könnte der Boot-Loader nicht richtig konfiguriert sein. Beim " +"nächsten Hochfahren dieses Computers wird der Boot-Loader benutzen, was " +"immer sich vorher im Boot-Sektor befand. Wenn sich schon eine ältere Version " +"von GRUB 2 im Boot-Sektor befindet, kann sie möglicherweise keine Module " +"laden oder nicht mehr mit der aktuellen Konfigurationsdatei umgehen." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Falls Sie bereits einen anderen Boot-Loader einsetzen und diesen beibehalten " +"wollen oder Ihre spezielle Umgebung keinen Boot-Loader erfordert, dann " +"sollten Sie trotzdem fortfahren. Anderenfalls sollten Sie GRUB irgendwo " +"installieren." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "GRUB 2 aus /boot/grub entfernen?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Wollen Sie alle Daten von GRUB 2 aus /boot/grub entfernen lassen?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Wenn kein anderer Boot-Loader installiert ist, kann Ihr System anschließend " +"nicht mehr booten (hochfahren)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Jetzt die Umstellung auf GRUB 2 abschließen?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Auf diesem System sind noch Dateien des GRUB-Legacy-Boot-Loaders " +"installiert, aber es sind nun auch GRUB-2-Boot-Sektoren auf den folgenden " +"Datenträgern installiert:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Es sieht so aus, als ob Sie GRUB Legacy nicht mehr verwenden. Daher sollten " +"Sie stattdessen ein Upgrade der GRUB-2-Images auf diesen Datenträgern " +"durchführen und die Umstellung auf GRUB 2 abschließen, indem Sie die alten " +"GRUB-Legacy-Dateien entfernen. Falls Sie das Upgrade für diese GRUB-2-Images " +"nicht durchführen, könnten diese mit den neuen Paketen nicht kompatibel sein " +"und dazu führen, dass Ihr System nicht mehr einwandfrei startet." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Grundsätzlich sollten Sie die Umstellung auf GRUB 2 abschließen, es sei " +"denn, diese GRUB-2-Boot-Sektoren wurden von einem anderen Betriebssystem " +"installiert." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linux-Befehlszeile:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Die folgende Linux-Befehlszeile wurde aus /etc/default/grub oder dem " +"Parameter »kopt« in der Datei menu.lst von GRUB Legacy extrahiert. Bitte " +"überprüfen Sie, ob die Befehlszeile korrekt ist und ändern Sie diese, wenn " +"es notwendig ist." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Standard-Befehlszeile für Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Die folgende Zeichenkette wird als Linux-Parameter für den " +"Standardmenüeintrag, nicht aber für den Rettungsmodus verwandt." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Befehlszeile für kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Die folgende kFreeBSD-Befehlszeile wurde aus /etc/default/grub oder dem " +"Parameter »kopt« in der Datei menu.lst von GRUB Legacy extrahiert. Bitte " +"überprüfen Sie, ob diese korrekt ist und passen Sie sie an, wenn das " +"erforderlich ist. " + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Standard-Befehlszeile für kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Die folgende Zeichenkette wird als kFreeBSD-Parameter für den " +"Standardmenüeintrag, nicht aber für den Rettungsmodus verwandt." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map wurde neu erstellt." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Die Datei /boot/grub/device.map wurde umgeschrieben, um stabile Gerätenamen " +"zu verwenden. In der Mehrzahl der Fälle sollte dies die Notwendigkeit " +"zukünftiger Änderungen deutlich verringern. Von GRUB erstellte Boot-Menü-" +"Einträge sollten nicht betroffen sein." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Da sich in diesem System mehrere Festplatten befinden, ist es möglich, dass " +"das System von der alten »device map« abhängig ist. Bitte überprüfen Sie, " +"obbenutzerdefinierte Boot-Menü-Einträge mit der (hdn)-Laufwerkszählung von " +"GRUB vorhanden sind und aktualisieren Sie diese gegebenenfalls." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Wenn Sie diese Nachricht nicht verstehen oder wenn keine modifizierten Boot-" +"Menü-Einträge vorhanden sind, können Sie diese Nachricht ignorieren." --- grub2-1.98+20100804.orig/debian/po/be.po +++ grub2-1.98+20100804/debian/po/be.po @@ -0,0 +1,511 @@ +# Belarusian translation of grub2 templates +# Copyright (C) 2009 respective translators (see below) +# This file is distributed under the same license as the grub2 package. +# Hleb Rubanau , 2009, +# Viktar Siarheichyk , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: be\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 21:22+0000\n" +"PO-Revision-Date: 2010-07-18 01:16+0300\n" +"Last-Translator: Viktar Siarheichyk \n" +"Language-Team: Debian Belarusian (Official spelling) \n" +"Language: be\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Belarusian\n" +"X-Poedit-Country: BELARUS\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Ланцуговая загрузка з menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Скрыпты абнаўлення GRUB выявілі папярэднюю версію GRUB, усталяваную ў /boot/" +"grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Каб замяніць папярэднюю версію GRUB у Вашай сістэме, раім выправіць файл /" +"boot/grub/menu.lst такім чынам, каб GRUB 2 загружаўся праз механізм " +"ланцуговай загрузкі (chainload) з існуючай папярэдняй версіі GRUB. Зараз " +"можна зрабіць гэтую наладку аўтаматычна. " + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Раім абраць опцыю ланцуговай загрузкі GRUB 2 з menu.lst, каб праверыць, ці " +"прыдатны для Вас нанова ўсталяваны GRUB 2, перад тым як усталёўваць яго " +"непасрэдна ў галоўны загрузачны запіс (MBR, Master Boot Record)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "Не атрымалася ўсталяваць GRUB на наступныя прылады:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +#, fuzzy +#| msgid "GRUB installation failed. Continue?" +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Не атрымалася ўсталяваць GRUB. Працягваць?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Не атрымалася ўсталяваць GRUB на наступныя прылады:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +#, fuzzy +#| msgid "" +#| "Do you want to continue anyway? If you do, your computer may not start " +#| "up properly." +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Вы жадаеце працягваць, не зважаючы на гэта? Калі працягнеце, ваш кампутар " +"можа не запусціцца." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Не атрымалася ўсталяваць GRUB. Паспрабаваць ізноў?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "" +#| "You may be able to install GRUB to some other device, although you should " +#| "check that your system will boot from that device. Otherwise, the " +#| "upgrade from GRUB Legacy will be cancelled." +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Магчыма, што вы зможаце ўсталяваць GRUB на нейкую іншую прыладу, але вам " +"варта спраўдзіць, што вашая сістэма запусціцца з гэтае прылады. Іначай, " +"абнаўленне з папярэдняе версіі GRUB будзе адмененае." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Працягваць, не ўсталёўваючы GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is " +#| "an earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Вы выбралі не ўсталёўваць GRUB ні на якую прыладу. Калі Вы працягнеце, " +"загрузчык, магчыма, не будзе сканфігураваны належным чынам, і калі Ваш " +"кампутар запусціцца наступным разам, ён загрузіцца з таго, што было раней у " +"загрузачным сектары. Калі там была старая версія GRUB 2, ён можа не здолець " +"загрузіць модулі альбо альбо не разабраць цяперашні канфігурацыйны файл." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Калі Вы ўжо маеце іншы загрузчык і хочаце так рабіць і надалей альбо калі " +"гэта адмысловае асяроддзе, дзе загрузчык непатрэбны, то вам варта ўсё ж " +"працягваць. Іначай вам трэба ўсталяваць GRUB некуды." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Скончыць зараз перавод на GRUB 2?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"На гэтай сістэме ўсё яшчэ ўсталяваныя файлы з папярэдняе версіі загрузчыка " +"GRUB, але зараз тут таксама ўсталяваныя загрузчыкі GRUB 2 на наступных " +"дысках:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +#, fuzzy +#| msgid "" +#| "It seems likely that GRUB Legacy is no longer in use, and that you should " +#| "instead upgrade the GRUB 2 images on these disks and finish the " +#| "conversion to GRUB 2 by removing old GRUB Legacy files. If you do not " +#| "upgrade these GRUB 2 images, then they may be incompatible with the new " +#| "packages and cause your system to stop booting properly." +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Падаецца, што папярэдняя версія GRUB болей не выкарыстоўваецца, і што вы " +"павінны замест гэтага абнавіць вобразы GRUB 2 на гэтых дысках і скончыць " +"пераход на GRUB 2, выдаліўшы старыя файлы папярэдняй версіі GRUB. Калі вы не " +"абновіце гэтыя вобразы GRUB 2, то яны могуць стаць несумяшчальнымі з новымі " +"пакетамі і ваша сістэма перастане нармальна запускацца." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Звычайна, Вы павінны скончыць пераход на GRUB 2, калі толькі гэтыя " +"загрузчыкі не былі створаныя ўсталёўкай GRUB 2 на нейкай іншай аперацыйнай " +"сістэме." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Радок камандаў для ядра Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Гэты радок камандаў для ядра Linux узяты з файлу /etc/default/grub або з " +"параметру `kopt' у файле наладак (menu.lst) папярэдняй версіі GRUB. Калі " +"ласка, пераканайцеся, што каманды запісаныя правільна, або папраўце іх, калі " +"трэба." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Прадвызначаны радок камандаў для ядра Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Наступны радок будзе выкарыстаны ў якасці параметраў ядра Linux для " +"прадвызначанага пункту меню (але не для рэжыму аднаўлення)." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Радок камандаў для ядра kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Гэты радок камандаў для kFreeBSD узяты з файлу /etc/default/grub або з " +"параметру `kopt' у файле наладак (menu.lst) папярэдняй версіі GRUB. Калі " +"ласка, пераканайцеся, што каманды запісаныя правільна, або папраўце іх, калі " +"трэба." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Прадвызначаны радок камандаў для ядра kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Наступны радок будзе выкарыстаны ў якасці параметраў ядра kFreeBSD для " +"прадвызначанага пункту меню (але не для рэжыму аднаўлення)." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map быў перагенераваны" + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "The file /boot/grub/device.map has been rewritten to use stable device " +#| "names. In most cases, this should significantly reduce the need to " +#| "change it in future, and boot menu entries generated by GRUB should not " +#| "be affected." +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Файл /boot/grub/device.map быў перапісаны, каб выкарыстоўваць стабільныя " +"імёны прыладаў. У бальшыні выпадкаў гэта значна знізіць неабходнасць змяняць " +"яго ў будучыні, і пункты загрузачнага меню, згенераваныя GRUB, не давядзецца " +"закрануць." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Аднак, паколькі ў вашай сістэме больш за адзін дыск, то магчыма, што вы " +"выкарыстоўвалі старую табліцу прыладаў. Праверце, ці ёсць пункты " +"загрузачнага меню, што ўжываюць нумерацыю прыладаў GRUB (hdN) і абнавіце іх, " +"калі патрэбна." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Калі вы не зразумелі гэтае паведамленне, альбо калі вы не маеце ўласных " +"пунктаў загрузачнага меню, вы можаце ігнараваць гэтае паведамленне." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Калі ж Вы хочаце, каб GRUB 2 запускаўся непасрэдна з MBR, дастаткова " +#~ "запусціць з правамі карыстальніка root наступную каманду:" + +#~ msgid "GRUB 1.95 numbering scheme transition" +#~ msgstr "Змена схемы нумарацыі GRUB 1.95" + +#~ msgid "" +#~ "As of version 1.95, GRUB 2 has changed its numbering scheme. Partitions " +#~ "are now counted starting from 1 rather than 0. This is to make it " +#~ "consistent with device names of Linux and the other kernels used in " +#~ "Debian. For example, when using Linux as the kernel, \"(hd0,1)\" refers " +#~ "to the same partition as the /dev/sda1 device node." +#~ msgstr "" +#~ "Схема нумарацыі ў GRUB 2 змянілася ў параўнанні з версіяй 1.95 . Зараз " +#~ "падзелы дыску адлічваюцца пачынаючы з 1 замест 0. Гэта зроблена, каб " +#~ "адпавядаць назвам прыладаў у Linux і іншых ядрах, якія выкарыстоўваюцца ў " +#~ "Debian. Напрыклад, калі ў якасці ядра выкарыстоўваецца Linux, радок " +#~ "\"(hd0,1)\" датычыцца таго самага падзелу дыску, як і файл прылады /dev/" +#~ "sda1." + +#~ msgid "" +#~ "Because of this, there's a chance your system becomes unbootable if " +#~ "update-grub(8) is run before GRUB is updated, generating a grub.cfg file " +#~ "that your installed GRUB won't yet be able to parse correctly. To ensure " +#~ "your system will be able to boot, you have to:" +#~ msgstr "" +#~ "З гэтай прычыны Ваша сістэма можа стаць няздольнай да загрузкі, калі " +#~ "праграма update-grub(8), запушчаная да абнаўлення GRUB, стварыла файл " +#~ "grub.cfg, які немагчыма карэктна апрацаваць усталяваным GRUB. Каб " +#~ "пераканацца, што Ваша сістэма здольная да загрузкі, варта: " + +#~ msgid "" +#~ " - Reinstall GRUB (typically, by running grub-install).\n" +#~ " - Rerun update-grub to generate a new grub.cfg." +#~ msgstr "" +#~ " - Пераўсталяваць GRUB (звычайна, праз запуск grub-install).\n" +#~ " - Перазапусціць update-grub, каб стварыць новы grub.cfg." --- grub2-1.98+20100804.orig/debian/po/da.po +++ grub2-1.98+20100804/debian/po/da.po @@ -0,0 +1,483 @@ +# Danish translation grub2. +# Copyright (C) 2010 grub2 & nedenstående oversættere. +# This file is distributed under the same license as the grub2 package. +# Joe Hansen , 2010. +# Korrekturlæst Kenneth Nielsen. +# +# Chain loading -> Chain loading is a method used by computer programs +# to replace the currently executing program with a new program, +# using a common data area (a so-called core common area) to pass +# information from the current program to the new program. It occurs +# in several areas of computing. Et dansk navn? +# man kunne måske med nogen rimelighed kalde det for kædeindlæsning, men +# egentlig er det her jo et af de ord som jeg ikke mener at behøver at +# oversætte. Dem der har brug for at vide hvad det er, kender kun det +# engelsk ord og det danske vil måske endda forvirre mere end det vil +# gøre gavn. I hvert fald, hvis du vil oversætte vil jeg anbefale at +# sætte chainloade i parentes der hvor du kan. Beholdt uoversat. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 21:22+0000\n" +"PO-Revision-Date: 2010-08-01 17:30+01:00\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Chainload fra menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Opgraderingsskripterne til GRUB har fundet en GRUB Legacy-opsætning i /boot/" +"grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"For at erstatte GRUB-versionen Legacy på dit system, anbefales det at /boot/" +"grub/menu.lst justeres til at chainloade GRUB 2 fra din eksisterende GRUB " +"Legacy-opsætning. Dette trin kan udføres automatisk nu." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Det anbefales, at du accepter at chainloade GRUB 2 fra menu.lst, og " +"verificerer at din nye GRUB 2-opsætning virker for dig, før du installerer " +"den direkte til din MBR (Master Boot Record)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "Kunne ikke installere GRUB til de følgende enheder:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +#, fuzzy +#| msgid "GRUB installation failed. Continue?" +msgid "Writing GRUB to boot device failed - continue?" +msgstr "GRUB-installation mislykkedes. Fortsæt?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Kunne ikke installere GRUB til de følgende enheder:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +#, fuzzy +#| msgid "" +#| "Do you want to continue anyway? If you do, your computer may not start " +#| "up properly." +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Ønsker du at fortsætte alligevel? Hvis du fortsætter, kan din computer måske " +"ikke starte korrekt op." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "GRUB-installation mislykkedes. Forsøg igen?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "" +#| "You may be able to install GRUB to some other device, although you should " +#| "check that your system will boot from that device. Otherwise, the " +#| "upgrade from GRUB Legacy will be cancelled." +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Du kan måske installere GRUB til en anden enhed, selvom du skal tjekke at " +"dit system kan/vil opstarte fra denne enhed. Ellers vil opgraderingen fra " +"GRUB Legacy blive afbrudt." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Fortsæt uden at installere GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is " +#| "an earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Du har valgt ikke at installere GRUB på nogen enhed. Hvis du fortsætter, vil " +"opstarteren (boot loader) måske ikke være korrekt konfigureret, og når din " +"computer starter op næste gang, vil den bruge det tidligere indhold i din " +"opstartssektor (boot sector). Hvis der er en tidligere version af GRUB 2 i " +"opstartsektoren, vil den måske ikke være i stand til at indlæse moduler " +"eller håndtere den aktuelle konfigurationsfil." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Hvis du allerede kører en anden opstarter (boot loader) og ønsker at " +"fortsætte med dette, eller hvis dette er et specielt miljø, hvor du ikke har " +"brug for en opstarter, så skal du fortsætte alligevel. Ellers skal du " +"installere GRUB et eller andet sted." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Afslut konvertering til GRUB 2 nu?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Dette system har stadig filer fra GRUB Legacy-opstarteren installeret, men " +"systemet har nu også GRUB 2 opstartsposter installeret på disse diske:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +#, fuzzy +#| msgid "" +#| "It seems likely that GRUB Legacy is no longer in use, and that you should " +#| "instead upgrade the GRUB 2 images on these disks and finish the " +#| "conversion to GRUB 2 by removing old GRUB Legacy files. If you do not " +#| "upgrade these GRUB 2 images, then they may be incompatible with the new " +#| "packages and cause your system to stop booting properly." +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Det virker sandsynligt at GRUB Legacy ikke længere er i brug, og at du i " +"steden fir skal opgradere GRUB 2-billederne på disse diske og afslutte " +"konverteringen til GRUB 2 ved af fjerne ældre GRUB Legacy-filer. Hvis du " +"ikke opgraderer disse GRUB 2-billeder, så er de måske ikke kompatible med de " +"nye pakker og får dit system til at holde op med at starte korrekt op." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Du bør generelt afslutte konverteringen til GRUB 2 medmindre disse " +"opstartsposter blev oprettet af en GRUB 2-installation på et andet " +"operativsystem." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Kommandolinje til Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Den følgende kommandolinje i Linux blev udtrukket fra /etc/default/grub " +"eller parameteren `kopt' i GRUB Legacys menu.lst. Verificer venligst at den " +"er korrekt, og ændre den om nødvendigt." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Standardkommandolinje i Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Den følgende streng vil blive brugt som Linuxparametre for " +"standardmenupunktet men ikke for gendannelsestilstanden." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Kommandolinje for kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Den følgende kommandolinje i kFreeBSD blev udtrukket fra /etc/default/grub " +"eller fra parameteren `kopt' i GRUB Legacys menu.lst. Verificer venligst at " +"den er korrekt, og ændre den om nødvendigt." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Standardkommandolinje i kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Den følgende streng vil blive brugt som kFreeBSD-parametre for " +"standardmenupunktet men ikke for gendannelsestilstanden." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map er blevet gendannet" + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "The file /boot/grub/device.map has been rewritten to use stable device " +#| "names. In most cases, this should significantly reduce the need to " +#| "change it in future, and boot menu entries generated by GRUB should not " +#| "be affected." +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Filen /boot/grub/device.map er blevet genskrevet til at bruge stabile " +"enhedsnavne. I de fleste tilfælde vil dette markant reducere behovet for at " +"ændre filen fremover, og opstartsmenupunkter oprettet af GRUB vil ikke blive " +"påvirket." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Da du har mere end en disk i dit sytem, er det dog muligt, at du har en " +"afhængighed af det gamle enhedskort. Tjek venligst om du har nogle " +"tilpassede opstartsmenupunkter som afhænger af GRUB's (hdn) drevnummerering, " +"og opdater dem om nødvendigt." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Hvis du ikke forstår denne besked, eller du ikke har nogen tilpasset " +"opstartsmenupunkter, kan du ignorere denne besked." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Uanset hvad, når du ønsker at GRUB 2 skal indlæses direkte fra MBR, kan " +#~ "du gøre det ved at udstede (som root) den følgende kommando:" --- grub2-1.98+20100804.orig/debian/po/uk.po +++ grub2-1.98+20100804/debian/po/uk.po @@ -0,0 +1,414 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Олександр Яценко, 2010. +# Yatsenko Alexandr , 2010. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-09 19:36-0400\n" +"PO-Revision-Date: 2010-12-09 23:57+0200\n" +"Last-Translator: Yatsenko Alexandr \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.1\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Завантажити послідовно з menu.lst? " + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "Скрипт оновлення GRUB знайшов попередню Legacy версію в /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Перед повною заміною попередньої версії GRUB у вашій системі рекомендовано " +"приєднати GRUB 2 як варіант завантаження у наявному меню GRUB Legacy. Цей " +"крок може бути виконано автоматично зараз." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Рекомендовано спробувати послідовне завантаження GRUB 2 з menu.lst щоб " +"переконатися, що ваш новий GRUB 2 функціонує, до того як встановити його " +"напряму до MBR (Головного завантажувального сектору)" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Залежно від вашого бажання, можна замінити старий завантажувач в MBR на GRUB " +"2 пізніше увівши наступну команду користувачем root:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Дискові пристрої для встановлення GRUB:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Пакунок grub-pc було оновлено. Це меню дозволить вам обрати дискові пристрої " +"з яких grub-install буде автоматично запускатися." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Автоматичний запуск grub-install рекомендовано в більшості випадків, щоб " +"запобігти розсинхронізації встановленого базового ядра GRUB з його модулями " +"чи grub.cfg." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Якщо ви не знаєте напевне, який дисковий пристрій призначено " +"завантажувальним у вашому BIOS, можете встановити GRUB на всі наявні." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Увага: є можливим встановити GRUB до завантажувальних записів дискових " +"розділів і деякі підходящі розділи запропоновано нижче. Проте, це заставить " +"GRUB вжити механізм блокування, що зробить його менш надійним, а тому не " +"рекомендується." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Завантажувач GRUB раніше було встановлено на дисковий пристрій, що наразі " +"відсутній, або його унікальний ідентифікатор з якихось причин було змінено. " +"Важливо переконатися, що встановлене базове ядро GRUB відповідає наявним " +"модулям та grub.cfg. Будь ласка, перевірте знову чи GRUB записано на " +"відповідні завантажувальні дискові розділи." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} МБ; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} МБ; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Не вдалося записати GRUB до завантажувального пристрою. Продовжити?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Не вдалося встановити GRUB до наступних дискових пристроїв:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Ви всеодно бажаєте продовжити? Не виключено, що ваш комп'ютер не зможе " +"завантажитися нормально." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" +"Не вдалося записати GRUB до завантажувальних пристроїв. Спробувати знову?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Ви можете встановити GRUB до іншого завантажувального пристрою, але для " +"цього потрібно переконатися, що система завантажиться з нього. Інакше, " +"оновлення з GRUB Legacy не буде виконано." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Продовжити без встановлення GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Ви обрали не встановлювати GRUB на жоден пристрій. Якщо так продовжувати, " +"завантажувач може бути не до кінця налаштований і при наступному запуску " +"комп'ютера буде використано те, що є наразі у завантажувальному секторі. " +"Якщо там виявиться попередня версія GRUB 2, вона, можливо, не зможе " +"завантажити модулі чи опрацювати поточний конфігураційний файл." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Якщо ви використовуєте інший завантажувач і хочете залишити його, або маєте " +"особливе оточення, де немає потреби в завантажувачі, можете продовжити, " +"інакше маєте встановити GRUB." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Вилучити GRUB 2 з /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Ви бажаєте вилучити всі файли GRUB 2 з /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Ця дія зробить систему не здатною завантажитися, доки інший завантажувач не " +"буде встановлено." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Завершити перехід до GRUB 2 зараз?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Ваша система містить встановлені файли з GRUB Legacy, але на наступних " +"дисках присутній завантажувач GRUB 2:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Схоже, GRUB 2 більше не використовується, тому ви можете замінити його, " +"оновивши образи GRUB 2 на цих дисках та завершити перехід до GRUB 2, " +"вилучивши старі файли від GRUB Legacy. Якщо ви не оновите ці образи, вони " +"можуть бути несумісні з новими пакунками і ваша система не зможе нормально " +"завантажуватися." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Ви маєте повністю завершити перехід на GRUB 2, якщо ці завантажувальні " +"записи було створено GRUB 2 іншої операційної системи." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Рядок параметрів ядра Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Наступний рядок параметрів ядра Linux було взято із /etc/default/grub чи з " +"параметру 'kopt' в menu.lst із GRUB Legacy. Перевірте будь ласка його " +"правильність і, за потреби, внесіть зміни." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Типовий рядок параметрів ядра Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Даний рядок буде використано як параметри ядра Linux для типового пункту " +"меню, проте не для режиму відновлення." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Рядок параметрів ядра kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Наступний рядок параметрів ядра kFreeBSD було взято із /etc/default/grub чи " +"з параметру 'kopt' в menu.lst із GRUB Legacy. Перевірте будь ласка його " +"правильність і, за потреби, внесіть зміни." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Типовий рядок параметрів ядра kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Даний рядок буде використано як параметри ядра kFreeBSD для типового пункту " +"меню, проте не для режиму відновлення." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map було створено наново" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Файл /boot/grub/device.map було переписано з використанням сталих імен " +"пристроїв. В більшості випадків це значно зменшить потребу змінювати його в " +"майбутньому і пункти меню завантажувача GRUB не будуть змінюватися." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Якщо в системі наявний більше, ніж один дисковий пристрій, можливо вона " +"налаштована на стару карту пристроїв. Будь ласка, перевірте, чи не " +"використано в користувацьких пунктах меню завантажувача нумерації дисків " +"типу hdN, та оновіть їх, якщо потрібно." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Якщо ви не розумієте цього повідомлення, або не маєте користувацьких пунктів " +"меню завантажувача, проігноруйте це повідомлення." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "В іншому випадку, якщо ви бажаєте завантажити GRUB 2 прямо до MBR, ви " +#~ "можете зробити це, задавши (з правами root) наступну команду:" --- grub2-1.98+20100804.orig/debian/po/dz.po +++ grub2-1.98+20100804/debian/po/dz.po @@ -0,0 +1,434 @@ +# Translation of grub2 debconf templates to Dzongkha +# Copyright (C) 2010 Dzongkha Localization +# This file is distributed under the same license as the PACKAGE package. +# Jurmey Rabgay , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 18:02-0400\n" +"PO-Revision-Date: 2010-11-19 12:16+0530\n" +"Last-Translator: dawa pemo \n" +"Language-Team: Dzongkha \n" +"Language: dz\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2;plural=(n!=1)\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "menu.lst ནང་ལས་ ཅེན་ལོཌི་འབད་ནི་ཨིན་ན?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"GRUB དུས་མཐུན་ཡིག་ཚུགས་ཚུ་གིས་ /boot/grub ནང་ལུ་ GRUB སྔོན་བཤུལ་གཞི་སྒྲིག་ཅིག་སྐྱོན་འཛིན་འབད་ནུག" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"ཁྱོད་རའི་རིམ་ལུགས་ནང་ལུ་ GRUB གི་སྔོན་བཤུལ་ཐོན་རིམ་ཚབ་བཙུགས་འབད་ནི་གི་དོན་ལུ་ /boot/grub/menu." +"lst འདི་ ཁྱོད་རའི་ཡོད་བཞིན་པའི་སྔོན་བཤུལ་གཞི་སྒྲིག་ནང་ལས་ ཅེན་ལོཌི་ GRUB ༢ ལུ་ བདེ་སྒྲིག་འབད་དགོཔ་སྦེ་" +"འོས་སྦྱོར་འབད་ནུག གཞི་སྒྲིག་འདི་ ཡང་ཅིན་ འཕྲལ་ར་རང་བཞིན་གྱིས་ལཱ་འབད་འོང་།" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"ཁྱོད་ཀྱིས་ menu.lst ནང་ལས་ ཅེན་ལོ་ཌིང་དང་ལེན་འབད་དེ་ GRUB ༢ གཞི་སྒྲིག་གསརཔ་འདི་ MBR " +"(Master Boot Record) ལུ་ཐད་ཀར་གཞི་བཙུགས་མ་འབད་བའི་ཧེ་མ་ གཡོག་བཀོལ་བཏུབ་མི་བཏུབ་བལྟ་དགོ་" +"པའི་འོས་སྦྱོར་འབད་དེ་ཡོད།" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "GRUB འདི་ འོག་གི་ཐབས་འཕྲུལ་ཚུ་ནང་གཞི་བཙུགས་འབད་མ་ཚུགས་པས:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +#, fuzzy +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} ཨེམ་བི་ ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} ཨེམ་བི་ ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUB འདི་ འོག་གི་ཐབས་འཕྲུལ་ཚུ་ནང་གཞི་བཙུགས་འབད་མ་ཚུགས་པས:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"ག་དེ་འབད་རུང་ འཕྲོ་མཐུད་འབད་ནི་ཨིན་ན? འཕྲོ་མཐུད་འབད་བ་ཅིན་ ཁྱོད་ཀྱི་གློག་རིག་འདི་ལེགས་ཤོམ་སྦེ་འགོ་" +"བཙུགས་མི་ཚུགས།" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "GRUB གཞི་བཙུགས་འཐུས་ཤོར་བྱུང་ཡོདཔ། ལོག་འབད་རྩོལ་བསྐྱེད་ནི་ཨིན་ན?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"ཁྱོད་ཀྱིས་ ཐབས་འཕྲུལ་གཞན་ཚུ་ནང་ GRUB གཞི་བཙུགས་འབད་ཚུགསཔ་འོང་ ཨིན་རུང་ ཁྱོད་རའི་རིམ་ལུགས་འདི་ " +"ཐབས་འཕྲུལ་དེ་ལས་བུཊི་འབད་བཏུབ་ག་ཞིབ་དཔྱད་འབད་དགོ། དེ་མེན་པ་ཅིན་ GRUB སྔོན་བཤུལ་ལས་དུས་མཐུན་" +"འབད་མི་དེ་ཆ་མེད་འགྱོ་འོང་།" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "GRUB གཞི་བཙུགས་མ་འབད་བར་འཕྲོ་མཐུད་ནི་ཨིན་ན?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is an " +#| "earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"ཁྱོད་ཀྱིས་ ཐབས་འཕྲུལ་གང་རུང་ནང་ GRUB གཞི་བཙུགས་མ་འབད་ནི་སྦེ་གདམ་ཁ་བརྐྱབས་ནུག འཕྲོ་མཐུད་དེ་འབད་བ་" +"ཅིན་ བུཊི་མངོན་གསལ་པ་འདི་ ལེགས་ཤོམ་སྦེ་རིམ་སྒྲིག་མི་འབད་་འོང་། དེ་ལས་ ཁྱོད་ཀྱི་གློག་རིག་འདི་ཤུལ་ལས་འགོ་" +"བཙུགསཔ་ད་ ཧེ་མ་ལས་བུཊི་ས་ཁོངས་ག་ཅི་ཡོད་རུང་ ལག་ལེན་འཐབ་འོང་། གལ་སྲིད་ བུཊི་ས་ཁོངས་ ནང་ ཧེ་མའི་" +"ཐོན་རིམ་ GRUB ༢ འདི་ཡོད་པ་ཅིན་ མོ་ཌུལ་འདི་མངོན་གསལ་འབད་མི་ཚུགས་ནི་ ཡང་ན་ ད་ལྟོའི་རིམ་སྒྲིག་ཡིག་" +"སྣོད་འདི་ལེགས་སྐྱོང་འཐབ་མི་ཚུགསཔ་འོང་།" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"ཁྱོད་ཀྱིས་ ཧེ་མ་ལས་ བུཊི་མངོན་གསལ་འབད་མི་སོར་སོ་ཅིག་གཡོག་བཀོལ་འདོད་ཡོད་པ་ཅིན་ ཡང་ན་ འ་ནི་འདི་ " +"བུཊི་མངོན་གསལ་འབད་མི་ཅིག་དགོཔ་མེད་པའི་དམིགས་བསལ་གྱི་ས་ཁོངས་མེན་པ་ཅིན་ འཕྲོ་མཐུད་མ་འབད། དེ་མེན་པ་" +"ཅིན་ ག་ཏེ་འབད་རུང་ GRUB གཞི་བཙུགས་འབད་དགོ།" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "ད་ལྟོ་ར་ GRUB ༢ ལུ་གཞི་བསྒྱུར་མཇུག་བསྡུ་ནི་ཨིན་ན?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"རིམ་ལུགས་འདི་ལུ་ གཞི་བཙུགས་འབད་ཡོད་པའི་ GRUB སྔོན་བཤུལ་བུཊི་མངོན་གསལ་འབད་མིའི་ནང་ལས་ཡིག་སྣོད་ཚུ་" +"འདུག ཨིན་རུང་ ད་ལྟོ་འབདཝ་ད་ ཌིཀསི་ཚུ་གུ་ GRUB ༢ བུཊི་དྲན་ཐོ་གཞི་བཙུགས་འབད་དེ་ཡོད:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"GRUB སྤྱོད་ཤུལ་འདི་ ལག་ལེན་འཐབ་སྟེ་མེདཔ་བཟུམ་ཅིག་ཡོདཔ་དང་ འདི་གི་ཚབ་ལུ་ ཌིཀསི་གུ་ཡོད་མི་ GRUB 2 " +"གཟུགས་བརྙན་ཚུ་དུས་མཐུན་བཟོ་ཞིནམ་ལས་ GRUB སྤྱོད་ཤུལ་ཡིག་སྣོད་རྙིངམ་ཚུ་ གཞི་བསྒྱུར་འབད་ནི་མཇུག་བསྡུ། ཁྱོད་" +"ཀྱིས་ GRUB 2 གཟུགས་བརྙན་ཚུ་དུས་མཐུན་མ་བཟོ་བ་ཅིན་ འདི་ཚུ་ ཐུམ་སྒྲིལ་གསརཔ་ཚུ་དང་གཅིག་ཁར་མཐུན་འགྱུར་" +"ཅན་མི་འོང་ནི་ཨིནམ་དང་ ཁྱོད་ཀྱི་རིམ་ལུགས་ཚུལ་མཐུན་སྦེ་ བུཊི་འབད་ནི་ལས་བཀག་ཆ་འབད་འོང་།" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"GRUB 2 གཞི་བཙུགས་ཀྱིས་ བཀོད་སྤྱོད་རིམ་ལུགས་ གཞན་གཅིག་གུ་ བུཊི་དྲན་ཐོ་འདི་ཚུ་ གསར་བསྐྲུན་མ་འབདཝ་" +"ལས་ GRUB 2 ལུ་ གཞི་བསྒྱུར་འབད་ཚར་དགོ།" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "ལི་ནགསི་བརྡ་བཀོད་གྲལ་ཐིག་:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"འོག་གི་ ལི་ནགསི་བརྡ་བཀོད་གྲལཐིག་འདི་ from from /etc/default/grub or the `kopt' " +"parameter in GRUB Legacy's menu.lst. ལས་ ཕྱིར་དོན་འབད་འབདཝ་ཨིན། འདི་ངེས་བདེན་ཨིནམ་" +"བདེན་སྦྱོར་འབད་ཞིནམ་ལས་ དགོས་མཁོ་ཡོད་པ་ཅིན་ལེགས་བཅོས་འབད།" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "ལི་ནགསི་སྔོན་སྒྲིག་བརྡ་བཀོད་གྲལ་ཐིག་:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"འོག་གི་ཡིག་རྒྱུན་འདི་ སྔོན་སྒྲིག་དཀར་ཆག་ཐོ་བཀོད་ཀྱི་དོན་ལུ་ ལི་ནགསི་ཚད་འཛིན་སྦེ་ལག་ལེན་འཐབ་ནི་ཨིན་ དེ་" +"འབདཝ་ད་ སླར་གསོ་ཐབས་ལམ་གྱི་དོན་ལུ་མེན།" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "kFreeBSD བརྡ་བཀོད་གྲལ་ཐིག་:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"འོག་གི་ kFreeBSD བརྡ་བཀོད་གྲལ་ཐིག་འདི་ /etc/default/grub or the `kopt' parameter " +"in GRUB Legacy's menu.lst ལས་ ཕྱིར་འདོན་འབད་འབདཝ་ཨིན། འདི་ངེས་དེན་ཨིནམ་བདེན་སྦྱོར་འབད་" +"ཞིནམ་ལས་ དགོས་མཁོ་ཡོད་པ་ཅིན་ ལེགས་བཅོས་འབད།" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "kFreeBSD སྔོན་སྒྲིག་བརྡ་བཀོད་གྲལ་ཐིག་:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"འོག་གི་ཡིག་རྒྱུན་ཚུ་ སྔོན་སྒྲིག་དཀར་ཆག་ཐོ་བཀོད་ཀྱི་དོན་ལུ་ kFreeBSD སྦེ་ལག་ལེན་འཐབ་འོང་ དེ་འབདཝད་ " +"སླར་གསོ་ཐབས་ལམ་གྱི་དོན་ལུ་ལག་ལེན་མི་འཐབ།" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map འདི་ ལོག་བཟོ་ཡོདཔ།" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"ཡིག་སྣོད་ /boot/grub/device.map འདི་ རྩ་བརྟན་ ཐབས་འཕྲུལ་མིང་ཚུ་ལག་ལེན་འཐབ་སྦེ་ལོག་འབྲི་ཡོདཔ་" +"ཨིན། གནད་དོན་མང་ཤོས་ཅིག་ནང་ འདི་གིས་ མ་འོངས་པའི་ནང་བསྒྱུར་བཅོས་འབད་ནི་མར་ཕབ་འབད་དགོཔ་་ཨིནམ་" +"དང་ GRUB གིས་ བཟོ་བཏོན་འབད་ཡོད་པའི་ བུཊི་དཀར་ཆག་ཐོ་བཀོད་ཚུ་ལུ་གནོད་སྐྱོན་འབྱུ་ཕཅུག་ནི་མི་འོང་།" + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"ག་དེ་སྦེ་རངུ་ ཁྱོད་ཀྱི་རིམ་ལུགས་ནང་ ཌིཀསི་གཅིག་ལས་ལྷགཔ་སྦེ་ཡོདཔ་ལས་ ཁྱོད་ ཐབས་འཕྲུ་ས་ཁྲ་རྙིངམ་འདི་ལུ་" +"བརྟེན་ཚུགས། ཁྱོད་ལུ་ GRUB's (hdN) འདྲེན་འཕྲུལ་ ཨང་བཏགས་ནིའི་་སྲོལ་སྒྲིག་ བུཊི་དཀར་ཆག་ཐོ་བཀོད་ཚུ་ཡོད་" +"མེད་ཞིབ་དཔྱད་འབད་ཞིནམ་ལས་ དགོས་མཁོ་དང་བསྟུན་ཏེ་ དུས་མཐུན་བཟོ།" + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"འཕྲིན་དོན་འདི་ཧ་མ་གོཝ་ ཡང་ན་ ཁྱོད་ལུ་ སྲོལ་སྒྲིག་དཀར་ཆག་ཐོ་བཀོད་གང་རངུ་མེད་པ་ཅིན་ འཕྲིན་དོན་འདི་སྣང་" +"མེད་སྦེ་བཞག།" + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "ཡང་ཅིན་ ཁྱོད་ར་ལུ་ GRUB ༢ འདི་ MBR ལས་ ནམ་ཨིན་རུང་ མངོན་གསལ་འབད་འདོད་ཡོད་པ་ཅིན་ འོག་" +#~ "གི་བརྡ་བཀོད་འདི་ རྩ་བའི་ཐོག་ལས་འབད་བཏུབ:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "GRUB གཞི་བཙུགས་འཐུས་ཤོར་བྱུང་ཡོདཔ། འཕྲོ་མཐུད་འབད་ནི་ཨིན་ན?" --- grub2-1.98+20100804.orig/debian/po/ka.po +++ grub2-1.98+20100804/debian/po/ka.po @@ -0,0 +1,376 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 18:02-0400\n" +"PO-Revision-Date: 2009-08-30 18:05+0400\n" +"Last-Translator: Aiet Kolkhi \n" +"Language-Team: Georgian \n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: georgian\n" +"X-Poedit-Country: GEORGIA\n" +"X-Poedit-SourceCharset: utf-8\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "გსურთ Chainload ჩატვირთვა menu.lst-დან?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"GRUB-ის განახლების სკრიფტები GRUB-ის ძველ ინსტალაციას გადააწყდა /boot/grub " +"მდებარეობაში." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"იმისათვის, რომ თქვენს სისტემაზე ჩანაცვლდეს ძველი GRUB-ის ინსტალაცია, " +"სასურველია /boot/grub/menu.lst ჩასწორდეს, რომ შეასრულოს GRUB 2-ის chainload " +"ჩატვირთვა თქვენი არსებული GRUB-ის ძველი ინსტალაციიდან. ეს საფეხური " +"შესაძლებელია ახლა შესრულდეს ავტომატურად." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"სასურველია მიიღოთ menu.lst-დან GRUB 2-ის chainload მეთოდით ჩატვირთვა, ასევე " +"გადაამოწმოთ, რომ თქვენი ახალი GRUB 2-ის ინსტალაცია ფუნქციონირებდეს, სანამ " +"მას პირდაპირ Master Boot Record (MBR)-ში ჩაწერდეთ." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "ლინუქსის ბრძანების სტრიქონი:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"ლინუქსის შემდეგი ბრძანება მოძიებულ იქნა /etc/default/grub-დან ან `kopt' " +"პარამეტრიდან ძველი GRUB-ის menu.lst-ში. გადაამოწმეთ, რომ იგი სწორია, ან " +"შეცვალეთ შესაბამისად." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "ლინუქსის სტანდარტული ბრძანების სტრიქონი:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"შემდეგი სტრიქონი გამოყენებულ იქნება როგორც ლინუქსის პარამეტრები მენიუს " +"სტანდარტული შენატანისათვის, მაგრამ არა აღდგენის რეჟიმისათვის." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "kFreeBSD ბრძანების სტრიქონი:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"შემდეგი kFreeBSD-ის ბრძანების სტრიქონი ამოღებულ იქნა /etc/default/grub-დან " +"ან `kopt' პარამეტრიდან ძველი GRUB-ის menu.lst-ში. გადაამოწმეთ, რომ იგი " +"სწორია, ან შეცვალეთ შესაბამისად." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "kFreeBSD-ის სტანდარტული ბრძანების სტრიქონი:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"შემდეგი სტრიქონი გამოყენებულ იქნება როგორც kFreeBSD-ს პარამეტრები მენიუს " +"სტანდარტული შენატანისათვის, მაგრამ არა აღდგენის რეჟიმისათვის." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "ნებისმიერ შემთხვევაში, როდესაც მოისურვებთ GRUB 2 პირდაპირ MBR-დან " +#~ "ჩაიტვირთოს, ამისათვის გაუშვით შემდეგი ბრძანება (root პრივილეგიებით):" --- grub2-1.98+20100804.orig/debian/po/sk.po +++ grub2-1.98+20100804/debian/po/sk.po @@ -0,0 +1,418 @@ +# Slovak translations for grub2 package. +# Copyright (C) 2010 THE grub2'S COPYRIGHT HOLDER +# This file is distributed under the same license as the grub2 package. +# Slavko , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub 2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 21:22+0000\n" +"PO-Revision-Date: 2010-12-09 17:47+0100\n" +"Last-Translator: Slavko \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Zreťaziť z menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Aktualizačné skripty GRUB zistili nastavenie starej verzie GRUB (Legacy) v /" +"boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Na nahradenie starej verzie GRUB (Legacy) vo vašom systéme, je odporúčané " +"aby bol /boot/grub/menu.lst prispôsobený na zreťazenie (chainload) " +"zavádzacieho obrazu GRUB 2 z vášho existujúceho nastavenia GRUB (Legacy). " +"Tento krok môže byť automaticky vykonaný teraz." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Je odporúčané aby ste schválili zreťazenie GRUB 2 z menu.lst a overili, že " +"nastavenie vášho nového GRUB 2 je funkčné ešte predtým, ako bude zapísaný do " +"vášho MBR (Master Boot Record)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Nech sa rozhodnete akokoľvek, neskôr môžete nahradiť obraz MBR s GRUB 2 " +"spustením nasledujúceho príkazu s právami root:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Zariadenia na inštaláciu GRUB:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Balík grub-pc je aktualizovaný. Toto menu vám umožňuje vybrať si, pre ktoré " +"zariadenia bude automaticky spustený grub-install, ak nejaké vyberiete." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Vo väčšine prípadov je odporúčané spustiť automaticky grub-install, aby ste " +"predišli tomu, že máte nainštalované rôzne verzie základného obrazu GRUB a " +"modulov GRUB, či grub.cfg." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Ak si nie ste istý, ktoré zariadenie je nastavené na zavádzanie vo vašom " +"BIOSe, často je dobrý nápad nainštalovať GRUB na všetky." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Poznámka: je možné nainštalovať GRUB aj do zavádzacieho sektora partície a v " +"zozname sú aj niektoré príslušné partície. Avšak, tento spôsob vynúti aby " +"GRUB požil mechanizmus blocklist, ktorý ho robí menej spoľahlivým a preto " +"nie je odporúčaný." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Zavádzač GRUB bol predtým nainštalovaný na disk, ktorý sa už v systéme " +"nenachádza alebo ktorého unikátny identifikátor bol z nejakého dôvodu " +"zmenený. Je dôležité zaistiť, aby nainštalovaný základný obraz GRUB mal " +"rovnakú verziu ako moduly GRUB a grub.cfg. Prosím pre istotu znova " +"skontrolujte, že je GRUB zapisovaný do správnych zavádzacích zariadení." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Zápis GRUBu do zavádzacieho zariadenia zlyhal – pokračovať?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Inštalácia GRUB zlyhala na týchto zariadeniach:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Chcete napriek tomu pokračovať? Ak áno, môže sa stať, že váš počítač " +"nenaštartuje správne." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Zápis GRUB do zavádzacieho zariadenia zlyhal – skúsiť znova?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Možno sa vám podarí nainštalovať GRUB aj na niektoré iné zariadenie, ale " +"musíte skontrolovať, že váš systém dokáže z neho zavádzať. Inak bude " +"aktualizácia zo starého GRUB (Legacy) zrušená." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Pokračovať bez inštalácie GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Zvolili ste si neinštalovať GRUB na žiadne zariadenie, ak budete pokračovať, " +"zavádzač nemusí byť správne nastavený a pri ďalšom štarte tohoto počítača " +"bude použité to, čo bolo v zavádzacom sektore predtým. Ak je v zavádzacom " +"sektore predchádzajúca verzia GRUB 2, nemusí sa jej podariť načítať moduly " +"alebo spracovať aktuálny konfiguračný súbor." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Ak už používate iný zavádzač a chcete ho zachovať, alebo ak používate " +"špeciálne prostredie, v ktorom zavádzač nepotrebujete, potom môžete " +"pokračovať. V opačnom prípade by ste mali niekde GRUB nainštalovať." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Odstrániť GRUB 2 z /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Chcete odstrániť všetky súbory GRUB 2 z /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Týmto nebude možné váš systém naštartovať, kým nebude nainštalovaný iný " +"zavádzač." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Dokončiť konverziu na GRUB 2 teraz?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Tento systém má stále nainštalované súbory zo starého zavádzača GRUB " +"(Legacy), ale má nainštalované aj nové zavádzacie záznamy GRUB 2 na týchto " +"diskoch:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Vyzerá to, že starý GRUB (Legacy) už nie je používaný, a tak môžete na " +"týchto diskoch aktualizovať obrazy GRUB 2 a dokončiť konverziu na GRUB 2 " +"odstránením súborov starého GRUB (Legacy). Ak nezaktualizuje tieto obrazy " +"GRUB 2, potom nemusia byť kompatibilné s novými balíkmi a môžu narušiť " +"správne zavádzanie systému." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Mali by ste dokončiť konverziu na GRUB 2, ibaže boli tieto zavádzacie " +"záznamy vytvorené inštaláciou GRUB 2 iného operačného systému." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linuxový príkazový riadok:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Nasledujúci príkazový riadok Linuxu bol získaný z /etc/default/grub alebo z " +"parametra 'kopt' z menu.lst starého GRUB (Legacy). Skontrolujte prosím ich " +"správnosť a prípadne ich upravte." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Predvolený Linuxový príkazový riadok:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Nasledujúci reťazec bude použitý ako Linuxové parametre predvolenej položky " +"menu, ale nie pre záchranný režim." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Príkazový riadok kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Nasledujúci príkazový riadok kFreeBSD bol získaný z /etc/default/grub alebo " +"z parametra 'kopt' z menu.lst starého GRUB (Legacy). Skontrolujte prosím ich " +"správnosť a prípadne ich upravte." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Predvolený príkazový riadok kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Nasledujúci reťazec bude použitý ako kFreeBSD parametre predvolenej položky " +"menu, ale nie pre záchranný režim." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map bol aktualizovaný" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Súbor /boot/grub/device.map bol upravený tak, aby používal stabilné mená " +"zariadení. Väčšinou to významne zníži potrebu zmien v budúcnosti a položky " +"zavádzacieho menu, generované GRUBom, by tým nemali byť ovplyvnené." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Avšak, keďže máte vo svojom systéme viac ako jeden disk, je možné, že systém " +"závisí na starej mape zariadení. Skontrolujte prosím, že nepoužívate žiadne " +"položky menu, ktoré závisia na číslovaní zariadení GRUBu (hdN) a prípadne " +"ich aktualizuje." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Ak nerozumiete tejto správe, alebo ak nemáte žiadne vlastné položky " +"zavádzacieho menu, môžete túto správu ignorovať." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Keď sa rozhodnete zavádzať GRUB 2 priamo z MBR, môžete to urobiť pomocou " +#~ "nasledujúceho príkazu (ako root):" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Inštalácia GRUB zlyhala. Pokračovať?" --- grub2-1.98+20100804.orig/debian/po/ru.po +++ grub2-1.98+20100804/debian/po/ru.po @@ -0,0 +1,422 @@ +# translation of ru.po to Russian +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Yuri Kozlov , 2007, 2008. +# Yuri Kozlov , 2009, 2010. +msgid "" +msgstr "" +"Project-Id-Version: grub2 1.98+20100804-10\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 21:22+0000\n" +"PO-Revision-Date: 2010-12-09 19:21+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Включить загрузку по цепочке (chainload) в menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Сценарии обновления обнаружили установку GRUB предыдущего поколения в /boot/" +"grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Чтобы заменить в системе версию GRUB предыдущего поколения, рекомендуется " +"исправить /boot/grub/menu.lst так, чтобы образ GRUB 2 загружался из " +"используемой установки GRUB предыдущего поколения. Это может быть сделано " +"автоматически прямо сейчас." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Рекомендуется ответить утвердительно для загрузки GRUB 2 из menu.lst по " +"цепочке и проверить, что новая настройка GRUB 2 работает так как нужно, " +"перед тем как устанавливать её непосредственно в MBR (главную загрузочную " +"запись)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"В любом случае, вы можете заменить старый образ MBR на GRUB 2 позднее с " +"помощью следующей команды, выполненной с правами суперпользователя:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Устройства, на которые устанавливается GRUB:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Выполняется обновление пакета grub-pc. Это меню позволяет вам выбрать " +"устройства, для которых нужно автоматически запустить grub-install." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"В большинстве случаев рекомендуется выполнять автоматический запуск grub-" +"install, так как это синхронизирует основной образ GRUB с модулями GRUB и " +"grub.cfg." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Если вы не знаете какое устройство указано в BIOS для загрузки, часто лучше " +"всего установить GRUB на все устройства." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Замечание: также возможно установить GRUB в загрузочную запись раздела, и " +"здесь предлагаются соответствующие разделы. Однако, это включает в GRUB " +"использование механизма блок-листа, при котором уменьшается надёжность, и " +"поэтому это не рекомендуется." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Системный загрузчик GRUB был установлен на диск, которого больше нет в " +"системе, или по какой-то причине был изменён уникальный идентификатор. Важно " +"убедиться, что установленный основной образ GRUB синхронизирован с модулями " +"GRUB и grub.cfg. Проверьте ещё раз, что GRUB записан на правильные " +"загрузочные устройства." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} МБ; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} МБ; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Не удалось записать GRUB на загрузочное устройство -- продолжить?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Не удалось установить GRUB на следующие устройства:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Продолжить, не смотря на это? Возможно, не удастся загрузить компьютер." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" +"Не удалось записать GRUB на загрузочное устройство -- попробовать ещё раз?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Вы можете установить GRUB на другое устройство, но проверьте, что компьютер " +"будет загружаться с этого устройства. Иначе, обновление со старой версии " +"GRUB Legacy будет отменено." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Продолжить без установки GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Вы отказались от установки GRUB. Если продолжите, то системный загрузчик " +"может быть неправильно настроен, и когда компьютер будет включён в следующий " +"раз, будет использоваться то, что было раньше в загрузочном секторе. Если " +"там была предыдущая версия GRUB 2, то она не сможет загрузить модули или " +"обработать текущий файл настройки." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Если у вас уже работает другой системный загрузчик и вы хотите оставить " +"выполнение как есть, или если есть специальное окружение, где не нужен " +"системный загрузчик, то продолжайте установку. Иначе, вам нужно установить " +"GRUB как-то иначе." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Удалить GRUB 2 из /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Удалить все файлы GRUB 2 из /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Если не установлен другой системный загрузчик это сделает систему " +"незагружаемой." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Завершить переход к GRUB 2?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"В системе остались файлы от старого системного загрузчика GRUB Legacy, но " +"теперь на те же диски установлена загрузочная запись GRUB 2:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Вероятно, GRUB Legacy больше не используется и вам нужно обновить образы " +"GRUB 2 на этих дисках и завершить переход к GRUB 2, удалив старые файлы GRUB " +"Legacy. Если вы не обновите данные образы GRUB 2, то они могут оказаться " +"несовместимыми с новыми пакетами и система больше не загрузится." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Обычно, вам нужно завершить переход к GRUB 2, если нет загрузочных записей, " +"созданных установкой GRUB 2 в какой-то другой операционной системе." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Командная строка Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Представленная ниже строка команд Linux была извлечена из /etc/default/grub " +"или параметра kopt старого файла GRUB menu.lst. Проверьте, что всё " +"правильно, или измените её, если требуется." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Командная строка Linux по умолчанию:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Данная строка будет использоваться в качестве параметров Linux в пункте меню " +"по умолчанию, кроме режима восстановления." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Командная строка kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Представленная ниже строка команд kFreeBSD была извлечена из /etc/default/" +"grub или параметра kopt старого файла GRUB menu.lst. Проверьте, что всё " +"правильно, или измените её, если требуется." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Командная строка kFreeBSD по умолчанию:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Данная строка будет использоваться в качестве параметров kFreeBSD в пункте " +"меню по умолчанию, кроме режима восстановления." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "Пересоздан файл /boot/grub/device.map" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Файл /boot/grub/device.map перезаписан, согласно имеющимся стабильным именам " +"устройств. В большинстве случаев, это должно значительно сократить " +"необходимость изменения его в будущем, и пункты загрузочного меню, " +"созданного GRUB, не должны быть затронуты." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Однако, так как у вас в системе более одного диска, возможно, что была " +"зависимость от старого именования устройств. Проверьте, что во всех " +"настроенных вручную пунктах загрузочного меню используется нумерация " +"устройств GRUB (hd№), и измените их, если нужно." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Если вы не понимаете о чём речь, или у вас нет настроенных вручную пунктов " +"загрузочного меню, то игнорируйте это сообщение." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "В любом случае, если вы хотите, чтобы GRUB 2 загружался непосредственно " +#~ "из MBR, выполните следующую команду (имея права суперпользователя):" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Установка GRUB завершилась неудачно. Продолжить?" --- grub2-1.98+20100804.orig/debian/po/eo.po +++ grub2-1.98+20100804/debian/po/eo.po @@ -0,0 +1,438 @@ +# grub2 po-debconf translation to Esperanto +# Copyright (C) 2010 Software in the Public Interest +# This file is distributed under the same license as the grub2 package. +# Felipe Castro , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2 1.98+20100710-2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 18:02-0400\n" +"PO-Revision-Date: 2010-09-06 14:08-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Ĉu ĉen-ŝargi (chainload) el menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Aktualigaj skriptoj de GRUB detektis agordon de la malaktuala GRUB en /boot/" +"grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Por anstataŭigi la malaktualan version de GRUB en via sistemo, oni " +"rekomendas ke /boot/grub/menu.lst estu alĝustata por ĉen-ŝargi je GRUB 2 el " +"via ekzistanta agordo de malaktuala GRUB. Tiu ĉi paŝo povas esti aŭtomate " +"farata nun." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Oni rekomendas ke vi akceptu ĉen-ŝargi je GRUB 2 el menu.lst, kaj kontrolu " +"ĉu via nova agordo de GRUB 2 bone funkcias por vi, antaŭ ol rekte instali " +"ĝin en vian MBR (Mastra Ekŝarga Registro)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "GRUB malsukcesis instali al la jenaj aparatoj:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUB malsukcesis instali al la jenaj aparatoj:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Ĉu vi volas daŭrigi iel ajn? Se jes, eble via komputilo ne ekŝargiĝu ĝuste." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "La instalado de GRUB malsukcesis. Ĉu reprovi?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Vi povas instali GRUB en iu alia aparato, kvankam vi devos kontroli ĉu via " +"sistemo ekŝargiĝos el tiu aparato. Alimaniere, la aktualigo el malnova GRUB " +"estos nuligata." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Ĉu daŭrigi sen instali GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is an " +#| "earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Vi elektis ne instali GRUB al iu ajn aparato. Se vi daŭrigas, la ekŝargilo " +"eble ne estos ĝuste akomodita, kaj kiam via komputilo sekve ekŝaltos, ĝi " +"uzos kion ajn estu antaŭe en la ekŝarga sektoro. Se ekzistas pli frua versio " +"de GRUB 2 en la ekŝarga sektoro, ĝi eble ne povos ŝargi je moduloj aŭ trakti " +"la nunan akomodo-dosieron." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Se vi jam lanĉis malsaman ekŝargilon kaj vi volas daŭrigi kun tio, aŭ se tio " +"ĉi estas speciala medio kie vi ne bezonas ekŝargilon, tiel vi devos daŭrigi " +"iel ajn. Alie, vi devos instali GRUB ien." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Ĉu finigi konverton al GRUB 2 nun?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Tiu ĉi sistemo ankoraŭ havas dosierojn el la malaktuala ekŝargilo GRUB " +"instalita, sed ĝi nun ankaŭ havas ekŝargajn registrojn de GRUB 2 instalitaj " +"en tiuj ĉi diskoj: " + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Ŝajnas ke la malaktuala GRUB ne plu estas uzata, kaj ke vi devos anstataŭe " +"aktualigi al bildoj GRUB 2 en tiuj ĉi diskoj, kaj finigi la konverton al " +"GRUB 2 forigante malnovajn malaktualajn dosierojn GRUB. Se vi ne aktualigos " +"tiujn ĉi bildojn GRUB 2, tiel ili povos esti malkongruaj al la novaj pakoj " +"igante ke via sistemo ĉesu ekŝargi senprobleme." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Vi devos ordinare finigi la konverton al GRUB 2, malkondiĉe ke tiuj ĉi " +"ekŝarg-registroj estu kreitaj de sistemo kun GRUB 2 instalita, en alia " +"operaciuma sistemo." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linuksa ordono-linio:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"La jena linuksa ordono-linio estas elprenita el /etc/default/grub aŭ el la " +"parametro 'kopt' en la menu.lst de malaktuala GRUB. Bonvolu kontroli ĉu tio " +"estas korekte, kaj modifu ĝin laŭ neceso." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Linuksa implicita ordon-linio:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"La jena ĉeno estos uzata kiel linuksajn parametrojn por la ordinara menuero " +"sed ne por la restariga reĝimo." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Ordon-linio de kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"La jena linuksa ordono-linio de kFreeBSD estas elprenita el /etc/default/" +"grub aŭ el la parametro 'kopt' en la menu.lst de malaktuala GRUB. Bonvolu " +"kontroli ĉu tio estas korekte, kaj modifu ĝin laŭ neceso." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Implicita ordon-linio de kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"La jena ĉeno estos uzata kiel parametrojn de kFreeBSD por la ordinara " +"menuero sed ne por la restariga reĝimo." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map estas regenerita" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"La dosiero /boot/grub/device.map estas reskribita por uzi stabilajn aparat-" +"nomojn. En la plejparto de la situacioj, tio devus multe malpliigi la " +"bezonon ŝanĝi ĝin estonte, kaj ekŝarg-menueroj kreitaj de GRUB ne devos esti " +"influataj." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Tamen, ĉar vi havas pli ol unu disko en via sistemo, eblas ke vi dependas de " +"malnova aparat-mapo. Bonvolu kontroli ĉu vi havas iun personigitan ekŝarg-" +"menueron, kiu surbaziĝas en disk-numerigo de GRUB (hdN), kaj ĝisdatigu ĝin " +"laŭ neceso." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Se vi ne komprenas tiun ĉi mesaĝon, aŭ se vi havas neniun personigitan " +"menueron, vi povas preteratenti ĉi tiun mesaĝon." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Ĉiukondiĉe, kiam vi volos ke GRUB 2 estu rekte ŝargata el MBR, vi povos " +#~ "fari tion per lanĉado (kie root) de la jena ordono:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "La instalado de GRUB malsukcesis. Ĉu daŭrigi?" --- grub2-1.98+20100804.orig/debian/po/kk.po +++ grub2-1.98+20100804/debian/po/kk.po @@ -0,0 +1,433 @@ +# Kazakh translation for grub2. +# Copyright (C) 2010 The Stardict team +# This file is distributed under the same license as the PACKAGE package. +# Baurzhan Muftakhidinov , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: master\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 18:02-0400\n" +"PO-Revision-Date: 2010-09-27 15:51+0600\n" +"Last-Translator: Baurzhan Muftakhidinov \n" +"Language-Team: Kazakh \n" +"Language: kk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Poedit-Language: Kazakh\n" +"X-Poedit-Country: KAZAKHSTAN\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "menu.lst ішінен тізбектей жүктелу керек пе?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "GRUB жаңарту скриптері /boot/grub ішінен орнатылған GRUB Legacy тапты." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"GRUB Legacy нұсқасын алмастыру үшін, сіздің бар болып тұрған GRUB Legacy " +"орнатудың /boot/grub/menu.lst файлынан GRUB 2 жүктеушісін тізбектей жүктеуге " +"баптауға ұсынылады. Бұл қадам қазір автоматты түрде жасалуы мүмкін." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"GRUB 2 алдымен menu.lst ішінен тізбектей жүктеле алатынына көз жеткізіңіз, " +"содан кейін ғана оны MBR (Басты жүктелу жазбасына) орнату ұсынылады." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "GRUB келесі құрылғыларға орнату сәтсіз аяқталды:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} МБ; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} МБ; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUB келесі құрылғыларға орнату сәтсіз аяқталды:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Бәрібір жалғастыруды қалайсыз ба? Нәтижесінде компьютеріңіз дұрыс жүктелмеуі " +"мүмкін." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "GRUB орнату сәтсіз. Қайталау керек пе?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Сіз оған қоса GRUB-ты басқа да құрылғыларға орната аласыз, бірақ жүйеңіз ол " +"кезде жүктеле алатынына көз жеткізіңіз. Болмаса, GRUB Legacy нұсқасынан " +"жаңартудан бас тартылады." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "GRUB орнатпай-ақ жалғастыру керек пе?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is an " +#| "earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Сіз GRUB-ты ешбір құрылғыға орнатпауды қалағансыз. Жалғастырсаңыз, жүктеуші " +"дұрыс бапталмауы мүмкін, және компьютеріңіз келесі рет жүктелген кезде, " +"жүктелу жазбасында оған дейін болған нәрсені қолданады. Егер ол жүктелу " +"жазбасында GRUB 2 ертерек шыққан нұсқасы болса, ол модульдерді жүктей алмай, " +"не ағымдағы баптаулар файлын талдай алмайтын болуы әдбен мүмкін." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Егер сіз басқа жүктеушіні қолданып, оны жалғастыруды қаласаңыз, немесе бұл - " +"жүктеушіні талап етпейтін ерекше жүйе болса, олда жалғастырыңыз. Болмаса, " +"қайда болса да, GRUB орнатуыңыз керек." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "GRUB 2-ге айналдыруды қазір аяқтау керек пе?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Жүйеде әлі де GRUB Legacy жүктеушісі орнатылған, оған қоса GRUB 2 жүктелу " +"жазбалары келесі дискілерге орнатылған:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"GRUB Legacy енді қолданылмайтын сияқты, орнына GRUB 2 бейнелерін ол " +"дискілерде жаңартып, ескі GRUB Legacy файлдарын өшіріңіз. GRUB 2 бейнелерін " +"жаңартпасаңыз, олар жаңа дестелермен үйлеспей, жүйеңіз дұрыс жүктелмеуі " +"мүмкін." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"GRUB 2 дейін жаңартуды аяқтауыңыз керек, егер осы жүктелу жазбалары басқа " +"жүйеде орнатылған GRUB 2 көмегімен жасалмаған болса." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linux командалық жолы:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Келесі Linux командасы /etc/default/grub ішінен не GRUB Legacy menu.lst " +"ішіндегі `kopt' параметрінен алынды. Оның дұрыстығын тексеріп, керек болса, " +"өзгертіңіз." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Linux бастапқы командалық жолы:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Келесі жол Linux параметрлері бастапқы мәзірі үшін, бірақ қалпына келтіру " +"үшін емес, қолданылатын болады." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "kFreeBSD командалық жолы:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Келесі kFreeBSD командасы /etc/default/grub ішінен не GRUB Legacy menu.lst " +"ішіндегі `kopt' параметрінен алынды. Оның дұрыстығын тексеріп, керек болса, " +"өзгертіңіз." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "kFreeBSD бастапқы командалық жолы:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Келесі жол kFreeBSD параметрлері бастапқы мәзірі үшін, бірақ қалпына келтіру " +"үшін емес, қолданылатын болады." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map қайта құрылды" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"/boot/grub/device.map файлы құрылғылардың тұрақты аттарын қолданатындай " +"түзетілген. Көп жағдайда, болашақта өзгерту керек емес болады, және GRUB " +"жасаған мәзір элементтері өзгеріссіз-ақ қалады." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Алайда, жүйеңізде бірден көп диск болған соң, ескі device map-қа тәуелді " +"болуыңыз мүмкін. GRUB-ң (hdN) түріндегі дисктер нөмірленуі мәзірде жоқ " +"болуына көз жеткізіңіз, керек болса, оларды жаңартыңыз." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Егер сіз осы хабарламаны түсінбесеңіз, немесе сізде таңдауыңызша жүктелу " +"мәзірінің элементтері жоқ болса, бұл хабарламаны елемеңіз." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Қалай болса да, GRUB 2 тура MBR ішінен жүктелуді қалайтын болсаңыз, сол " +#~ "кезде root атынан келесі команданы орындаңыз:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "GRUB орнату сәтсіз. Жалғастыру керек пе?" --- grub2-1.98+20100804.orig/debian/po/zh_CN.po +++ grub2-1.98+20100804/debian/po/zh_CN.po @@ -0,0 +1,387 @@ +# Chinese translations for grub2 po-debconf +# PACKAGE 软件包的简体中文翻译. +# Copyright (C) 2010 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# YunQiang Su , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2-po-debconf master\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 21:22+0000\n" +"PO-Revision-Date: 2010-12-09 09:50+0800\n" +"Last-Translator: YunQiang Su \n" +"Language-Team: Chinese (simplified) \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "从 menu.lst 进行 chainload?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "GRUB 升级脚本在 /boot/grub 探测到了已安装的 GRUB Legacy。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"为了取代您系统上的 GRUB Legacy,推荐调整 /boot/grub/menu.lst 为从现有的 GRUB " +"Legacy 设置中加载 GRUB 2 引导镜像。现在可以自动执行这个操作。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"推荐您接受从 menu.lst 中 chainload GRUB 2,并且在将 GRUB 2 直接安装到 MBR (主" +"引导记录,Master Boot Record) 之前确定新的 GRUB 2 设置可以工作。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"无论现在做什么样的决定,您以后都可以使用 root 身份来运行如下命令来使用 GRUB " +"2 来代替旧的 MBR 映像:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "GRUB 安装设备:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"grub-pc 包已经升级。此菜单允许您选择在哪个设备上自动运行 grub-install,如果有" +"的话。" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"在大多数情况下推荐自动运行 grub-install,以避免安装的 GRUB 核心映像与 GRUB 模" +"块或 grub.cfg 不同步。" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"如果不确定 BIOS 使用哪个驱动器作为主引导,将 GRUB 安装到所有这些驱动器是一个" +"不错的主意。" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"注意:也可以将 GRUB 安装到分区的引导记录,这里提供了一些适当的分区。然而,这" +"强制 GRUB 使用黑名单机制,会造成可靠性降低,因此不推荐使用。" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"GRUB 引导器先前安装到了一个消失了的磁盘上,或者它的唯一标识符由于某些原因变化" +"了。确保安装的 GRUB 核心映像和 GRUB 模块及 grub.cfg 的同步非常重要。请再次检" +"查以确保 GRUB 安装到了适当的引导设备。" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "将 GRUB 写入引导设备失败 - 要继续吗?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUB 安装到如下设备时失败。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "仍然想要继续?如果这样,您的计算机可能不能正常启动。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "将 GRUB 写入引导设备失败 - 要重新尝试吗?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"您可能可以安装 GRUB 到其它设备,尽管您需要明确,您的系统将从那个设备启动。否" +"则,从 GRUB Legacy 的升级将被取消。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "不安装 GRUB 并且继续?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"您没有选择向任何设备安装 GRUB。如果继续,引导器可能不能正确配置,当您的计算机" +"下次启动时,它将使用引导扇区中先前的内容。如果引导扇区中有早期版本的 GRUB 2," +"其可能不能加载模块或者处理当前配置文件。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"如果您已经使用了另外一个引导器并且想继续这样做,或者如果这是一个特殊的不需要" +"引导器的环境,这样您可以仍然继续。否则,您应该在某处安装 GRUB。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "从 /boot/grub 移除 GRUB 2 ?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "确定想从 /boot/grub 移除全部 GRUB 2 文件吗?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "这会使系统不能引导,除非另外安装其它引导器。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "现在完成到 GRUB 2 的转换?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"此系统仍然有 GRUB Legacy 引导器安装的文件,但是现在也在磁盘上安装了 GRUB 2 引" +"导记录:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"好像 GRUB Legacy 已经不再使用了,并且您应该在这些磁盘上转而升级到 GRUB 2 映" +"像,并且通过删除旧的 GRUB Legacy 文件来完成到 GRUB 2 的转换。如果不升级这些 " +"GRUB 2 映像,他们将可能不能与新包兼容而造成您的系统不能正常引导。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"您通常应该完成到 GRUB 2 的转换,除非这些引导记录是由安装到其它操作系统上的 " +"GRUB 2 创建的。" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linux 命令行:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"如下 Linux 命令行已被从 /etc/default/grub 或 GRUB Legacy 的 menu.lst 中的 " +"`kopt' 参数中提取。请确定那是正确的,并且根据需要修改它。" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Linux 默认命令行:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "如下字符串将被用于默认菜单项的 Linux 参数,但是不会用于恢复模式。" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "kFreeBSD 参数:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"如下 kFreeBSD 命令行参数已经从 /etc/default/grub 或者 GRUB Legacy 的 menu." +"lst 中的 `kopt' 参数中提取。请确定那是正确的,并且根据需要修改它。" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "kFreeBSD 默认命令行:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "如下字符串将用于默认菜单项的 kFreeBSD 参数,但不会用于恢复模式。" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map 已经生成" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"文件 /boot/grub/device.map 已经重写以使用稳定的设备名。多数情况下,这应该显著" +"地减少以后修改它的需要,并且 GRUB 产生的引导菜单项不会受影响。" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"然而,因为您的系统上有多个磁盘,系统可能依赖旧的设备映射。请检查您是否有任何" +"自定义的依赖 GRUB 的 (hdN) 驱动器号的引导菜单项,如果需要请更新它们。" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "如果您不理解此消息,或者没有任何自定义的引导菜单项,您可以忽略此消息。" + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "无论何种情况,当您想直接从 MBR 加载 GRUB 2 时,您可以通过以 root 身份执行" +#~ "如下命令来实现:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "GRUB 安装失败。仍然继续?" --- grub2-1.98+20100804.orig/debian/po/ro.po +++ grub2-1.98+20100804/debian/po/ro.po @@ -0,0 +1,510 @@ +# translation of ro.po to Romanian +# Romanian translations for grub package +# Traducerea în limba română pentru pachetul grub. +# Copyright (C) 2007 THE grub'S COPYRIGHT HOLDER +# This file is distributed under the same license as the grub package. +# +# Eddy Petrișor , 2007,2008. +# ioan-eugen STAN , 2010. +# Lucian Adrian Grijincu , 2010. +msgid "" +msgstr "" +"Project-Id-Version: ro\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 21:22+0000\n" +"PO-Revision-Date: 2010-08-31 20:58+0300\n" +"Last-Translator: ioan-eugen STAN \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: 2\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Încărcare înlănțuită din menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Scripturile de înnoire ale lui GRUB au detectat în /boot/grub o configurație " +"pentru vechiul GRUB." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Pentru a înlocui vechea versiune a lui GRUB, se recomandă modificarea " +"fișierului /boot/grub/menu.lst astfel încât GRUB 2 sa fie încărcat prin " +"înlănțuire din vechea configurație. Acest pas poate fi făcut chiar acum în " +"mod automat." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Este recomandat să acceptați înlănțuirea lui GRUB 2 din menu.lst și să " +"verificați că noua configurație pentru GRUB 2 funcționează, înainte de a o " +"instala în înregistrarea principală de boot (MBR)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "A eșuat instalarea GRUB pe următoarele dispozitive:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MO; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} MO; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +#, fuzzy +#| msgid "GRUB installation failed. Continue?" +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Instalarea GRUB a eșuat. Continuați?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "A eșuat instalarea GRUB pe următoarele dispozitive:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +#, fuzzy +#| msgid "" +#| "Do you want to continue anyway? If you do, your computer may not start " +#| "up properly." +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Doriți să continuați? Dacă da, este posibil ca sistemul să nu pornească " +"corespunzător." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "A eșuat instalarea GRUB. Reîncercați?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "" +#| "You may be able to install GRUB to some other device, although you should " +#| "check that your system will boot from that device. Otherwise, the " +#| "upgrade from GRUB Legacy will be cancelled." +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Puteți instala GRUB pe alt dispozitiv, însă ar trebui să verificați dacă " +"sistemul va porni de pe acel dispozitiv. Altfel, înnoirea de la GRUB Legacy " +"va fi anulată." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Continuați fără să instalați GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is " +#| "an earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Ați ales să nu instalați GRUB pe niciun dispozitiv. Dacă veți continua, este " +"posibil ca încărcătorul de sistem să nu fie configurat corespunzător, iar la " +"pornirea calculatorului acesta va folosi ce se afla deja în sectorul de " +"pornire. Dacă există o versiune mai veche de GRUB 2 în sectorul de pornire " +"este posibil ca aceasta să nu poată încărca modulele sau fișierul curent de " +"configurare. " + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Dacă rulați deja un alt încărcător de sistem și doriți să continuați, sau " +"dacă acesta este un mediu special în care nu aveți nevoie de încărcător de " +"sistem, atunci ar trebui să continuați. Altfel, instalați GRUB undeva." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Terminați acum conversia la GRUB 2?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Acest sistem mai are instalate fișiere din GRUB Legacy, dar acum are " +"instalat și GRUB 2 pe aceste discuri:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +#, fuzzy +#| msgid "" +#| "It seems likely that GRUB Legacy is no longer in use, and that you should " +#| "instead upgrade the GRUB 2 images on these disks and finish the " +#| "conversion to GRUB 2 by removing old GRUB Legacy files. If you do not " +#| "upgrade these GRUB 2 images, then they may be incompatible with the new " +#| "packages and cause your system to stop booting properly." +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Este foarte probabil ca GRUB Legacy să nu mai fie folosit și ar trebui să " +"folosiți GRUB 2 pe aceste discuri și să definitivați trecerea la GRUB 2 " +"îndepărtând fișierele GRUB Legacy vechi. Dacă nu actualizați aceste imagini " +"GRUB 2, ele ar putea fi incompatibile cu noile pachete și ar putea împiedica " +"sistemul să pornească corespunzător." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"În general este bine să încheiați trecerea la GRUB 2, lăsând acele fișiere " +"doar dacă au fost create de o instalare GRUB 2 a altui sistem de operare." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linia de comandă Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Această linie de comandă Linux a fost extrasă din /etc/default/grub sau " +"parametrul „kopt” din fișierul menu.lst al vechiului GRUB. Verificați " +"corectitudinea acesteia și corectați-o, dacă este nevoie." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Linia de comandă implicită Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Următorul șir va fi folosit ca parametru pentru Linux pentru poziția " +"implicită din meniu, dar nu și pentru cea de recuperare." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Linia de comandă kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Această linie de comandă kFreeBSD a fost extrasă din /etc/default/grub sau " +"parametrul „kopt” din fișierul menu.lst al vechiului GRUB. Verificați " +"corectitudinea acesteia și corectați-o, dacă este nevoie." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Linia de comandă implicită kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Următorul șir va fi folosit ca parametru pentru kFreeBSD pentru poziția " +"implicită din meniu, dar nu și pentru cea de recuperare." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map a fost regenerat" + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "The file /boot/grub/device.map has been rewritten to use stable device " +#| "names. In most cases, this should significantly reduce the need to " +#| "change it in future, and boot menu entries generated by GRUB should not " +#| "be affected." +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Fișierul /boot/grub/device.map a fost rescris să folosească nume stabile de " +"dispozitive. În majoritatea cazurilor, acest lucru va reduce semnificativ " +"nevoia de a le modifica ulterior și intrările în meniu generate de grub ar " +"trebui să fie neafectate. " + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Totuși, deoarece există mai mult de un disc în sistem, este posibil să fi " +"depins de vechea hartă de dispozitive. Verificați dacă aveți intrări " +"personalizate în meniu care depind de numerotarea GRUB (hdN) și actualizați-" +"le dacă este cazul." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Dacă nu înțelegeți acest mesaj sau nu aveți intrări personalizate în meniu, " +"îl puteți ignora." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "În orice caz, atunci când veți dori ca GRUB 2 sa fie încărcat direct din " +#~ "MBR, puteți rula (ca root) comanda următoare:" + +#~ msgid "GRUB 1.95 numbering scheme transition" +#~ msgstr "Tranziția la schema de numerotare pentru GRUB 1.95" + +#~ msgid "" +#~ "As of version 1.95, GRUB 2 has changed its numbering scheme. Partitions " +#~ "are now counted starting from 1 rather than 0. This is to make it " +#~ "consistent with device names of Linux and the other kernels used in " +#~ "Debian. For example, when using Linux as the kernel, \"(hd0,1)\" refers " +#~ "to the same partition as the /dev/sda1 device node." +#~ msgstr "" +#~ "Începând cu versiunea 1.95, GRUB 2 și-a schimbat schema de numerotare. " +#~ "Partițiile sunt acum numerotate începând de la 1 (în loc de 0). Acest " +#~ "lucru este consecvent cu numele de dispozitive ale Linux-ului și a altor " +#~ "nuclee folosite în Debian. De exemplu, când se folosește nucleul Linux, " +#~ "„(hd0,1)” se referă la aceiași partiție ca și nodul de dispozitiv /dev/" +#~ "sda1." + +#~ msgid "" +#~ "Because of this, there's a chance your system becomes unbootable if " +#~ "update-grub(8) is run before GRUB is updated, generating a grub.cfg file " +#~ "that your installed GRUB won't yet be able to parse correctly. To ensure " +#~ "your system will be able to boot, you have to:" +#~ msgstr "" +#~ "De aceea, există riscul ca sistemul să nu mai pornească dacă update-grub" +#~ "(8) este rulat înainte ca GRUB să fie actualizat, generând astfel un " +#~ "fișier grub.cfg pe care GRUB-ul instalat nu-l va putea încă analiza " +#~ "corect. Pentru a vă asigura că sistemul va putea porni, va trebui să:" + +#~ msgid "" +#~ " - Reinstall GRUB (typically, by running grub-install).\n" +#~ " - Rerun update-grub to generate a new grub.cfg." +#~ msgstr "" +#~ " - Reinstalați GRUB (în mod normal, prin rularea lui grub-install).\n" +#~ " - Rulați din nou update-grub pentru a genera un nou grub.cfg." --- grub2-1.98+20100804.orig/debian/po/ast.po +++ grub2-1.98+20100804/debian/po/ast.po @@ -0,0 +1,438 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 18:02-0400\n" +"PO-Revision-Date: 2010-08-09 09:23+0100\n" +"Last-Translator: maacub \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "¿Cadena de carga dende menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"El scripts d'actualización GRUB detectó una configuración GRUB Legacy en /" +"boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Col fin de camudar la versión Legacy de GRUB nel to sistema, ye recomendable " +"que /boot/grub/menu.lst seya axustáu a la cadena de carga GRUB 2 dende la to " +"configuración Legacy GRUB existente. Esti pasu puede ser fechu " +"automáticamente agora." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Ye recomendable que aceptes la cadena de carga GRUB 2 dende'l menu.lst, y " +"compruebes que la to nueva configuración de GRUB 2 ye funcional pa ti, " +"anantes de que lo instales directamente nel to MBR (Master Boot Record)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "Falló GRUB al instalar nos siguientes preseos:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Falló GRUB al instalar nos siguientes preseos:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"¿Quies siguir igualmente? Si quies, el to ordenador podría nun arrancar bien." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Falló la instalación de GRUB. ¿Intentalo otra vegada?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Puedes instalar GRUB a otru preséu, aunque deberíes comprobar que'l to " +"sistema arrancará dende esi preséu. De lo contrario, l'anovamientu de GRUB " +"encaboxarase." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "¿Siguir ensin instalar GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is an " +#| "earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Escoyistes nun instalar GRUB en dengún preséu. De siguir, el xestor " +"d'arranque podría nun tar configuráu dafechu, y nel siguiente aniciu del " +"ordenador usarás lo que teníes previamente nel sector d'arranque. Si hai un " +"versión anterior de GRUB 2 nel sector d'arranque, podría ser capaz de cargar " +"módulos o remanar el ficheru de configuración actual." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Si ya tas executando un xestor d'arranque distintu y quies siguir " +"faciéndolo, o si ye un ambiente especial onde nun necesites un xestor " +"d'arranque, entós puedes siguir. D'otra miente, deberíes instalar GRUB en " +"dalgún sitiu." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "¿Finar agora conversión a GRUB 2?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Esti sistema tovía tien ficheros del xestor d'arranque GRUB instaláu, pero " +"agora tamién registros d'arranque GRUB 2 instaláu n'estos discos:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Parez probable que GRUB ya nun ta n'usu, y que deberíes anovar les imáxenes " +"de GRUB 2 d'estos discos y finar la conversión a GRUB 2, desaniciando vieyos " +"ficheros heredaos de GRUB. Si nun anoves estes imáxenes de GRUB, entós " +"pueden ser incompatibles colos nuevos paquetes y facer que'l to sistema nun " +"arranque correutamente." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"En xeneral, deberíes finar la conversión a GRUB 2 a menos qu'estos rexistros " +"d'arranque fueren creaos por una instalación de GRUB 2 en dalgún otru " +"sistema operativu." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linia comandos Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"La siguiente llinia de comandu Linux fue estrayía dende /etc/default/grub o " +"del parámetru `kopt' nel menú Legacy GRUB menu.lst. Por favor, comprueba que " +"ye correuto, y modificalo si ye necesario." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Linia comandos por defeutu de Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"La siguiente cadena será usada como parámetros Linux pa la entrada del menú " +"por defeutu, pero non pal mou recuperación." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Linia comandos kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"La siguiente llinia de comandu kFreeBSD fue estrayía dende /etc/default/grub " +"o del parámetru `kopt' nel menú Legacy GRUB menu.lst. Por favor, comprueba " +"que ye correuto, y modificalo si ye necesario." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Llínia comandos por defeutu kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"La siguiente cadena será usada cómo parametros kFreeBSD pa la entrada del " +"menú por defeutu, pero non pal mou recuperación." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map foi xeneráu" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"El ficheru /boot/grub/device.map foi sobroescritu pa usar nomes estables pal " +"preséu. Na mayoría de los casos, esto va a amenorgar considerablemente la " +"necesidá de camudar nel futuru, y les entraes del menú d'arranque GRUB " +"xeneraos nun deberíen vese afectaes." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"En too casu, ya tienes más d'un discu nel to sistema, ye posible que " +"dependieres del mapa antigüu del preséu. Por favor, comprueba si tienes o " +"non entraes d'arranque del menú personalizaes que se basen na númberación de " +"la unidá GRUB's (hdN), y anovalos si ye necesario." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Si nun entiendes esti mensax, o si nun tienes nenguna entrada personalizada " +"nel menú d'arranque, puedes ignorar esti mensax." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "En cualisquier casu, cuando quieras que GRUB 2 seya cargáu directamente " +#~ "dende'l MBR, puedes facelo col siguiente comandu (como root):" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "La instalación de GRUB falló. ¿Siguir?" --- grub2-1.98+20100804.orig/debian/po/ar.po +++ grub2-1.98+20100804/debian/po/ar.po @@ -0,0 +1,435 @@ +# translation of grub.ar.po to Arabic +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Ossama M. Khayat , 2008, 2009, 2010. +msgid "" +msgstr "" +"Project-Id-Version: grub.ar\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 18:02-0400\n" +"PO-Revision-Date: 2010-07-16 02:38+0300\n" +"Last-Translator: Ossama M. Khayat \n" +"Language-Team: Arabic \n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "تفعيل التحميل التسلسلي من menu.lst؟" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "عثرت بريمجيات ترقية GRUB على إعداد سابق في /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"لتستبدل النسخة السابقة من GRUB في نظامك، يُستحسن تعديل الملف /boot/grub/menu." +"lst لتحميل GRUB 2 تسلسلياً من إعداد GRUB السابق. ويمكن تنفيذ هذه الخطوة " +"تلقائياً الآن." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"يُستحسن أن تقبل التحميل التسلسلي لمدير الإقلاع GRUB من خلال الملف menu.lst، " +"وتحقق من أن إعداد GRUB 2 صالح لاستخدامك، قبل أن تُبّته مباشرة على سجل الإقلاع " +"الرئيسي MBR الخاص بك." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "تعذر تثبيت GRUB على الأجهزة التالية:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +#, fuzzy +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} م.ب.، ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} م.ب.، ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "تعذر تثبيت GRUB على الأجهزة التالية:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"هل تريد الاستمرار على أي حال؟ إن فعلت، فقد لا يتمكن جهازك من بدء التشغيل كما " +"يجب." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "تعذر تثبيت GRUB. تريد المحاولة مجدداً؟" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"قد تتمكن من تثبيت GRUB على جهاز آخر، لكن يجب أن تتحقق من إمكانية نظامك " +"الإقلاع من ذلك الجهاز. وإن لم يكن كذلك، فسيتم إلغاء الترقية من نظام GRUB " +"القديم." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "تريد الاستمرار دون تثبيت GRUB؟" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is an " +#| "earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"اخترت عدم تثبيت GRUB على أية جهاز. إن استمريت، فقد لا يتم تهيئة محمّل الإقلاع " +"بشكل صحيح، كما يستخدم حاسبك أي نظام موجود على قطاع الإقلاع مسبقاً. إن كان " +"هناك نسخة سابقة من GRUB 2 في قطاع الإقلاع، فقد لا يستطيع تحميل الوحدات أو " +"قراءة ملف التهيئة الحالي بشكل صحيح." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"إن كنت تستخدم محمل إقلاع آخر وتريد الاستمرار باستخدامه، أو إن كانت لديك بيئة " +"عمل خاصة حيث لا تحتاج إلى محمل إقلاع، فيجب عليك الاستمرار على أي حال. وإلا " +"يجب أن تقوم بتثبيت GRUB في مكان ما." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "إنهاء التحويل إلى GRUB 2 الآن؟" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"لا زال النظام يحتوي على ملفات GRUB قديمة مثبتة، كما يحتوي أيضاً على سجلات " +"إقلاع GRUB 2 على هذه الأقراص:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"يبدو أن GRUB القديم لم يعد مستخدماً، ويجب عليك الترقية إلى GRUB 2 وإنهاء " +"التحويل إلى GRUB 2 بإزالة ملفات GRUB القديمة. وإن لم تقم بعملية الترقية هذه، " +"فقد لا يكون نظام الإقلاع متوافقاً مع الحزم الجديدة ويتسبب ذلك بعدم إقلاع نظام " +"كما هو مفترض." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"بشكل عام، يجب عليك إنهاء التحويل إلى GRUB 2 إلا إن كانت سجلات الإقلاع هذه قد " +"أنشأها تثبيت GRUB 2 لنظام تشغيل آخر." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "سطر أوامر لينكس:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"سطر أوامر لينكس التالي تم استخراجه من /etc/default/grub أو\n" +"مُعطى `kopt' في ملف menu.lst الخاص بحزمة GRUB القديمة. رجاءً تحقق من\n" +"صحته وقم بتعديله إن كانت هناك ضرورة." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "سطر أوامر لينكس الافتراضي:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"سيتم استخدام سلسلة الحروف التالية كمُعطيات لتشغيل النظام لمُدخل القائمة\n" +"الافتراضي ولكن ليس لوضع الإنقاذ." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "سطر أوامر KFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"سطر أوامر KFreeBSD التالي تم استخراجه من /etc/default/grub أو\n" +"مُعطى `kopt' في ملف menu.lst الخاص بحزمة GRUB القديمة. رجاءً تحقق من صحته وقم " +"بتعديله إن كانت هناك ضرورة." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "سطر أوامر KFreeBSD الافتراضي:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"سيتم استخدام النص التالي كمُعطى KFreeBSD لمُدخل القائمة\n" +"الافتراضي ولكن ليس لوضع الإنقاذ." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "تم إعادة إنشاء /boot/grub/device.map" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"تم إعادة كتابة الملف /boot/grub/device.map ليستخدم أسماء الأجهزة الصحيحة. في " +"معظم الحالات، سيقلل هذا العمل الحاجة إلى التغييرات بشكل كبير في المستقبل، " +"كما أن مُدخلات قائمة إقلاع GRUB الناتجة لن تتأثر." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"على كل، حيث أنه لديك اكثر من قرص في نظامك، من المحتمل أنه كان يعتمد على " +"خريطة الأجهزة القديمة. فالرجاء التحقق مما إذا كان لديك أية مُدخلات قائمة " +"مخصصة تعتمد على طريقة GRUB لترقيم الأجهزة، (hdN)، وقم بتحديثها إن كانت " +"ضرورياً." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"إن لم تعرف مقصود هذه الرسالة، أو إن لم يكن لديك أية مُدخلات مُخصصة في القائمة، " +"يمكنك تجاهل هذه الرسالة." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "في أي من الحالتين، متى ما أردت تحميل GRUB 2 مباشرة من سجل الإقلاع الرئيسي " +#~ "MBR، يمكنك ذلك بإصدار الأمر التالي كمُستخدم root:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "تعذر تثبيت GRUB. تريد الاستمرار؟" --- grub2-1.98+20100804.orig/debian/po/ja.po +++ grub2-1.98+20100804/debian/po/ja.po @@ -0,0 +1,406 @@ +# Copyright (C) 2008-2010 GRUB Maintainers +# This file is distributed under the same license as the grub2 package. +# Hideki Yamane , , 2008-2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2 1.98+20100617-1\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 18:02-0400\n" +"PO-Revision-Date: 2010-12-12 09:43+0900\n" +"Last-Translator: Hideki Yamane \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "menu.lst 経由で起動 (チェーンロード) しますか?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"GRUB のアップグレードプログラムは、/boot/grub に GRUB Legacy の設定があるのを" +"検出しました。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"システム中に存在している古いバージョンの GRUB を置き換えるには、/boot/grub/" +"menu.lst にある GRUB Legacy の設定を使って GRUB2 の起動イメージを読み込むよう" +"に設定するのがお勧めです。この作業はここで自動的に実行されます。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"MBR (マスターブートレコード) に直接インストールする前に、GRUB 2 が menu.lst " +"からチェーンロードするように設定し、新しい GRUB 2 の設定が動作するかどうかを" +"確認する事をお勧めします。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"どの設定を選ぶにせよ、root として以下のコマンドを実行することによって、後から" +"でも古い MBR イメージを GRUB 2 に置き換えられます。" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "GRUB をインストールするデバイス:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"grub-pc パッケージのアップグレード中です。このメニューでは、もしデバイスがあ" +"れば、どのデバイスに自動的に grub-install を実行するかを選べます。" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"インストール済みの GRUB コアイメージが GRUB モジュールや grub.cfg との同期が" +"ずれるのを防ぐため、ほとんどの場合、自動的に grub-instsall を実行するのがお勧" +"めです。" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"BIOS でどのドライブが起動ドライブとして設定されているのか判らないのであれば、" +"すべてに GRUB をインストールするのが大抵の場合良い考えです。" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"注意: パーティションブートレコードに GRUB をインストールするのも可能です。そ" +"して、ここでは適切なパーティションが表示されます。しかし、これによって GRUB " +"がブロックリストの仕組みを強制的に使うようになります。この仕組みは信頼性に欠" +"けるため、お勧めはしません。" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"以前、GRUB ブートローダーは、すでに存在しない、あるいは何らかの理由で一意の識" +"別子が変更されたディスクにインストールされていました。インストールされている " +"GRUB コアイメージが GRUB モジュールや grub.cfg と一致しているのを確認するのは" +"重要です。もう一度、GRUB が適切な起動デバイスに書き込まれているか確かめてくだ" +"さい。" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "起動デバイスへの GRUB の書き込みが失敗しました - 続行しますか?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUB は以下のデバイスへのインストールに失敗しました:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"とにかく続行しますか? その場合、コンピュータが正常に起動しないかもしれませ" +"ん。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" +"ブートデバイスへの GRUB の書き込みに失敗しました。もう一度試してみますか?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"別のデバイスに GRUB をインストールできるかもしれませんが、そのデバイスからシ" +"ステムが起動するかどうかを確認しておく必要があります。どのデバイスにもインス" +"トールを行わない場合は、GRUB Legacy からのアップグレードは中止されます。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "GRUB をインストールせずにパッケージのインストールを続行しますか?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"どのデバイスに対しても GRUB をインストールしないことが選択されました。ブート" +"ローダーが正しく設定されていない可能性があり、このまま続行するとこのコン" +"ピュータの次回起動時には、以前に起動セクタにインストールされていたものを何で" +"あろうとも利用しようとします。以前のバージョンの GRUB 2 が起動セクタにある場" +"合は、モジュールの読み込みや現在の設定ファイルの取り扱いが出来なくなる可能性" +"があります。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"既に別のブートローダーを利用していてそれを使い続けたい場合、あるいはブート" +"ローダーを必要としない特殊な環境の場合は、とにかく続行してしまって構いませ" +"ん。そうでない場合は、どこかに GRUB をインストールしてください。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "/boot/grub から GRUB 2 を削除しますか?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "/boot/grub から GRUB 2 のファイルをすべて削除しますか?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"この作業は、別のブートローダーがインストールされていないとシステムが起動でき" +"なくなります。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "ここで GRUB 2 へのコンバートを終了しますか?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"このシステムには GRUB Legacy のブートローダーがインストールしたファイルがあり" +"ますが、GRUB 2 のブートレコードも以下のディスクにインストールされています:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"GRUB Legacy はもはや使われてはいないようなので、代わりにこれらのディスク上の " +"GRUB 2 イメージをアップグレードして、古い GRUB Legacy のファイルを削除するこ" +"とで GRUB 2 へのコンバートを完了する必要があります。これらの GRUB 2 イメージ" +"をアップグレードしていない場合は、新しいパッケージとの互換性がないためにシス" +"テムが正常に起動しない可能性があります。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"他の OS 上での GRUB 2 のインストールによって作成されていたブートレコードを除" +"き、GRUB 2 へのコンバートはほぼ完了しました。" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linux コマンドライン:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"以下の Linux のコマンドラインは /etc/default/grub か GRUB Legacy の menu.lst " +"上の「kopt」パラメータから取得されています。これが正しいものであるかを確認し" +"て、必要であれば修正してください。" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Linux デフォルトコマンドライン:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"以下の文字列は、リカバリーモードではない通常のメニューエントリでの Linux パラ" +"メータとして使われます。" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "kFreeBSD コマンドライン:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"以下の kFreeBSD のコマンドラインは、/etc/default/grub か GRUB Legacy の menu." +"lst 上の「kopt」パラメータから取得されています。これが正しいものであるかを確" +"認して、必要であれば修正してください。" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "kFreeBSD デフォルトコマンドライン:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"以下の文字列はリカバリーモードではない通常のメニューエントリでの kFreeBSD パ" +"ラメータとして使われます。" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map が再生成されました" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"/boot/grub/device.map ファイルは固定のデバイス名を使うように書き換えられまし" +"た。多くの場合は、今後このファイルを変更する必要が大幅に減っており、GRUB に" +"よって生成される起動メニューの項目は影響を受けないはずです。" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"しかし、システムに 2 個以上ディスクがあるので、起動メニューの項目が古いデバイ" +"ス情報に依存していた可能性があります。起動メニューの項目が GRUB でのドライブ" +"の順番 (hdN) に関連していないかどうかを確認して、必要であれば更新してくださ" +"い。" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"このメッセージの意味が分からない、あるいは変更した起動メニュー項目が無い場合" +"は、このメッセージを無視して構いません。" --- grub2-1.98+20100804.orig/debian/po/POTFILES.in +++ grub2-1.98+20100804/debian/po/POTFILES.in @@ -0,0 +1,2 @@ +[type: gettext/rfc822deb] grub-pc.templates.in +[type: gettext/rfc822deb] templates.in --- grub2-1.98+20100804.orig/debian/po/fi.po +++ grub2-1.98+20100804/debian/po/fi.po @@ -0,0 +1,437 @@ +# Esko Arajärvi , 2009, 2010. +msgid "" +msgstr "" +"Project-Id-Version: grub2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 18:02-0400\n" +"PO-Revision-Date: 2010-08-22 13:43+0300\n" +"Last-Translator: Esko Arajärvi \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Finnish\n" +"X-Poedit-Country: FINLAND\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Ladataanko ketjutettuna tiedostosta menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"GRUBin päivityskomentosarjat ovat löytäneet vanhoja GRUB-asetuksia " +"tiedostosta /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Järjestelmässä olevan vanhan GRUB-version korvaamiseksi on suositeltavaa " +"muokata tiedostoa /boot/grub/menu.lst siten, että GRUB 2 ladataan olemassa " +"olevista vanhoista GRUB-asetuksista. Tämä voidaan tehdä automaattisesti nyt." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"On suositeltavaa, että hyväksyt GRUB 2:n ketjutetun lataamisen tiedostosta " +"menu.lst ja varmistat uusien GRUB 2 -asetusten toimivuuden ennen kuin " +"asennat ne pääkäynnistyslohkoon (MBR)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "GRUBia ei voitu asentaa seuraaville laitteille:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} Mt; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} Mt; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUBia ei voitu asentaa seuraaville laitteille:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Valitse haluatko jatkaa tästä huolimatta. Jos jatkat, järjestelmä ei " +"välttämättä käynnisty kunnolla." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "GRUBin asennus epäonnistui. Yritetäänkö uudelleen?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Voit ehkä asentaa GRUBin jollekin toiselle levylle. Varmista tällöin, että " +"järjestelmäsi voidaan käynnistää kyseiseltä levyltä. Muussa tapauksessa " +"GRUBin aiemman version päivitys perutaan." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Jatketaanko asentamatta GRUBia?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is an " +#| "earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Päätit olla asentamatta GRUBia millekään levylle. Jos jatkat, " +"alkulatausohjelman asetukset saattavat olla väärät ja kun kone käynnistetään " +"uudelleen seuraavan kerran, se käyttää käynnistyslohkon aiempia asetuksia. " +"Jos käynnistyslohkossa on GRUB 2:n aiempi versio, se ei välttämättä pysty " +"lataamaan moduuleja tai käsittelemään nykyistä asetustiedostoa." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Jos käytät jo muuta alkulatausohjelmaa ja haluat jatkaa sen käyttöä tai jos " +"käytössäsi on erityinen ympäristö, jossa et tarvitse alkulatausohjelmaa, " +"voit jatkaa asennusta. Muussa tapauksessa sinun tulisi asentaa GRUB johonkin." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Saatetaanko siirtyminen GRUB 2:een loppuun nyt?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Järjestelmässä on edelleen GRUBin aiemman version tiedostoja, mutta myös " +"GRUB 2:n käynnistystiedot on asennettu seuraaville levyille:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"GRUBin aiempi versio ei luultavasti ole enää käytössä ja näillä levyillä " +"olevat GRUB 2:n levykuvat tulisi päivittää ja siirtyminen GRUB 2:een saattaa " +"loppuun poistamalla vanhat GRUB-tiedostot. Jos et päivitä GRUB 2:n kuvia, " +"uusien pakettien kanssa voi tulla yhteensopivuusongelmia ja järjestelmän " +"käynnistys ei ehkä toimi oikein." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Yleisesti ottaen siirtyminen GRUB 2:een tulisi saattaa loppuun ellei näitä " +"käynnistystietoja luotu johonkin toiseen käyttöjärjestelmään asennetulla " +"GRUB 2:lla." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linuxin komentorivi:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"GRUBin aiemman version tiedostosta menu.lst parametrista ”kopt” tai " +"tiedostosta /etc/default/grub löydettiin seuraava Linuxin komentorivi. " +"Varmista, että se on kunnossa ja muuta sitä tarvittaessa." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Linuxin oletuskomentorivi:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Seuraavaa merkkijonoa käytetään Linuxin käynnistysvalikon oletusvalinnan " +"parametreina, mutta ei toipumistilassa." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "kFreeBSD:n komentorivi:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"GRUBin aiemman version tiedostosta menu.lst parametrista ”kopt” tai " +"tiedostosta /etc/default/grub löydettiin seuraava kFreeBSD:n komentorivi. " +"Varmista, että se on kunnossa ja muuta sitä tarvittaessa." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "kFreeBSD:n oletuskomentorivi:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Seuraavaa merkkijonoa käytetään kFreeBSD:n käynnistysvalikon oletusvalinnan " +"parametreina, mutta ei toipumistilassa." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map on luotu uudelleen" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Tiedosto /boot/grub/device.map on kirjoitettu uudelleen käyttäen pysyviä " +"laitenimiä. Useimmissa tapauksissa tämän pitäisi huomattavasti vähentää " +"tarvetta sen muuttamiseen ja GRUBin luomien käynnistysvalikon rivien pitäisi " +"toimia edelleen." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Koska järjestelmässä kuitenkin on useampia levyjä, on mahdollista, että " +"jotkin asetukset viittaavat vanhaan laitetiedostoon. Tarkista onko " +"käynnistysvalikossa rivejä, joissa käytetään GRUBin laitenumerointia (hdN), " +"ja päivitä ne tarvittaessa." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Jos et ymmärrä tätä viestiä tai käynnistysvalikossa ei ole erityisiä rivejä, " +"voit jättää tämän viestin huomiotta." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Kun haluat asentaa GRUB 2:n latautumaan suoraan pääkäynnistyslohkosta, " +#~ "voit joka tapauksessa tehdä sen ajamalla pääkäyttäjänä seuraavan komennon:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "GRUBin asennus epäonnistui. Jatketaanko?" --- grub2-1.98+20100804.orig/debian/po/ta.po +++ grub2-1.98+20100804/debian/po/ta.po @@ -0,0 +1,371 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Dr,T,Vasudevan , 2010. +msgid "" +msgstr "" +"Project-Id-Version: ta\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 18:02-0400\n" +"PO-Revision-Date: 2010-04-18 21:36+0530\n" +"Last-Translator: Dr,T,Vasudevan \n" +"Language-Team: Tamil >\n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 0.3\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "menu.lst இலிருந்து சங்கிலிஏற்றம் செய்யலாமா?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "/boot/grub இல் பாரம்பரிய க்ரப் அமைப்பு உள்ளதாக க்ரம் மேம்படுத்தல் நிரல் கண்டது." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"பாரம்பரிய க்ரப் அமைப்பை உங்கள் கணினியிலிருந்து மாற்ற இப்போதுள்ள பாரம்பரிய க்ரப் அமைபின் /" +"boot/grub/menu.lst ஐ க்ரப்2 இலிருந்து சங்கிலிஏற்றம் செய்ய பரிந்துரைக்கப்படுகிறது. இந்த " +"படி இப்போது தானியங்கியாக செய்யப்பட முடியும்." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"க்ரப்2 இலிருந்து சங்கிலிஏற்றம் செய்ய இப்போது ஒப்புக்கொள்ள பரிந்துரை செய்யப்படுகிறது. மேலும் " +"உங்கள் புதிய க்ரப்2 அமைப்பு செயல் சரியாக உள்ளதா என்பதையும் சரி பார்க்கவும். அதற்குப்பின் " +"எம்பிஆர் இல் நேரடியாக நிறுவிக்கொள்ளலாம்." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "லீனக்ஸ் கட்டளை வரி:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"பின் வரும் லீனக்ஸ் கட்டளை வரி /etc/default/grub இலிருந்து அல்லது க்ரப் இன் பாரம்பரிய " +"menu.lst இன் `kopt' அளபுருவிலிருந்து பெறப்பட்டது. இது சரியா என்று சோதித்து " +"தேவையானால் மற்றவும்." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "லீனக்ஸ் முன்னிருப்பு கட்டளை வரி" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"பின் வரும் சரங்கள் முன்னிருப்பு மெனு உள்ளீட்டுக்கு லீனக்ஸ் அளபுருக்களாக பயன்படுத்தப்படும்; " +"ஆனால் மீட்டெடுப்பு பாங்குக்கு அல்ல" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "கேப்ரீபிஎஸ்டி கட்டளை வரி:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"பின் வரும் கேப்ரீபிஎஸ்டி கட்டளை வரி /etc/default/grub இலிருந்து அல்லது க்ரப் இன் " +"பாரம்பரிய menu.lst இன் `kopt' அளபுருவிலிருந்து பெறப்பட்டது. இது சரியா என்று " +"சோதித்து தேவையானால் மற்றவும்." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "கேப்ரீபிஎஸ்டி முன்னிருப்பு கட்டளை வரி:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"பின் வரும் சரங்கள் முன்னிருப்பு மெனு உள்ளீட்டுக்கு கேப்ரீபிஎஸ்டி அளபுருக்களாக " +"பயன்படுத்தப்படும்; ஆனால் மீட்டெடுப்பு பாங்குக்கு அல்ல" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "எப்படி இருந்தாலும்நீங்கள் க்ரப்2 ஐ எம்பிஆர் இலிருந்து நேரடியாக ஏற்ற விரும்பினால் எப்போது " +#~ "வேண்டுமானாலும் ரூட் ஆக கீழ் கண்ட கட்டளை மூலம் அதை செய்யலாம்." --- grub2-1.98+20100804.orig/debian/po/fa.po +++ grub2-1.98+20100804/debian/po/fa.po @@ -0,0 +1,411 @@ +msgid "" +msgstr "" +"Project-Id-Version: fa\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 21:22+0000\n" +"PO-Revision-Date: \n" +"Last-Translator: Morteza Fakhraee \n" +"Language-Team: debian-l10n-persian \n" +"Language: fa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Persian\n" +"X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n" +"X-Poedit-SourceCharset: utf-8\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "بارگزاری به صورت Chainload از menu.lst؟" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"اسکریپت ارتقاء GRUB, نسخه قدیمی GRUB‌ نصب شده در /boot/grub را پیدا کرده است." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"برای جایگزینی نسخه قدیمی GRUB در سیستم شما، پیشنهاد می‌شود /boot/grub/menu." +"lst تنظیم گردد تا یک تصویر بوت‌ GRUB 2 از چینش قدیمی GRUB کنونی بارگذاری " +"شود . اکنون این مرحله به صورت خودکار انجام می شود." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"توصیه می‌شود که chainloading گراب۲ از menu.lst را بپذیرید، و بازبینی کنید که " +"چینش جدید GRUB 2 قبل از اینکه بر روی MBR (Master Boot Record) نوشته شود کار " +"می‌کند." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"تصمیم شما هر چه باشد، می‌توانید بعداً تصویر قدیم MBR را با GRUB 2 با فرمان زیر " +"توسط کاربر ریشه جایگزین کنید:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "دستگاه‌های نصب گراب:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"بستهٔ grub-pc در حال ارتقاء است. این منو به شما اجازه می‌دهد که هر یک از " +"دستگاه‌ها را، در صورت وجود، که مایلید grub-install به صورت خودکار برایش اجرا " +"گردد را انتخاب کنید." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"اجرای خودکار grub-install در بیشتر مواقع، برای جلوگیری خارج‌شدن هستهٔ تصویر " +"گراب از sync با ماژولهای گراب یا grub.cfg توصیه‌شده است." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"اگر مطمئن نیستید کدام درایو به عنوان درایو بوت توسط BIOS تعیین شده است، اغلب " +"ایدهٔ خوبی است که گراب را بر روی همهٔ آنها نصب کنید." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"توجه: امکان دارد که گراب را در رکوردهای بوت پارتیشن نیز نصب کنید، و برخی از " +"پارتیشن‌های مناسب نیز اینجا پیشنهاد شده است. اگرچه، این گراب را مجبور می‌کند " +"که از مکانیزم blocklist استفاده کند که قابل اطمینان بودن آنرا کاهش می‌دهد و " +"بنابراین توصیه نمی‌گردد." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"بارگذار بوت گراب قبلاً در دیسکی نصب شده است که دیگر در دسترس نیست، یا unique " +"identifier آن بنا به دلیلی تغییر کرده است. مهم است که اطمینان حاصل کنید که " +"نصویر هستهٔ گراب نصب شده در sync با ماژول‌های گراب و grub.cfg باقی بماند. لطفاً " +"دوباره بررسی کنید تا مطمئن گردید که گراب در دستگاه‌های بوت مناسب نوشته شده " +"است." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "نصب GRUB روی ابزار بوت با شکست مواجه شد - ادامه می‌دهید؟" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUB نتوانست که تجهیزات مورد نظر را نصب کند." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"آیا شما می‌خواهید در هر حال ادامه دهید ؟ اگر ادامه دهید، ممکن است که کامپیوتر " +"شما به طور مناسب باید بالا نیاید." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "نصب GRUB روی دستگاه بوت با شکست مواجه شد - دوباره امتحان می‌کنید؟" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"شما ممکن است قادر باشید که GRUB را بر روی بعضی از ابزارهای دیگر نیز نصب " +"کنید ، هرچند که شما باید چک کنید که سیستم شما قادر به راه‌اندازی شدن با آن " +"ابزار هست یا خیر. وگرنه ، ارتقا گراب قدیمی متوقف خواهد شد." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "آیا بدون نصب کردن GRUB ، ادامه می دهید ؟" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"شما نصب GRUB را برای هیچ ابزاری انتخاب نکرده‌اید. اگر ادامه دهید، ممکن است که " +"راه‌انداز به درستی تنظیم نشده باشد، و هنگام بالا آمدن بعدی این کامپیوتر، از " +"آن چه که قبلاً بر روی بوت سکتور بوده است استفاده می‌کند. اگر نسخهٔ قدیمی‌تری از " +"گراب۲ بر روی بوت سکتور وجود دارد، ممکن است که قادر نباشد ماژول‌ها را بارگذاری " +"کند و یا پیکربندی کنونی فایل را به کار بندد." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"اگر شما از راه‌انداز بوت دیگری استفاده می‌کنید و می‌خواهید که با همان ادامه " +"دهید، یا اگر اینجا یک محیط خاص است که شما به راه‌انداز بوت نیاز ندارید، پس " +"می‌بایست به هر ترتیب ادامه دهید. در غیر این‌صورت، باید GRUB را در جایی نصب " +"کنید." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "GRUB 2 از /boot/grub برداشته شود؟" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "آیا می‌خواهید همهٔ فایل‌های GRUB 2 از /boot/grub برداشته شود؟" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"این باعث غیر قابل بوت‌شدن سیستم می‌شود مگر آنکه بارگذار بوت دیگری نصب است." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "ارتباط با GRUB۲ اکنون پایان یابد؟" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"این سیستم هنوز فایل هایی مربوط به GRUB قدیمی را به صورت نصب شده دارد ، اما " +"اکنون بوت رکورد های GRUB2 بر روی این دیسک ها نصب شده است :" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"به نظر می‌آید که احتمالاً GRUB قدیمی دیگر در استفاده نیست، و شما می‌بایست " +"تصاویر GRUB2 را بر روی این دیسک‌ها ارتقاء دهید و با پاک کردن فایل‌های گراب " +"قدیمی تبدیل به GRUB2 را به اتمام برسانید. اگر شما این تصاویر GRUB2 را ارتقا " +"ندهید، ممکن است این تصاویر با بسته‌های جدید ناسازگار باشند و باعث جلوگیری از " +"راه‌اندازی مناسب سیستم شوند." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"شما باید معمولاً به ارتباط GRUB2 پایان دهید، مگر آنکه این رکورد های بوت ساخته " +"شده توسط GRUB2 مربوط به سیستم عامل های دیگر باشد." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "خط فرمان لینوکس:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"خط فرمان لینوکس ذیل از /etc/default/grub یا پارامتر های `kopt' در فایل menu." +"lst از گراب قدیمی استخراج شده است. لطفاً صحت آن را بررسی کنید، و در صورت لزوم " +"آن را تغییردهید." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "خط فرمان پیش فرض لینوکس:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"این رشته به عنوان یکی از پارامتر های لینوکس برای منوی پیش فرض استفاده خواهد " +"شد و نه برای حالت بازیابی." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "خط فرمان kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"خط فرمان kFreeBSD ذیل از /etc/default/grub یا پارامتر های `kopt' در فایل " +"menu.lst از گراب قدیمی استخراج شده است. لطفاً صحت آن را بررسی کنید، و در صورت " +"لزوم آن را تغییردهید." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "خط فرمان پیش فرض kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"این رشته به عنوان یکی از پارامتر های kFreeBSD برای منوی پیش فرض استفاده " +"خواهد شد و نه برای حالت بازیابی." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map بازسازی شده است." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"فایل /boot/grub/device.map به منظور استفاده از نام تجهیزات دائمی و پایدار، " +"بازنویسی شده است. در بیشتر موارد، این می‌بایست به شدت نیاز به تغییر درآینده " +"را کاهش دهد، و مدخل‌های منوی بوت ایجاد شده توسط GRUB نبایست تحت تأثیر قرار " +"گرفته باشد." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"اگرچه، از آنجا که بیش از یک دیسک در سیستم موجود است، ممکن است سیستم به " +"device map قدیمی وابسته باشد. لطفاً بررسی کنید اگر مدخل‌های سفارشی بوت که روی " +"نام‌گذاری درایو (hdN) گراب تکیه دارند وجود داشته باشند، و در صورت نیاز آنها " +"را به روز نمائید." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"اگر این پیام را متوجه نمی‌شوید، یا اگر هیچ مدخل سفارشی منوی بوت وجود ندارد، " +"می‌توانید این پیام را نادیده بگیرید." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "در هر صورت, هر زمان که شما بخواهید مستقیماً GRUB 2 را از MBR بارگزاری " +#~ "کنید, می توانید این کار را با اجرای دستوری که در ادامه آمده, تحت کاربر " +#~ "ریشه, انجام دهید:" --- grub2-1.98+20100804.orig/debian/po/es.po +++ grub2-1.98+20100804/debian/po/es.po @@ -0,0 +1,492 @@ +# grub2 po-debconf translation to Spanish +# Copyright (C) 2007, 2009, 2010 Software in the Public Interest +# This file is distributed under the same license as the grub2 package. +# +# Changes: +# - Initial translation +# Maria Germana Oliveira Blazetic, 2007 +# +# - Updates +# Gary Ariel Sandi Vigabriel , 2009 +# Francisco Javier Cuadrado , 2009, 2010 +# +# - Revisions +# Innocent De Marchi , 2010 +# +# Traductores, si no conocen el formato PO, merece la pena leer la +# documentación de gettext, especialmente las secciones dedicadas a este +# formato, por ejemplo ejecutando: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Equipo de traducción al español, por favor lean antes de traducir +# los siguientes documentos: +# +# - El proyecto de traducción de Debian al español +# http://www.debian.org/intl/spanish/ +# especialmente las notas y normas de traducción en +# http://www.debian.org/intl/spanish/notas +# +# - La guía de traducción de po's de debconf: +# /usr/share/doc/po-debconf/README-trans +# o http://www.debian.org/intl/l10n/po-debconf/README-trans +# +msgid "" +msgstr "" +"Project-Id-Version: grub2 1.98+20100804-10\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 21:22+0000\n" +"PO-Revision-Date: 2010-12-10 19:35+0100\n" +"Last-Translator: Francisco Javier Cuadrado \n" +"Language-Team: Debian l10n Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "¿Desea realizar la carga en cadena desde el archivo «menu.lst»?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Los scripts de actualización han detectado en «/boot/grub» una configuración " +"heredada de una versión anterior de GRUB." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Con el fin de reemplazar la versión anterior de GRUB en el sistema, se " +"recomienda configurar «/boot/grub/menu.lst» para que cargue GRUB 2 a partir " +"de la configuración heredada de GRUB. Este paso se puede hacer de forma " +"automática." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Se recomienda que acepte cargarlo en cadena desde el archivo «menu.lst» y " +"que compruebe el buen funcionamiento del nuevo GRUB 2, antes de instalarlo " +"en el MBR («Master Boot Record»)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Sea cual sea su decisión, puede reemplazar la imagen del MBR anterior con " +"GRUB 2 más tarde ejecutando, como administrador («root»), la siguiente orden:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Dispositivos en los que se puede instalar GRUB:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Se está actualizando el paquete grub-pc. Este menú le permite escoger en qué " +"dispositivos quiere ejecutar automáticamente grub-install, si es que quiere." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Se recomienda ejecutar automáticamente grub-install en la mayoría de las " +"situaciones, para evitar que la imagen del núcleo de GRUB instalada no esté " +"sincronizada con los módulos GRUB o con el archivo «grub.cfg»." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Si no está seguro cuál es la unidad de arranque de la BIOS, normalmente es " +"una buena idea instalar GRUB en todas ellas." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Nota: también es posible instalar GRUB en los registros de arranque de " +"particiones, aquí se ofrecen algunas particiones apropiadas. Sin embargo, " +"esto obliga a GRUB a utilizar el mecanismo de la lista de bloqueo, que lo " +"hace menos fiable, y por tanto no es recomendable." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"El gestor de arranque GRUB se instaló previamente en un disco que ya no está " +"presente o cuyo identificador único ha cambiado por alguna razón. Es " +"importante asegurarse de que la imagen del núcleo de GRUB instalada se " +"mantiene sincronizada con los módulos de GRUB y el archivo «grub.cfg». Por " +"favor, asegúrese que GRUB se instala en los dispositivos de arranque " +"adecuado." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" +"La instalación de GRUB en el dispositivo de arranque ha fallado. ¿Desea " +"continuar?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "No se pudo instalar GRUB en los siguientes dispositivos:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"¿Desea continuar de todos modos? Si lo hace, puede que su máquina no se " +"inicie apropiadamente." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" +"La instalación de GRUB en el dispositivo de arranque ha fallado. ¿Desea " +"volver a intentarlo?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Puede instalar GRUB en otro dispositivo, aunque debería comprobar que su " +"sistema arrancará desde ese dispositivo. De otro modo, se cancelará la " +"actualización de la versión anterior de GRUB." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "¿Desea continuar sin instalar GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Ha escogido no instalar GRUB en ningún dispositivo. Si continua, puede que " +"el cargador de arranque no se configure correctamente, y cuando esta máquina " +"se vuelva a iniciar se utilizará lo que hubiera anteriormente en el sector " +"de arranque. Si hay una versión previa de GRUB 2 en el sector de arranque, " +"puede que sea imposible cargar los módulos o manejar el archivo de " +"configuración actual." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Si está ejecutando un cargador de arranque diferente y quiere seguir " +"haciéndolo o si es un entorno especial en el que no necesita un cargador de " +"arranque, entonces debería continuar. De otro modo, debería instalar GRUB en " +"otra ubicación." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "¿Desea eliminar GRUB 2 de «/boot/grub»?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "¿Desea eliminar todos los archivos de GRUB 2 de «/boot/grub»?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Esto hará que el sistema no arranque a menos que otro gestor de arranque " +"esté instalado." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "¿Desea terminar la conversión a GRUB 2 ahora?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Este sistema todavía tiene archivos del cargador de arranque de la versión " +"anterior de GRUB instalados, pero ahora también tiene registros de arranque " +"de GRUB 2 instalados en estos discos:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Parece que la versión anterior de GRUB ya no se utiliza, por lo que usted " +"debería actualizar las imágenes de GRUB 2 en estos discos y terminar la " +"conversión a GRUB 2 borrando los archivos de la versión anterior de GRUB. Si " +"no actualiza estas imágenes de GRUB 2, puede que sean incompatibles con los " +"nuevos paquetes y que provoquen que su sistema no arranque correctamente." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Debería terminar la conversión a GRUB 2 a menos que estos registros de " +"arranque los crease una instalación de GRUB 2 en algún otro sistema " +"operativo." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linea de órdenes de Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"La siguiente linea de órdenes de Linux se extrajo del archivo «/etc/default/" +"grub» o del parámetro «kopt» en el archivo «menu.lst» de la versión anterior " +"de GRUB. Por favor, compruebe que esto es correcto y modifíquelo si es " +"necesario." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Linea de órdenes predeterminada de Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"La siguiente cadena se utilizará como parámetros de Linux para la entrada " +"predeterminada del menú pero no para el modo de recuperación." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Linea de órdenes de kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"La siguiente linea de órdenes de kFreeBSD se extrajo del archivo «/etc/" +"default/grub» o del parámetro «kopt» en el archivo «menu.lst» de la versión " +"anterior de GRUB. Por favor, compruebe que esto es correcto y modifíquelo si " +"es necesario." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Linea de órdenes predeterminada de kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"La siguiente cadena se utilizará como parámetros de kFreeBSD para la entrada " +"predeterminada del menú pero no para el modo de recuperación." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "Se ha regenerado el archivo «/boot/grub/device.map»" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"El archivo «/boot/grub/device.map» se ha rescrito para utilizar los nombres " +"de dispositivos estables. En la mayoría de los casos, esto debería reducir " +"significativamente la necesidad de cambiarlo en el futuro, y las entradas " +"del menú que generó GRUB no se verán afectadas." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Sin embargo, ya que hay más de un disco en el sistema, es posible que el " +"sistema dependa de un mapa de dispositivos antiguo. Por favor, compruebe si " +"tiene entradas personalizadas en el menú de arranque que dependan de la " +"numeración de los dispositivos de GRUB (hdN) y actualícela si es necesario." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Puede ignorar este mensaje si no lo entiende o si no tiene entradas " +"personalizadas en el menú de arranque." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "En cualquier caso, cuando quiera que GRUB 2 se cargue directamente desde " +#~ "el MBR, puede hacerlo ejecutando (como usuario «root») la siguiente orden:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "La instalación de GRUB ha fallado. ¿Desea continuar?" + +#~ msgid "GRUB 1.95 numbering scheme transition" +#~ msgstr "Esquema de transición numérica de GRUB 1.95" + +#~ msgid "" +#~ "As of version 1.95, GRUB 2 has changed its numbering scheme. Partitions " +#~ "are now counted starting from 1 rather than 0. This is to make it " +#~ "consistent with device names of Linux and the other kernels used in " +#~ "Debian. For example, when using Linux as the kernel, \"(hd0,1)\" refers " +#~ "to the same partition as the /dev/sda1 device node." +#~ msgstr "" +#~ "GRUB 2 ha cambiado el esquema de numeración, como en la versión 1.95. " +#~ "Ahora las particiones comienzan en el número 1 en vez de en el número 0. " +#~ "Esto sirve para hacerlo consistente con los nombres de dispositivos de " +#~ "Linux y otros núcleos que se usan en Debian. Por ejemplo, cuando se usa " +#~ "Linux como núcleo, «(hd0, 1)» se refiere a la misma partición que el " +#~ "dispositivo «/dev/sda1»." + +#~ msgid "" +#~ "Because of this, there's a chance your system becomes unbootable if " +#~ "update-grub(8) is run before GRUB is updated, generating a grub.cfg file " +#~ "that your installed GRUB won't yet be able to parse correctly. To ensure " +#~ "your system will be able to boot, you have to:" +#~ msgstr "" +#~ "Por este motivo, existe la posibilidad de que su sistema no sea capaz de " +#~ "arrancar si se ejecuta update-grub(8) antes de actualizar GRUB, ya que se " +#~ "generaría un archivo «grub.cfg» que la versión instalada de GRUB no " +#~ "podría leer correctamente. Para asegurarse de que el sistema arrancará, " +#~ "debe:" + +#~ msgid "" +#~ " - Reinstall GRUB (typically, by running grub-install).\n" +#~ " - Rerun update-grub to generate a new grub.cfg." +#~ msgstr "" +#~ " - Reinstalar GRUB (normalmente, ejecutando grub-install).\n" +#~ "- Volver a ejecutar update-grub para generar un nuevo archivo «grub.cfg»." --- grub2-1.98+20100804.orig/debian/po/id.po +++ grub2-1.98+20100804/debian/po/id.po @@ -0,0 +1,420 @@ +# Grub2 translation to Bahasa Indonesia. +# Copyright (C) Grub2 Developer +# This file is distributed under the same license as the Grub2 package. +# Arief S Fitrianto , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 18:02-0400\n" +"PO-Revision-Date: 2010-12-09 12:11+0700\n" +"Last-Translator: Arief S Fitrianto \n" +"Language-Team: Debian Indonesian Translation Team \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Indonesian\n" +"X-Poedit-Country: INDONESIA\n" +"X-Poedit-SourceCharset: utf-8\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Chainload dari menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Script pemutakhiran GRUB menemukan konfigurasi GRUB jadul di /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Untuk mengganti GRUB jadul pada sistem Anda, sangat disarankan menyesuaikan /" +"boot/grub/menu.lst agar memuat citra boot GRUB2 dari konfigurasi GRUB Jadul. " +"Langkah ini mungkin akan dilakukan otomatis sekarang." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Sangat disarankan Anda menerima hasil penyesuaian GRUB 2 dari menu.lst dan " +"memastikan bahwa konfigurasi GRUB 2 bekerja dengan baik sebelum Anda " +"memasangnya pada MBR (Master Boot Record)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Apapun pilihan Anda, Anda dapat mengganti citra MBR lama dengan GRUB2 di " +"lain waktu dengan menjalankan perintah berikut sebagai root: " + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Piranti pemasangan GRUB:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Paket grub-pc sedang diperbaharui. Menu ini memungkinkan Anda memilih " +"piranti yang Anda inginkan untuk menjalankan grub-install." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Menjalankan grub-install secara otomatis sangat disarankan dalam kebanyakan " +"kasus. Hal ini untuk mencegah citra inti GRUB yang terpasang tidak sesuai " +"dengan modul GRUB atau grub.cfg" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Jika Anda tidak yakin piranti yang dijadikan piranti boot oleh BIOS, sangat " +"disarankan untuk memasang GRUB di semua piranti dimaksud." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Catatan: sangat mungkin memasang GRUB di partisi boot dan beberapa partisi " +"yang sesuai disajikan di sini. Tetapi, hal ini akan memaksa GRUB menggunakan " +"mekanisme blocklist, yang membuatnya kurang handal dan oleh karenanya tidak " +"disarankan." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Pemuat boot GRUB sebelumnya telah dipasang di harddisk yang sekarang sudah " +"lenyap atau identifikasi unik telah berubah karena suatu hal. Sangat penting " +"memastikan citra inti GRUB yang terpasang selalu sesuai dengan modul GRUB " +"dan grub.cfg. Mohon periksa kembali untuk memastikan GRUB ditulis di piranti " +"boot yang sesuai." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Gagal menulis GRUB ke piranti boot -- lanjutkan?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Gagal memasang GRUB pada piranti berikut ini:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Anda yakin akan lanjut terus? Jika ya, komputer Anda mungkin tidak dapat " +"beroperasi." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Gagal menulis GRUB ke piranti boot. Coba lagi?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Anda dapat memasang GRUB pada piranti lainnya. Tetapi, Anda harus memastikan " +"komputer dapat boot dari piranti tersebut. Jika tidak, pemutakhiran dari " +"GRUB jadul akan dibatalkan." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Lanjutkan tanpa memasang GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Anda memilih tidak memasang GRUB di piranti apapun. Jika Anda lanjutkan, " +"pemuat boot mungkin tidak terkonfigurasi dengan benar. Jika komputer ini " +"dinyalakan kembali, maka apapun yang sebelumnya ada di bootsector akan " +"digunakan. Jika ada versi awal GRUB2 di bootsector, mungkin tidak dapat " +"memuat modul-modul atau menangani berkas konfigurasi mutakhir." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Jika Anda telah menggunakan pemuat boot yang berbeda dan ingin tetap seperti " +"itu, atau ada kebutuhan khusus yang membuat Anda tidak memerlukan pemuat " +"boot, maka Anda bisa melanjutkan terus. Jika tidak, Anda harus memasang GRUB " +"di tempat lain." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Hapus GRUB 2 dari /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Yakinkah Anda ingin menghapus semua berkas GRUB 2 dari /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Hal ini akan membuat sistem tidak dapat booting kecuali Anda memasang pemuat " +"boot lainnya." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Selesaikan proses konversi ke GRUB2 sekarang?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Sistem ini masih memiliki berkas-berkas dari pemuat boot GRUB Jadul, tapi " +"sekarang juga memiliki rekam boot GRUB2 di piranti berikut:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Tampaknya GRUB Jadul sudah tidak terpakai, dan Anda sebaiknya memasang citra " +"GRUB2 pada harddisk ini, lalu menyelesaikan proses konversi ke GRUB2 dengan " +"menghapus berkas-berkas GRUB Jadul. Jika Anda tidak memutakhirkan citra " +"GRUB2, maka mungkin akan ada masalah inkompatibilitas dengan paket-paket " +"baru dan membuat sistem Anda tidak dapat booting dengan benar." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Anda sebaiknya menyelesaikan konversi ke GRUB2 kecuali jika rekam boot ini " +"dibuat melalui pemasangan GRUB2 pada sistem operasi lain." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Baris perintah Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Baris perintah Linux berikut ini disadur dari /etc/default/grub atau " +"parameter 'kopt' di menu.lst pada GRUB jadul. Pastikan kebenarannya dan " +"suntinglah bila perlu." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Baris perintah standar Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"String berikut ini akan digunakan sebagai parameter Linux untuk menu standar " +"tetapi tidak digunakan untuk modus darurat." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Baris perintah kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Baris perintah kFreeBSD berikut ini disadur dari /etc/default/grub atau " +"parameter 'kopt' di menu.lst pada GRUB jadul. Pastikan kebenarannya dan " +"suntinglah bila perlu." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Baris perintah standar kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"String berikut ini digunakan sebagai parameter kFreeBSD untuk menu standar, " +"tetapi tidak digunakan untuk modus darurat." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map telah dibuat ulang." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Berkas /boot/grub/device.map telah ditulis ulang agar menggunakan nama " +"piranti yang stabil. Dalam kebanyakan kasus, hal ini berarti mengurangi " +"kemungkinan perubahan di masa datang, dan isian menu boot yang dibuat oleh " +"GRUB tidak akan terpengaruh." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Akan tetapi, karena ada lebih dari satu harddisk pada sistem ini, sangat " +"mungkin bahwa Anda bergantung pada peta piranti yang lama. Mohon periksa " +"apakah Anda memiliki isian menu boot GRUB secara manual yang menggunakan " +"penomoran harddisk (hdN). Jika ya, perbaiki yang diperlukan. " + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Jika Anda tidak mengerti pesan ini atau jika tidak memiliki isian menu boot " +"secara manual, Anda bisa mengabaikan pesan ini." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Di semua kasus, ketika Anda ingin agar GRUB 2 dimuatkan langsung dari " +#~ "MBR, Anda dapat melakukan (sebagai root) perintah berikut:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Gagal memasang GRUB. Lanjutkan?" --- grub2-1.98+20100804.orig/debian/po/templates.pot +++ grub2-1.98+20100804/debian/po/templates.pot @@ -0,0 +1,337 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 21:22+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" --- grub2-1.98+20100804.orig/debian/po/zh_TW.po +++ grub2-1.98+20100804/debian/po/zh_TW.po @@ -0,0 +1,418 @@ +# Copyright (C) 2009 Tetralet +# This file is distributed under the same license as the grub2 package. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 18:02-0400\n" +"PO-Revision-Date: 2010-08-01 12:05+0800\n" +"Last-Translator: Tetralet \n" +"Language-Team: Debian-user in Chinese [Big5] \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "是否使用來自 menu.list 的 chainload 項目?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "GRUB 升級程式已在 /boot/grub 裡找到了 GRUB Legacy 的設定。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"為了要能取代您系統上 Legacy 版的 GRUB,建議能修改 /boot/grub/menu.lst 來讓您" +"原本的 GRUB Legacy 設定能以 chainload 的方式啟動 GRUB 2。現在將要自動進行這個" +"步驟。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"在直接將 GRUB 2 安裝到 MBR(主要開機記錄)之前,建議您能同意在 menu.lst 裡先" +"以 chainload 的方式啟動 GRUB 2,以確認您新的 GRUB 2 設定的能正常運作。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "在將 GRUB 安裝至以下裝置時失敗了:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "在將 GRUB 安裝至以下裝置時失敗了:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "是否無論如何仍然繼續?但這樣話,您的電腦可能會無法正常開機。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "GRUB 安裝失敗了。再試一次?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"您也許可以把 GRUB 安裝至其它的裝置,只是您得設定好您的系統會從該裝置開機。否" +"則,將中止 GRUB Legacy 的升級。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "是否不安裝 GRUB 並繼續?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is an " +#| "earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"您決定了不將 GRUB 安裝至任何裝置。如果您繼續,開機程式可能未經適當得設定,且" +"當您電腦下次開機時,它會使用原本就位於開機磁區上的東西,而這可能會導至模組無" +"法載入,或是無法處理目前所使用的設定檔。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"如果您已在使用其它的開機程式,並且打算繼續使用;或是您的環境十分特殊所以不需" +"要開機程式,您可以不在意並繼續進行。否則,您應當找個地方安裝 GRUB。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "是否要結束 GRUB 2 的轉換過程?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"這個系統上仍保有之前安裝 GRUB Legacy 所遺留下來的檔案,但它已有 GRUB 2 安裝於" +"以下磁碟的開機磁區:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"這很可能表示再也用不到 GRUB Legacy 了,您應該替而升級這些裝置上的 GRUB 2 影像" +"檔,並移除這些 GRUB Legacy 所遺留下來的檔案,以結束 GRUB 2 的轉換過程。如果您" +"沒升級這些 GRUB 2 影像檔的話,它們可能和新的套件不相容,且會導致您的系統無法" +"正常開機。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"您應當逐漸得結束 GRUB 2 的轉換過程,除非這些開機記錄是由其它的作業系統所安裝" +"的 GRUB 2 建立的。" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linux 命令列:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"以下的 Linux 命令列是由 /etc/default/grub,或是由 GRUB Legacy 的 menu.lst 中" +"的 `kopt' 參數所擷取出來的。請確認它是否正確,若有必要請加以修改。" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Linux 預設命令列:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"以下的字串將會用在預設的選單項目中做為 Linux 參數,但不會用於回復模式。" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "kFreeBSD 命令列:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"以下的 kFreeBSD 命令列是由 /etc/default/grub,或是由 GRUB Legacy 的 menu.lst " +"中的 `kopt' 參數所擷取出來的。請確認它是否正確,若有必要請加以修改。" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "kFreeBSD 預設命令列:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"以下的字串將會用在預設的選單項目中做為 kFreeBSD 參數,但不會用於回復模式。" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "已重新產生 /boot/grub/device.map" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"/boot/grub/device.map 這個檔案已使用不變的裝置名稱重新寫入。在大多數的狀況之" +"下,如此可以有效得避免在日後還會有什麼變動,且也不會影響到 GRUB 所產生的選單" +"項目。" + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"但由於您的系統上不只安裝了一顆硬碟,舊的裝置對應表可能還在使用中。請檢視您是" +"否有還在使用著 GRUB 的 (hdN) 磁碟命名規則的自訂開機項目,若有必要請加以更新。" + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"如果您根本搞不懂這些訊息在講些什麼,或著您沒有任何自訂的開機項目,您可以忽略" +"這個訊息。" + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "不管您要採取何種方式,當您想讓 GRUB 2 可以由 MBR 直接啟動的話,您可以(以 " +#~ "root 身份)執行以下的指令:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "GRUB 安裝失敗了。是否繼續?" --- grub2-1.98+20100804.orig/debian/po/he.po +++ grub2-1.98+20100804/debian/po/he.po @@ -0,0 +1,429 @@ +# translation of grub_debian_po.po to Hebrew +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Omer Zak , 2010. +# Lior Kaplan , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub_debian_po\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 18:02-0400\n" +"PO-Revision-Date: 2010-08-21 19:22+0300\n" +"Last-Translator: Lior Kaplan \n" +"Language-Team: Hebrew <>\n" +"Language: he\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: \n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "הטענה בשרשור מ-menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "תסריטי העדכון של GRUB גילו הגדרות GRUB ישנות ב-‎‎/boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"כדי להחליף את הגדרות GRUB הישנות במערכת שלך, מומלץ לשנות את ‎/boot/grub/menu." +"lst כך שיבצע הטענה משורשרת של GRUB 2 מהגדרות GRUB הישנות שלך. ניתן לבצע " +"פעולה זו באופן אוטומטי עכשיו." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"מומלץ שתסכים להטענה משורשרת של GRUB 2 מ-menu.lst ותוודא שהגדרות GRUB 2 " +"החדשות עובדות עבורך, לפני שהינך מתקין אותו ישירות ל-MBR (Master Boot Record)‎ " +"שלך." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "כשלון בהתקנת GRUB בהתקנים הבאים:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "כשלון בהתקנת GRUB בהתקנים הבאים:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "האם ברצונך להמשיך בכל זאת? אם כן, מחשבך עלול לא לאתחל כהלכה." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "התקנת GRUB נכשלה. לנסות שוב?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"ייתכן שתוכל להתקין GRUB בהתקן אחר, למרות שעליך לוודא שמחשבך יאתחל מההתקן " +"ההוא. אחרת, השדרוג מ-GRUB ישן יבוטל." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "להמשיך בלי להתקין GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is an " +#| "earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"בחרת לא להתקין GRUB באף התקן. אם תמשיך, ייתכן שמנהל האתחול לא יהיה מוגדר " +"כיאות, ובפעם הבאה שמחשבך יאותחל, הוא יאותחל ממה שהיה קודם ב-boot sector. אם " +"יש גירסא מוקדמת יותר של GRUB 2 ב-boot sector, ייתכן שלא יהיה ביכולתה להטעין " +"מודולים או להתמודד עם קובץ ההגדרות הנוכחי." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"אם הינך כבר משתמש במנהל אתחול אחר ומעוניין להמשיך להשתמש בו, או אם זו סביבה " +"מיוחדת שבה לא דרוש לך מנהל אתחול, עליך להמשיך בכל זאת. אחרת, עליך להתקין " +"GRUB במקום כלשהו." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "לסיים עכשיו המרה ל-GRUB 2?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"יש במערכת זו עדיין קבצים מההתקנה הישנה של מנהל האתחול GRUB, אבל יש גם רשומות " +"אתחול GRUB 2 מותקנות בדיסקים הבאים:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"סביר שהתקנת GRUB הישנה כבר אינה בשימוש, ושעליך במקום זאת לשדרג את תמונות " +"GRUB 2 בדיסקים אלה ולסיים את ההמרה ל-GRUB 2 על ידי הסרת קבצי GRUB הישנים. אם " +"אינך משדרג תמונות GRUB 2 אלה, הן עלולות להיות בלתי תואמות את החבילות החדשות " +"ולמנוע מהמערכת שלך מלאתחל כהלכה." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"בדרך כלל עליך לסיים את ההמרה ל-GRUB 2 אלא אם רשומות אתחול אלה נוצרו על ידי " +"התקנת GRUB 2 במערכת הפעלה אחרת." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "שורת הפקודה של Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"שורת פקודת Linux הבאה נשלפה מ-‎/etc/default/grub או מפרמטר 'kopt' ב-menu.lst " +"הישן של GRUB. נא לוודא ששורת פקודה זו נכונה ועדכן אותה אם צריך." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "ברירת מחדל לשורת הפקודה של Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"המחרוזת הבאה תשמש כפרמטרי Linux עבור ברירת המחדל בתפריט אבל לא עבור מצב " +"recovery." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "שורת הפקודה של kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"שורת פקודת kFreeBSD הבאה נשלפה מ-‎/etc/default/grub או מפרמטר'kopt' ב-menu." +"lst הישן של GRUB. בבקשה לוודא ששורת פקודה זו נכונה ועדכן אותה אם צריך." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "ברירת מחדל לשורת הפקודה של kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"המחרוזת הבאה תשמש כפרמטרי kFreeBSD עבור ברירת המחדל בתפריט אבל לא עבור מצב " +"recovery." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "הקובץ ‎/boot/grub/device.map נוצר מחדש" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"הקובץ ‎/boot/grub/device.map נכתב מחדש כדי להשתמש בשמות התקנים יציבים. ברוב " +"המקרים, הדבר אמור לצמצם בצורה משמעותית את הצורך לשנותו בעתיד, והבחירות " +"בתפריט האתחול הנוצר על ידי GRUB לא אמורות להיות מושפעות משינוי זה." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"אבל, מכיוון שיש במערכת שלך יותר מדיסק אחד, ייתכן שהסתמכת על קובץ מיפוי " +"ההתקנים הישן. אנא בדוק אם יש לך בחירות מותאמות אישית בתפריט האתחול, שמשתמשות " +"בשיטת מספור ההתקנים (hdN) של GRUB, ועדכן אותן אם צריך." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"אם אינך מבין הודעה זו, או אם אין לך ברירות מותאמות אישית בתפריט האתחול, אז " +"ניתן להתעלם מהודעה זו." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "בכל מקרה, מתי שתרצה ש-GRUB 2 יוטען ישירות מ-MBR, ביכולתך לעשות זאת על ידי " +#~ "ביצוע (בתור משתמש-על) הפקודה הבאה:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "התקנת GRUB נכשלה.להמשיך?" --- grub2-1.98+20100804.orig/debian/po/bg.po +++ grub2-1.98+20100804/debian/po/bg.po @@ -0,0 +1,422 @@ +# Bulgarian translation of grub2 debconf messages. +# Copyright (C) grub2 packagers. +# This file is distributed under the same license as the grub2 package. +# Damyan Ivanov , 2009, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 21:22+0000\n" +"PO-Revision-Date: 2010-12-09 21:45+0200\n" +"Last-Translator: Damyan Ivanov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Верижно зареждане от menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "Открита е стара инсталация на GRUB в /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"За замяна на старата инсталация на GRUB се препоръчва настройване на /boot/" +"grub/menu.lst за каскадно зареждане на GRUB2 от съществуващата инсталация на " +"GRUB. Това може да извършено автоматично." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Каскадното зареждане на GRUB2 от menu.lst се препоръчва за да е сигурно, че " +"настройките на GRUB2 са правилни, преди инсталирането му в записа за начално " +"зареждане (MBR)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Каквото и да решите, по-късно можете да замените стария запис в MBR с този " +"на GRUB2 със следната команда, изпълнена като администратор:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Инсталиране на GRUB на следните устройства:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Пакетът grub-pc се обновява. Това меню позволява избиране за кои устройства " +"(и дали изобщо) да се изпълни командата grub-install." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"В повечето случаи автоматичното изпълнение на grub-install се препоръчва за " +"предотвратяване на разминаване между образа на GRUB на диска и модулите или " +"файла grub.cfg във файловата система." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Ако не сте сигурни кое устройство е определено за начално зареждане в BIOS, " +"добра идея е да инсталирате GRUB на всички налични устройства." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Забележка: по принцип е възможно GRUB да се инсталира на записите за начално " +"зареждане на дисковите дялове. Списъка включва подходящи дялове, но подобна " +"инсталация ще накара GRUB да използва списъци с блокове, което прави " +"работата му по-малко надеждна и поради тази причина не се препоръчва." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Програмата за начално зареждане на GRUB е била инсталирана на диск, който " +"вече не е достъпен или чийто уникален идентификатор е бил променен. Много е " +"важно инсталираният образ винаги да е отговаря на модулите на GRUB и файла " +"grub.cfg на файловата система. Проверете и се убедете, че GRUB се инсталира " +"на правилните устройства." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" +"Записването на GRUB върху устройството за начално зареждане не успя. " +"Продължаване?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Опитът за инсталиране на GRUB на следните устройства беше неуспешен:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Желаете ли да продължите въпреки това? Ако го направите е възможно " +"компютърът да не може да зареди операционна система." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" +"Записването на GRUB върху устройството за начално зареждане на успя. Нов " +"опит?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Възможно е инсталирането на GRUB на друго устройство да успее, но трябва да " +"проверите дали компютърът може да извършва първоначално зареждане от него. " +"Ако откажете, обновяването от стария GRUB ще бъде отменено." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Продължаване без инсталиране на GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Избрано е GRUB да не се инсталира на никакви устройства. Ако продължите, " +"програмата за начално зареждане може да не е настроена правилно и при " +"следващото стартиране на компютъра ще се използва предишното съдържание на " +"сектора за начално зареждане. Ако в него има предишна инсталация на GRUB 2 е " +"възможно тя да не успее да използва обновените модули или конфигурационния " +"файл." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Ако използвате друга програма за начално зареждане и желаете да я запазите " +"или ако обкръжението е специално и не изисква програма за начално зареждане, " +"тогава е редно да продължите без да инсталирате GRUB. В противен случай би " +"трябвало да инсталирате GRUB някъде." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Изтриване на GRUB 2 от /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Желаете ли да изтриете всички файлове на GRUB от папката /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Това ще възпрепятства зареждането на системата, до инсталиране на друга " +"програма за начално зареждане." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Завършване на преминаването към GRUB2 ?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"На системата има файлове от стария GRUB, но има сектори за начално зареждане " +"от GRUB 2, инсталирани на следните дискове:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Изглежда, че старият GRUB не се използва и вместо него е редно се инсталира " +"GRUB 2 върху дисковете и да се завърши прехода чрез премахване на файловете " +"на стария GRUB. Ако не обновите инсталацията на GRUB 2 е възможно да се " +"появят проблеми с началното зареждане поради несъвместимост с новите пакети." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"В общия случай е добре преходът към GRUB 2 да бъде завършен, освен ако " +"секторите за начално зареждане са създадени от GRUB 2 или от друга " +"операционна система." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Команден ред на Линукс:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Следния команден ред за зареждане на Линукс беше извлечен от /etc/default/" +"grub или от параметъра „kopt“ от файла menu.lst на стария GRUB. Проверете го " +"и ако е нужно го коригирайте." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Параметри на Линукс по подразбиране:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Следните параметри ще бъдат използвани по подразбиране при зареждане на " +"Линукс, освен в авариен режим." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Команден ред за kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Следния команден ред за зареждане на kFreeBSD беше извлечен от /etc/default/" +"grub или от параметъра „kopt“ от файла menu.lst на стария GRUB. Проверете го " +"и ако е нужно го коригирайте." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Параметри на Линукс по подразбиране:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Следните параметри ще бъдат използвани по подразбиране при зареждане на " +"kFreeBSD, освен в авариен режим." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map е създаден наново" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Файлът /boot/grub/device.map е създаден наново, използвайки постоянни имена " +"на устройства. В повечето случаи това води до намаляване на нуждата да се " +"правят промени в бъдеще. Елементите в менюто за начално зареждане на GRUB не " +"са засегнати." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Все пак, понеже в системата има повече от един диск, е възможно съдържанието " +"на стария файл да е от критична важност. Проверете дали имате елементи в " +"менюто за начално зареждане на GRUB, в които да се използват устройства от " +"вида „(hdN)“ и ако е нужно ги коригирайте." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Ако не разбирате предупреждението или ако нямате ръчно-въведени елементи в " +"менюто на GRUB, не обръщайте внимание на това съобщение." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Когато речите да инсталирате GRUB 2 в записа за начално зареждане, " +#~ "изпълнете следната команда като администратор:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Инсталирането на GRUB се провали. Продължаване?" --- grub2-1.98+20100804.orig/debian/po/sv.po +++ grub2-1.98+20100804/debian/po/sv.po @@ -0,0 +1,424 @@ +# translation of grub2 debconf messages to Swedish +# Swedish translation for grub2. +# Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the grub2 package. +# +# Daniel Nylander , 2007. +# Martin Ågren , 2008, 2009. +# Martin Bagge , 2010. +msgid "" +msgstr "" +"Project-Id-Version: grub2_sv\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 21:22+0000\n" +"PO-Revision-Date: 2010-12-09 12:48+0100\n" +"Last-Translator: Martin Bagge / brother \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: Swedish\n" +"X-Poedit-Country: Sweden\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Kedjeladda från menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"GRUB:s uppgraderingsskript har upptäckt en gammal GRUB-inställning i /boot/" +"grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Om du vill ersätta den gamla versionen av GRUB i systemet, rekommenderas " +"att /boot/grub/menu.lst justeras till att kedjeladda GRUB 2 från din " +"existerande, gamla GRUB-inställning. Detta steg kan utföras automatiskt nu." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Det rekommenderas att GRUB 2 kedjeladdas från menu.lst så att det kan " +"säkerställas att den nya GRUB 2-inställningen fungerar innan den installeras " +"direkt till huvudstartsektorn (MBR)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Oberoende av ditt beslut kan den gamla MBR-avbildningen ersättas med GRUB 2 " +"vid ett senare tillfälle genom att följande kommando utförs som root:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "GRUB installationsenheter:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Paketet grub-pc uppdateras. Denna meny ger dig möjlighet att välja vilka, om " +"några, enheter som grub-install ska köras automatiskt för." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Att köra grub-install automatiskt är rekomenderat i de flesta situationer " +"för att förhindra att den installerade GRUB-huvudavbidlningen för att hamna " +"i ett förhållande där GRUB-moduler eller grub.cfg inte är i korrekt läge." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Om du är osäker på vilken disk som är uppstartsdisken enligt BIOS så är det " +"vanligen en god idé att installera GRUB på alla." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"OBS: det är möjligt att installera GRUB i partitionens uppstartsområde " +"också, några av dessa visas nedan. Dock innebär installation där att GRUB " +"tvingas använda en blockeringslista, som gör funktionen mindre pålitlig, och " +"detta rekomenderas inte." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Uppstartshanteraren GRUB var tidigare installerad på en disk som inte längre " +"finns tillgänglig eller vars unika identifikation har ändrats av någon " +"anledning. Det är viktigt att säkerställa att den installerade GRUB-" +"huvudavbildningen är korrekt i förhållande till GRUB-moduler och grub.cfg. " +"Kontrollera återigen att GRUB är tillgänglig på rätt uppstartsenhet." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Skriva GRUB till uppstartsenhet misslyckades - fortsätta?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUB kunde inte installeras på följande enheter:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Vill du fortsätta i alla fall? Det kan innebära att systemet inte kan starta " +"korrekt." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Skrivningen av GRUB till uppstartsenheten misslyckades - försöka igen?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Du kan kanske installera GRUB till någon annan enhet, du bör dock " +"kontrollera att systemet kommer att starta från den enheten. I annat fall " +"kommer uppgraderingen från äldre GRUB-version att avbrytas." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Fortsätt utan att installera GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Du valde att inte installera GRUB på några enheter. Om du fortsätter kommer " +"uppstartshanteraren kanske inte att få korrekta inställningar och när ditt " +"system startar nästa gång kommer det att använda vad som tidigare fanns i " +"boot-sektorn. Om en tidigare version av GRUB 2 används i boot-sektorn finns " +"risk att vissa moduler inte kan laddas och hantera de aktuella " +"inställningsfilerna." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Om du redan kör en annan uppstartshanterare och vill fortsätta med det eller " +"om detta är en specialmiljö som inte behöver en uppstartshanterare ska du " +"fortsätta i alla fall. I annat fall ska du installera GRUB någonstans." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Radera GRUB 2 från /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Vill du att alla GRUB 2-filer ska raderas från /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Detta innebär att systemet inte kan starta om ingen annan uppstartshanterare " +"är installerad." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Avsluta konverteringen till GRUB 2 nu?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Detta system har fortfarande filer från den äldre GRUB-uppstartshanteraren " +"installerade men nu finns det dessutom GRUB 2 uppstartsinformation på " +"följande enheter:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Det är troligt att den äldre GRUB-versionen inte längre används och du bör " +"istället uppgradera till GRUB 2-avbildningar på dessa enheter och avsluta " +"konverteringen till GRUB 2 genom att ta bort äldre GRUB-filer. Om du inte " +"vill uppgradera dessa GRUB 2-avbildningar kan de bli oanvändbara tillsammans " +"med det nya paketet och systemet sluta att fungera korrekt." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Det generella rådet är att avsluta konverteringen till GRUB 2 om dessa filer " +"inte skapats av en GRUB 2-installation på ett annat opertivsystem." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Kommandorad för Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Följande Linux-kommandorad hämtades från /etc/default/grub eller 'kopt'-" +"parametern i gamla GRUB:s menu.lst. Verifiera att den är korrekt och " +"modifiera den om nödvändigt." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Standardkommandorad för Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Följande sträng kommer användas som Linux-parametrar för standardmenyvalet " +"men inte för återhämtningsläge (eng. recovery)." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Kommandorad för kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Följande kFreeBSD-kommandorad hämtades från /etc/default/grub eller 'kopt'-" +"parametern i gamla GRUB:s menu.lst. Verifiera att den är korrekt och " +"modifiera den om nödvändigt." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Standardkommandorad för kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Följande sträng kommer användas som Linux-parametrar för standardmenyvalet " +"men inte för återhämtningsläge (eng. recovery)." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map har skapats på nytt" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Filen /boot/grub/device.map har skrivits om för att använda stabila " +"enhetsnamn. I de allra flesta fall kommer detta innebära att anledningarna " +"att byta namn i framtiden minskar drastiskt. Posterna i uppstartsmenyn som " +"skapas av GRUB ska inte påverkas." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Dock, eftersom mer än en disk finns i systemet kan det innebära att systemet " +"är beroende av den gamla enhetskopplingen. Kontrollera om det finns manuellt " +"införda poster i uppstartsmenyn som är beroende av GRUB:s enhetsnumrering " +"(hdN) och uppdatera dessa om nödvändigt." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Om du inte förstår detta meddelande eller om du inte har några alterantiva " +"menyposter kan du ignorera detta meddelande." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "När GRUB 2 ska laddas direkt från huvudstartsektorn, kan detta " +#~ "åstadkommas genom att (som root) köra följande kommando:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Installationen av GRUB misslyckades. Fortsätta?" --- grub2-1.98+20100804.orig/debian/po/hr.po +++ grub2-1.98+20100804/debian/po/hr.po @@ -0,0 +1,436 @@ +# Translation of grub2 debconf templates to Croatian +# Copyright (C) 2010 Josip Rodin +# This file is distributed under the same license as the grub2 package. +# Josip Rodin , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2 1.97-2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2010-12-08 18:02-0400\n" +"PO-Revision-Date: 2010-07-08 15:40+0200\n" +"Last-Translator: Josip Rodin \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Uitaj ulanano preko menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Skripte za nadogradnju GRUB-a su pronale GRUB Legacy postavke u /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Kako bi zamijenili Legacy verziju GRUB-a na vaem sustavu, preporuuje se " +"prilagodba /boot/grub/menu.lst kako bi se ulanano uitao GRUB 2 iz vaih " +"postojeih GRUB Legacy postavki. Ovaj korak se sada moe automatski izvriti." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Preporuuje se da prihvatite ulanano uitavanje GRUB 2 iz menu.lst, tako da " +"moete provjeriti da vam nove GRUB 2 postavke funkcioniraju, prije nego to " +"izravno instalirate GRUB2 u MBR (Master Boot Record)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "GRUB nije uspio instalaciju na sljedee ureaje:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUB nije uspio instalaciju na sljedee ureaje:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"elite li ipak nastaviti? Ako to napravite, vae raunalo se moda nee moi " +"uredno pokrenuti." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Instalacija GRUB-a nije uspjela. Pokuati ponovo?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Moda moete instalirati GRUB na neki drugi ureaj, iako biste morali " +"provjeriti da se va sustav moe podizati s tog ureaja. U suprotnom, " +"nadogradnja s GRUB Legacy e biti prekinuta." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Nastaviti bez instalacije GRUB-a?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is an " +#| "earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Odabrali ste da ne instalirate GRUB ni na jedan ureaj. Ako nastavite, boot " +"uitava nee biti ispravno podeen, a kada se vae raunalo idui put " +"upali, koristit e to god je prethodno bilo u boot sektoru. Ako se tamo " +"nalazi ranija verzija GRUB 2, moda e doi do problema s uitavanjem modula " +"ili aurnih postavki." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Ako ve imate neki drugi boot uitava i elite ga zadrati, ili ako je ovo " +"neko posebno okruenje gdje ne trebate boot uitava, trebate nastaviti. " +"Inae biste morali negdje instalirati GRUB." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Zavriti prebacivanje na GRUB 2?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Ovaj sustav jo uvijek ima instalirane datoteke GRUB Legacy boot uitavaa, " +"ali sada ima i GRUB 2 boot zapise instalirane na ovim diskovima:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Vjerojatno je GRUB Legacy izbaen iz uporabe i trebali biste nadograditi na " +"GRUB 2 snimke na ovim diskovima te zavriti prebacivanje brisanjem starih " +"GRUB Legacy datoteka. Ako niste nadogradili ove GRUB 2 snimke, onda bi one " +"mogle biti nekompatibilne s novim verzijama paketa, to bi moglo uzrokovati " +"nemogunost ispravnog pokretanja sustava." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Openito, trebali biste dovriti nadogradnju na GRUB 2, osim ako su navedeni " +"boot zapisi napravljeni instalacijom GRUB 2 na nekom drugom operacijskom " +"sustavu." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linux naredbeni redak:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Ovaj naredbeni redak za sam Linux kernel je izvaen iz /etc/default/grub ili " +"iz parametra 'kopt' u menu.lst datoteci GRUB Legacya. Molim provjerite je li " +"ispravan, i ako je potrebno uredite ga." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Pretpostavljeni Linux naredbeni redak:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Sljedei izraz e biti koriten kao parametar za Linux stavke u izborniku, " +"osim za spasonosni nain rada." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "kFreeBSD naredbeni redak:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary." +msgstr "" +"Ovaj naredbeni redak za kFreeBSD kernel je izvaen iz /etc/default/grub ili " +"iz parametra 'kopt' u menu.lst datoteci GRUB Legacya. Molim provjerite je li " +"ispravan, i ako je potrebno uredite ga." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Pretpostavljeni kFreeBSD naredbeni redak:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Sljedei izraz e biti koriten kao parametar za kFreeBSD stavke u " +"izborniku, osim za spasonosni nain rada." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map je regeneriran" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Datoteka /boot/grub/device.map je prepisana kako bi se u njoj koristila " +"stabilna imena ureaja. U veini sluajeva, to bi trebalo znaajno smanjiti " +"potrebu za njenim buduim mijenjanjem, a boot stavke koje generira GRUB ne " +"bi trebale biti pod utjecajem ove promjene." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Ipak, budui da imate vie od jednog diska u vaem sustavu, mogue je da ste " +"ovisili o staroj mapi ureaja. Molim provjerite imate li nekih prilagoenih " +"boot zapisa koji ovise o GRUB-ovom (hdN) oznaavanju ureaja, i aurirajte " +"ih ako je potrebno." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Ako ne razumijete ovu poruku, ili ako nemate prilagoenih boot zapisa, ovu " +"poruku moete zanemariti." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "U oba sluaja ako elite da se GRUB 2 uitava izravno iz MBR-a, moete to " +#~ "napraviti ako (kao root korisnik) pokrenete sljedeu naredbu:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Instalacija GRUB-a nije uspjela. Nastaviti?" --- grub2-1.98+20100804.orig/debian/grub-extras/zfs/COPYING +++ grub2-1.98+20100804/debian/grub-extras/zfs/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program 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. + + 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, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. --- grub2-1.98+20100804.orig/debian/grub-extras/zfs/zfs_fletcher.c +++ grub2-1.98+20100804/debian/grub-extras/zfs/zfs_fletcher.c @@ -0,0 +1,86 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. + * Copyright 2007 Sun Microsystems, Inc. + * Copyright (C) 2009 Vladimir Serbinenko + * + * This program 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. + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +void +fletcher_2(const void *buf, grub_uint64_t size, grub_zfs_endian_t endian, + zio_cksum_t *zcp) +{ + const grub_uint64_t *ip = buf; + const grub_uint64_t *ipend = ip + (size / sizeof (grub_uint64_t)); + grub_uint64_t a0, b0, a1, b1; + + for (a0 = b0 = a1 = b1 = 0; ip < ipend; ip += 2) + { + a0 += grub_zfs_to_cpu64 (ip[0], endian); + a1 += grub_zfs_to_cpu64 (ip[1], endian); + b0 += a0; + b1 += a1; + } + + zcp->zc_word[0] = grub_cpu_to_zfs64 (a0, endian); + zcp->zc_word[1] = grub_cpu_to_zfs64 (a1, endian); + zcp->zc_word[2] = grub_cpu_to_zfs64 (b0, endian); + zcp->zc_word[3] = grub_cpu_to_zfs64 (b1, endian); +} + +void +fletcher_4 (const void *buf, grub_uint64_t size, grub_zfs_endian_t endian, + zio_cksum_t *zcp) +{ + const grub_uint32_t *ip = buf; + const grub_uint32_t *ipend = ip + (size / sizeof (grub_uint32_t)); + grub_uint64_t a, b, c, d; + + for (a = b = c = d = 0; ip < ipend; ip++) + { + a += grub_zfs_to_cpu32 (ip[0], endian);; + b += a; + c += b; + d += c; + } + + zcp->zc_word[0] = grub_cpu_to_zfs64 (a, endian); + zcp->zc_word[1] = grub_cpu_to_zfs64 (b, endian); + zcp->zc_word[2] = grub_cpu_to_zfs64 (c, endian); + zcp->zc_word[3] = grub_cpu_to_zfs64 (d, endian); +} + --- grub2-1.98+20100804.orig/debian/grub-extras/zfs/zfsinfo.c +++ grub2-1.98+20100804/debian/grub-extras/zfs/zfsinfo.c @@ -0,0 +1,414 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. + * Copyright 2008 Sun Microsystems, Inc. + * Copyright (C) 2009 Vladimir Serbinenko + * + * This program 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. + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +static inline void +print_tabs (int n) +{ + int i; + + for (i = 0; i < n; i++) + grub_printf (" "); +} + +static grub_err_t +print_state (char *nvlist, int tab) +{ + grub_uint64_t ival; + int isok = 1; + + print_tabs (tab); + grub_printf ("State: "); + + if (grub_zfs_nvlist_lookup_uint64 (nvlist, ZPOOL_CONFIG_REMOVED, &ival)) + { + grub_printf ("removed "); + isok = 0; + } + + if (grub_zfs_nvlist_lookup_uint64 (nvlist, ZPOOL_CONFIG_FAULTED, &ival)) + { + grub_printf ("faulted "); + isok = 0; + } + + if (grub_zfs_nvlist_lookup_uint64 (nvlist, ZPOOL_CONFIG_OFFLINE, &ival)) + { + grub_printf ("offline "); + isok = 0; + } + + if (grub_zfs_nvlist_lookup_uint64 (nvlist, ZPOOL_CONFIG_FAULTED, &ival)) + grub_printf ("degraded "); + + if (isok) + grub_printf ("online"); + grub_printf ("\n"); + + return GRUB_ERR_NONE; +} + +static grub_err_t +print_vdev_info (char *nvlist, int tab) +{ + char *type = 0; + + type = grub_zfs_nvlist_lookup_string (nvlist, ZPOOL_CONFIG_TYPE); + + if (!type) + { + print_tabs (tab); + grub_printf ("Incorrect VDEV: no type available\n"); + return grub_errno; + } + + if (grub_strcmp (type, VDEV_TYPE_DISK) == 0) + { + char *bootpath = 0; + char *path = 0; + char *devid = 0; + + print_tabs (tab); + grub_printf ("Leaf VDEV\n"); + + print_state (nvlist, tab); + + bootpath = + grub_zfs_nvlist_lookup_string (nvlist, ZPOOL_CONFIG_PHYS_PATH); + print_tabs (tab); + if (!bootpath) + grub_printf ("Bootpath: unavailable\n"); + else + grub_printf ("Bootpath: %s\n", bootpath); + + path = grub_zfs_nvlist_lookup_string (nvlist, "path"); + print_tabs (tab); + if (!path) + grub_printf ("Path: unavailable\n"); + else + grub_printf ("Path: %s\n", path); + + devid = grub_zfs_nvlist_lookup_string (nvlist, ZPOOL_CONFIG_DEVID); + print_tabs (tab); + if (!devid) + grub_printf ("Devid: unavailable\n"); + else + grub_printf ("Devid: %s\n", devid); + grub_free (bootpath); + grub_free (devid); + grub_free (path); + return GRUB_ERR_NONE; + } + + if (grub_strcmp (type, VDEV_TYPE_MIRROR) == 0) + { + int nelm, i; + + nelm = grub_zfs_nvlist_lookup_nvlist_array_get_nelm + (nvlist, ZPOOL_CONFIG_CHILDREN); + + print_tabs (tab); + if (nelm <= 0) + { + grub_printf ("Incorrect mirror VDEV\n"); + return GRUB_ERR_NONE; + } + grub_printf ("Mirror VDEV with %d children\n", nelm); + print_state (nvlist, tab); + + for (i = 0; i < nelm; i++) + { + char *child; + + child = grub_zfs_nvlist_lookup_nvlist_array + (nvlist, ZPOOL_CONFIG_CHILDREN, i); + + print_tabs (tab); + if (!child) + { + grub_printf ("Mirror VDEV element %d isn't correct\n", i); + continue; + } + + grub_printf ("Mirror VDEV element %d:\n", i); + print_vdev_info (child, tab + 1); + + grub_free (child); + } + } + + print_tabs (tab); + grub_printf ("Unknown VDEV type: %s\n", type); + + return GRUB_ERR_NONE; +} + +static grub_err_t +get_bootpath (char *nvlist, char **bootpath, char **devid) +{ + char *type = 0; + + type = grub_zfs_nvlist_lookup_string (nvlist, ZPOOL_CONFIG_TYPE); + + if (!type) + return grub_errno; + + if (grub_strcmp (type, VDEV_TYPE_DISK) == 0) + { + *bootpath = grub_zfs_nvlist_lookup_string (nvlist, + ZPOOL_CONFIG_PHYS_PATH); + *devid = grub_zfs_nvlist_lookup_string (nvlist, ZPOOL_CONFIG_DEVID); + if (!*bootpath || !*devid) + { + grub_free (*bootpath); + grub_free (*devid); + *bootpath = 0; + *devid = 0; + } + return GRUB_ERR_NONE; + } + + if (grub_strcmp (type, VDEV_TYPE_MIRROR) == 0) + { + int nelm, i; + + nelm = grub_zfs_nvlist_lookup_nvlist_array_get_nelm + (nvlist, ZPOOL_CONFIG_CHILDREN); + + for (i = 0; i < nelm; i++) + { + char *child; + + child = grub_zfs_nvlist_lookup_nvlist_array (nvlist, + ZPOOL_CONFIG_CHILDREN, + i); + + get_bootpath (child, bootpath, devid); + + grub_free (child); + + if (*bootpath && *devid) + return GRUB_ERR_NONE; + } + } + + return GRUB_ERR_NONE; +} + +static char *poolstates[] = { + [POOL_STATE_ACTIVE] = "active", + [POOL_STATE_EXPORTED] = "exported", + [POOL_STATE_DESTROYED] = "destroyed", + [POOL_STATE_SPARE] = "reserved for hot spare", + [POOL_STATE_L2CACHE] = "level 2 ARC device", + [POOL_STATE_UNINITIALIZED] = "uninitialized", + [POOL_STATE_UNAVAIL] = "unavailable", + [POOL_STATE_POTENTIALLY_ACTIVE] = "potentially active" +}; + +static grub_err_t +grub_cmd_zfsinfo (grub_command_t cmd __attribute__ ((unused)), int argc, + char **args) +{ + grub_device_t dev; + char *devname; + grub_err_t err; + char *nvlist = 0; + char *nv = 0; + char *poolname; + grub_uint64_t guid; + grub_uint64_t pool_state; + int found; + + if (argc < 1) + return grub_error (GRUB_ERR_BAD_ARGUMENT, "device name required"); + + if (args[0][0] == '(' && args[0][grub_strlen (args[0]) - 1] == ')') + { + devname = grub_strdup (args[0] + 1); + if (devname) + devname[grub_strlen (devname) - 1] = 0; + } + else + devname = grub_strdup (args[0]); + if (!devname) + return grub_errno; + + dev = grub_device_open (devname); + grub_free (devname); + if (!dev) + return grub_errno; + + err = grub_zfs_fetch_nvlist (dev, &nvlist); + + grub_device_close (dev); + + if (err) + return err; + + poolname = grub_zfs_nvlist_lookup_string (nvlist, ZPOOL_CONFIG_POOL_NAME); + if (!poolname) + grub_printf ("Pool name: unavailable\n"); + else + grub_printf ("Pool name: %s\n", poolname); + + found = + grub_zfs_nvlist_lookup_uint64 (nvlist, ZPOOL_CONFIG_POOL_GUID, &guid); + if (!found) + grub_printf ("Pool GUID: unavailable\n"); + else + grub_printf ("Pool GUID: %016llx\n", (long long unsigned) guid); + + found = grub_zfs_nvlist_lookup_uint64 (nvlist, ZPOOL_CONFIG_POOL_STATE, + &pool_state); + if (!found) + grub_printf ("Unable to retrieve pool state\n"); + else if (pool_state >= ARRAY_SIZE (poolstates)) + grub_printf ("Unrecognized pool state\n"); + else + grub_printf ("Pool state: %s\n", poolstates[pool_state]); + + nv = grub_zfs_nvlist_lookup_nvlist (nvlist, ZPOOL_CONFIG_VDEV_TREE); + + if (!nv) + grub_printf ("No vdev tree available\n"); + else + print_vdev_info (nv, 1); + + grub_free (nv); + grub_free (nvlist); + + return GRUB_ERR_NONE; +} + +static grub_err_t +grub_cmd_zfs_bootfs (grub_command_t cmd __attribute__ ((unused)), int argc, + char **args) +{ + grub_device_t dev; + char *devname; + grub_err_t err; + char *nvlist = 0; + char *nv = 0; + char *bootpath = 0, *devid = 0; + char *fsname; + char *bootfs; + char *poolname; + grub_uint64_t mdnobj; + + if (argc < 1) + return grub_error (GRUB_ERR_BAD_ARGUMENT, "filesystem name required"); + + devname = grub_file_get_device_name (args[0]); + if (grub_errno) + return grub_errno; + + dev = grub_device_open (devname); + grub_free (devname); + if (!dev) + return grub_errno; + + err = grub_zfs_fetch_nvlist (dev, &nvlist); + + fsname = grub_strchr (args[0], ')'); + if (fsname) + fsname++; + else + fsname = args[0]; + + if (!err) + err = grub_zfs_getmdnobj (dev, fsname, &mdnobj); + + grub_device_close (dev); + + if (err) + return err; + + poolname = grub_zfs_nvlist_lookup_string (nvlist, ZPOOL_CONFIG_POOL_NAME); + if (!poolname) + { + if (!grub_errno) + grub_error (GRUB_ERR_BAD_FS, "No poolname found"); + return grub_errno; + } + + nv = grub_zfs_nvlist_lookup_nvlist (nvlist, ZPOOL_CONFIG_VDEV_TREE); + + if (nv) + get_bootpath (nv, &bootpath, &devid); + + grub_free (nv); + grub_free (nvlist); + + if (bootpath && devid) + { + bootfs = grub_xasprintf ("zfs-bootfs=%s/%llu bootpath=%s diskdevid=%s", + poolname, (unsigned long long) mdnobj, + bootpath, devid); + if (!bootfs) + return grub_errno; + } + else + { + bootfs = grub_xasprintf ("zfs-bootfs=%s/%llu", + poolname, (unsigned long long) mdnobj); + if (!bootfs) + return grub_errno; + } + if (argc >= 2) + grub_env_set (args[1], bootfs); + else + grub_printf ("%s\n", bootfs); + + grub_free (bootfs); + grub_free (poolname); + grub_free (bootpath); + grub_free (devid); + + return GRUB_ERR_NONE; +} + + +static grub_command_t cmd_info, cmd_bootfs; + +GRUB_MOD_INIT (zfsinfo) +{ + cmd_info = grub_register_command ("zfsinfo", grub_cmd_zfsinfo, + "zfsinfo DEVICE", + "Print ZFS info about DEVICE."); + cmd_bootfs = grub_register_command ("zfs-bootfs", grub_cmd_zfs_bootfs, + "zfs-bootfs FILESYSTEM [VARIABLE]", + "Print ZFS-BOOTFSOBJ or set it to VARIABLE"); +} + +GRUB_MOD_FINI (zfsinfo) +{ + grub_unregister_command (cmd_info); + grub_unregister_command (cmd_bootfs); +} --- grub2-1.98+20100804.orig/debian/grub-extras/zfs/zfs_sha256.c +++ grub2-1.98+20100804/debian/grub-extras/zfs/zfs_sha256.c @@ -0,0 +1,145 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. + * Copyright 2007 Sun Microsystems, Inc. + * Copyright (C) 2009 Vladimir Serbinenko + * + * This program 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. + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * SHA-256 checksum, as specified in FIPS 180-2, available at: + * http://csrc.nist.gov/cryptval + * + * This is a very compact implementation of SHA-256. + * It is designed to be simple and portable, not to be fast. + */ + +/* + * The literal definitions according to FIPS180-2 would be: + * + * Ch(x, y, z) (((x) & (y)) ^ ((~(x)) & (z))) + * Maj(x, y, z) (((x) & (y)) | ((x) & (z)) | ((y) & (z))) + * + * We use logical equivalents which require one less op. + */ +#define Ch(x, y, z) ((z) ^ ((x) & ((y) ^ (z)))) +#define Maj(x, y, z) (((x) & (y)) ^ ((z) & ((x) ^ (y)))) +#define Rot32(x, s) (((x) >> s) | ((x) << (32 - s))) +#define SIGMA0(x) (Rot32(x, 2) ^ Rot32(x, 13) ^ Rot32(x, 22)) +#define SIGMA1(x) (Rot32(x, 6) ^ Rot32(x, 11) ^ Rot32(x, 25)) +#define sigma0(x) (Rot32(x, 7) ^ Rot32(x, 18) ^ ((x) >> 3)) +#define sigma1(x) (Rot32(x, 17) ^ Rot32(x, 19) ^ ((x) >> 10)) + +static const grub_uint32_t SHA256_K[64] = { + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, + 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, + 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, + 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, + 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, + 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, + 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, + 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, + 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 +}; + +static void +SHA256Transform(grub_uint32_t *H, const grub_uint8_t *cp) +{ + grub_uint32_t a, b, c, d, e, f, g, h, t, T1, T2, W[64]; + + for (t = 0; t < 16; t++, cp += 4) + W[t] = (cp[0] << 24) | (cp[1] << 16) | (cp[2] << 8) | cp[3]; + + for (t = 16; t < 64; t++) + W[t] = sigma1(W[t - 2]) + W[t - 7] + + sigma0(W[t - 15]) + W[t - 16]; + + a = H[0]; b = H[1]; c = H[2]; d = H[3]; + e = H[4]; f = H[5]; g = H[6]; h = H[7]; + + for (t = 0; t < 64; t++) { + T1 = h + SIGMA1(e) + Ch(e, f, g) + SHA256_K[t] + W[t]; + T2 = SIGMA0(a) + Maj(a, b, c); + h = g; g = f; f = e; e = d + T1; + d = c; c = b; b = a; a = T1 + T2; + } + + H[0] += a; H[1] += b; H[2] += c; H[3] += d; + H[4] += e; H[5] += f; H[6] += g; H[7] += h; +} + +void +zio_checksum_SHA256(const void *buf, grub_uint64_t size, + grub_zfs_endian_t endian, zio_cksum_t *zcp) +{ + grub_uint32_t H[8] = { 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, + 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19 }; + grub_uint8_t pad[128]; + unsigned padsize = size & 63; + unsigned i; + + for (i = 0; i < size - padsize; i += 64) + SHA256Transform(H, (grub_uint8_t *)buf + i); + + for (i = 0; i < padsize; i++) + pad[i] = ((grub_uint8_t *)buf)[i]; + + for (pad[padsize++] = 0x80; (padsize & 63) != 56; padsize++) + pad[padsize] = 0; + + for (i = 0; i < 8; i++) + pad[padsize++] = (size << 3) >> (56 - 8 * i); + + for (i = 0; i < padsize; i += 64) + SHA256Transform(H, pad + i); + + zcp->zc_word[0] = grub_cpu_to_zfs64 ((grub_uint64_t)H[0] << 32 | H[1], + endian); + zcp->zc_word[1] = grub_cpu_to_zfs64 ((grub_uint64_t)H[2] << 32 | H[3], + endian); + zcp->zc_word[2] = grub_cpu_to_zfs64 ((grub_uint64_t)H[4] << 32 | H[5], + endian); + zcp->zc_word[3] = grub_cpu_to_zfs64 ((grub_uint64_t)H[6] << 32 | H[7], + endian); +} --- grub2-1.98+20100804.orig/debian/grub-extras/zfs/README +++ grub2-1.98+20100804/debian/grub-extras/zfs/README @@ -0,0 +1,11 @@ + +grub-extras is meant to be used as an overlay on grub2 source tree. + +Build instructions: + + - Copy grub-extras in a subdirectory of your grub2 checkout. + For example, "grub-extras". + + - Export GRUB_CONTRIB environment variable to point to this directory. + + - Build GRUB as usual. --- grub2-1.98+20100804.orig/debian/grub-extras/zfs/zfs_lzjb.c +++ grub2-1.98+20100804/debian/grub-extras/zfs/zfs_lzjb.c @@ -0,0 +1,95 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. + * Copyright 2007 Sun Microsystems, Inc. + * Copyright (C) 2009 Vladimir Serbinenko + * + * This program 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. + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define MATCH_BITS 6 +#define MATCH_MIN 3 +#define OFFSET_MASK ((1 << (16 - MATCH_BITS)) - 1) + +/* + * Decompression Entry - lzjb + */ +#ifndef NBBY +#define NBBY 8 +#endif + +grub_err_t +lzjb_decompress (void *s_start, void *d_start, grub_size_t s_len, + grub_size_t d_len); + +grub_err_t +lzjb_decompress (void *s_start, void *d_start, grub_size_t s_len, + grub_size_t d_len) +{ + grub_uint8_t *src = s_start; + grub_uint8_t *dst = d_start; + grub_uint8_t *d_end = (grub_uint8_t *) d_start + d_len; + grub_uint8_t *s_end = (grub_uint8_t *) s_start + s_len; + grub_uint8_t *cpy, copymap = 0; + int copymask = 1 << (NBBY - 1); + + while (dst < d_end && src < s_end) + { + if ((copymask <<= 1) == (1 << NBBY)) + { + copymask = 1; + copymap = *src++; + } + if (src >= s_end) + return grub_error (GRUB_ERR_BAD_FS, "lzjb decompression failed"); + if (copymap & copymask) + { + int mlen = (src[0] >> (NBBY - MATCH_BITS)) + MATCH_MIN; + int offset = ((src[0] << NBBY) | src[1]) & OFFSET_MASK; + src += 2; + cpy = dst - offset; + if (src > s_end || cpy < (grub_uint8_t *) d_start) + return grub_error (GRUB_ERR_BAD_FS, "lzjb decompression failed"); + while (--mlen >= 0 && dst < d_end) + *dst++ = *cpy++; + } + else + *dst++ = *src++; + } + if (dst < d_end) + return grub_error (GRUB_ERR_BAD_FS, "lzjb decompression failed"); + return GRUB_ERR_NONE; +} --- grub2-1.98+20100804.orig/debian/grub-extras/zfs/zfs.c +++ grub2-1.98+20100804/debian/grub-extras/zfs/zfs.c @@ -0,0 +1,2482 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. + * Copyright 2008 Sun Microsystems, Inc. + * Copyright (C) 2009 Vladimir Serbinenko + * + * This program 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. + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +/* + * The zfs plug-in routines for GRUB are: + * + * zfs_mount() - locates a valid uberblock of the root pool and reads + * in its MOS at the memory address MOS. + * + * zfs_open() - locates a plain file object by following the MOS + * and places its dnode at the memory address DNODE. + * + * zfs_read() - read in the data blocks pointed by the DNODE. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define ZPOOL_PROP_BOOTFS "bootfs" + +#define MIN(a,b) (((a) < (b)) ? (a) : (b)) + +/* + * For nvlist manipulation. (from nvpair.h) + */ +#define NV_ENCODE_NATIVE 0 +#define NV_ENCODE_XDR 1 +#define NV_BIG_ENDIAN 0 +#define NV_LITTLE_ENDIAN 1 +#define DATA_TYPE_UINT64 8 +#define DATA_TYPE_STRING 9 +#define DATA_TYPE_NVLIST 19 +#define DATA_TYPE_NVLIST_ARRAY 20 + +#ifndef GRUB_UTIL +static grub_dl_t my_mod; +#endif + +#define P2PHASE(x, align) ((x) & ((align) - 1)) +#define DVA_OFFSET_TO_PHYS_SECTOR(offset) \ + ((offset + VDEV_LABEL_START_SIZE) >> SPA_MINBLOCKSHIFT) + +/* + * FAT ZAP data structures + */ +#define ZFS_CRC64_POLY 0xC96C5795D7870F42ULL /* ECMA-182, reflected form */ +#define ZAP_HASH_IDX(hash, n) (((n) == 0) ? 0 : ((hash) >> (64 - (n)))) +#define CHAIN_END 0xffff /* end of the chunk chain */ + +/* + * The amount of space within the chunk available for the array is: + * chunk size - space for type (1) - space for next pointer (2) + */ +#define ZAP_LEAF_ARRAY_BYTES (ZAP_LEAF_CHUNKSIZE - 3) + +#define ZAP_LEAF_HASH_SHIFT(bs) (bs - 5) +#define ZAP_LEAF_HASH_NUMENTRIES(bs) (1 << ZAP_LEAF_HASH_SHIFT(bs)) +#define LEAF_HASH(bs, h) \ + ((ZAP_LEAF_HASH_NUMENTRIES(bs)-1) & \ + ((h) >> (64 - ZAP_LEAF_HASH_SHIFT(bs)-l->l_hdr.lh_prefix_len))) + +/* + * The amount of space available for chunks is: + * block size shift - hash entry size (2) * number of hash + * entries - header space (2*chunksize) + */ +#define ZAP_LEAF_NUMCHUNKS(bs) \ + (((1<l_hash + ZAP_LEAF_HASH_NUMENTRIES(bs)))[idx] +#define ZAP_LEAF_ENTRY(l, bs, idx) (&ZAP_LEAF_CHUNK(l, bs, idx).l_entry) + + +/* + * Decompression Entry - lzjb + */ +#ifndef NBBY +#define NBBY 8 +#endif + +extern grub_err_t lzjb_decompress (void *, void *, grub_size_t, grub_size_t); + +typedef grub_err_t zfs_decomp_func_t (void *s_start, void *d_start, + grub_size_t s_len, grub_size_t d_len); +typedef struct decomp_entry +{ + char *name; + zfs_decomp_func_t *decomp_func; +} decomp_entry_t; + +typedef struct dnode_end +{ + dnode_phys_t dn; + grub_zfs_endian_t endian; +} dnode_end_t; + +struct grub_zfs_data +{ + /* cache for a file block of the currently zfs_open()-ed file */ + char *file_buf; + grub_uint64_t file_start; + grub_uint64_t file_end; + + /* cache for a dnode block */ + dnode_phys_t *dnode_buf; + dnode_phys_t *dnode_mdn; + grub_uint64_t dnode_start; + grub_uint64_t dnode_end; + grub_zfs_endian_t dnode_endian; + + uberblock_t current_uberblock; + grub_disk_t disk; + + dnode_end_t mos; + dnode_end_t mdn; + dnode_end_t dnode; + + grub_disk_addr_t vdev_phys_sector; +}; + +decomp_entry_t decomp_table[ZIO_COMPRESS_FUNCTIONS] = { + {"inherit", 0}, /* ZIO_COMPRESS_INHERIT */ + {"on", lzjb_decompress}, /* ZIO_COMPRESS_ON */ + {"off", 0}, /* ZIO_COMPRESS_OFF */ + {"lzjb", lzjb_decompress}, /* ZIO_COMPRESS_LZJB */ + {"empty", 0} /* ZIO_COMPRESS_EMPTY */ +}; + +static grub_err_t zio_read_data (blkptr_t * bp, grub_zfs_endian_t endian, + void *buf, struct grub_zfs_data *data); + +/* + * Our own version of log2(). Same thing as highbit()-1. + */ +static int +zfs_log2 (grub_uint64_t num) +{ + int i = 0; + + while (num > 1) + { + i++; + num = num >> 1; + } + + return (i); +} + +/* Checksum Functions */ +static void +zio_checksum_off (const void *buf __attribute__ ((unused)), + grub_uint64_t size __attribute__ ((unused)), + grub_zfs_endian_t endian __attribute__ ((unused)), + zio_cksum_t * zcp) +{ + ZIO_SET_CHECKSUM (zcp, 0, 0, 0, 0); +} + +/* Checksum Table and Values */ +zio_checksum_info_t zio_checksum_table[ZIO_CHECKSUM_FUNCTIONS] = { + {NULL, 0, 0, "inherit"}, + {NULL, 0, 0, "on"}, + {zio_checksum_off, 0, 0, "off"}, + {zio_checksum_SHA256, 1, 1, "label"}, + {zio_checksum_SHA256, 1, 1, "gang_header"}, + {fletcher_2, 0, 1, "zilog"}, + {fletcher_2, 0, 0, "fletcher2"}, + {fletcher_4, 1, 0, "fletcher4"}, + {zio_checksum_SHA256, 1, 0, "SHA256"}, +}; + +/* + * zio_checksum_verify: Provides support for checksum verification. + * + * Fletcher2, Fletcher4, and SHA256 are supported. + * + */ +static grub_err_t +zio_checksum_verify (zio_cksum_t zc, grub_uint32_t checksum, + grub_zfs_endian_t endian, char *buf, int size) +{ + zio_block_tail_t *zbt = (zio_block_tail_t *) (buf + size) - 1; + zio_checksum_info_t *ci = &zio_checksum_table[checksum]; + zio_cksum_t actual_cksum, expected_cksum; + + if (checksum >= ZIO_CHECKSUM_FUNCTIONS || ci->ci_func == NULL) + { + grub_dprintf ("zfs", "unknown checksum function %d\n", checksum); + return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, + "unknown checksum function %d", checksum); + } + + if (ci->ci_zbt) + { + expected_cksum = zbt->zbt_cksum; + zbt->zbt_cksum = zc; + ci->ci_func (buf, size, endian, &actual_cksum); + zbt->zbt_cksum = expected_cksum; + zc = expected_cksum; + } + else + ci->ci_func (buf, size, endian, &actual_cksum); + + if ((actual_cksum.zc_word[0] != zc.zc_word[0]) + || (actual_cksum.zc_word[1] != zc.zc_word[1]) + || (actual_cksum.zc_word[2] != zc.zc_word[2]) + || (actual_cksum.zc_word[3] != zc.zc_word[3])) + { + grub_dprintf ("zfs", "checksum %d verification failed\n", checksum); + grub_dprintf ("zfs", "actual checksum %16llx %16llx %16llx %16llx\n", + (unsigned long long) actual_cksum.zc_word[0], + (unsigned long long) actual_cksum.zc_word[1], + (unsigned long long) actual_cksum.zc_word[2], + (unsigned long long) actual_cksum.zc_word[3]); + grub_dprintf ("zfs", "expected checksum %16llx %16llx %16llx %16llx\n", + (unsigned long long) zc.zc_word[0], + (unsigned long long) zc.zc_word[1], + (unsigned long long) zc.zc_word[2], + (unsigned long long) zc.zc_word[3]); + return grub_error (GRUB_ERR_BAD_FS, "checksum verification failed"); + } + + return GRUB_ERR_NONE; +} + +/* + * vdev_uberblock_compare takes two uberblock structures and returns an integer + * indicating the more recent of the two. + * Return Value = 1 if ub2 is more recent + * Return Value = -1 if ub1 is more recent + * The most recent uberblock is determined using its transaction number and + * timestamp. The uberblock with the highest transaction number is + * considered "newer". If the transaction numbers of the two blocks match, the + * timestamps are compared to determine the "newer" of the two. + */ +static int +vdev_uberblock_compare (uberblock_t * ub1, uberblock_t * ub2) +{ + grub_zfs_endian_t ub1_endian, ub2_endian; + if (grub_zfs_to_cpu64 (ub1->ub_magic, LITTLE_ENDIAN) == UBERBLOCK_MAGIC) + ub1_endian = LITTLE_ENDIAN; + else + ub1_endian = BIG_ENDIAN; + if (grub_zfs_to_cpu64 (ub2->ub_magic, LITTLE_ENDIAN) == UBERBLOCK_MAGIC) + ub2_endian = LITTLE_ENDIAN; + else + ub2_endian = BIG_ENDIAN; + + if (grub_zfs_to_cpu64 (ub1->ub_txg, ub1_endian) + < grub_zfs_to_cpu64 (ub2->ub_txg, ub2_endian)) + return (-1); + if (grub_zfs_to_cpu64 (ub1->ub_txg, ub1_endian) + > grub_zfs_to_cpu64 (ub2->ub_txg, ub2_endian)) + return (1); + + if (grub_zfs_to_cpu64 (ub1->ub_timestamp, ub1_endian) + < grub_zfs_to_cpu64 (ub2->ub_timestamp, ub2_endian)) + return (-1); + if (grub_zfs_to_cpu64 (ub1->ub_timestamp, ub1_endian) + > grub_zfs_to_cpu64 (ub2->ub_timestamp, ub2_endian)) + return (1); + + return (0); +} + +/* + * Three pieces of information are needed to verify an uberblock: the magic + * number, the version number, and the checksum. + * + * Currently Implemented: version number, magic number + * Need to Implement: checksum + * + */ +static grub_err_t +uberblock_verify (uberblock_phys_t * ub, int offset) +{ + uberblock_t *uber = &ub->ubp_uberblock; + grub_err_t err; + grub_zfs_endian_t endian = UNKNOWN_ENDIAN; + zio_cksum_t zc; + + if (grub_zfs_to_cpu64 (uber->ub_magic, LITTLE_ENDIAN) == UBERBLOCK_MAGIC + && grub_zfs_to_cpu64 (uber->ub_version, LITTLE_ENDIAN) > 0 + && grub_zfs_to_cpu64 (uber->ub_version, LITTLE_ENDIAN) <= SPA_VERSION) + endian = LITTLE_ENDIAN; + + if (grub_zfs_to_cpu64 (uber->ub_magic, BIG_ENDIAN) == UBERBLOCK_MAGIC + && grub_zfs_to_cpu64 (uber->ub_version, BIG_ENDIAN) > 0 + && grub_zfs_to_cpu64 (uber->ub_version, BIG_ENDIAN) <= SPA_VERSION) + endian = BIG_ENDIAN; + + if (endian == UNKNOWN_ENDIAN) + return grub_error (GRUB_ERR_BAD_FS, "invalid uberblock magic"); + + grub_memset (&zc, 0, sizeof (zc)); + + zc.zc_word[0] = grub_cpu_to_zfs64 (offset, endian); + err = zio_checksum_verify (zc, ZIO_CHECKSUM_LABEL, endian, + (char *) ub, UBERBLOCK_SIZE); + + return err; +} + +/* + * Find the best uberblock. + * Return: + * Success - Pointer to the best uberblock. + * Failure - NULL + */ +static uberblock_phys_t * +find_bestub (uberblock_phys_t * ub_array, grub_disk_addr_t sector) +{ + uberblock_phys_t *ubbest = NULL; + int i; + grub_disk_addr_t offset; + grub_err_t err = GRUB_ERR_NONE; + + for (i = 0; i < (VDEV_UBERBLOCK_RING >> VDEV_UBERBLOCK_SHIFT); i++) + { + offset = (sector << SPA_MINBLOCKSHIFT) + VDEV_PHYS_SIZE + + (i << VDEV_UBERBLOCK_SHIFT); + + err = uberblock_verify (&ub_array[i], offset); + if (err) + { + grub_errno = GRUB_ERR_NONE; + continue; + } + if (ubbest == NULL + || vdev_uberblock_compare (&(ub_array[i].ubp_uberblock), + &(ubbest->ubp_uberblock)) > 0) + ubbest = &ub_array[i]; + } + if (!ubbest) + grub_errno = err; + + return (ubbest); +} + +static inline grub_size_t +get_psize (blkptr_t * bp, grub_zfs_endian_t endian) +{ + return ((((grub_zfs_to_cpu64 ((bp)->blk_prop, endian) >> 16) & 0xffff) + 1) + << SPA_MINBLOCKSHIFT); +} + +static grub_uint64_t +dva_get_offset (dva_t * dva, grub_zfs_endian_t endian) +{ + grub_dprintf ("zfs", "dva=%llx, %llx\n", + (unsigned long long) dva->dva_word[0], + (unsigned long long) dva->dva_word[1]); + return grub_zfs_to_cpu64 ((dva)->dva_word[1], + endian) << SPA_MINBLOCKSHIFT; +} + + +/* + * Read a block of data based on the gang block address dva, + * and put its data in buf. + * + */ +static grub_err_t +zio_read_gang (blkptr_t * bp, grub_zfs_endian_t endian, dva_t * dva, void *buf, + struct grub_zfs_data *data) +{ + zio_gbh_phys_t *zio_gb; + grub_uint64_t offset, sector; + unsigned i; + grub_err_t err; + zio_cksum_t zc; + + grub_memset (&zc, 0, sizeof (zc)); + + zio_gb = grub_malloc (SPA_GANGBLOCKSIZE); + if (!zio_gb) + return grub_errno; + grub_dprintf ("zfs", endian == LITTLE_ENDIAN ? "little-endian gang\n" + :"big-endian gang\n"); + offset = dva_get_offset (dva, endian); + sector = DVA_OFFSET_TO_PHYS_SECTOR (offset); + grub_dprintf ("zfs", "offset=%llx\n", (unsigned long long) offset); + + /* read in the gang block header */ + err = grub_disk_read (data->disk, sector, 0, SPA_GANGBLOCKSIZE, + (char *) zio_gb); + if (err) + { + grub_free (zio_gb); + return err; + } + + /* XXX */ + /* self checksuming the gang block header */ + ZIO_SET_CHECKSUM (&zc, DVA_GET_VDEV (dva), + dva_get_offset (dva, endian), bp->blk_birth, 0); + err = zio_checksum_verify (zc, ZIO_CHECKSUM_GANG_HEADER, endian, + (char *) zio_gb, SPA_GANGBLOCKSIZE); + if (err) + { + grub_free (zio_gb); + return err; + } + + endian = (grub_zfs_to_cpu64 (bp->blk_prop, endian) >> 63) & 1; + + for (i = 0; i < SPA_GBH_NBLKPTRS; i++) + { + if (zio_gb->zg_blkptr[i].blk_birth == 0) + continue; + + err = zio_read_data (&zio_gb->zg_blkptr[i], endian, buf, data); + if (err) + { + grub_free (zio_gb); + return err; + } + buf = (char *) buf + get_psize (&zio_gb->zg_blkptr[i], endian); + } + grub_free (zio_gb); + return GRUB_ERR_NONE; +} + +/* + * Read in a block of raw data to buf. + */ +static grub_err_t +zio_read_data (blkptr_t * bp, grub_zfs_endian_t endian, void *buf, + struct grub_zfs_data *data) +{ + int i, psize; + grub_err_t err = GRUB_ERR_NONE; + + psize = get_psize (bp, endian); + + /* pick a good dva from the block pointer */ + for (i = 0; i < SPA_DVAS_PER_BP; i++) + { + grub_uint64_t offset, sector; + + if (bp->blk_dva[i].dva_word[0] == 0 && bp->blk_dva[i].dva_word[1] == 0) + continue; + + if ((grub_zfs_to_cpu64 (bp->blk_dva[i].dva_word[1], endian)>>63) & 1) + err = zio_read_gang (bp, endian, &bp->blk_dva[i], buf, data); + else + { + /* read in a data block */ + offset = dva_get_offset (&bp->blk_dva[i], endian); + sector = DVA_OFFSET_TO_PHYS_SECTOR (offset); + err = grub_disk_read (data->disk, sector, 0, psize, buf); + } + if (!err) + return GRUB_ERR_NONE; + grub_errno = GRUB_ERR_NONE; + } + + if (!err) + err = grub_error (GRUB_ERR_BAD_FS, "couldn't find a valid DVA"); + grub_errno = err; + + return err; +} + +/* + * Read in a block of data, verify its checksum, decompress if needed, + * and put the uncompressed data in buf. + */ +static grub_err_t +zio_read (blkptr_t * bp, grub_zfs_endian_t endian, void **buf, + grub_size_t *size, struct grub_zfs_data *data) +{ + grub_size_t lsize, psize; + int comp; + char *compbuf; + grub_err_t err; + zio_cksum_t zc = bp->blk_cksum; + grub_uint32_t checksum; + + checksum = (grub_zfs_to_cpu64((bp)->blk_prop, endian) >> 40) & 0xff; + comp = (grub_zfs_to_cpu64((bp)->blk_prop, endian)>>32) & 0xff; + lsize = (BP_IS_HOLE(bp) ? 0 : + (((grub_zfs_to_cpu64 ((bp)->blk_prop, endian) & 0xffff) + 1) + << SPA_MINBLOCKSHIFT)); + psize = get_psize (bp, endian); + + if (size) + *size = lsize; + + if ((unsigned int) comp >= ZIO_COMPRESS_FUNCTIONS || + (comp != ZIO_COMPRESS_OFF && decomp_table[comp].decomp_func == NULL)) + { + grub_dprintf ("zfs", "comp=%d\n", comp); + return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, + "compression algorithm not supported\n"); + } + + if (comp != ZIO_COMPRESS_OFF) + { + compbuf = grub_malloc (psize); + if (! compbuf) + return grub_errno; + } + else + compbuf = *buf = grub_malloc (lsize); + + grub_dprintf ("zfs", "endian = %d\n", endian); + err = zio_read_data (bp, endian, compbuf, data); + if (err) + { + grub_free (compbuf); + return err; + } + + err = zio_checksum_verify (zc, checksum, endian, compbuf, psize); + if (err) + { + grub_dprintf ("zfs", "incorrect checksum\n"); + grub_free (compbuf); + return err; + } + + if (comp != ZIO_COMPRESS_OFF) + { + *buf = grub_malloc (lsize); + err = decomp_table[comp].decomp_func (compbuf, *buf, psize, lsize); + grub_free (compbuf); + if (err) + return err; + } + + return GRUB_ERR_NONE; +} + +/* + * Get the block from a block id. + * push the block onto the stack. + * + */ +static grub_err_t +dmu_read (dnode_end_t * dn, grub_uint64_t blkid, void **buf, + grub_zfs_endian_t *endian_out, struct grub_zfs_data *data) +{ + int idx, level; + blkptr_t *bp_array = dn->dn.dn_blkptr; + int epbs = dn->dn.dn_indblkshift - SPA_BLKPTRSHIFT; + blkptr_t *bp, *tmpbuf = 0; + grub_zfs_endian_t endian; + grub_err_t err = GRUB_ERR_NONE; + + bp = grub_malloc (sizeof (blkptr_t)); + if (!bp) + return grub_errno; + + endian = dn->endian; + for (level = dn->dn.dn_nlevels - 1; level >= 0; level--) + { + grub_dprintf ("zfs", "endian = %d\n", endian); + idx = (blkid >> (epbs * level)) & ((1 << epbs) - 1); + *bp = bp_array[idx]; + if (bp_array != dn->dn.dn_blkptr) + { + grub_free (bp_array); + bp_array = 0; + } + + if (BP_IS_HOLE (bp)) + { + grub_size_t size = grub_zfs_to_cpu16 (dn->dn.dn_datablkszsec, + dn->endian) + << SPA_MINBLOCKSHIFT; + *buf = grub_malloc (size); + if (*buf) + { + err = grub_errno; + break; + } + grub_memset (*buf, 0, size); + endian = (grub_zfs_to_cpu64 (bp->blk_prop, endian) >> 63) & 1; + break; + } + if (level == 0) + { + grub_dprintf ("zfs", "endian = %d\n", endian); + err = zio_read (bp, endian, buf, 0, data); + endian = (grub_zfs_to_cpu64 (bp->blk_prop, endian) >> 63) & 1; + break; + } + grub_dprintf ("zfs", "endian = %d\n", endian); + err = zio_read (bp, endian, (void **) &tmpbuf, 0, data); + endian = (grub_zfs_to_cpu64 (bp->blk_prop, endian) >> 63) & 1; + if (err) + break; + bp_array = tmpbuf; + } + if (bp_array != dn->dn.dn_blkptr) + grub_free (bp_array); + if (endian_out) + *endian_out = endian; + + grub_free (bp); + return err; +} + +/* + * mzap_lookup: Looks up property described by "name" and returns the value + * in "value". + */ +static grub_err_t +mzap_lookup (mzap_phys_t * zapobj, grub_zfs_endian_t endian, + int objsize, char *name, grub_uint64_t * value) +{ + int i, chunks; + mzap_ent_phys_t *mzap_ent = zapobj->mz_chunk; + + chunks = objsize / MZAP_ENT_LEN - 1; + for (i = 0; i < chunks; i++) + { + if (grub_strcmp (mzap_ent[i].mze_name, name) == 0) + { + *value = grub_zfs_to_cpu64 (mzap_ent[i].mze_value, endian); + return GRUB_ERR_NONE; + } + } + + return grub_error (GRUB_ERR_FILE_NOT_FOUND, "couldn't find %s", name); +} + +static int +mzap_iterate (mzap_phys_t * zapobj, grub_zfs_endian_t endian, int objsize, + int NESTED_FUNC_ATTR (*hook) (const char *name, + grub_uint64_t val)) +{ + int i, chunks; + mzap_ent_phys_t *mzap_ent = zapobj->mz_chunk; + + chunks = objsize / MZAP_ENT_LEN - 1; + for (i = 0; i < chunks; i++) + { + grub_dprintf ("zfs", "zap: name = %s, value = %llx, cd = %x\n", + mzap_ent[i].mze_name, (long long)mzap_ent[i].mze_value, + (int)mzap_ent[i].mze_cd); + if (hook (mzap_ent[i].mze_name, + grub_zfs_to_cpu64 (mzap_ent[i].mze_value, endian))) + return 1; + } + + return 0; +} + +static grub_uint64_t +zap_hash (grub_uint64_t salt, const char *name) +{ + static grub_uint64_t table[256]; + const grub_uint8_t *cp; + grub_uint8_t c; + grub_uint64_t crc = salt; + + if (table[128] == 0) + { + grub_uint64_t *ct; + int i, j; + for (i = 0; i < 256; i++) + { + for (ct = table + i, *ct = i, j = 8; j > 0; j--) + *ct = (*ct >> 1) ^ (-(*ct & 1) & ZFS_CRC64_POLY); + } + } + + for (cp = (const grub_uint8_t *) name; (c = *cp) != '\0'; cp++) + crc = (crc >> 8) ^ table[(crc ^ c) & 0xFF]; + + /* + * Only use 28 bits, since we need 4 bits in the cookie for the + * collision differentiator. We MUST use the high bits, since + * those are the onces that we first pay attention to when + * chosing the bucket. + */ + crc &= ~((1ULL << (64 - ZAP_HASHBITS)) - 1); + + return (crc); +} + +/* + * Only to be used on 8-bit arrays. + * array_len is actual len in bytes (not encoded le_value_length). + * buf is null-terminated. + */ +/* XXX */ +static int +zap_leaf_array_equal (zap_leaf_phys_t * l, grub_zfs_endian_t endian, + int blksft, int chunk, int array_len, const char *buf) +{ + int bseen = 0; + + while (bseen < array_len) + { + struct zap_leaf_array *la = &ZAP_LEAF_CHUNK (l, blksft, chunk).l_array; + int toread = MIN (array_len - bseen, ZAP_LEAF_ARRAY_BYTES); + + if (chunk >= ZAP_LEAF_NUMCHUNKS (blksft)) + return (0); + + if (grub_memcmp (la->la_array, buf + bseen, toread) != 0) + break; + chunk = grub_zfs_to_cpu16 (la->la_next, endian); + bseen += toread; + } + return (bseen == array_len); +} + +/* XXX */ +static grub_err_t +zap_leaf_array_get (zap_leaf_phys_t * l, grub_zfs_endian_t endian, int blksft, + int chunk, int array_len, char *buf) +{ + int bseen = 0; + + while (bseen < array_len) + { + struct zap_leaf_array *la = &ZAP_LEAF_CHUNK (l, blksft, chunk).l_array; + int toread = MIN (array_len - bseen, ZAP_LEAF_ARRAY_BYTES); + + if (chunk >= ZAP_LEAF_NUMCHUNKS (blksft)) + /* Don't use grub_error because this error is to be ignored. */ + return GRUB_ERR_BAD_FS; + + grub_memcpy (buf + bseen,la->la_array, toread); + chunk = grub_zfs_to_cpu16 (la->la_next, endian); + bseen += toread; + } + return GRUB_ERR_NONE; +} + + +/* + * Given a zap_leaf_phys_t, walk thru the zap leaf chunks to get the + * value for the property "name". + * + */ +/* XXX */ +static grub_err_t +zap_leaf_lookup (zap_leaf_phys_t * l, grub_zfs_endian_t endian, + int blksft, grub_uint64_t h, + const char *name, grub_uint64_t * value) +{ + grub_uint16_t chunk; + struct zap_leaf_entry *le; + + /* Verify if this is a valid leaf block */ + if (grub_zfs_to_cpu64 (l->l_hdr.lh_block_type, endian) != ZBT_LEAF) + return grub_error (GRUB_ERR_BAD_FS, "invalid leaf type"); + if (grub_zfs_to_cpu32 (l->l_hdr.lh_magic, endian) != ZAP_LEAF_MAGIC) + return grub_error (GRUB_ERR_BAD_FS, "invalid leaf magic"); + + for (chunk = grub_zfs_to_cpu16 (l->l_hash[LEAF_HASH (blksft, h)], endian); + chunk != CHAIN_END; chunk = le->le_next) + { + + if (chunk >= ZAP_LEAF_NUMCHUNKS (blksft)) + return grub_error (GRUB_ERR_BAD_FS, "invalid chunk number"); + + le = ZAP_LEAF_ENTRY (l, blksft, chunk); + + /* Verify the chunk entry */ + if (le->le_type != ZAP_CHUNK_ENTRY) + return grub_error (GRUB_ERR_BAD_FS, "invalid chunk entry"); + + if (grub_zfs_to_cpu64 (le->le_hash,endian) != h) + continue; + + grub_dprintf ("zfs", "fzap: length %d\n", (int) le->le_name_length); + + if (zap_leaf_array_equal (l, endian, blksft, + grub_zfs_to_cpu16 (le->le_name_chunk,endian), + grub_zfs_to_cpu16 (le->le_name_length, endian), + name)) + { + struct zap_leaf_array *la; + grub_uint8_t *ip; + + if (le->le_int_size != 8 || le->le_value_length != 1) + return grub_error (GRUB_ERR_BAD_FS, "invalid leaf chunk entry"); + + /* get the uint64_t property value */ + la = &ZAP_LEAF_CHUNK (l, blksft, le->le_value_chunk).l_array; + ip = la->la_array; + + *value = grub_be_to_cpu64 (la->la_array64); + + return GRUB_ERR_NONE; + } + } + + return grub_error (GRUB_ERR_FILE_NOT_FOUND, "couldn't find %s", name); +} + +/* + * Fat ZAP lookup + * + */ +/* XXX */ +static grub_err_t +fzap_lookup (dnode_end_t * zap_dnode, zap_phys_t * zap, + char *name, grub_uint64_t * value, struct grub_zfs_data *data) +{ + zap_leaf_phys_t *l; + grub_uint64_t hash, idx, blkid; + int blksft = zfs_log2 (grub_zfs_to_cpu16 (zap_dnode->dn.dn_datablkszsec, + zap_dnode->endian) << DNODE_SHIFT); + grub_err_t err; + grub_zfs_endian_t leafendian; + + /* Verify if this is a fat zap header block */ + if (zap->zap_magic != (grub_uint64_t) ZAP_MAGIC) + return grub_error (GRUB_ERR_BAD_FS, "bad ZAP magic"); + + if (zap->zap_salt == 0) + return grub_error (GRUB_ERR_BAD_FS, "bad ZAP salt"); + hash = zap_hash (zap->zap_salt, name); + + /* get block id from index */ + if (zap->zap_ptrtbl.zt_numblks != 0) + return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, + "external pointer tables not supported"); + idx = ZAP_HASH_IDX (hash, zap->zap_ptrtbl.zt_shift); + blkid = ((grub_uint64_t *) zap)[idx + (1 << (blksft - 3 - 1))]; + + /* Get the leaf block */ + if ((1U << blksft) < sizeof (zap_leaf_phys_t)) + return grub_error (GRUB_ERR_BAD_FS, "ZAP leaf is too small"); + err = dmu_read (zap_dnode, blkid, (void **) &l, &leafendian, data); + if (err) + return err; + + err = zap_leaf_lookup (l, leafendian, blksft, hash, name, value); + grub_free (l); + return err; +} + +/* XXX */ +static int +fzap_iterate (dnode_end_t * zap_dnode, zap_phys_t * zap, + int NESTED_FUNC_ATTR (*hook) (const char *name, + grub_uint64_t val), + struct grub_zfs_data *data) +{ + zap_leaf_phys_t *l; + grub_uint64_t idx, blkid; + grub_uint16_t chunk; + int blksft = zfs_log2 (grub_zfs_to_cpu16 (zap_dnode->dn.dn_datablkszsec, + zap_dnode->endian) << DNODE_SHIFT); + grub_err_t err; + grub_zfs_endian_t endian; + + /* Verify if this is a fat zap header block */ + if (zap->zap_magic != (grub_uint64_t) ZAP_MAGIC) + { + grub_error (GRUB_ERR_BAD_FS, "bad ZAP magic"); + return 0; + } + + /* get block id from index */ + if (zap->zap_ptrtbl.zt_numblks != 0) + { + grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, + "external pointer tables not supported"); + return 0; + } + /* Get the leaf block */ + if ((1U << blksft) < sizeof (zap_leaf_phys_t)) + { + grub_error (GRUB_ERR_BAD_FS, "ZAP leaf is too small"); + return 0; + } + for (idx = 0; idx < zap->zap_ptrtbl.zt_numblks; idx++) + { + blkid = ((grub_uint64_t *) zap)[idx + (1 << (blksft - 3 - 1))]; + + err = dmu_read (zap_dnode, blkid, (void **) &l, &endian, data); + if (err) + { + grub_errno = GRUB_ERR_NONE; + continue; + } + + /* Verify if this is a valid leaf block */ + if (grub_zfs_to_cpu64 (l->l_hdr.lh_block_type, endian) != ZBT_LEAF) + { + grub_free (l); + continue; + } + if (grub_zfs_to_cpu32 (l->l_hdr.lh_magic, endian) != ZAP_LEAF_MAGIC) + { + grub_free (l); + continue; + } + + for (chunk = 0; chunk < ZAP_LEAF_NUMCHUNKS (blksft); chunk++) + { + char *buf; + struct zap_leaf_array *la; + struct zap_leaf_entry *le; + grub_uint64_t val; + le = ZAP_LEAF_ENTRY (l, blksft, chunk); + + /* Verify the chunk entry */ + if (le->le_type != ZAP_CHUNK_ENTRY) + continue; + + buf = grub_malloc (grub_zfs_to_cpu16 (le->le_name_length, endian) + + 1); + if (zap_leaf_array_get (l, endian, blksft, le->le_name_chunk, + le->le_name_length, buf)) + { + grub_free (buf); + continue; + } + buf[le->le_name_length] = 0; + + if (le->le_int_size != 8 + || grub_zfs_to_cpu16 (le->le_value_length, endian) != 1) + continue; + + /* get the uint64_t property value */ + la = &ZAP_LEAF_CHUNK (l, blksft, le->le_value_chunk).l_array; + val = grub_be_to_cpu64 (la->la_array64); + if (hook (buf, val)) + return 1; + grub_free (buf); + } + } + return 0; +} + + +/* + * Read in the data of a zap object and find the value for a matching + * property name. + * + */ +static grub_err_t +zap_lookup (dnode_end_t * zap_dnode, char *name, grub_uint64_t * val, + struct grub_zfs_data *data) +{ + grub_uint64_t block_type; + int size; + void *zapbuf; + grub_err_t err; + grub_zfs_endian_t endian; + + grub_dprintf ("zfs", "looking for '%s'\n", name); + + /* Read in the first block of the zap object data. */ + size = grub_zfs_to_cpu16 (zap_dnode->dn.dn_datablkszsec, + zap_dnode->endian) << SPA_MINBLOCKSHIFT; + err = dmu_read (zap_dnode, 0, &zapbuf, &endian, data); + if (err) + return err; + block_type = grub_zfs_to_cpu64 (*((grub_uint64_t *) zapbuf), endian); + + grub_dprintf ("zfs", "zap read\n"); + + if (block_type == ZBT_MICRO) + { + grub_dprintf ("zfs", "micro zap\n"); + err = (mzap_lookup (zapbuf, endian, size, name, val)); + grub_dprintf ("zfs", "returned %d\n", err); + grub_free (zapbuf); + return err; + } + else if (block_type == ZBT_HEADER) + { + grub_dprintf ("zfs", "fat zap\n"); + /* this is a fat zap */ + err = (fzap_lookup (zap_dnode, zapbuf, name, val, data)); + grub_dprintf ("zfs", "returned %d\n", err); + grub_free (zapbuf); + return err; + } + + return grub_error (GRUB_ERR_BAD_FS, "unknown ZAP type"); +} + +static int +zap_iterate (dnode_end_t * zap_dnode, + int NESTED_FUNC_ATTR (*hook) (const char *name, grub_uint64_t val), + struct grub_zfs_data *data) +{ + grub_uint64_t block_type; + int size; + void *zapbuf; + grub_err_t err; + int ret; + grub_zfs_endian_t endian; + + /* Read in the first block of the zap object data. */ + size = grub_zfs_to_cpu16 (zap_dnode->dn.dn_datablkszsec, zap_dnode->endian) << SPA_MINBLOCKSHIFT; + err = dmu_read (zap_dnode, 0, &zapbuf, &endian, data); + if (err) + return 0; + block_type = grub_zfs_to_cpu64 (*((grub_uint64_t *) zapbuf), endian); + + grub_dprintf ("zfs", "zap read\n"); + + if (block_type == ZBT_MICRO) + { + grub_dprintf ("zfs", "micro zap\n"); + ret = mzap_iterate (zapbuf, endian, size, hook); + grub_free (zapbuf); + return ret; + } + else if (block_type == ZBT_HEADER) + { + grub_dprintf ("zfs", "fat zap\n"); + /* this is a fat zap */ + ret = fzap_iterate (zap_dnode, zapbuf, hook, data); + grub_free (zapbuf); + return ret; + } + grub_error (GRUB_ERR_BAD_FS, "unknown ZAP type"); + return 0; +} + + +/* + * Get the dnode of an object number from the metadnode of an object set. + * + * Input + * mdn - metadnode to get the object dnode + * objnum - object number for the object dnode + * buf - data buffer that holds the returning dnode + */ +static grub_err_t +dnode_get (dnode_end_t * mdn, grub_uint64_t objnum, grub_uint8_t type, + dnode_end_t * buf, struct grub_zfs_data *data) +{ + grub_uint64_t blkid, blksz; /* the block id this object dnode is in */ + int epbs; /* shift of number of dnodes in a block */ + int idx; /* index within a block */ + dnode_phys_t *dnbuf; + grub_err_t err; + grub_zfs_endian_t endian; + + blksz = grub_zfs_to_cpu16 (mdn->dn.dn_datablkszsec, + mdn->endian) << SPA_MINBLOCKSHIFT; + epbs = zfs_log2 (blksz) - DNODE_SHIFT; + blkid = objnum >> epbs; + idx = objnum & ((1 << epbs) - 1); + + if (data->dnode_buf != NULL && grub_memcmp (data->dnode_mdn, mdn, + sizeof (*mdn)) == 0 + && objnum >= data->dnode_start && objnum < data->dnode_end) + { + grub_memmove (&(buf->dn), &(data->dnode_buf)[idx], DNODE_SIZE); + buf->endian = data->dnode_endian; + if (type && buf->dn.dn_type != type) + return grub_error(GRUB_ERR_BAD_FS, "incorrect dnode type"); + return GRUB_ERR_NONE; + } + + grub_dprintf ("zfs", "endian = %d, blkid=%llx\n", mdn->endian, + (unsigned long long) blkid); + err = dmu_read (mdn, blkid, (void **) &dnbuf, &endian, data); + if (err) + return err; + grub_dprintf ("zfs", "alive\n"); + + grub_free (data->dnode_buf); + grub_free (data->dnode_mdn); + data->dnode_mdn = grub_malloc (sizeof (*mdn)); + if (! data->dnode_mdn) + { + grub_errno = GRUB_ERR_NONE; + data->dnode_buf = 0; + } + else + { + grub_memcpy (data->dnode_mdn, mdn, sizeof (*mdn)); + data->dnode_buf = dnbuf; + data->dnode_start = blkid << epbs; + data->dnode_end = (blkid + 1) << epbs; + data->dnode_endian = endian; + } + + grub_memmove (&(buf->dn), &dnbuf[idx], DNODE_SIZE); + buf->endian = endian; + if (type && buf->dn.dn_type != type) + return grub_error(GRUB_ERR_BAD_FS, "incorrect dnode type"); + + return GRUB_ERR_NONE; +} + +/* + * Get the file dnode for a given file name where mdn is the meta dnode + * for this ZFS object set. When found, place the file dnode in dn. + * The 'path' argument will be mangled. + * + */ +static grub_err_t +dnode_get_path (dnode_end_t * mdn, const char *path_in, dnode_end_t * dn, + struct grub_zfs_data *data) +{ + grub_uint64_t objnum, version; + char *cname, ch; + grub_err_t err = GRUB_ERR_NONE; + char *path, *path_buf; + struct dnode_chain + { + struct dnode_chain *next; + dnode_end_t dn; + }; + struct dnode_chain *dnode_path = 0, *dn_new, *root; + + dn_new = grub_malloc (sizeof (*dn_new)); + if (! dn_new) + return grub_errno; + dn_new->next = 0; + dnode_path = root = dn_new; + + err = dnode_get (mdn, MASTER_NODE_OBJ, DMU_OT_MASTER_NODE, + &(dnode_path->dn), data); + if (err) + { + grub_free (dn_new); + return err; + } + + err = zap_lookup (&(dnode_path->dn), ZPL_VERSION_STR, &version, data); + if (err) + { + grub_free (dn_new); + return err; + } + if (version > ZPL_VERSION) + { + grub_free (dn_new); + return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, "too new ZPL version"); + } + + err = zap_lookup (&(dnode_path->dn), ZFS_ROOT_OBJ, &objnum, data); + if (err) + { + grub_free (dn_new); + return err; + } + + err = dnode_get (mdn, objnum, 0, &(dnode_path->dn), data); + if (err) + { + grub_free (dn_new); + return err; + } + + path = path_buf = grub_strdup (path_in); + if (!path_buf) + { + grub_free (dn_new); + return grub_errno; + } + + while (1) + { + /* skip leading slashes */ + while (*path == '/') + path++; + if (!*path) + break; + /* get the next component name */ + cname = path; + while (*path && *path != '/') + path++; + /* Skip dot. */ + if (cname + 1 == path && cname[0] == '.') + continue; + /* Handle double dot. */ + if (cname + 2 == path && cname[0] == '.' && cname[1] == '.') + { + if (dn_new->next) + { + dn_new = dnode_path; + dnode_path = dn_new->next; + grub_free (dn_new); + } + else + { + err = grub_error (GRUB_ERR_FILE_NOT_FOUND, + "can't resolve .."); + break; + } + continue; + } + + ch = *path; + *path = 0; /* ensure null termination */ + + if (dnode_path->dn.dn.dn_type != DMU_OT_DIRECTORY_CONTENTS) + { + grub_free (path_buf); + return grub_error (GRUB_ERR_BAD_FILE_TYPE, "not a directory"); + } + err = zap_lookup (&(dnode_path->dn), cname, &objnum, data); + if (err) + break; + + dn_new = grub_malloc (sizeof (*dn_new)); + if (! dn_new) + { + err = grub_errno; + break; + } + dn_new->next = dnode_path; + dnode_path = dn_new; + + objnum = ZFS_DIRENT_OBJ (objnum); + err = dnode_get (mdn, objnum, 0, &(dnode_path->dn), data); + if (err) + break; + + *path = ch; + if (((grub_zfs_to_cpu64(((znode_phys_t *) DN_BONUS (&dnode_path->dn.dn))->zp_mode, dnode_path->dn.endian) >> 12) & 0xf) == 0xa && ch) + { + char *oldpath = path, *oldpathbuf = path_buf; + path = path_buf + = grub_malloc (sizeof (dnode_path->dn.dn.dn_bonus) + - sizeof (znode_phys_t) + grub_strlen (oldpath) + 1); + if (!path_buf) + { + grub_free (oldpathbuf); + return grub_errno; + } + grub_memcpy (path, + (char *) DN_BONUS(&dnode_path->dn.dn) + sizeof (znode_phys_t), + sizeof (dnode_path->dn.dn.dn_bonus) - sizeof (znode_phys_t)); + path [sizeof (dnode_path->dn.dn.dn_bonus) - sizeof (znode_phys_t)] = 0; + grub_memcpy (path + grub_strlen (path), oldpath, + grub_strlen (oldpath) + 1); + + grub_free (oldpathbuf); + if (path[0] != '/') + { + dn_new = dnode_path; + dnode_path = dn_new->next; + grub_free (dn_new); + } + else while (dnode_path != root) + { + dn_new = dnode_path; + dnode_path = dn_new->next; + grub_free (dn_new); + } + } + } + + if (!err) + grub_memcpy (dn, &(dnode_path->dn), sizeof (*dn)); + + while (dnode_path) + { + dn_new = dnode_path->next; + grub_free (dnode_path); + dnode_path = dn_new; + } + grub_free (path_buf); + return err; +} + +#if 0 +/* + * Get the default 'bootfs' property value from the rootpool. + * + */ +static grub_err_t +get_default_bootfsobj (dnode_phys_t * mosmdn, grub_uint64_t * obj, + struct grub_zfs_data *data) +{ + grub_uint64_t objnum = 0; + dnode_phys_t *dn; + if (!dn) + return grub_errno; + + if ((grub_errno = dnode_get (mosmdn, DMU_POOL_DIRECTORY_OBJECT, + DMU_OT_OBJECT_DIRECTORY, dn, data))) + { + grub_free (dn); + return (grub_errno); + } + + /* + * find the object number for 'pool_props', and get the dnode + * of the 'pool_props'. + */ + if (zap_lookup (dn, DMU_POOL_PROPS, &objnum, data)) + { + grub_free (dn); + return (GRUB_ERR_BAD_FS); + } + if ((grub_errno = dnode_get (mosmdn, objnum, DMU_OT_POOL_PROPS, dn, data))) + { + grub_free (dn); + return (grub_errno); + } + if (zap_lookup (dn, ZPOOL_PROP_BOOTFS, &objnum, data)) + { + grub_free (dn); + return (GRUB_ERR_BAD_FS); + } + + if (!objnum) + { + grub_free (dn); + return (GRUB_ERR_BAD_FS); + } + + *obj = objnum; + return (0); +} +#endif +/* + * Given a MOS metadnode, get the metadnode of a given filesystem name (fsname), + * e.g. pool/rootfs, or a given object number (obj), e.g. the object number + * of pool/rootfs. + * + * If no fsname and no obj are given, return the DSL_DIR metadnode. + * If fsname is given, return its metadnode and its matching object number. + * If only obj is given, return the metadnode for this object number. + * + */ +static grub_err_t +get_filesystem_dnode (dnode_end_t * mosmdn, char *fsname, + dnode_end_t * mdn, struct grub_zfs_data *data) +{ + grub_uint64_t objnum; + grub_err_t err; + + grub_dprintf ("zfs", "endian = %d\n", mosmdn->endian); + + err = dnode_get (mosmdn, DMU_POOL_DIRECTORY_OBJECT, + DMU_OT_OBJECT_DIRECTORY, mdn, data); + if (err) + return err; + + grub_dprintf ("zfs", "alive\n"); + + err = zap_lookup (mdn, DMU_POOL_ROOT_DATASET, &objnum, data); + if (err) + return err; + + grub_dprintf ("zfs", "alive\n"); + + err = dnode_get (mosmdn, objnum, DMU_OT_DSL_DIR, mdn, data); + if (err) + return err; + + grub_dprintf ("zfs", "alive\n"); + + while (*fsname) + { + grub_uint64_t childobj; + char *cname, ch; + + while (*fsname == '/') + fsname++; + + if (! *fsname || *fsname == '@') + break; + + cname = fsname; + while (*fsname && !grub_isspace (*fsname) && *fsname != '/') + fsname++; + ch = *fsname; + *fsname = 0; + + childobj = grub_zfs_to_cpu64 ((((dsl_dir_phys_t *) DN_BONUS (&mdn->dn)))->dd_child_dir_zapobj, mdn->endian); + err = dnode_get (mosmdn, childobj, + DMU_OT_DSL_DIR_CHILD_MAP, mdn, data); + if (err) + return err; + + err = zap_lookup (mdn, cname, &objnum, data); + if (err) + return err; + + err = dnode_get (mosmdn, objnum, DMU_OT_DSL_DIR, mdn, data); + if (err) + return err; + + *fsname = ch; + } + return GRUB_ERR_NONE; +} + +static grub_err_t +make_mdn (dnode_end_t * mdn, struct grub_zfs_data *data) +{ + objset_phys_t *osp; + blkptr_t *bp; + grub_size_t ospsize; + grub_err_t err; + + grub_dprintf ("zfs", "endian = %d\n", mdn->endian); + + bp = &(((dsl_dataset_phys_t *) DN_BONUS (&mdn->dn))->ds_bp); + err = zio_read (bp, mdn->endian, (void **) &osp, &ospsize, data); + if (err) + return err; + if (ospsize < sizeof (objset_phys_t)) + { + grub_free (osp); + return grub_error (GRUB_ERR_BAD_FS, "too small osp"); + } + + mdn->endian = (grub_zfs_to_cpu64 (bp->blk_prop, mdn->endian)>>63) & 1; + grub_memmove ((char *) &(mdn->dn), (char *) &osp->os_meta_dnode, DNODE_SIZE); + grub_free (osp); + return GRUB_ERR_NONE; +} + +static grub_err_t +dnode_get_fullpath (const char *fullpath, dnode_end_t * mdn, + grub_uint64_t *mdnobj, dnode_end_t * dn, int *isfs, + struct grub_zfs_data *data) +{ + char *fsname, *snapname; + const char *ptr_at, *filename; + grub_uint64_t headobj; + grub_err_t err; + + ptr_at = grub_strchr (fullpath, '@'); + if (! ptr_at) + { + *isfs = 1; + filename = 0; + snapname = 0; + fsname = grub_strdup (fullpath); + } + else + { + const char *ptr_slash = grub_strchr (ptr_at, '/'); + + *isfs = 0; + fsname = grub_malloc (ptr_at - fullpath + 1); + if (!fsname) + return grub_errno; + grub_memcpy (fsname, fullpath, ptr_at - fullpath); + fsname[ptr_at - fullpath] = 0; + if (ptr_at[1] && ptr_at[1] != '/') + { + snapname = grub_malloc (ptr_slash - ptr_at); + if (!snapname) + { + grub_free (fsname); + return grub_errno; + } + grub_memcpy (snapname, ptr_at + 1, ptr_slash - ptr_at - 1); + snapname[ptr_slash - ptr_at - 1] = 0; + } + else + snapname = 0; + if (ptr_slash) + filename = ptr_slash; + else + filename = "/"; + grub_dprintf ("zfs", "fsname = '%s' snapname='%s' filename = '%s'\n", + fsname, snapname, filename); + } + grub_dprintf ("zfs", "alive\n"); + err = get_filesystem_dnode (&(data->mos), fsname, dn, data); + if (err) + { + grub_free (fsname); + grub_free (snapname); + return err; + } + + grub_dprintf ("zfs", "alive\n"); + + headobj = grub_zfs_to_cpu64 (((dsl_dir_phys_t *) DN_BONUS (&dn->dn))->dd_head_dataset_obj, dn->endian); + + grub_dprintf ("zfs", "endian = %d\n", mdn->endian); + + err = dnode_get (&(data->mos), headobj, DMU_OT_DSL_DATASET, mdn, data); + if (err) + { + grub_free (fsname); + grub_free (snapname); + return err; + } + grub_dprintf ("zfs", "endian = %d\n", mdn->endian); + + if (snapname) + { + grub_uint64_t snapobj; + + snapobj = grub_zfs_to_cpu64 (((dsl_dataset_phys_t *) DN_BONUS (&mdn->dn))->ds_snapnames_zapobj, mdn->endian); + + err = dnode_get (&(data->mos), snapobj, + DMU_OT_DSL_DS_SNAP_MAP, mdn, data); + if (!err) + err = zap_lookup (mdn, snapname, &headobj, data); + if (!err) + err = dnode_get (&(data->mos), headobj, DMU_OT_DSL_DATASET, mdn, data); + if (err) + { + grub_free (fsname); + grub_free (snapname); + return err; + } + } + + if (mdnobj) + *mdnobj = headobj; + + make_mdn (mdn, data); + + grub_dprintf ("zfs", "endian = %d\n", mdn->endian); + + if (*isfs) + { + grub_free (fsname); + grub_free (snapname); + return GRUB_ERR_NONE; + } + err = dnode_get_path (mdn, filename, dn, data); + grub_free (fsname); + grub_free (snapname); + return err; +} + +/* + * For a given XDR packed nvlist, verify the first 4 bytes and move on. + * + * An XDR packed nvlist is encoded as (comments from nvs_xdr_create) : + * + * encoding method/host endian (4 bytes) + * nvl_version (4 bytes) + * nvl_nvflag (4 bytes) + * encoded nvpairs: + * encoded size of the nvpair (4 bytes) + * decoded size of the nvpair (4 bytes) + * name string size (4 bytes) + * name string data (sizeof(NV_ALIGN4(string)) + * data type (4 bytes) + * # of elements in the nvpair (4 bytes) + * data + * 2 zero's for the last nvpair + * (end of the entire list) (8 bytes) + * + */ + +static int +nvlist_find_value (char *nvlist, char *name, int valtype, char **val, + grub_size_t *size_out, grub_size_t *nelm_out) +{ + int name_len, type, encode_size; + char *nvpair, *nvp_name; + + /* Verify if the 1st and 2nd byte in the nvlist are valid. */ + /* NOTE: independently of what endianness header announces all + subsequent values are big-endian. */ + if (nvlist[0] != NV_ENCODE_XDR || (nvlist[1] != NV_LITTLE_ENDIAN + && nvlist[1] != NV_BIG_ENDIAN)) + { + grub_dprintf ("zfs", "incorrect nvlist header\n"); + grub_error (GRUB_ERR_BAD_FS, "incorrect nvlist"); + return 0; + } + + /* skip the header, nvl_version, and nvl_nvflag */ + nvlist = nvlist + 4 * 3; + /* + * Loop thru the nvpair list + * The XDR representation of an integer is in big-endian byte order. + */ + while ((encode_size = grub_be_to_cpu32 (*(grub_uint32_t *) nvlist))) + { + int nelm; + + nvpair = nvlist + 4 * 2; /* skip the encode/decode size */ + + name_len = grub_be_to_cpu32 (*(grub_uint32_t *) nvpair); + nvpair += 4; + + nvp_name = nvpair; + nvpair = nvpair + ((name_len + 3) & ~3); /* align */ + + type = grub_be_to_cpu32 (*(grub_uint32_t *) nvpair); + nvpair += 4; + + nelm = grub_be_to_cpu32 (*(grub_uint32_t *) nvpair); + if (nelm < 1) + return grub_error (GRUB_ERR_BAD_FS, "empty nvpair"); + + nvpair += 4; + + if ((grub_strncmp (nvp_name, name, name_len) == 0) && type == valtype) + { + *val = nvpair; + *size_out = encode_size; + if (nelm_out) + *nelm_out = nelm; + return 1; + } + + nvlist += encode_size; /* goto the next nvpair */ + } + return 0; +} + +int +grub_zfs_nvlist_lookup_uint64 (char *nvlist, char *name, grub_uint64_t * out) +{ + char *nvpair; + grub_size_t size; + int found; + + found = nvlist_find_value (nvlist, name, DATA_TYPE_UINT64, &nvpair, &size, 0); + if (!found) + return 0; + if (size < sizeof (grub_uint64_t)) + { + grub_error (GRUB_ERR_BAD_FS, "invalid uint64"); + return 0; + } + + *out = grub_be_to_cpu64 (*(grub_uint64_t *) nvpair); + return 1; +} + +char * +grub_zfs_nvlist_lookup_string (char *nvlist, char *name) +{ + char *nvpair; + char *ret; + grub_size_t slen; + grub_size_t size; + int found; + + found = nvlist_find_value (nvlist, name, DATA_TYPE_STRING, &nvpair, &size, 0); + if (!found) + return 0; + if (size < 4) + { + grub_error (GRUB_ERR_BAD_FS, "invalid string"); + return 0; + } + slen = grub_be_to_cpu32 (*(grub_uint32_t *) nvpair); + if (slen > size - 4) + slen = size - 4; + ret = grub_malloc (slen + 1); + if (!ret) + return 0; + grub_memcpy (ret, nvpair + 4, slen); + ret[slen] = 0; + return ret; +} + +char * +grub_zfs_nvlist_lookup_nvlist (char *nvlist, char *name) +{ + char *nvpair; + char *ret; + grub_size_t size; + int found; + + found = nvlist_find_value (nvlist, name, DATA_TYPE_NVLIST, &nvpair, + &size, 0); + if (!found) + return 0; + ret = grub_zalloc (size + 3 * sizeof (grub_uint32_t)); + if (!ret) + return 0; + grub_memcpy (ret, nvlist, sizeof (grub_uint32_t)); + + grub_memcpy (ret + sizeof (grub_uint32_t), nvpair, size); + return ret; +} + +int +grub_zfs_nvlist_lookup_nvlist_array_get_nelm (char *nvlist, char *name) +{ + char *nvpair; + grub_size_t nelm, size; + int found; + + found = nvlist_find_value (nvlist, name, DATA_TYPE_NVLIST, &nvpair, + &size, &nelm); + if (! found) + return -1; + return nelm; +} + +char * +grub_zfs_nvlist_lookup_nvlist_array (char *nvlist, char *name, + grub_size_t index) +{ + char *nvpair, *nvpairptr; + int found; + char *ret; + grub_size_t size; + unsigned i; + grub_size_t nelm; + + found = nvlist_find_value (nvlist, name, DATA_TYPE_NVLIST, &nvpair, + &size, &nelm); + if (!found) + return 0; + if (index >= nelm) + { + grub_error (GRUB_ERR_OUT_OF_RANGE, "trying to lookup past nvlist array"); + return 0; + } + + nvpairptr = nvpair; + + for (i = 0; i < index; i++) + { + grub_uint32_t encode_size; + + /* skip the header, nvl_version, and nvl_nvflag */ + nvpairptr = nvpairptr + 4 * 2; + + while (nvpairptr < nvpair + size + && (encode_size = grub_be_to_cpu32 (*(grub_uint32_t *) nvpairptr))) + nvlist += encode_size; /* goto the next nvpair */ + + nvlist = nvlist + 4 * 2; /* skip the ending 2 zeros - 8 bytes */ + } + + if (nvpairptr >= nvpair + size + || nvpairptr + grub_be_to_cpu32 (*(grub_uint32_t *) (nvpairptr + 4 * 2)) + >= nvpair + size) + { + grub_error (GRUB_ERR_BAD_FS, "incorrect nvlist array"); + return 0; + } + + ret = grub_zalloc (grub_be_to_cpu32 (*(grub_uint32_t *) (nvpairptr + 4 * 2)) + + 3 * sizeof (grub_uint32_t)); + if (!ret) + return 0; + grub_memcpy (ret, nvlist, sizeof (grub_uint32_t)); + + grub_memcpy (ret + sizeof (grub_uint32_t), nvpairptr, size); + return ret; +} + +static grub_err_t +zfs_fetch_nvlist (struct grub_zfs_data * data, char **nvlist) +{ + grub_err_t err; + + *nvlist = grub_malloc (VDEV_PHYS_SIZE); + /* Read in the vdev name-value pair list (112K). */ + err = grub_disk_read (data->disk, data->vdev_phys_sector, 0, + VDEV_PHYS_SIZE, *nvlist); + if (err) + { + grub_free (*nvlist); + *nvlist = 0; + return err; + } + return GRUB_ERR_NONE; +} + +/* + * Check the disk label information and retrieve needed vdev name-value pairs. + * + */ +static grub_err_t +check_pool_label (struct grub_zfs_data *data) +{ + grub_uint64_t pool_state, txg = 0; + char *nvlist; +#if 0 + char *nv; +#endif + grub_uint64_t diskguid; + grub_uint64_t version; + int found; + grub_err_t err; + + err = zfs_fetch_nvlist (data, &nvlist); + if (err) + return err; + + grub_dprintf ("zfs", "check 2 passed\n"); + + found = grub_zfs_nvlist_lookup_uint64 (nvlist, ZPOOL_CONFIG_POOL_STATE, + &pool_state); + if (! found) + { + grub_free (nvlist); + if (! grub_errno) + grub_error (GRUB_ERR_BAD_FS, ZPOOL_CONFIG_POOL_STATE " not found"); + return grub_errno; + } + grub_dprintf ("zfs", "check 3 passed\n"); + + if (pool_state == POOL_STATE_DESTROYED) + { + grub_free (nvlist); + return grub_error (GRUB_ERR_BAD_FS, "zpool is marked as destroyed"); + } + grub_dprintf ("zfs", "check 4 passed\n"); + + found = grub_zfs_nvlist_lookup_uint64 (nvlist, ZPOOL_CONFIG_POOL_TXG, &txg); + if (!found) + { + grub_free (nvlist); + if (! grub_errno) + grub_error (GRUB_ERR_BAD_FS, ZPOOL_CONFIG_POOL_TXG " not found"); + return grub_errno; + } + grub_dprintf ("zfs", "check 6 passed\n"); + + /* not an active device */ + if (txg == 0) + { + grub_free (nvlist); + return grub_error (GRUB_ERR_BAD_FS, "zpool isn't active"); + } + grub_dprintf ("zfs", "check 7 passed\n"); + + found = grub_zfs_nvlist_lookup_uint64 (nvlist, ZPOOL_CONFIG_VERSION, + &version); + if (! found) + { + grub_free (nvlist); + if (! grub_errno) + grub_error (GRUB_ERR_BAD_FS, ZPOOL_CONFIG_VERSION " not found"); + return grub_errno; + } + grub_dprintf ("zfs", "check 8 passed\n"); + + if (version > SPA_VERSION) + { + grub_free (nvlist); + return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, + "too new version %llu > %llu", + (unsigned long long) version, + (unsigned long long) SPA_VERSION); + } + grub_dprintf ("zfs", "check 9 passed\n"); +#if 0 + if (nvlist_lookup_value (nvlist, ZPOOL_CONFIG_VDEV_TREE, &nv, + DATA_TYPE_NVLIST, NULL)) + { + grub_free (vdev); + return (GRUB_ERR_BAD_FS); + } + grub_dprintf ("zfs", "check 10 passed\n"); +#endif + + found = grub_zfs_nvlist_lookup_uint64 (nvlist, ZPOOL_CONFIG_GUID, &diskguid); + if (! found) + { + grub_free (nvlist); + if (! grub_errno) + grub_error (GRUB_ERR_BAD_FS, ZPOOL_CONFIG_GUID " not found"); + return grub_errno; + } + grub_dprintf ("zfs", "check 11 passed\n"); + + grub_free (nvlist); + + return GRUB_ERR_NONE; +} + +static void +zfs_unmount (struct grub_zfs_data *data) +{ + grub_free (data->dnode_buf); + grub_free (data->dnode_mdn); + grub_free (data->file_buf); + grub_free (data); +} + +/* + * zfs_mount() locates a valid uberblock of the root pool and read in its MOS + * to the memory address MOS. + * + */ +static struct grub_zfs_data * +zfs_mount (grub_device_t dev) +{ + struct grub_zfs_data *data = 0; + int label = 0; + uberblock_phys_t *ub_array, *ubbest = NULL; + vdev_boot_header_t *bh; + objset_phys_t *osp = 0; + grub_size_t ospsize; + grub_err_t err; + int vdevnum; + + if (! dev->disk) + { + grub_error (GRUB_ERR_BAD_DEVICE, "not a disk"); + return 0; + } + + data = grub_malloc (sizeof (*data)); + if (!data) + return 0; + grub_memset (data, 0, sizeof (*data)); +#if 0 + /* if it's our first time here, zero the best uberblock out */ + if (data->best_drive == 0 && data->best_part == 0 && find_best_root) + grub_memset (¤t_uberblock, 0, sizeof (uberblock_t)); +#endif + + data->disk = dev->disk; + + ub_array = grub_malloc (VDEV_UBERBLOCK_RING); + if (!ub_array) + { + zfs_unmount (data); + return 0; + } + + bh = grub_malloc (VDEV_BOOT_HEADER_SIZE); + if (!bh) + { + zfs_unmount (data); + grub_free (ub_array); + return 0; + } + + vdevnum = VDEV_LABELS; + + /* Don't check back labels on CDROM. */ + if (! data->disk->partition + && data->disk->dev->id == GRUB_DISK_DEVICE_BIOSDISK_ID + && data->disk->id >= 0xc0) + vdevnum = VDEV_LABELS / 2; + + for (label = 0; ubbest == NULL && label < vdevnum; label++) + { + grub_zfs_endian_t ub_endian = UNKNOWN_ENDIAN; + grub_dprintf ("zfs", "label %d\n", label); + + data->vdev_phys_sector + = label * (sizeof (vdev_label_t) >> SPA_MINBLOCKSHIFT) + + ((VDEV_SKIP_SIZE + VDEV_BOOT_HEADER_SIZE) >> SPA_MINBLOCKSHIFT) + + (label < VDEV_LABELS / 2 ? 0 : grub_disk_get_size (dev->disk) + - VDEV_LABELS * (sizeof (vdev_label_t) >> SPA_MINBLOCKSHIFT)); + + /* Read in the uberblock ring (128K). */ + err = grub_disk_read (data->disk, data->vdev_phys_sector + + (VDEV_PHYS_SIZE >> SPA_MINBLOCKSHIFT), + 0, VDEV_UBERBLOCK_RING, (char *) ub_array); + if (err) + { + grub_errno = GRUB_ERR_NONE; + continue; + } + grub_dprintf ("zfs", "label ok %d\n", label); + + ubbest = find_bestub (ub_array, data->vdev_phys_sector); + if (!ubbest) + { + grub_dprintf ("zfs", "No uberblock found\n"); + grub_errno = GRUB_ERR_NONE; + continue; + } + ub_endian = (grub_zfs_to_cpu64 (ubbest->ubp_uberblock.ub_magic, + LITTLE_ENDIAN) == UBERBLOCK_MAGIC + ? LITTLE_ENDIAN : BIG_ENDIAN); + err = zio_read (&ubbest->ubp_uberblock.ub_rootbp, + ub_endian, + (void **) &osp, &ospsize, data); + if (err) + { + grub_dprintf ("zfs", "couldn't zio_read\n"); + grub_errno = GRUB_ERR_NONE; + continue; + } + + if (ospsize < sizeof (objset_phys_t)) + { + grub_dprintf ("zfs", "osp too small\n"); + grub_free (osp); + continue; + } + grub_dprintf ("zfs", "ubbest %p\n", ubbest); + + err = check_pool_label (data); + if (err) + { + grub_errno = GRUB_ERR_NONE; + continue; + } +#if 0 + if (find_best_root && + vdev_uberblock_compare (&ubbest->ubp_uberblock, + &(current_uberblock)) <= 0) + continue; +#endif + /* Got the MOS. Save it at the memory addr MOS. */ + grub_memmove (&(data->mos.dn), &osp->os_meta_dnode, DNODE_SIZE); + data->mos.endian = (grub_zfs_to_cpu64 (ubbest->ubp_uberblock.ub_rootbp.blk_prop, ub_endian) >> 63) & 1; + grub_memmove (&(data->current_uberblock), + &ubbest->ubp_uberblock, sizeof (uberblock_t)); + grub_free (ub_array); + grub_free (bh); + grub_free (osp); + return data; + } + grub_error (GRUB_ERR_BAD_FS, "couldn't find a valid label"); + zfs_unmount (data); + grub_free (ub_array); + grub_free (bh); + grub_free (osp); + + return 0; +} + +grub_err_t +grub_zfs_fetch_nvlist (grub_device_t dev, char **nvlist) +{ + struct grub_zfs_data *zfs; + grub_err_t err; + + zfs = zfs_mount (dev); + if (!zfs) + return grub_errno; + err = zfs_fetch_nvlist (zfs, nvlist); + zfs_unmount (zfs); + return err; +} + +static grub_err_t +zfs_label (grub_device_t device, char **label) +{ + char *nvlist; + grub_err_t err; + struct grub_zfs_data *data; + + data = zfs_mount (device); + if (! data) + return grub_errno; + + err = zfs_fetch_nvlist (data, &nvlist); + if (err) + { + zfs_unmount (data); + return err; + } + + *label = grub_zfs_nvlist_lookup_string (nvlist, ZPOOL_CONFIG_POOL_NAME); + grub_free (nvlist); + zfs_unmount (data); + return grub_errno; +} + +static grub_err_t +zfs_uuid (grub_device_t device, char **uuid) +{ + char *nvlist; + int found; + struct grub_zfs_data *data; + grub_uint64_t guid; + grub_err_t err; + + *uuid = 0; + + data = zfs_mount (device); + if (! data) + return grub_errno; + + err = zfs_fetch_nvlist (data, &nvlist); + if (err) + { + zfs_unmount (data); + return err; + } + + found = grub_zfs_nvlist_lookup_uint64 (nvlist, ZPOOL_CONFIG_POOL_GUID, &guid); + if (! found) + return grub_errno; + grub_free (nvlist); + *uuid = grub_xasprintf ("%016llx", (long long unsigned) guid); + zfs_unmount (data); + if (! *uuid) + return grub_errno; + return GRUB_ERR_NONE; +} + +/* + * zfs_open() locates a file in the rootpool by following the + * MOS and places the dnode of the file in the memory address DNODE. + */ +static grub_err_t +grub_zfs_open (struct grub_file *file, const char *fsfilename) +{ + struct grub_zfs_data *data; + grub_err_t err; + int isfs; + + data = zfs_mount (file->device); + if (! data) + return grub_errno; + + err = dnode_get_fullpath (fsfilename, &(data->mdn), 0, + &(data->dnode), &isfs, data); + if (err) + { + zfs_unmount (data); + return err; + } + + if (isfs) + { + zfs_unmount (data); + return grub_error (GRUB_ERR_FILE_NOT_FOUND, "Missing @ or / separator"); + } + + /* We found the dnode for this file. Verify if it is a plain file. */ + if (data->dnode.dn.dn_type != DMU_OT_PLAIN_FILE_CONTENTS) + { + zfs_unmount (data); + return grub_error (GRUB_ERR_BAD_FILE_TYPE, "not a file"); + } + + /* get the file size and set the file position to 0 */ + file->data = data; + file->offset = 0; + file->size = grub_zfs_to_cpu64 (((znode_phys_t *) DN_BONUS (&data->dnode.dn))->zp_size, data->dnode.endian); + +#ifndef GRUB_UTIL + grub_dl_ref (my_mod); +#endif + + return GRUB_ERR_NONE; +} + +static grub_ssize_t +grub_zfs_read (grub_file_t file, char *buf, grub_size_t len) +{ + struct grub_zfs_data *data = (struct grub_zfs_data *) file->data; + int blksz, movesize; + grub_size_t length; + grub_size_t read; + grub_err_t err; + + if (data->file_buf == NULL) + { + data->file_buf = grub_malloc (SPA_MAXBLOCKSIZE); + if (!data->file_buf) + return -1; + data->file_start = data->file_end = 0; + } + + /* + * If offset is in memory, move it into the buffer provided and return. + */ + if (file->offset >= data->file_start + && file->offset + len <= data->file_end) + { + grub_memmove (buf, data->file_buf + file->offset - data->file_start, + len); + return len; + } + + blksz = grub_zfs_to_cpu16 (data->dnode.dn.dn_datablkszsec, + data->dnode.endian) << SPA_MINBLOCKSHIFT; + + /* + * Entire Dnode is too big to fit into the space available. We + * will need to read it in chunks. This could be optimized to + * read in as large a chunk as there is space available, but for + * now, this only reads in one data block at a time. + */ + length = len; + read = 0; + while (length) + { + /* + * Find requested blkid and the offset within that block. + */ + grub_uint64_t blkid = grub_divmod64 (file->offset + read, blksz, 0); + grub_free (data->file_buf); + data->file_buf = 0; + + err = dmu_read (&(data->dnode), blkid, (void **) &(data->file_buf), + 0, data); + if (err) + return -1; + + data->file_start = blkid * blksz; + data->file_end = data->file_start + blksz; + + movesize = MIN (length, data->file_end - (int) file->offset - read); + + grub_memmove (buf, data->file_buf + file->offset + read + - data->file_start, movesize); + buf += movesize; + length -= movesize; + read += movesize; + } + + return len; +} + +static grub_err_t +grub_zfs_close (grub_file_t file) +{ + zfs_unmount ((struct grub_zfs_data *) file->data); + +#ifndef GRUB_UTIL + grub_dl_unref (my_mod); +#endif + + return GRUB_ERR_NONE; +} + +grub_err_t +grub_zfs_getmdnobj (grub_device_t dev, const char *fsfilename, + grub_uint64_t *mdnobj) +{ + struct grub_zfs_data *data; + grub_err_t err; + int isfs; + + data = zfs_mount (dev); + if (! data) + return grub_errno; + + err = dnode_get_fullpath (fsfilename, &(data->mdn), mdnobj, + &(data->dnode), &isfs, data); + zfs_unmount (data); + return err; +} + +static void +fill_fs_info (struct grub_dirhook_info *info, + dnode_end_t mdn, struct grub_zfs_data *data) +{ + grub_err_t err; + dnode_end_t dn; + grub_uint64_t objnum; + grub_uint64_t headobj; + + grub_memset (info, 0, sizeof (*info)); + + info->dir = 1; + + if (mdn.dn.dn_type == DMU_OT_DSL_DIR) + { + headobj = grub_zfs_to_cpu64 (((dsl_dir_phys_t *) DN_BONUS (&mdn.dn))->dd_head_dataset_obj, mdn.endian); + + err = dnode_get (&(data->mos), headobj, DMU_OT_DSL_DATASET, &mdn, data); + if (err) + { + grub_dprintf ("zfs", "failed here\n"); + return; + } + } + make_mdn (&mdn, data); + err = dnode_get (&mdn, MASTER_NODE_OBJ, DMU_OT_MASTER_NODE, + &dn, data); + if (err) + { + grub_dprintf ("zfs", "failed here\n"); + return; + } + + err = zap_lookup (&dn, ZFS_ROOT_OBJ, &objnum, data); + if (err) + { + grub_dprintf ("zfs", "failed here\n"); + return; + } + + err = dnode_get (&mdn, objnum, 0, &dn, data); + if (err) + { + grub_dprintf ("zfs", "failed here\n"); + return; + } + + info->mtimeset = 1; + info->mtime = grub_zfs_to_cpu64 (((znode_phys_t *) DN_BONUS (&dn.dn))->zp_mtime[0], dn.endian); + return; +} + +static grub_err_t +grub_zfs_dir (grub_device_t device, const char *path, + int (*hook) (const char *, const struct grub_dirhook_info *)) +{ + struct grub_zfs_data *data; + grub_err_t err; + int isfs; + auto int NESTED_FUNC_ATTR iterate_zap (const char *name, grub_uint64_t val); + auto int NESTED_FUNC_ATTR iterate_zap_fs (const char *name, + grub_uint64_t val); + auto int NESTED_FUNC_ATTR iterate_zap_snap (const char *name, + grub_uint64_t val); + + int NESTED_FUNC_ATTR iterate_zap (const char *name, grub_uint64_t val) + { + struct grub_dirhook_info info; + dnode_end_t dn; + grub_memset (&info, 0, sizeof (info)); + + dnode_get (&(data->mdn), val, 0, &dn, data); + info.mtimeset = 1; + info.mtime = grub_zfs_to_cpu64 (((znode_phys_t *) DN_BONUS (&dn.dn))->zp_mtime[0], dn.endian); + info.dir = (dn.dn.dn_type == DMU_OT_DIRECTORY_CONTENTS); + grub_dprintf ("zfs", "type=%d, name=%s\n", + (int)dn.dn.dn_type, (char *)name); + return hook (name, &info); + } + + int NESTED_FUNC_ATTR iterate_zap_fs (const char *name, grub_uint64_t val) + { + struct grub_dirhook_info info; + dnode_end_t mdn; + err = dnode_get (&(data->mos), val, 0, &mdn, data); + if (err) + return 0; + if (mdn.dn.dn_type != DMU_OT_DSL_DIR) + return 0; + + fill_fs_info (&info, mdn, data); + return hook (name, &info); + } + int NESTED_FUNC_ATTR iterate_zap_snap (const char *name, grub_uint64_t val) + { + struct grub_dirhook_info info; + char *name2; + int ret; + dnode_end_t mdn; + + err = dnode_get (&(data->mos), val, 0, &mdn, data); + if (err) + return 0; + + if (mdn.dn.dn_type != DMU_OT_DSL_DATASET) + return 0; + + fill_fs_info (&info, mdn, data); + + name2 = grub_malloc (grub_strlen (name) + 2); + name2[0] = '@'; + grub_memcpy (name2 + 1, name, grub_strlen (name) + 1); + ret = hook (name2, &info); + grub_free (name2); + return ret; + } + + data = zfs_mount (device); + if (! data) + return grub_errno; + err = dnode_get_fullpath (path, &(data->mdn), 0, &(data->dnode), &isfs, data); + if (err) + { + zfs_unmount (data); + return err; + } + if (isfs) + { + grub_uint64_t childobj, headobj; + grub_uint64_t snapobj; + dnode_end_t dn; + struct grub_dirhook_info info; + + fill_fs_info (&info, data->dnode, data); + hook ("@", &info); + + childobj = grub_zfs_to_cpu64 (((dsl_dir_phys_t *) DN_BONUS (&data->dnode.dn))->dd_child_dir_zapobj, data->dnode.endian); + headobj = grub_zfs_to_cpu64 (((dsl_dir_phys_t *) DN_BONUS (&data->dnode.dn))->dd_head_dataset_obj, data->dnode.endian); + err = dnode_get (&(data->mos), childobj, + DMU_OT_DSL_DIR_CHILD_MAP, &dn, data); + if (err) + { + zfs_unmount (data); + return err; + } + + zap_iterate (&dn, iterate_zap_fs, data); + + err = dnode_get (&(data->mos), headobj, DMU_OT_DSL_DATASET, &dn, data); + if (err) + { + zfs_unmount (data); + return err; + } + + snapobj = grub_zfs_to_cpu64 (((dsl_dataset_phys_t *) DN_BONUS (&dn.dn))->ds_snapnames_zapobj, dn.endian); + + err = dnode_get (&(data->mos), snapobj, + DMU_OT_DSL_DS_SNAP_MAP, &dn, data); + if (err) + { + zfs_unmount (data); + return err; + } + + zap_iterate (&dn, iterate_zap_snap, data); + } + else + { + if (data->dnode.dn.dn_type != DMU_OT_DIRECTORY_CONTENTS) + { + zfs_unmount (data); + return grub_error (GRUB_ERR_BAD_FILE_TYPE, "not a directory"); + } + zap_iterate (&(data->dnode), iterate_zap, data); + } + zfs_unmount (data); + return grub_errno; +} + +static struct grub_fs grub_zfs_fs = { + .name = "zfs", + .dir = grub_zfs_dir, + .open = grub_zfs_open, + .read = grub_zfs_read, + .close = grub_zfs_close, + .label = zfs_label, + .uuid = zfs_uuid, + .mtime = 0, + .next = 0 +}; + +GRUB_MOD_INIT (zfs) +{ + grub_fs_register (&grub_zfs_fs); +#ifndef GRUB_UTIL + my_mod = mod; +#endif +} + +GRUB_MOD_FINI (zfs) +{ + grub_fs_unregister (&grub_zfs_fs); +} --- grub2-1.98+20100804.orig/debian/grub-extras/zfs/conf/common.mk +++ grub2-1.98+20100804/debian/grub-extras/zfs/conf/common.mk @@ -0,0 +1,328 @@ +# -*- makefile -*- +# Generated by genmk.rb, please don't edit! + +COMMON_CFLAGS += -I$(GRUB_CONTRIB)/zfs/include + +pkglib_MODULES += zfs.mod +zfs_mod_SOURCES = $(GRUB_CONTRIB)/zfs/zfs.c $(GRUB_CONTRIB)/zfs/zfs_lzjb.c $(GRUB_CONTRIB)/zfs/zfs_sha256.c $(GRUB_CONTRIB)/zfs/zfs_fletcher.c + +clean-module-zfs.mod.1: + rm -f zfs.mod mod-zfs.o mod-zfs.c pre-zfs.o zfs_mod-__GRUB_CONTRIB__zfs_zfs.o zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.o zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.o zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.o und-zfs.lst + +CLEAN_MODULE_TARGETS += clean-module-zfs.mod.1 + +clean-module-zfs.mod-symbol.1: + rm -f def-zfs.lst + +CLEAN_MODULE_TARGETS += clean-module-zfs.mod-symbol.1 +DEFSYMFILES += def-zfs.lst +mostlyclean-module-zfs.mod.1: + rm -f zfs_mod-__GRUB_CONTRIB__zfs_zfs.d zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.d zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.d zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-zfs.mod.1 +UNDSYMFILES += und-zfs.lst + +ifeq ($(TARGET_NO_MODULES), yes) +zfs.mod: pre-zfs.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(zfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-zfs.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +zfs.mod: pre-zfs.o mod-zfs.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(zfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-zfs.o mod-zfs.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +zfs.mod: pre-zfs.o mod-zfs.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(zfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-zfs.o mod-zfs.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-zfs.o: $(zfs_mod_DEPENDENCIES) zfs_mod-__GRUB_CONTRIB__zfs_zfs.o zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.o zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.o zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.o + -rm -f $@ + $(TARGET_CC) $(zfs_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ zfs_mod-__GRUB_CONTRIB__zfs_zfs.o zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.o zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.o zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.o + +mod-zfs.o: mod-zfs.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -DGRUB_FILE=\"mod-zfs.c\" -c -o $@ $< + +mod-zfs.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'zfs' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-zfs.lst: pre-zfs.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 zfs/' > $@ +else +def-zfs.lst: pre-zfs.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 zfs/' > $@ +endif + +und-zfs.lst: pre-zfs.o + echo 'zfs' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +zfs_mod-__GRUB_CONTRIB__zfs_zfs.o: $(GRUB_CONTRIB)/zfs/zfs.c $($(GRUB_CONTRIB)/zfs/zfs.c_DEPENDENCIES) + $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/zfs/zfs.c\" -MD -c -o $@ $< +-include zfs_mod-__GRUB_CONTRIB__zfs_zfs.d + +clean-module-zfs_mod-__GRUB_CONTRIB__zfs_zfs-extra.1: + rm -f cmd-zfs_mod-__GRUB_CONTRIB__zfs_zfs.lst fs-zfs_mod-__GRUB_CONTRIB__zfs_zfs.lst partmap-zfs_mod-__GRUB_CONTRIB__zfs_zfs.lst handler-zfs_mod-__GRUB_CONTRIB__zfs_zfs.lst parttool-zfs_mod-__GRUB_CONTRIB__zfs_zfs.lst video-zfs_mod-__GRUB_CONTRIB__zfs_zfs.lst terminal-zfs_mod-__GRUB_CONTRIB__zfs_zfs.lst + +CLEAN_MODULE_TARGETS += clean-module-zfs_mod-__GRUB_CONTRIB__zfs_zfs-extra.1 + +COMMANDFILES += cmd-zfs_mod-__GRUB_CONTRIB__zfs_zfs.lst +FSFILES += fs-zfs_mod-__GRUB_CONTRIB__zfs_zfs.lst +PARTTOOLFILES += parttool-zfs_mod-__GRUB_CONTRIB__zfs_zfs.lst +PARTMAPFILES += partmap-zfs_mod-__GRUB_CONTRIB__zfs_zfs.lst +HANDLERFILES += handler-zfs_mod-__GRUB_CONTRIB__zfs_zfs.lst +TERMINALFILES += terminal-zfs_mod-__GRUB_CONTRIB__zfs_zfs.lst +VIDEOFILES += video-zfs_mod-__GRUB_CONTRIB__zfs_zfs.lst + +cmd-zfs_mod-__GRUB_CONTRIB__zfs_zfs.lst: $(GRUB_CONTRIB)/zfs/zfs.c $($(GRUB_CONTRIB)/zfs/zfs.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh zfs > $@ || (rm -f $@; exit 1) + +fs-zfs_mod-__GRUB_CONTRIB__zfs_zfs.lst: $(GRUB_CONTRIB)/zfs/zfs.c $($(GRUB_CONTRIB)/zfs/zfs.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh zfs > $@ || (rm -f $@; exit 1) + +parttool-zfs_mod-__GRUB_CONTRIB__zfs_zfs.lst: $(GRUB_CONTRIB)/zfs/zfs.c $($(GRUB_CONTRIB)/zfs/zfs.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh zfs > $@ || (rm -f $@; exit 1) + +partmap-zfs_mod-__GRUB_CONTRIB__zfs_zfs.lst: $(GRUB_CONTRIB)/zfs/zfs.c $($(GRUB_CONTRIB)/zfs/zfs.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh zfs > $@ || (rm -f $@; exit 1) + +handler-zfs_mod-__GRUB_CONTRIB__zfs_zfs.lst: $(GRUB_CONTRIB)/zfs/zfs.c $($(GRUB_CONTRIB)/zfs/zfs.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh zfs > $@ || (rm -f $@; exit 1) + +terminal-zfs_mod-__GRUB_CONTRIB__zfs_zfs.lst: $(GRUB_CONTRIB)/zfs/zfs.c $($(GRUB_CONTRIB)/zfs/zfs.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh zfs > $@ || (rm -f $@; exit 1) + +video-zfs_mod-__GRUB_CONTRIB__zfs_zfs.lst: $(GRUB_CONTRIB)/zfs/zfs.c $($(GRUB_CONTRIB)/zfs/zfs.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh zfs > $@ || (rm -f $@; exit 1) + +zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.o: $(GRUB_CONTRIB)/zfs/zfs_lzjb.c $($(GRUB_CONTRIB)/zfs/zfs_lzjb.c_DEPENDENCIES) + $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/zfs/zfs_lzjb.c\" -MD -c -o $@ $< +-include zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.d + +clean-module-zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb-extra.1: + rm -f cmd-zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.lst fs-zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.lst partmap-zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.lst handler-zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.lst parttool-zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.lst video-zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.lst terminal-zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.lst + +CLEAN_MODULE_TARGETS += clean-module-zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb-extra.1 + +COMMANDFILES += cmd-zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.lst +FSFILES += fs-zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.lst +PARTTOOLFILES += parttool-zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.lst +PARTMAPFILES += partmap-zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.lst +HANDLERFILES += handler-zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.lst +TERMINALFILES += terminal-zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.lst +VIDEOFILES += video-zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.lst + +cmd-zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.lst: $(GRUB_CONTRIB)/zfs/zfs_lzjb.c $($(GRUB_CONTRIB)/zfs/zfs_lzjb.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh zfs > $@ || (rm -f $@; exit 1) + +fs-zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.lst: $(GRUB_CONTRIB)/zfs/zfs_lzjb.c $($(GRUB_CONTRIB)/zfs/zfs_lzjb.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh zfs > $@ || (rm -f $@; exit 1) + +parttool-zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.lst: $(GRUB_CONTRIB)/zfs/zfs_lzjb.c $($(GRUB_CONTRIB)/zfs/zfs_lzjb.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh zfs > $@ || (rm -f $@; exit 1) + +partmap-zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.lst: $(GRUB_CONTRIB)/zfs/zfs_lzjb.c $($(GRUB_CONTRIB)/zfs/zfs_lzjb.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh zfs > $@ || (rm -f $@; exit 1) + +handler-zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.lst: $(GRUB_CONTRIB)/zfs/zfs_lzjb.c $($(GRUB_CONTRIB)/zfs/zfs_lzjb.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh zfs > $@ || (rm -f $@; exit 1) + +terminal-zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.lst: $(GRUB_CONTRIB)/zfs/zfs_lzjb.c $($(GRUB_CONTRIB)/zfs/zfs_lzjb.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh zfs > $@ || (rm -f $@; exit 1) + +video-zfs_mod-__GRUB_CONTRIB__zfs_zfs_lzjb.lst: $(GRUB_CONTRIB)/zfs/zfs_lzjb.c $($(GRUB_CONTRIB)/zfs/zfs_lzjb.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh zfs > $@ || (rm -f $@; exit 1) + +zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.o: $(GRUB_CONTRIB)/zfs/zfs_sha256.c $($(GRUB_CONTRIB)/zfs/zfs_sha256.c_DEPENDENCIES) + $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/zfs/zfs_sha256.c\" -MD -c -o $@ $< +-include zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.d + +clean-module-zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256-extra.1: + rm -f cmd-zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.lst fs-zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.lst partmap-zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.lst handler-zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.lst parttool-zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.lst video-zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.lst terminal-zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.lst + +CLEAN_MODULE_TARGETS += clean-module-zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256-extra.1 + +COMMANDFILES += cmd-zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.lst +FSFILES += fs-zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.lst +PARTTOOLFILES += parttool-zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.lst +PARTMAPFILES += partmap-zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.lst +HANDLERFILES += handler-zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.lst +TERMINALFILES += terminal-zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.lst +VIDEOFILES += video-zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.lst + +cmd-zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.lst: $(GRUB_CONTRIB)/zfs/zfs_sha256.c $($(GRUB_CONTRIB)/zfs/zfs_sha256.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh zfs > $@ || (rm -f $@; exit 1) + +fs-zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.lst: $(GRUB_CONTRIB)/zfs/zfs_sha256.c $($(GRUB_CONTRIB)/zfs/zfs_sha256.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh zfs > $@ || (rm -f $@; exit 1) + +parttool-zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.lst: $(GRUB_CONTRIB)/zfs/zfs_sha256.c $($(GRUB_CONTRIB)/zfs/zfs_sha256.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh zfs > $@ || (rm -f $@; exit 1) + +partmap-zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.lst: $(GRUB_CONTRIB)/zfs/zfs_sha256.c $($(GRUB_CONTRIB)/zfs/zfs_sha256.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh zfs > $@ || (rm -f $@; exit 1) + +handler-zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.lst: $(GRUB_CONTRIB)/zfs/zfs_sha256.c $($(GRUB_CONTRIB)/zfs/zfs_sha256.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh zfs > $@ || (rm -f $@; exit 1) + +terminal-zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.lst: $(GRUB_CONTRIB)/zfs/zfs_sha256.c $($(GRUB_CONTRIB)/zfs/zfs_sha256.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh zfs > $@ || (rm -f $@; exit 1) + +video-zfs_mod-__GRUB_CONTRIB__zfs_zfs_sha256.lst: $(GRUB_CONTRIB)/zfs/zfs_sha256.c $($(GRUB_CONTRIB)/zfs/zfs_sha256.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh zfs > $@ || (rm -f $@; exit 1) + +zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.o: $(GRUB_CONTRIB)/zfs/zfs_fletcher.c $($(GRUB_CONTRIB)/zfs/zfs_fletcher.c_DEPENDENCIES) + $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/zfs/zfs_fletcher.c\" -MD -c -o $@ $< +-include zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.d + +clean-module-zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher-extra.1: + rm -f cmd-zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.lst fs-zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.lst partmap-zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.lst handler-zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.lst parttool-zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.lst video-zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.lst terminal-zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.lst + +CLEAN_MODULE_TARGETS += clean-module-zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher-extra.1 + +COMMANDFILES += cmd-zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.lst +FSFILES += fs-zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.lst +PARTTOOLFILES += parttool-zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.lst +PARTMAPFILES += partmap-zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.lst +HANDLERFILES += handler-zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.lst +TERMINALFILES += terminal-zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.lst +VIDEOFILES += video-zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.lst + +cmd-zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.lst: $(GRUB_CONTRIB)/zfs/zfs_fletcher.c $($(GRUB_CONTRIB)/zfs/zfs_fletcher.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh zfs > $@ || (rm -f $@; exit 1) + +fs-zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.lst: $(GRUB_CONTRIB)/zfs/zfs_fletcher.c $($(GRUB_CONTRIB)/zfs/zfs_fletcher.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh zfs > $@ || (rm -f $@; exit 1) + +parttool-zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.lst: $(GRUB_CONTRIB)/zfs/zfs_fletcher.c $($(GRUB_CONTRIB)/zfs/zfs_fletcher.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh zfs > $@ || (rm -f $@; exit 1) + +partmap-zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.lst: $(GRUB_CONTRIB)/zfs/zfs_fletcher.c $($(GRUB_CONTRIB)/zfs/zfs_fletcher.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh zfs > $@ || (rm -f $@; exit 1) + +handler-zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.lst: $(GRUB_CONTRIB)/zfs/zfs_fletcher.c $($(GRUB_CONTRIB)/zfs/zfs_fletcher.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh zfs > $@ || (rm -f $@; exit 1) + +terminal-zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.lst: $(GRUB_CONTRIB)/zfs/zfs_fletcher.c $($(GRUB_CONTRIB)/zfs/zfs_fletcher.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh zfs > $@ || (rm -f $@; exit 1) + +video-zfs_mod-__GRUB_CONTRIB__zfs_zfs_fletcher.lst: $(GRUB_CONTRIB)/zfs/zfs_fletcher.c $($(GRUB_CONTRIB)/zfs/zfs_fletcher.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(zfs_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh zfs > $@ || (rm -f $@; exit 1) + +zfs_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-error +zfs_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += zfsinfo.mod +zfsinfo_mod_SOURCES = $(GRUB_CONTRIB)/zfs/zfsinfo.c + +clean-module-zfsinfo.mod.1: + rm -f zfsinfo.mod mod-zfsinfo.o mod-zfsinfo.c pre-zfsinfo.o zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.o und-zfsinfo.lst + +CLEAN_MODULE_TARGETS += clean-module-zfsinfo.mod.1 + +clean-module-zfsinfo.mod-symbol.1: + rm -f def-zfsinfo.lst + +CLEAN_MODULE_TARGETS += clean-module-zfsinfo.mod-symbol.1 +DEFSYMFILES += def-zfsinfo.lst +mostlyclean-module-zfsinfo.mod.1: + rm -f zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-zfsinfo.mod.1 +UNDSYMFILES += und-zfsinfo.lst + +ifeq ($(TARGET_NO_MODULES), yes) +zfsinfo.mod: pre-zfsinfo.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(zfsinfo_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-zfsinfo.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +zfsinfo.mod: pre-zfsinfo.o mod-zfsinfo.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(zfsinfo_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-zfsinfo.o mod-zfsinfo.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +zfsinfo.mod: pre-zfsinfo.o mod-zfsinfo.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(zfsinfo_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-zfsinfo.o mod-zfsinfo.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-zfsinfo.o: $(zfsinfo_mod_DEPENDENCIES) zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.o + -rm -f $@ + $(TARGET_CC) $(zfsinfo_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.o + +mod-zfsinfo.o: mod-zfsinfo.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfsinfo_mod_CFLAGS) -DGRUB_FILE=\"mod-zfsinfo.c\" -c -o $@ $< + +mod-zfsinfo.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh 'zfsinfo' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-zfsinfo.lst: pre-zfsinfo.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 zfsinfo/' > $@ +else +def-zfsinfo.lst: pre-zfsinfo.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 zfsinfo/' > $@ +endif + +und-zfsinfo.lst: pre-zfsinfo.o + echo 'zfsinfo' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.o: $(GRUB_CONTRIB)/zfs/zfsinfo.c $($(GRUB_CONTRIB)/zfs/zfsinfo.c_DEPENDENCIES) + $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfsinfo_mod_CFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/zfs/zfsinfo.c\" -MD -c -o $@ $< +-include zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.d + +clean-module-zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo-extra.1: + rm -f cmd-zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.lst fs-zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.lst partmap-zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.lst handler-zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.lst parttool-zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.lst video-zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.lst terminal-zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.lst + +CLEAN_MODULE_TARGETS += clean-module-zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo-extra.1 + +COMMANDFILES += cmd-zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.lst +FSFILES += fs-zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.lst +PARTTOOLFILES += parttool-zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.lst +PARTMAPFILES += partmap-zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.lst +HANDLERFILES += handler-zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.lst +TERMINALFILES += terminal-zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.lst +VIDEOFILES += video-zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.lst + +cmd-zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.lst: $(GRUB_CONTRIB)/zfs/zfsinfo.c $($(GRUB_CONTRIB)/zfs/zfsinfo.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfsinfo_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh zfsinfo > $@ || (rm -f $@; exit 1) + +fs-zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.lst: $(GRUB_CONTRIB)/zfs/zfsinfo.c $($(GRUB_CONTRIB)/zfs/zfsinfo.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(zfsinfo_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh zfsinfo > $@ || (rm -f $@; exit 1) + +parttool-zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.lst: $(GRUB_CONTRIB)/zfs/zfsinfo.c $($(GRUB_CONTRIB)/zfs/zfsinfo.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfsinfo_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh zfsinfo > $@ || (rm -f $@; exit 1) + +partmap-zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.lst: $(GRUB_CONTRIB)/zfs/zfsinfo.c $($(GRUB_CONTRIB)/zfs/zfsinfo.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(zfsinfo_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh zfsinfo > $@ || (rm -f $@; exit 1) + +handler-zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.lst: $(GRUB_CONTRIB)/zfs/zfsinfo.c $($(GRUB_CONTRIB)/zfs/zfsinfo.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfsinfo_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh zfsinfo > $@ || (rm -f $@; exit 1) + +terminal-zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.lst: $(GRUB_CONTRIB)/zfs/zfsinfo.c $($(GRUB_CONTRIB)/zfs/zfsinfo.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(zfsinfo_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh zfsinfo > $@ || (rm -f $@; exit 1) + +video-zfsinfo_mod-__GRUB_CONTRIB__zfs_zfsinfo.lst: $(GRUB_CONTRIB)/zfs/zfsinfo.c $($(GRUB_CONTRIB)/zfs/zfsinfo.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/zfs -I$(srcdir)/$(GRUB_CONTRIB)/zfs $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(zfsinfo_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh zfsinfo > $@ || (rm -f $@; exit 1) + +zfsinfo_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-error +zfsinfo_mod_LDFLAGS = $(COMMON_LDFLAGS) --- grub2-1.98+20100804.orig/debian/grub-extras/zfs/conf/common.rmk +++ grub2-1.98+20100804/debian/grub-extras/zfs/conf/common.rmk @@ -0,0 +1,13 @@ +# -*- makefile -*- + +COMMON_CFLAGS += -I$(GRUB_CONTRIB)/zfs/include + +pkglib_MODULES += zfs.mod +zfs_mod_SOURCES = $(GRUB_CONTRIB)/zfs/zfs.c $(GRUB_CONTRIB)/zfs/zfs_lzjb.c $(GRUB_CONTRIB)/zfs/zfs_sha256.c $(GRUB_CONTRIB)/zfs/zfs_fletcher.c +zfs_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-error +zfs_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += zfsinfo.mod +zfsinfo_mod_SOURCES = $(GRUB_CONTRIB)/zfs/zfsinfo.c +zfsinfo_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-error +zfsinfo_mod_LDFLAGS = $(COMMON_LDFLAGS) --- grub2-1.98+20100804.orig/debian/grub-extras/zfs/include/grub/zfs/dsl_dataset.h +++ grub2-1.98+20100804/debian/grub-extras/zfs/include/grub/zfs/dsl_dataset.h @@ -0,0 +1,53 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. + * + * This program 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +/* + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#ifndef _SYS_DSL_DATASET_H +#define _SYS_DSL_DATASET_H + +typedef struct dsl_dataset_phys { + grub_uint64_t ds_dir_obj; + grub_uint64_t ds_prev_snap_obj; + grub_uint64_t ds_prev_snap_txg; + grub_uint64_t ds_next_snap_obj; + grub_uint64_t ds_snapnames_zapobj; /* zap obj of snaps; ==0 for snaps */ + grub_uint64_t ds_num_children; /* clone/snap children; ==0 for head */ + grub_uint64_t ds_creation_time; /* seconds since 1970 */ + grub_uint64_t ds_creation_txg; + grub_uint64_t ds_deadlist_obj; + grub_uint64_t ds_used_bytes; + grub_uint64_t ds_compressed_bytes; + grub_uint64_t ds_uncompressed_bytes; + grub_uint64_t ds_unique_bytes; /* only relevant to snapshots */ + /* + * The ds_fsid_guid is a 56-bit ID that can change to avoid + * collisions. The ds_guid is a 64-bit ID that will never + * change, so there is a small probability that it will collide. + */ + grub_uint64_t ds_fsid_guid; + grub_uint64_t ds_guid; + grub_uint64_t ds_flags; + blkptr_t ds_bp; + grub_uint64_t ds_pad[8]; /* pad out to 320 bytes for good measure */ +} dsl_dataset_phys_t; + +#endif /* _SYS_DSL_DATASET_H */ --- grub2-1.98+20100804.orig/debian/grub-extras/zfs/include/grub/zfs/zap_leaf.h +++ grub2-1.98+20100804/debian/grub-extras/zfs/include/grub/zfs/zap_leaf.h @@ -0,0 +1,104 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. + * + * This program 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +/* + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#ifndef _SYS_ZAP_LEAF_H +#define _SYS_ZAP_LEAF_H + +#define ZAP_LEAF_MAGIC 0x2AB1EAF + +/* chunk size = 24 bytes */ +#define ZAP_LEAF_CHUNKSIZE 24 + +/* + * The amount of space within the chunk available for the array is: + * chunk size - space for type (1) - space for next pointer (2) + */ +#define ZAP_LEAF_ARRAY_BYTES (ZAP_LEAF_CHUNKSIZE - 3) + +typedef enum zap_chunk_type { + ZAP_CHUNK_FREE = 253, + ZAP_CHUNK_ENTRY = 252, + ZAP_CHUNK_ARRAY = 251, + ZAP_CHUNK_TYPE_MAX = 250 +} zap_chunk_type_t; + +/* + * TAKE NOTE: + * If zap_leaf_phys_t is modified, zap_leaf_byteswap() must be modified. + */ +typedef struct zap_leaf_phys { + struct zap_leaf_header { + grub_uint64_t lh_block_type; /* ZBT_LEAF */ + grub_uint64_t lh_pad1; + grub_uint64_t lh_prefix; /* hash prefix of this leaf */ + grub_uint32_t lh_magic; /* ZAP_LEAF_MAGIC */ + grub_uint16_t lh_nfree; /* number free chunks */ + grub_uint16_t lh_nentries; /* number of entries */ + grub_uint16_t lh_prefix_len; /* num bits used to id this */ + +/* above is accessable to zap, below is zap_leaf private */ + + grub_uint16_t lh_freelist; /* chunk head of free list */ + grub_uint8_t lh_pad2[12]; + } l_hdr; /* 2 24-byte chunks */ + + /* + * The header is followed by a hash table with + * ZAP_LEAF_HASH_NUMENTRIES(zap) entries. The hash table is + * followed by an array of ZAP_LEAF_NUMCHUNKS(zap) + * zap_leaf_chunk structures. These structures are accessed + * with the ZAP_LEAF_CHUNK() macro. + */ + + grub_uint16_t l_hash[1]; +} zap_leaf_phys_t; + +typedef union zap_leaf_chunk { + struct zap_leaf_entry { + grub_uint8_t le_type; /* always ZAP_CHUNK_ENTRY */ + grub_uint8_t le_int_size; /* size of ints */ + grub_uint16_t le_next; /* next entry in hash chain */ + grub_uint16_t le_name_chunk; /* first chunk of the name */ + grub_uint16_t le_name_length; /* bytes in name, incl null */ + grub_uint16_t le_value_chunk; /* first chunk of the value */ + grub_uint16_t le_value_length; /* value length in ints */ + grub_uint32_t le_cd; /* collision differentiator */ + grub_uint64_t le_hash; /* hash value of the name */ + } l_entry; + struct zap_leaf_array { + grub_uint8_t la_type; /* always ZAP_CHUNK_ARRAY */ + union + { + grub_uint8_t la_array[ZAP_LEAF_ARRAY_BYTES]; + grub_uint64_t la_array64; + }; + grub_uint16_t la_next; /* next blk or CHAIN_END */ + } l_array; + struct zap_leaf_free { + grub_uint8_t lf_type; /* always ZAP_CHUNK_FREE */ + grub_uint8_t lf_pad[ZAP_LEAF_ARRAY_BYTES]; + grub_uint16_t lf_next; /* next in free list, or CHAIN_END */ + } l_free; +} zap_leaf_chunk_t; + +#endif /* _SYS_ZAP_LEAF_H */ --- grub2-1.98+20100804.orig/debian/grub-extras/zfs/include/grub/zfs/vdev_impl.h +++ grub2-1.98+20100804/debian/grub-extras/zfs/include/grub/zfs/vdev_impl.h @@ -0,0 +1,70 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. + * + * This program 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +/* + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#ifndef _SYS_VDEV_IMPL_H +#define _SYS_VDEV_IMPL_H + +#define VDEV_SKIP_SIZE (8 << 10) +#define VDEV_BOOT_HEADER_SIZE (8 << 10) +#define VDEV_PHYS_SIZE (112 << 10) +#define VDEV_UBERBLOCK_RING (128 << 10) + +/* ZFS boot block */ +#define VDEV_BOOT_MAGIC 0x2f5b007b10cULL +#define VDEV_BOOT_VERSION 1 /* version number */ + +typedef struct vdev_boot_header { + grub_uint64_t vb_magic; /* VDEV_BOOT_MAGIC */ + grub_uint64_t vb_version; /* VDEV_BOOT_VERSION */ + grub_uint64_t vb_offset; /* start offset (bytes) */ + grub_uint64_t vb_size; /* size (bytes) */ + char vb_pad[VDEV_BOOT_HEADER_SIZE - 4 * sizeof (grub_uint64_t)]; +} vdev_boot_header_t; + +typedef struct vdev_phys { + char vp_nvlist[VDEV_PHYS_SIZE - sizeof (zio_block_tail_t)]; + zio_block_tail_t vp_zbt; +} vdev_phys_t; + +typedef struct vdev_label { + char vl_pad[VDEV_SKIP_SIZE]; /* 8K */ + vdev_boot_header_t vl_boot_header; /* 8K */ + vdev_phys_t vl_vdev_phys; /* 112K */ + char vl_uberblock[VDEV_UBERBLOCK_RING]; /* 128K */ +} vdev_label_t; /* 256K total */ + +/* + * Size and offset of embedded boot loader region on each label. + * The total size of the first two labels plus the boot area is 4MB. + */ +#define VDEV_BOOT_OFFSET (2 * sizeof (vdev_label_t)) +#define VDEV_BOOT_SIZE (7ULL << 19) /* 3.5M */ + +/* + * Size of label regions at the start and end of each leaf device. + */ +#define VDEV_LABEL_START_SIZE (2 * sizeof (vdev_label_t) + VDEV_BOOT_SIZE) +#define VDEV_LABEL_END_SIZE (2 * sizeof (vdev_label_t)) +#define VDEV_LABELS 4 + +#endif /* _SYS_VDEV_IMPL_H */ --- grub2-1.98+20100804.orig/debian/grub-extras/zfs/include/grub/zfs/zio.h +++ grub2-1.98+20100804/debian/grub-extras/zfs/include/grub/zfs/zio.h @@ -0,0 +1,83 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. + * + * This program 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +/* + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#ifndef _ZIO_H +#define _ZIO_H + +#include + +#define ZBT_MAGIC 0x210da7ab10c7a11ULL /* zio data bloc tail */ + +typedef struct zio_block_tail { + grub_uint64_t zbt_magic; /* for validation, endianness */ + zio_cksum_t zbt_cksum; /* 256-bit checksum */ +} zio_block_tail_t; + +/* + * Gang block headers are self-checksumming and contain an array + * of block pointers. + */ +#define SPA_GANGBLOCKSIZE SPA_MINBLOCKSIZE +#define SPA_GBH_NBLKPTRS ((SPA_GANGBLOCKSIZE - \ + sizeof (zio_block_tail_t)) / sizeof (blkptr_t)) +#define SPA_GBH_FILLER ((SPA_GANGBLOCKSIZE - \ + sizeof (zio_block_tail_t) - \ + (SPA_GBH_NBLKPTRS * sizeof (blkptr_t))) /\ + sizeof (grub_uint64_t)) + +#define ZIO_GET_IOSIZE(zio) \ + (BP_IS_GANG((zio)->io_bp) ? \ + SPA_GANGBLOCKSIZE : BP_GET_PSIZE((zio)->io_bp)) + +typedef struct zio_gbh { + blkptr_t zg_blkptr[SPA_GBH_NBLKPTRS]; + grub_uint64_t zg_filler[SPA_GBH_FILLER]; + zio_block_tail_t zg_tail; +} zio_gbh_phys_t; + +enum zio_checksum { + ZIO_CHECKSUM_INHERIT = 0, + ZIO_CHECKSUM_ON, + ZIO_CHECKSUM_OFF, + ZIO_CHECKSUM_LABEL, + ZIO_CHECKSUM_GANG_HEADER, + ZIO_CHECKSUM_ZILOG, + ZIO_CHECKSUM_FLETCHER_2, + ZIO_CHECKSUM_FLETCHER_4, + ZIO_CHECKSUM_SHA256, + ZIO_CHECKSUM_FUNCTIONS +}; + +#define ZIO_CHECKSUM_ON_VALUE ZIO_CHECKSUM_FLETCHER_2 +#define ZIO_CHECKSUM_DEFAULT ZIO_CHECKSUM_ON + +enum zio_compress { + ZIO_COMPRESS_INHERIT = 0, + ZIO_COMPRESS_ON, + ZIO_COMPRESS_OFF, + ZIO_COMPRESS_LZJB, + ZIO_COMPRESS_EMPTY, + ZIO_COMPRESS_FUNCTIONS +}; + +#endif /* _ZIO_H */ --- grub2-1.98+20100804.orig/debian/grub-extras/zfs/include/grub/zfs/spa.h +++ grub2-1.98+20100804/debian/grub-extras/zfs/include/grub/zfs/spa.h @@ -0,0 +1,281 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. + * Copyright 2007 Sun Microsystems, Inc. + * Copyright (C) 2009 Vladimir Serbinenko + * + * This program 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. + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef GRUB_ZFS_SPA_HEADER +#define GRUB_ZFS_SPA_HEADER 1 + +typedef enum grub_zfs_endian + { + UNKNOWN_ENDIAN = -2, + LITTLE_ENDIAN = -1, + BIG_ENDIAN = 0 + } grub_zfs_endian_t; + +#define grub_zfs_to_cpu16(x,a) (((a) == BIG_ENDIAN) ? grub_be_to_cpu16(x) \ + : grub_le_to_cpu16(x)) +#define grub_cpu_to_zfs16(x,a) (((a) == BIG_ENDIAN) ? grub_cpu_to_be16(x) \ + : grub_cpu_to_le16(x)) + +#define grub_zfs_to_cpu32(x,a) (((a) == BIG_ENDIAN) ? grub_be_to_cpu32(x) \ + : grub_le_to_cpu32(x)) +#define grub_cpu_to_zfs32(x,a) (((a) == BIG_ENDIAN) ? grub_cpu_to_be32(x) \ + : grub_cpu_to_le32(x)) + +#define grub_zfs_to_cpu64(x,a) (((a) == BIG_ENDIAN) ? grub_be_to_cpu64(x) \ + : grub_le_to_cpu64(x)) +#define grub_cpu_to_zfs64(x,a) (((a) == BIG_ENDIAN) ? grub_cpu_to_be64(x) \ + : grub_cpu_to_le64(x)) + +/* + * General-purpose 32-bit and 64-bit bitfield encodings. + */ +#define BF32_DECODE(x, low, len) P2PHASE((x) >> (low), 1U << (len)) +#define BF64_DECODE(x, low, len) P2PHASE((x) >> (low), 1ULL << (len)) +#define BF32_ENCODE(x, low, len) (P2PHASE((x), 1U << (len)) << (low)) +#define BF64_ENCODE(x, low, len) (P2PHASE((x), 1ULL << (len)) << (low)) + +#define BF32_GET(x, low, len) BF32_DECODE(x, low, len) +#define BF64_GET(x, low, len) BF64_DECODE(x, low, len) + +#define BF32_SET(x, low, len, val) \ + ((x) ^= BF32_ENCODE((x >> low) ^ (val), low, len)) +#define BF64_SET(x, low, len, val) \ + ((x) ^= BF64_ENCODE((x >> low) ^ (val), low, len)) + +#define BF32_GET_SB(x, low, len, shift, bias) \ + ((BF32_GET(x, low, len) + (bias)) << (shift)) +#define BF64_GET_SB(x, low, len, shift, bias) \ + ((BF64_GET(x, low, len) + (bias)) << (shift)) + +#define BF32_SET_SB(x, low, len, shift, bias, val) \ + BF32_SET(x, low, len, ((val) >> (shift)) - (bias)) +#define BF64_SET_SB(x, low, len, shift, bias, val) \ + BF64_SET(x, low, len, ((val) >> (shift)) - (bias)) + +/* + * We currently support nine block sizes, from 512 bytes to 128K. + * We could go higher, but the benefits are near-zero and the cost + * of COWing a giant block to modify one byte would become excessive. + */ +#define SPA_MINBLOCKSHIFT 9 +#define SPA_MAXBLOCKSHIFT 17 +#define SPA_MINBLOCKSIZE (1ULL << SPA_MINBLOCKSHIFT) +#define SPA_MAXBLOCKSIZE (1ULL << SPA_MAXBLOCKSHIFT) + +#define SPA_BLOCKSIZES (SPA_MAXBLOCKSHIFT - SPA_MINBLOCKSHIFT + 1) + +/* + * The DVA size encodings for LSIZE and PSIZE support blocks up to 32MB. + * The ASIZE encoding should be at least 64 times larger (6 more bits) + * to support up to 4-way RAID-Z mirror mode with worst-case gang block + * overhead, three DVAs per bp, plus one more bit in case we do anything + * else that expands the ASIZE. + */ +#define SPA_LSIZEBITS 16 /* LSIZE up to 32M (2^16 * 512) */ +#define SPA_PSIZEBITS 16 /* PSIZE up to 32M (2^16 * 512) */ +#define SPA_ASIZEBITS 24 /* ASIZE up to 64 times larger */ + +/* + * All SPA data is represented by 128-bit data virtual addresses (DVAs). + * The members of the dva_t should be considered opaque outside the SPA. + */ +typedef struct dva { + grub_uint64_t dva_word[2]; +} dva_t; + +/* + * Each block has a 256-bit checksum -- strong enough for cryptographic hashes. + */ +typedef struct zio_cksum { + grub_uint64_t zc_word[4]; +} zio_cksum_t; + +/* + * Each block is described by its DVAs, time of birth, checksum, etc. + * The word-by-word, bit-by-bit layout of the blkptr is as follows: + * + * 64 56 48 40 32 24 16 8 0 + * +-------+-------+-------+-------+-------+-------+-------+-------+ + * 0 | vdev1 | GRID | ASIZE | + * +-------+-------+-------+-------+-------+-------+-------+-------+ + * 1 |G| offset1 | + * +-------+-------+-------+-------+-------+-------+-------+-------+ + * 2 | vdev2 | GRID | ASIZE | + * +-------+-------+-------+-------+-------+-------+-------+-------+ + * 3 |G| offset2 | + * +-------+-------+-------+-------+-------+-------+-------+-------+ + * 4 | vdev3 | GRID | ASIZE | + * +-------+-------+-------+-------+-------+-------+-------+-------+ + * 5 |G| offset3 | + * +-------+-------+-------+-------+-------+-------+-------+-------+ + * 6 |E| lvl | type | cksum | comp | PSIZE | LSIZE | + * +-------+-------+-------+-------+-------+-------+-------+-------+ + * 7 | padding | + * +-------+-------+-------+-------+-------+-------+-------+-------+ + * 8 | padding | + * +-------+-------+-------+-------+-------+-------+-------+-------+ + * 9 | padding | + * +-------+-------+-------+-------+-------+-------+-------+-------+ + * a | birth txg | + * +-------+-------+-------+-------+-------+-------+-------+-------+ + * b | fill count | + * +-------+-------+-------+-------+-------+-------+-------+-------+ + * c | checksum[0] | + * +-------+-------+-------+-------+-------+-------+-------+-------+ + * d | checksum[1] | + * +-------+-------+-------+-------+-------+-------+-------+-------+ + * e | checksum[2] | + * +-------+-------+-------+-------+-------+-------+-------+-------+ + * f | checksum[3] | + * +-------+-------+-------+-------+-------+-------+-------+-------+ + * + * Legend: + * + * vdev virtual device ID + * offset offset into virtual device + * LSIZE logical size + * PSIZE physical size (after compression) + * ASIZE allocated size (including RAID-Z parity and gang block headers) + * GRID RAID-Z layout information (reserved for future use) + * cksum checksum function + * comp compression function + * G gang block indicator + * E endianness + * type DMU object type + * lvl level of indirection + * birth txg transaction group in which the block was born + * fill count number of non-zero blocks under this bp + * checksum[4] 256-bit checksum of the data this bp describes + */ +typedef struct blkptr { + dva_t blk_dva[3]; /* 128-bit Data Virtual Address */ + grub_uint64_t blk_prop; /* size, compression, type, etc */ + grub_uint64_t blk_pad[3]; /* Extra space for the future */ + grub_uint64_t blk_birth; /* transaction group at birth */ + grub_uint64_t blk_fill; /* fill count */ + zio_cksum_t blk_cksum; /* 256-bit checksum */ +} blkptr_t; + +#define SPA_BLKPTRSHIFT 7 /* blkptr_t is 128 bytes */ +#define SPA_DVAS_PER_BP 3 /* Number of DVAs in a bp */ + +/* + * Macros to get and set fields in a bp or DVA. + */ +#define DVA_GET_ASIZE(dva) \ + BF64_GET_SB((dva)->dva_word[0], 0, 24, SPA_MINBLOCKSHIFT, 0) +#define DVA_SET_ASIZE(dva, x) \ + BF64_SET_SB((dva)->dva_word[0], 0, 24, SPA_MINBLOCKSHIFT, 0, x) + +#define DVA_GET_GRID(dva) BF64_GET((dva)->dva_word[0], 24, 8) +#define DVA_SET_GRID(dva, x) BF64_SET((dva)->dva_word[0], 24, 8, x) + +#define DVA_GET_VDEV(dva) BF64_GET((dva)->dva_word[0], 32, 32) +#define DVA_SET_VDEV(dva, x) BF64_SET((dva)->dva_word[0], 32, 32, x) + +#define DVA_GET_GANG(dva) BF64_GET((dva)->dva_word[1], 63, 1) +#define DVA_SET_GANG(dva, x) BF64_SET((dva)->dva_word[1], 63, 1, x) + +#define BP_GET_LSIZE(bp) \ + (BP_IS_HOLE(bp) ? 0 : \ + BF64_GET_SB((bp)->blk_prop, 0, 16, SPA_MINBLOCKSHIFT, 1)) +#define BP_SET_LSIZE(bp, x) \ + BF64_SET_SB((bp)->blk_prop, 0, 16, SPA_MINBLOCKSHIFT, 1, x) + +#define BP_GET_COMPRESS(bp) BF64_GET((bp)->blk_prop, 32, 8) +#define BP_SET_COMPRESS(bp, x) BF64_SET((bp)->blk_prop, 32, 8, x) + +#define BP_GET_CHECKSUM(bp) BF64_GET((bp)->blk_prop, 40, 8) +#define BP_SET_CHECKSUM(bp, x) BF64_SET((bp)->blk_prop, 40, 8, x) + +#define BP_GET_TYPE(bp) BF64_GET((bp)->blk_prop, 48, 8) +#define BP_SET_TYPE(bp, x) BF64_SET((bp)->blk_prop, 48, 8, x) + +#define BP_GET_LEVEL(bp) BF64_GET((bp)->blk_prop, 56, 5) +#define BP_SET_LEVEL(bp, x) BF64_SET((bp)->blk_prop, 56, 5, x) + +#define BP_GET_BYTEORDER(bp) (0 - BF64_GET((bp)->blk_prop, 63, 1)) +#define BP_SET_BYTEORDER(bp, x) BF64_SET((bp)->blk_prop, 63, 1, x) + +#define BP_GET_ASIZE(bp) \ + (DVA_GET_ASIZE(&(bp)->blk_dva[0]) + DVA_GET_ASIZE(&(bp)->blk_dva[1]) + \ + DVA_GET_ASIZE(&(bp)->blk_dva[2])) + +#define BP_GET_UCSIZE(bp) \ + ((BP_GET_LEVEL(bp) > 0 || dmu_ot[BP_GET_TYPE(bp)].ot_metadata) ? \ + BP_GET_PSIZE(bp) : BP_GET_LSIZE(bp)); + +#define BP_GET_NDVAS(bp) \ + (!!DVA_GET_ASIZE(&(bp)->blk_dva[0]) + \ + !!DVA_GET_ASIZE(&(bp)->blk_dva[1]) + \ + !!DVA_GET_ASIZE(&(bp)->blk_dva[2])) + +#define BP_COUNT_GANG(bp) \ + (DVA_GET_GANG(&(bp)->blk_dva[0]) + \ + DVA_GET_GANG(&(bp)->blk_dva[1]) + \ + DVA_GET_GANG(&(bp)->blk_dva[2])) + +#define DVA_EQUAL(dva1, dva2) \ + ((dva1)->dva_word[1] == (dva2)->dva_word[1] && \ + (dva1)->dva_word[0] == (dva2)->dva_word[0]) + +#define ZIO_CHECKSUM_EQUAL(zc1, zc2) \ + (0 == (((zc1).zc_word[0] - (zc2).zc_word[0]) | \ + ((zc1).zc_word[1] - (zc2).zc_word[1]) | \ + ((zc1).zc_word[2] - (zc2).zc_word[2]) | \ + ((zc1).zc_word[3] - (zc2).zc_word[3]))) + + +#define DVA_IS_VALID(dva) (DVA_GET_ASIZE(dva) != 0) + +#define ZIO_SET_CHECKSUM(zcp, w0, w1, w2, w3) \ +{ \ + (zcp)->zc_word[0] = w0; \ + (zcp)->zc_word[1] = w1; \ + (zcp)->zc_word[2] = w2; \ + (zcp)->zc_word[3] = w3; \ +} + +#define BP_IDENTITY(bp) (&(bp)->blk_dva[0]) +#define BP_IS_GANG(bp) DVA_GET_GANG(BP_IDENTITY(bp)) +#define BP_IS_HOLE(bp) ((bp)->blk_birth == 0) +#define BP_IS_OLDER(bp, txg) (!BP_IS_HOLE(bp) && (bp)->blk_birth < (txg)) + +#define BP_ZERO(bp) \ +{ \ + (bp)->blk_dva[0].dva_word[0] = 0; \ + (bp)->blk_dva[0].dva_word[1] = 0; \ + (bp)->blk_dva[1].dva_word[0] = 0; \ + (bp)->blk_dva[1].dva_word[1] = 0; \ + (bp)->blk_dva[2].dva_word[0] = 0; \ + (bp)->blk_dva[2].dva_word[1] = 0; \ + (bp)->blk_prop = 0; \ + (bp)->blk_pad[0] = 0; \ + (bp)->blk_pad[1] = 0; \ + (bp)->blk_pad[2] = 0; \ + (bp)->blk_birth = 0; \ + (bp)->blk_fill = 0; \ + ZIO_SET_CHECKSUM(&(bp)->blk_cksum, 0, 0, 0, 0); \ +} + +#define BP_SPRINTF_LEN 320 + +#endif /* ! GRUB_ZFS_SPA_HEADER */ --- grub2-1.98+20100804.orig/debian/grub-extras/zfs/include/grub/zfs/dmu.h +++ grub2-1.98+20100804/debian/grub-extras/zfs/include/grub/zfs/dmu.h @@ -0,0 +1,105 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. + * + * This program 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +/* + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#ifndef _SYS_DMU_H +#define _SYS_DMU_H + +/* + * This file describes the interface that the DMU provides for its + * consumers. + * + * The DMU also interacts with the SPA. That interface is described in + * dmu_spa.h. + */ +typedef enum dmu_object_type { + DMU_OT_NONE, + /* general: */ + DMU_OT_OBJECT_DIRECTORY, /* ZAP */ + DMU_OT_OBJECT_ARRAY, /* UINT64 */ + DMU_OT_PACKED_NVLIST, /* UINT8 (XDR by nvlist_pack/unpack) */ + DMU_OT_PACKED_NVLIST_SIZE, /* UINT64 */ + DMU_OT_BPLIST, /* UINT64 */ + DMU_OT_BPLIST_HDR, /* UINT64 */ + /* spa: */ + DMU_OT_SPACE_MAP_HEADER, /* UINT64 */ + DMU_OT_SPACE_MAP, /* UINT64 */ + /* zil: */ + DMU_OT_INTENT_LOG, /* UINT64 */ + /* dmu: */ + DMU_OT_DNODE, /* DNODE */ + DMU_OT_OBJSET, /* OBJSET */ + /* dsl: */ + DMU_OT_DSL_DIR, /* UINT64 */ + DMU_OT_DSL_DIR_CHILD_MAP, /* ZAP */ + DMU_OT_DSL_DS_SNAP_MAP, /* ZAP */ + DMU_OT_DSL_PROPS, /* ZAP */ + DMU_OT_DSL_DATASET, /* UINT64 */ + /* zpl: */ + DMU_OT_ZNODE, /* ZNODE */ + DMU_OT_ACL, /* ACL */ + DMU_OT_PLAIN_FILE_CONTENTS, /* UINT8 */ + DMU_OT_DIRECTORY_CONTENTS, /* ZAP */ + DMU_OT_MASTER_NODE, /* ZAP */ + DMU_OT_UNLINKED_SET, /* ZAP */ + /* zvol: */ + DMU_OT_ZVOL, /* UINT8 */ + DMU_OT_ZVOL_PROP, /* ZAP */ + /* other; for testing only! */ + DMU_OT_PLAIN_OTHER, /* UINT8 */ + DMU_OT_UINT64_OTHER, /* UINT64 */ + DMU_OT_ZAP_OTHER, /* ZAP */ + /* new object types: */ + DMU_OT_ERROR_LOG, /* ZAP */ + DMU_OT_SPA_HISTORY, /* UINT8 */ + DMU_OT_SPA_HISTORY_OFFSETS, /* spa_his_phys_t */ + DMU_OT_POOL_PROPS, /* ZAP */ + + DMU_OT_NUMTYPES +} dmu_object_type_t; + +typedef enum dmu_objset_type { + DMU_OST_NONE, + DMU_OST_META, + DMU_OST_ZFS, + DMU_OST_ZVOL, + DMU_OST_OTHER, /* For testing only! */ + DMU_OST_ANY, /* Be careful! */ + DMU_OST_NUMTYPES +} dmu_objset_type_t; + +/* + * The names of zap entries in the DIRECTORY_OBJECT of the MOS. + */ +#define DMU_POOL_DIRECTORY_OBJECT 1 +#define DMU_POOL_CONFIG "config" +#define DMU_POOL_ROOT_DATASET "root_dataset" +#define DMU_POOL_SYNC_BPLIST "sync_bplist" +#define DMU_POOL_ERRLOG_SCRUB "errlog_scrub" +#define DMU_POOL_ERRLOG_LAST "errlog_last" +#define DMU_POOL_SPARES "spares" +#define DMU_POOL_DEFLATE "deflate" +#define DMU_POOL_HISTORY "history" +#define DMU_POOL_PROPS "pool_props" +#define DMU_POOL_L2CACHE "l2cache" + +#endif /* _SYS_DMU_H */ --- grub2-1.98+20100804.orig/debian/grub-extras/zfs/include/grub/zfs/dsl_dir.h +++ grub2-1.98+20100804/debian/grub-extras/zfs/include/grub/zfs/dsl_dir.h @@ -0,0 +1,49 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. + * + * This program 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +/* + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#ifndef _SYS_DSL_DIR_H +#define _SYS_DSL_DIR_H + +typedef struct dsl_dir_phys { + grub_uint64_t dd_creation_time; /* not actually used */ + grub_uint64_t dd_head_dataset_obj; + grub_uint64_t dd_parent_obj; + grub_uint64_t dd_clone_parent_obj; + grub_uint64_t dd_child_dir_zapobj; + /* + * how much space our children are accounting for; for leaf + * datasets, == physical space used by fs + snaps + */ + grub_uint64_t dd_used_bytes; + grub_uint64_t dd_compressed_bytes; + grub_uint64_t dd_uncompressed_bytes; + /* Administrative quota setting */ + grub_uint64_t dd_quota; + /* Administrative reservation setting */ + grub_uint64_t dd_reserved; + grub_uint64_t dd_props_zapobj; + grub_uint64_t dd_deleg_zapobj; /* dataset permissions */ + grub_uint64_t dd_pad[20]; /* pad out to 256 bytes for good measure */ +} dsl_dir_phys_t; + +#endif /* _SYS_DSL_DIR_H */ --- grub2-1.98+20100804.orig/debian/grub-extras/zfs/include/grub/zfs/uberblock_impl.h +++ grub2-1.98+20100804/debian/grub-extras/zfs/include/grub/zfs/uberblock_impl.h @@ -0,0 +1,61 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. + * + * This program 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +/* + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#ifndef _SYS_UBERBLOCK_IMPL_H +#define _SYS_UBERBLOCK_IMPL_H + +/* + * The uberblock version is incremented whenever an incompatible on-disk + * format change is made to the SPA, DMU, or ZAP. + * + * Note: the first two fields should never be moved. When a storage pool + * is opened, the uberblock must be read off the disk before the version + * can be checked. If the ub_version field is moved, we may not detect + * version mismatch. If the ub_magic field is moved, applications that + * expect the magic number in the first word won't work. + */ +#define UBERBLOCK_MAGIC 0x00bab10c /* oo-ba-bloc! */ +#define UBERBLOCK_SHIFT 10 /* up to 1K */ + +typedef struct uberblock { + grub_uint64_t ub_magic; /* UBERBLOCK_MAGIC */ + grub_uint64_t ub_version; /* ZFS_VERSION */ + grub_uint64_t ub_txg; /* txg of last sync */ + grub_uint64_t ub_guid_sum; /* sum of all vdev guids */ + grub_uint64_t ub_timestamp; /* UTC time of last sync */ + blkptr_t ub_rootbp; /* MOS objset_phys_t */ +} uberblock_t; + +#define UBERBLOCK_SIZE (1ULL << UBERBLOCK_SHIFT) +#define VDEV_UBERBLOCK_SHIFT UBERBLOCK_SHIFT + +/* XXX Uberblock_phys_t is no longer in the kernel zfs */ +typedef struct uberblock_phys { + uberblock_t ubp_uberblock; + char ubp_pad[UBERBLOCK_SIZE - sizeof (uberblock_t) - + sizeof (zio_block_tail_t)]; + zio_block_tail_t ubp_zbt; +} uberblock_phys_t; + + +#endif /* _SYS_UBERBLOCK_IMPL_H */ --- grub2-1.98+20100804.orig/debian/grub-extras/zfs/include/grub/zfs/zil.h +++ grub2-1.98+20100804/debian/grub-extras/zfs/include/grub/zfs/zil.h @@ -0,0 +1,51 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. + * + * This program 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +/* + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#ifndef _SYS_ZIL_H +#define _SYS_ZIL_H + +/* + * Intent log format: + * + * Each objset has its own intent log. The log header (zil_header_t) + * for objset N's intent log is kept in the Nth object of the SPA's + * intent_log objset. The log header points to a chain of log blocks, + * each of which contains log records (i.e., transactions) followed by + * a log block trailer (zil_trailer_t). The format of a log record + * depends on the record (or transaction) type, but all records begin + * with a common structure that defines the type, length, and txg. + */ + +/* + * Intent log header - this on disk structure holds fields to manage + * the log. All fields are 64 bit to easily handle cross architectures. + */ +typedef struct zil_header { + grub_uint64_t zh_claim_txg; /* txg in which log blocks were claimed */ + grub_uint64_t zh_replay_seq; /* highest replayed sequence number */ + blkptr_t zh_log; /* log chain */ + grub_uint64_t zh_claim_seq; /* highest claimed sequence number */ + grub_uint64_t zh_pad[5]; +} zil_header_t; + +#endif /* _SYS_ZIL_H */ --- grub2-1.98+20100804.orig/debian/grub-extras/zfs/include/grub/zfs/zfs_acl.h +++ grub2-1.98+20100804/debian/grub-extras/zfs/include/grub/zfs/zfs_acl.h @@ -0,0 +1,60 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. + * + * This program 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +/* + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#ifndef _SYS_FS_ZFS_ACL_H +#define _SYS_FS_ZFS_ACL_H + +#ifndef _UID_T +#define _UID_T +typedef unsigned int uid_t; /* UID type */ +#endif /* _UID_T */ + +typedef struct zfs_oldace { + grub_uint32_t z_fuid; /* "who" */ + grub_uint32_t z_access_mask; /* access mask */ + grub_uint16_t z_flags; /* flags, i.e inheritance */ + grub_uint16_t z_type; /* type of entry allow/deny */ +} zfs_oldace_t; + +#define ACE_SLOT_CNT 6 + +typedef struct zfs_znode_acl_v0 { + grub_uint64_t z_acl_extern_obj; /* ext acl pieces */ + grub_uint32_t z_acl_count; /* Number of ACEs */ + grub_uint16_t z_acl_version; /* acl version */ + grub_uint16_t z_acl_pad; /* pad */ + zfs_oldace_t z_ace_data[ACE_SLOT_CNT]; /* 6 standard ACEs */ +} zfs_znode_acl_v0_t; + +#define ZFS_ACE_SPACE (sizeof (zfs_oldace_t) * ACE_SLOT_CNT) + +typedef struct zfs_znode_acl { + grub_uint64_t z_acl_extern_obj; /* ext acl pieces */ + grub_uint32_t z_acl_size; /* Number of bytes in ACL */ + grub_uint16_t z_acl_version; /* acl version */ + grub_uint16_t z_acl_count; /* ace count */ + grub_uint8_t z_ace_data[ZFS_ACE_SPACE]; /* space for embedded ACEs */ +} zfs_znode_acl_t; + + +#endif /* _SYS_FS_ZFS_ACL_H */ --- grub2-1.98+20100804.orig/debian/grub-extras/zfs/include/grub/zfs/zap_impl.h +++ grub2-1.98+20100804/debian/grub-extras/zfs/include/grub/zfs/zap_impl.h @@ -0,0 +1,110 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. + * + * This program 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +/* + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#ifndef _SYS_ZAP_IMPL_H +#define _SYS_ZAP_IMPL_H + +#define ZAP_MAGIC 0x2F52AB2ABULL + +#define ZAP_HASHBITS 28 +#define MZAP_ENT_LEN 64 +#define MZAP_NAME_LEN (MZAP_ENT_LEN - 8 - 4 - 2) +#define MZAP_MAX_BLKSHIFT SPA_MAXBLOCKSHIFT +#define MZAP_MAX_BLKSZ (1 << MZAP_MAX_BLKSHIFT) + +typedef struct mzap_ent_phys { + grub_uint64_t mze_value; + grub_uint32_t mze_cd; + grub_uint16_t mze_pad; /* in case we want to chain them someday */ + char mze_name[MZAP_NAME_LEN]; +} mzap_ent_phys_t; + +typedef struct mzap_phys { + grub_uint64_t mz_block_type; /* ZBT_MICRO */ + grub_uint64_t mz_salt; + grub_uint64_t mz_pad[6]; + mzap_ent_phys_t mz_chunk[1]; + /* actually variable size depending on block size */ +} mzap_phys_t; + +/* + * The (fat) zap is stored in one object. It is an array of + * 1<= 6] [zap_leaf_t] [ptrtbl] ... + * + */ + +#define ZBT_LEAF ((1ULL << 63) + 0) +#define ZBT_HEADER ((1ULL << 63) + 1) +#define ZBT_MICRO ((1ULL << 63) + 3) +/* any other values are ptrtbl blocks */ + +/* + * the embedded pointer table takes up half a block: + * block size / entry size (2^3) / 2 + */ +#define ZAP_EMBEDDED_PTRTBL_SHIFT(zap) (FZAP_BLOCK_SHIFT(zap) - 3 - 1) + +/* + * The embedded pointer table starts half-way through the block. Since + * the pointer table itself is half the block, it starts at (64-bit) + * word number (1<zap_f.zap_phys) \ + [(idx) + (1< + * + * This program 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. + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +/* + * Use is subject to license terms. + */ + +#ifndef GRUB_ZFS_HEADER +#define GRUB_ZFS_HEADER 1 + +#include +#include + +/* + * On-disk version number. + */ +#define SPA_VERSION 14ULL + +/* + * The following are configuration names used in the nvlist describing a pool's + * configuration. + */ +#define ZPOOL_CONFIG_VERSION "version" +#define ZPOOL_CONFIG_POOL_NAME "name" +#define ZPOOL_CONFIG_POOL_STATE "state" +#define ZPOOL_CONFIG_POOL_TXG "txg" +#define ZPOOL_CONFIG_POOL_GUID "pool_guid" +#define ZPOOL_CONFIG_CREATE_TXG "create_txg" +#define ZPOOL_CONFIG_TOP_GUID "top_guid" +#define ZPOOL_CONFIG_VDEV_TREE "vdev_tree" +#define ZPOOL_CONFIG_TYPE "type" +#define ZPOOL_CONFIG_CHILDREN "children" +#define ZPOOL_CONFIG_ID "id" +#define ZPOOL_CONFIG_GUID "guid" +#define ZPOOL_CONFIG_PATH "path" +#define ZPOOL_CONFIG_DEVID "devid" +#define ZPOOL_CONFIG_METASLAB_ARRAY "metaslab_array" +#define ZPOOL_CONFIG_METASLAB_SHIFT "metaslab_shift" +#define ZPOOL_CONFIG_ASHIFT "ashift" +#define ZPOOL_CONFIG_ASIZE "asize" +#define ZPOOL_CONFIG_DTL "DTL" +#define ZPOOL_CONFIG_STATS "stats" +#define ZPOOL_CONFIG_WHOLE_DISK "whole_disk" +#define ZPOOL_CONFIG_ERRCOUNT "error_count" +#define ZPOOL_CONFIG_NOT_PRESENT "not_present" +#define ZPOOL_CONFIG_SPARES "spares" +#define ZPOOL_CONFIG_IS_SPARE "is_spare" +#define ZPOOL_CONFIG_NPARITY "nparity" +#define ZPOOL_CONFIG_PHYS_PATH "phys_path" +#define ZPOOL_CONFIG_L2CACHE "l2cache" +/* + * The persistent vdev state is stored as separate values rather than a single + * 'vdev_state' entry. This is because a device can be in multiple states, such + * as offline and degraded. + */ +#define ZPOOL_CONFIG_OFFLINE "offline" +#define ZPOOL_CONFIG_FAULTED "faulted" +#define ZPOOL_CONFIG_DEGRADED "degraded" +#define ZPOOL_CONFIG_REMOVED "removed" + +#define VDEV_TYPE_ROOT "root" +#define VDEV_TYPE_MIRROR "mirror" +#define VDEV_TYPE_REPLACING "replacing" +#define VDEV_TYPE_RAIDZ "raidz" +#define VDEV_TYPE_DISK "disk" +#define VDEV_TYPE_FILE "file" +#define VDEV_TYPE_MISSING "missing" +#define VDEV_TYPE_SPARE "spare" +#define VDEV_TYPE_L2CACHE "l2cache" + +/* + * pool state. The following states are written to disk as part of the normal + * SPA lifecycle: ACTIVE, EXPORTED, DESTROYED, SPARE, L2CACHE. The remaining + * states are software abstractions used at various levels to communicate pool + * state. + */ +typedef enum pool_state { + POOL_STATE_ACTIVE = 0, /* In active use */ + POOL_STATE_EXPORTED, /* Explicitly exported */ + POOL_STATE_DESTROYED, /* Explicitly destroyed */ + POOL_STATE_SPARE, /* Reserved for hot spare use */ + POOL_STATE_L2CACHE, /* Level 2 ARC device */ + POOL_STATE_UNINITIALIZED, /* Internal spa_t state */ + POOL_STATE_UNAVAIL, /* Internal libzfs state */ + POOL_STATE_POTENTIALLY_ACTIVE /* Internal libzfs state */ +} pool_state_t; + +struct grub_zfs_data; + +grub_err_t grub_zfs_fetch_nvlist (grub_device_t dev, char **nvlist); +grub_err_t grub_zfs_getmdnobj (grub_device_t dev, const char *fsfilename, + grub_uint64_t *mdnobj); + +char *grub_zfs_nvlist_lookup_string (char *nvlist, char *name); +char *grub_zfs_nvlist_lookup_nvlist (char *nvlist, char *name); +int grub_zfs_nvlist_lookup_uint64 (char *nvlist, char *name, + grub_uint64_t *out); +char *grub_zfs_nvlist_lookup_nvlist_array (char *nvlist, char *name, + grub_size_t index); +int grub_zfs_nvlist_lookup_nvlist_array_get_nelm (char *nvlist, char *name); + +#endif /* ! GRUB_ZFS_HEADER */ --- grub2-1.98+20100804.orig/debian/grub-extras/zfs/include/grub/zfs/zfs_znode.h +++ grub2-1.98+20100804/debian/grub-extras/zfs/include/grub/zfs/zfs_znode.h @@ -0,0 +1,70 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. + * + * This program 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +/* + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#ifndef _SYS_FS_ZFS_ZNODE_H +#define _SYS_FS_ZFS_ZNODE_H + +#include + +#define MASTER_NODE_OBJ 1 +#define ZFS_ROOT_OBJ "ROOT" +#define ZPL_VERSION_STR "VERSION" + +#define ZPL_VERSION 3ULL + +#define ZFS_DIRENT_OBJ(de) BF64_GET(de, 0, 48) + +/* + * This is the persistent portion of the znode. It is stored + * in the "bonus buffer" of the file. Short symbolic links + * are also stored in the bonus buffer. + */ +typedef struct znode_phys { + grub_uint64_t zp_atime[2]; /* 0 - last file access time */ + grub_uint64_t zp_mtime[2]; /* 16 - last file modification time */ + grub_uint64_t zp_ctime[2]; /* 32 - last file change time */ + grub_uint64_t zp_crtime[2]; /* 48 - creation time */ + grub_uint64_t zp_gen; /* 64 - generation (txg of creation) */ + grub_uint64_t zp_mode; /* 72 - file mode bits */ + grub_uint64_t zp_size; /* 80 - size of file */ + grub_uint64_t zp_parent; /* 88 - directory parent (`..') */ + grub_uint64_t zp_links; /* 96 - number of links to file */ + grub_uint64_t zp_xattr; /* 104 - DMU object for xattrs */ + grub_uint64_t zp_rdev; /* 112 - dev_t for VBLK & VCHR files */ + grub_uint64_t zp_flags; /* 120 - persistent flags */ + grub_uint64_t zp_uid; /* 128 - file owner */ + grub_uint64_t zp_gid; /* 136 - owning group */ + grub_uint64_t zp_pad[4]; /* 144 - future */ + zfs_znode_acl_t zp_acl; /* 176 - 263 ACL */ + /* + * Data may pad out any remaining bytes in the znode buffer, eg: + * + * |<---------------------- dnode_phys (512) ------------------------>| + * |<-- dnode (192) --->|<----------- "bonus" buffer (320) ---------->| + * |<---- znode (264) ---->|<---- data (56) ---->| + * + * At present, we only use this space to store symbolic links. + */ +} znode_phys_t; + +#endif /* _SYS_FS_ZFS_ZNODE_H */ --- grub2-1.98+20100804.orig/debian/grub-extras/zfs/include/grub/zfs/dnode.h +++ grub2-1.98+20100804/debian/grub-extras/zfs/include/grub/zfs/dnode.h @@ -0,0 +1,78 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. + * + * This program 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +/* + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#ifndef _SYS_DNODE_H +#define _SYS_DNODE_H + +#include + +/* + * Fixed constants. + */ +#define DNODE_SHIFT 9 /* 512 bytes */ +#define DN_MIN_INDBLKSHIFT 10 /* 1k */ +#define DN_MAX_INDBLKSHIFT 14 /* 16k */ +#define DNODE_BLOCK_SHIFT 14 /* 16k */ +#define DNODE_CORE_SIZE 64 /* 64 bytes for dnode sans blkptrs */ +#define DN_MAX_OBJECT_SHIFT 48 /* 256 trillion (zfs_fid_t limit) */ +#define DN_MAX_OFFSET_SHIFT 64 /* 2^64 bytes in a dnode */ + +/* + * Derived constants. + */ +#define DNODE_SIZE (1 << DNODE_SHIFT) +#define DN_MAX_NBLKPTR ((DNODE_SIZE - DNODE_CORE_SIZE) >> SPA_BLKPTRSHIFT) +#define DN_MAX_BONUSLEN (DNODE_SIZE - DNODE_CORE_SIZE - (1 << SPA_BLKPTRSHIFT)) +#define DN_MAX_OBJECT (1ULL << DN_MAX_OBJECT_SHIFT) + +#define DNODES_PER_BLOCK_SHIFT (DNODE_BLOCK_SHIFT - DNODE_SHIFT) +#define DNODES_PER_BLOCK (1ULL << DNODES_PER_BLOCK_SHIFT) +#define DNODES_PER_LEVEL_SHIFT (DN_MAX_INDBLKSHIFT - SPA_BLKPTRSHIFT) + +#define DN_BONUS(dnp) ((void*)((dnp)->dn_bonus + \ + (((dnp)->dn_nblkptr - 1) * sizeof (blkptr_t)))) + +typedef struct dnode_phys { + grub_uint8_t dn_type; /* dmu_object_type_t */ + grub_uint8_t dn_indblkshift; /* ln2(indirect block size) */ + grub_uint8_t dn_nlevels; /* 1=dn_blkptr->data blocks */ + grub_uint8_t dn_nblkptr; /* length of dn_blkptr */ + grub_uint8_t dn_bonustype; /* type of data in bonus buffer */ + grub_uint8_t dn_checksum; /* ZIO_CHECKSUM type */ + grub_uint8_t dn_compress; /* ZIO_COMPRESS type */ + grub_uint8_t dn_flags; /* DNODE_FLAG_* */ + grub_uint16_t dn_datablkszsec; /* data block size in 512b sectors */ + grub_uint16_t dn_bonuslen; /* length of dn_bonus */ + grub_uint8_t dn_pad2[4]; + + /* accounting is protected by dn_dirty_mtx */ + grub_uint64_t dn_maxblkid; /* largest allocated block ID */ + grub_uint64_t dn_used; /* bytes (or sectors) of disk space */ + + grub_uint64_t dn_pad3[4]; + + blkptr_t dn_blkptr[1]; + grub_uint8_t dn_bonus[DN_MAX_BONUSLEN]; +} dnode_phys_t; + +#endif /* _SYS_DNODE_H */ --- grub2-1.98+20100804.orig/debian/grub-extras/zfs/include/grub/zfs/dmu_objset.h +++ grub2-1.98+20100804/debian/grub-extras/zfs/include/grub/zfs/dmu_objset.h @@ -0,0 +1,37 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. + * + * This program 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +/* + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#ifndef _SYS_DMU_OBJSET_H +#define _SYS_DMU_OBJSET_H + +#include + +typedef struct objset_phys { + dnode_phys_t os_meta_dnode; + zil_header_t os_zil_header; + grub_uint64_t os_type; + char os_pad[1024 - sizeof (dnode_phys_t) - sizeof (zil_header_t) - + sizeof (grub_uint64_t)]; +} objset_phys_t; + +#endif /* _SYS_DMU_OBJSET_H */ --- grub2-1.98+20100804.orig/debian/grub-extras/zfs/include/grub/zfs/zio_checksum.h +++ grub2-1.98+20100804/debian/grub-extras/zfs/include/grub/zfs/zio_checksum.h @@ -0,0 +1,50 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. + * + * This program 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +/* + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#ifndef _SYS_ZIO_CHECKSUM_H +#define _SYS_ZIO_CHECKSUM_H + +/* + * Signature for checksum functions. + */ +typedef void zio_checksum_t(const void *data, grub_uint64_t size, + grub_zfs_endian_t endian, zio_cksum_t *zcp); + +/* + * Information about each checksum function. + */ +typedef struct zio_checksum_info { + zio_checksum_t *ci_func; /* checksum function for each byteorder */ + int ci_correctable; /* number of correctable bits */ + int ci_zbt; /* uses zio block tail? */ + char *ci_name; /* descriptive name */ +} zio_checksum_info_t; + +extern void zio_checksum_SHA256 (const void *, grub_uint64_t, + grub_zfs_endian_t endian, zio_cksum_t *); +extern void fletcher_2 (const void *, grub_uint64_t, grub_zfs_endian_t endian, + zio_cksum_t *); +extern void fletcher_4 (const void *, grub_uint64_t, grub_zfs_endian_t endian, + zio_cksum_t *); + +#endif /* _SYS_ZIO_CHECKSUM_H */ --- grub2-1.98+20100804.orig/debian/grub-extras/ntldr-img/COPYING +++ grub2-1.98+20100804/debian/grub-extras/ntldr-img/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program 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. + + 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, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. --- grub2-1.98+20100804.orig/debian/grub-extras/ntldr-img/utils.h +++ grub2-1.98+20100804/debian/grub-extras/ntldr-img/utils.h @@ -0,0 +1,59 @@ +/* + * GRUB Utilities -- Utilities for GRUB Legacy, GRUB2 and GRUB for DOS + * Copyright (C) 2007 Bean (bean123@126.com) + * + * This program 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef __UTILS_H +#define __UTILS_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#define MAX_DISKS 10 +#define MAX_PARTS 30 + +#define FST_OTHER 0 +#define FST_MBR 1 +#define FST_FAT16 2 +#define FST_FAT32 3 +#define FST_NTFS 4 +#define FST_EXT2 5 + +typedef struct { + unsigned char cur; // Current partition number + unsigned char nxt; // Next partition number + unsigned char dfs; // File system flag + unsigned char pad; // Padding + unsigned long bse; // Partition start address + unsigned long len; // Partition length + unsigned long ebs; // Base address for the extended partition +} xde_t; + +#define valueat(buf,ofs,type) *((type*)(((char*)&buf)+ofs)) + +extern int mbr_nhd, mbr_spt; +int go_sect(int,unsigned long); +int xd_enum(int,xde_t*); +int get_fstype(unsigned char*); +char* fst2str(int); +char* dfs2str(int); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif +#endif /* __UTILS_H */ --- grub2-1.98+20100804.orig/debian/grub-extras/ntldr-img/grldrstart.S +++ grub2-1.98+20100804/debian/grub-extras/ntldr-img/grldrstart.S @@ -0,0 +1,5753 @@ +/* + * grldrstart.S -- Startup code for GRLDR + * Copyright (C) 2004-2007 Tinybit(tinybit@tom.com) + * Copyright (C) 2007 Bean(bean@windrv.net) + * + * This program 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +/* + * This program is used to generate the GRLDR file. + * + * Use the following shell command to generate the GRLDR file: + * + * cat grldrstart pre_stage2 > grldr + * + */ + +#ifndef STAGE1_5 +//#include +#else +#error cannot compile with STAGE1_5 +#endif + +#ifdef GRLDR_MBR + .file "mbrstart.S" +#elif defined(GRLDR_INSTALL) + .file "bootlacestart.S" +#else + .file "grldrstart.S" +#endif + +#ifdef GRLDR_INSTALL + //.data +#else + .text + + .globl start, _start + +start: +_start: +#endif + +_start1: + + /* Tell GAS to generate 16-bit real mode instructions */ + + .code16 + + . = _start1 + 0x00 + + /* 1 byte at offset 0x00 will be overwritten for the EBIOS indicator + * later. This is safe because the jmp instruction only get executed + * once. The write happens after the jmp instruction have got + * executed. + * + * The value written would be 0x42 for EBIOS present(LBA) and 0x02 + * for non-present(CHS). + * + */ + + /* No cli, we use stack! BIOS or caller usually sets SS:SP=0000:0400 */ + + jmp 1f /* FAT32/NTFS routine comes to offset 0 */ + + . = _start1 + 0x02 + + .byte 0x80 /* bit0=1: disable GRLDR search on floppy */ + /* bit1=1: disable the boot of the previous MBR with + * invalid partition table */ + /* bit2=1: disable the feature of unconditional + * entrance to the command-line */ + /* bit7=1: disable the boot of the previous MBR prior + to the search for GRLDR */ + + /* GRLDR.MBR uses offset 0x03 to indicate a timer counter. */ + + /* 0xff indicates waiting forever, + * other value specifies the time in seconds to wait */ + + . = _start1 + 0x03 + + .byte 5 + + /* a key press to wait. if AX returned from int16 equals this word, + * the desired action will occur. */ + + . = _start1 + 0x04 + + .word 0x3920 /* the space bar */ + + . = _start1 + 0x06 + + .byte 0xff /* preferred boot drive number, 0xff for no-drive(i.e., drive not defined) */ + .byte 0xff /* preferred partition number, 0xff for whole drive(a floppy that has no partition table) */ + + . = _start1 + 8 + +#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) + + /* filled in by mkisofs using the -boot-info-table option */ + +#;bi_pvd: .long 0xDEADBEEF /* LBA of primary volume descript */ +#;bi_file: .long 0xDEADBEEF /* LBA of boot file */ +#;bi_length: .long 0xDEADBEEF /* Length of boot file */ +#;bi_csum: .long 0xDEADBEEF /* Checksum of boot file */ +#;bi_reserved: .space (10*4) /* Reserved */ + + . = _start1 + 0x40 + +#else + + /* filled in with BPB in case the drive(typically USB) is treated as floppy by buggy BIOSes */ + + . = _start1 + 0x60 + +#endif /* ! defined(GRLDR_MBR) && (! defined(GRLDR_INSTALL)) */ + +1: + call 1f + +#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) + + . = _start1 + 0x43 + +#else + + . = _start1 + 0x63 + +#endif /* ! defined(GRLDR_MBR) && (! defined(GRLDR_INSTALL)) */ + +1: + popw %bx /* Instruction Pointer of 1b */ + +#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) + + subw $(1b - _start1), %bx /* CS:BX=_start1 */ + +#else + + subw $(1b - _start1), %bx /* CS:BX=_start1 */ + +#endif /* ! defined(GRLDR_MBR) && (! defined(GRLDR_INSTALL)) */ + + shrw $4, %bx + movw %cs, %ax + addw %ax, %bx /* BX:0000=_start1 */ + +#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) + + /* we are booted from BOOT.INI, or whole GRLDR image already loaded */ + + pushw %bx /* BX:0000=_start1 */ + addw $((grldr_signature - _start1 + 4 + STAGE2_SIZE - 4) >> 4), %bx + movw %bx, %ds + + cmpl $0xCE1A02B0, ((STAGE2_SIZE - 4) & 0x0F) + popw %ds /* DS:0000=_start1 */ + je grldr_real_start /* whole image loaded. boot it! */ + + /* bad! we might be loaded by a buggy BIOS with a no-emulation-mode + * bootable CD. The buggy BIOS might load only 1 CD-ROM sector(2048 + * bytes) of our grldr image. So we need this check. + */ + + /* Our cdrom_check code begins at 0x1BE and overlaps the partition + * table. Just in case someone replace it with a partition table and + * use this sector as an MBR, we do this additional test for safety. + */ + + /* We should avoid using opcode 0x00 and 0x80 at cdrom_check. */ + + /* Note that if cdrom_check code is present, then we are booting from + * no-emulation mode cdrom. + */ + + testb $0x7F, cdrom_check - _start1 /* is it 0x00 or 0x80? */ + jz 1f /* yes, cdrom_check not found */ + call cdrom_check /* no, cdrom_check is present */ +1: + /* DS:0000=_start1 */ + + /* Let CS:0000=_start1 */ + pushw %ds + + #;pushw $(1f - _start1) + .byte 0x6A, (1f - _start1) + + lret + . = . - (. - _start1) / 0x80 +1: +#else + /* BX:0000=_start1 */ + + movw %bx, %ds + + /* Let CS:0000=_start1 */ + pushw %bx + + #;pushw $(1f - _start1) + .byte 0x6A, (1f - _start1) + + lret + . = . - (. - _start1) / 0x80 +1: + testb $0x04, 0x02 + jz 1f + + /* set the DUCE indicator */ + xorw %ax, %ax + movw %ax, %es + movw $0x5FC, %di + movl $0x45435544, %eax + stosl +1: +#endif + + /* CS:0000=DS:0000=_start1 */ + + /* we are loaded by BIOS or another boot loader */ + +#define GRLDR_CS 0x2000 /* grldr code segment */ + /* hope this segment never be used by all */ + /* subsequent partition boot records */ +#if 0 + /* for single sector boot record */ +#define MONITOR 0x7e10 +#else + /* for 4-sector NTFS boot record */ +#define MONITOR 0x8410 +#endif + +// cli + pushw $GRLDR_CS + popw %ss + movw $0x9000, %sp /* SS:SP=0x9d000, keep away from EBDA data */ +// sti + + /* Extended BIOS Data Area should not take up space below 0x9d000 */ + + /* + * 0x07c00-0x07dff This sector. Another boot loader load us here + * 0x0d000-0x14dff partition/floppy boot track(bootsector,etc) + * 0x94000-0x9bdff master boot track(MBR,etc,usually 63 sectors) + * 0x9be00-0x9c3ff 3 sectors for temp extended partition entries + * 0x9c400-0x9cfff 6 sectors for stack + */ + +#define FS_BOOT 0xd00 /* segment of partition boot track */ + + xorw %cx, %cx + pushw %cx /* CX=0 */ + movw $0x0080, %dx + pushw %dx + movb $8, %ah /* read drive parameters changes DX,ES,DI */ + stc + int $0x13 + popw %dx + popw %ax /* AX=0 */ + + pushw %ss /* SS=0x9400 */ + popw %es /* ES=0x9400 */ + + jc Error1 + + andb $63, %cl /* AL=sectors per track, CF cleared */ + + stc + jz Error1 + + xchgw %ax, %cx /* this moves CL to AL, and CX=0 */ + movb $0x02, %ah + movw %ax, %bp /* save AX to BP: read 1 track */ + xorw %bx, %bx /* ES already has a known value of 0x9400 */ + incw %cx + pushw %dx + stc + int $0x13 /* read master boot track to ES:0000 */ + popw %dx + jc Error1 + negb %ah /* set CF=1 if non-zero */ +Error1: + pushw %cs /* DS=0 */ + popw %ds /* DS=CS */ + pushfw /* CF=1 on error */ + + /* CS=DS=old segment. ES=SS=new segment. */ + + /* Move the code and error messages from DS:0000 to 9400:0000, do not + * touch the partition table + */ + xorw %si, %si + xorw %di, %di + movw $223, %cx /* 223 words = 446 bytes = 0x1be bytes */ + cld + repz movsw /* SI=DI=0x1be, CX=0 */ + + movw $(grldr_signature - _start1), %bx + + /* if the boot loader has loaded more than one sector, we use them */ + movl $0xAA555247, %eax /* "GR" 0x55 0xAA */ +//#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) + cmpl %eax, (%bx) /* DS=old segment! */ + jne 1f + + /* The MOVE_HELPER code is in the old segment! */ + + call move_helper /* SI=0x1be, CX=0 */ +1: +//#endif + + /* Jump to new segment! */ +#if 1 + ljmp $GRLDR_CS, $(1f - _start1) +#else + pushw %ss /* 0x9400 */ + + //pushw $(1f - _start1) + .byte 0x6A, (1f - _start1) + + lret + . = . - (. - _start1) / 0x80 +#endif +1: + + /* We are at the new segment. CS=ES=SS=new segment. */ + + /* But DS is still old segment. */ + + pushw %ss + popw %ds + + /* CS=DS=ES=SS=new segment. */ + + //movw $0x01be, %si + + /* check the existence of helper */ + cmpl %eax, (%bx) + +#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) + + jne Error_or_prev_MBR /* Missing helper */ + +#else + + je 1f + + /* try to load helper from floppy */ + + pushal + + movw 0x18, %ax /* BPB sectors per track at offset 0x18 */ + + cmpw $0x3F, %ax + ja 3f + + cmpb $((pre_stage2_start - _start1) >> 9), %al + jb 3f + + decw %ax /* skip the first sector already loaded */ + + movw $3, %di /* retry 3 times on read failure */ +2: + movb $2, %ah /* BIOS disk read */ + cwd /* DX=0 for floppy head 0 */ + movw $0x200, %bx /* ES:BX immediately follow this sector */ + movw $2, %cx /* skip the first sector already loaded */ + + pushaw + int $0x13 + popaw + + jnc 3f + + pushaw + xorw %ax, %ax + int $0x13 + popaw + + decw %di + jnz 2b +3: + popal + cmpl %eax, (%bx) /* helper loaded? */ + + jne Error_or_prev_MBR /* Missing helper */ + +1: +#endif + + popfw /* CF=1 on error */ + jc try_floppy /* harddisk (hd0) failed, try floppy (fd0) */ +1: + pushw %cs + popw %ds + lodsw + movb %ah, %dh /* head number */ + lodsw + movw %ax, %cx /* sector and cylinder number */ + andb $63, %al + //stc + jz helper_call_c + + /* use BP to calculate the sectors to read within 1 track */ + subw %bp, %ax + decw %ax /* decb %al */ + negb %al /* AL=sectors upto the end of the track */ +7: + movw $3, %di /* retry 3 times on read failure */ +2: + movb $2, %ah + pushw $FS_BOOT + popw %es /* ES=FS_BOOT */ + xorw %bx, %bx + + pushaw + int $0x13 /* read partition boot track to FS_BOOT:0000 */ + popaw + + jnc helper_call + + pushaw + xorw %ax, %ax + int $0x13 + popaw + + decw %di + jnz 2b + +helper_call_c: + + stc + +helper_call: + /* find GRLDR in this partition + * before the call: + * CF=1 : indicates an invalid or corrupt entry + * CF=0 : indicates a valid entry + * + * on return: + * CF=1 : means "below", try next entry + * CF=0,ZF=1 : means "equal", helper did nothing, so we need + * a further try to boot via NT bootsector + * CF=0,ZF=0 : means "above", helper succeeded, boot it now + */ + call helper_start /* change to jmp 6f if helper not present */ + ja filesystem_boot /* helper succeeded, directly boot it */ +6: + +add_sub_si: + + /* extended partition check routine will adjust this to + * + * 0x83, 0xEE, 0x04 for "subw $4, %si" + * + * or + * + * 0x83, 0xC6, 0xFC for "addw $-4, %si" + * + * so that SI keeps the value 0x1fe. + */ + addw $12, %si /* 0x83, 0xC6, 0x0C */ + + . = add_sub_si + 3 + + /* extended partition check routine will adjust the word 0x1fe at + * (add_sub_si + 5). The value 0x1ff or greater indicates there are + * entries need to be treated. The value 0x1fe indicates no entries + * left, and the floppy should be checked. + */ + + cmpw $0x01fe, %si /* 0x81, 0xFE, 0xfe, 0x01 */ + /* All entries checked done? */ + jb 1b /* No, check the next entry */ + ja 5f /* floppy already checked. Fail and hang */ + +try_floppy: + + movw $0x31b2, %si /* a value big enough */ + movb $0x08, %ah /* read drive parameters changes DX,ES,DI */ + cwd /* DL=0 for floppy */ + pushw %dx /* DX=0 */ + int $0x13 + popw %ax /* AX=0 */ + jc 5f /* floppy failure, issue "Error" and hang */ + cwd /* DX=0 */ + xchgw %ax, %cx /* this moves CL to AL, and CX=0 */ + andb $63, %al /* AL=sectors per track */ + jz 5f /* invalid value. floppy failure. hangs */ + //movw $1, %cx + incw %cx + jmp 7b + +5: +Error_or_prev_MBR: + + /* GRLDR not found, print "Error" or launch previous MBR */ + movw $(message_string - _start1), %si +Error2: + call print_message /* CS:SI points to message string */ +3: jmp 3b + +#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) +filesystem_boot: + /* The partition boot record successfully modified, just boot it */ + + /* + * The boot might fail, but we want to take back the control. + * So we save the registers now. + */ + pushw %ds + pushw %es + pushal + + /* DS=CS=GRLDR_CS, ES=FS_BOOT */ + + /* save GRLDR_CS */ + + movw %es, %bx # save old ES to BX + + cli + lgdt gdt - _start1 + movl %cr0, %eax + orb $1, %al + movl %eax, %cr0 + + movw $8, %si + movw %si, %es + + xorl %esi, %esi + xorl %edi, %edi + movl $(0x9000 / 4), %ecx + + cld + repz movsl + + movw $16, %si + movw %si, %es + + andb $0xfe, %al + movl %eax, %cr0 + + movw %bx, %es # restore ES from BX + + /* move FS_BOOT:0000 to 0:7c00 */ +#if 0 + /* for single sector boot record */ + movw $0x0200, %cx /* move 2 sectors, the old FS_BOOT:0000 will + * keep untouched. */ +#else + /* for 4-sector NTFS boot record */ + movw $0x0400, %cx /* move 4 sectors, the old FS_BOOT:0000 will + * keep untouched. */ +#endif + xorw %si, %si + pushw %si /* SI=0, for the segment of 0000:7c00 */ + movw $0x7c00, %di + pushw %di /* DI=0x7c00, for the offset of 0000:7c00 */ + pushw %es /* ES=FS_BOOT */ + popw %ds /* DS=FS_BOOT */ + pushw %si /* SI=0 */ + popw %es /* ES=0 */ + cld + repz movsw + + movw $MONITOR, %di + movw $(restore_GRLDR_CS - _start1), %si + movw $((gdt_end - restore_GRLDR_CS) / 4), %cx + cld + repz cs movsl /* CS segment override prefix(=0x2E) */ + + pushw %es /* ES=0 */ + popw %ds /* DS=0 */ + sti + lret //ljmp $0, $0x7c00 +#endif + +try_next_partition: + + cli + movw $GRLDR_CS, %ax + movw %ax, %ss + movw $(0x9000-36), %sp + sti + + /* restore the registers and continue */ + popal + popw %es + popw %ds + jmp add_sub_si + + /* prints string CS:SI (modifies AX BX SI) */ +3: + //xorw %bx, %bx /* video page 0 */ + movb $0x0e, %ah /* print char in AL */ + int $0x10 /* via TTY mode */ + +print_message: + + lodsb %cs:(%si), %al /* get token */ + cmpb $0, %al /* end of string? */ + jne 3b + ret + +message_string: + +#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) + .ascii "\r\nMissing helper.\0" +#else + .ascii "\r\nMissing MBR-helper.\0" +#endif + +#;buggy_bios_string: +#; +#; .ascii "\r\nBuggy BIOS!\0" + + /* Make sure the above code does not occupy the partition table */ + +#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) + /* offset value here must be less than or equal to 0x1be */ + . = . - ((. - _start1) / 0x1bf) +#else + /* offset value here must be less than or equal to 0x1b8 */ + . = . - ((. - _start1) / 0x1b9) +#endif + + /* The following code may occupy the same area as the partition table */ + +#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) + + /* we are not booted from MBR. So we can reuse the area of partition + * table for our code. + */ + + . = _start1 + 0x1be + +cdrom_check: + + /* DS points to the sector start, but CS does not. */ + + /* BX segment points to near the end of GRLDR image. */ + + popw %ax /* old return IP */ + + /* set BX as the new safe stack. */ + movw %bx, %ss + movw $0xFFF0, %sp + + pushw %ax /* old return IP */ + + /* check if DL is no-emulation-mode bootable CDROM. */ + pushw %ds + + cmpb $0x80, %dl + jb 1f /* not a valid no-emulation-mode cdrom drive number */ + + cmpw $0xAA55, 0x7FE /* 2048 bytes loaded? */ + jne 1f + +// cmpw $0xAA55, 0x5FE /* 2048 bytes loaded? */ +// jne 1f + + movw $0x0180, %si + movw $0x4B01, %ax + pushw $0x0040 + //.byte 0x6A, 0x40 + popw %ds + pushw %ds + popw %es + movb $0x13, (%si) + int $0x13 + + /* ignore CF */ +#; jc 2f /* not in emulation mode */ + xorl %eax, %eax + xorw %bp, %bp + testb $0x0F, 1(%si) /* boot media type is No Emulation? */ + jnz 2f /* no, it simulates floppy or hard disk. */ + cmpb %dl, 2(%si) /* drive number */ + jnz 2f /* invalid drive */ + + /* OK! it is no-emulation-mode cdrom drive. */ + movl 4(%si), %eax /* LBA of GRLDR */ + incw %bp + +2: + jmp cdrom_helper +1: + popw %ds + ret + + +#endif /* ! defined(GRLDR_MBR) && (! defined(GRLDR_INSTALL)) */ + + . = _start1 + 0x1fe /* boot signature */ + +/* partition entries in the extended partitions will overwrite code here upto + * 0x3fd. + * + * the extended partition entries will occupy a temp area at 0x9be00-0x9c3ff + */ + +#if (defined(GRLDR_MBR)) || (defined(GRLDR_INSTALL)) + .word 0xaa55 +#endif + + . = _start1 + 0x200 + +/* if it is in the Master Boot Track, the second sector can be used to backup + * the previously working MBR, typically, the MS MBR. if the backup copy of + * the MBR cannot boot(because, e.g., it depends on another sector of code + * that does not exist for now), then please do not set the ending signature + * to 0xAA55, that is to say, if the signature is already 0xAA55, you should + * change it to another value(for example, 0x0000). + */ + +#if (! defined(GRLDR_INSTALL)) +#if 0 +print_cl: + pushaw + + movw %cx, %ax + movb $16, %cl + divb %cl # quo=AL, rem=AH + orw $0x3030, %ax + + cmpb $0x39, %ah + jbe 1f + addb $7, %ah +1: + cmpb $0x39, %al + jbe 1f + addb $7, %al +1: + movb %ah, %cl + + xorw %bx, %bx + + movb $0x0e, %ah + int $0x10 + + movb $0x0e, %ah + movb %cl, %al + int $0x10 + + movw $0x0e20, %ax + int $0x10 + + popaw + ret +#else +#if 0 + .word 5, 0x47, 0x52, 0x4c, 0x44, 0x52, 4, 0x24 + .word 0x49, 0x33, 0x30, 0xe000, 0, 0x3000, 0, 0 +#else + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 +#endif + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 +#endif + . = _start1 + 0x256 /* cmdcons comes here */ + +#if 0 + jmp 1f +#else + .byte 0x90, 0x90 +#endif + + . = _start1 + 0x258 + + .byte 0x90, 0x90 + + . = _start1 + 0x25a + + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + + . = _start1 + 0x26a +1: + //movw %cs, %ax + //movw %ax, %ds + //jmp single_boot_sector + + /* a value < 0x80 here means we are not booted from no-emulation-mode + * bootable CD. + */ + movb $0x7F, %dl + jmp _start1 + +#endif /* (! defined(GRLDR_INSTALL)) */ + +#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) +cdrom_helper: + + /* IP and old_DS is on the stack. */ + + /* DS=ES=40h */ + + /* Stack is high and safe. */ + + /* EAX is LBA. if EAX==0, LBA is unknown. */ + + /* check if the first sector is the same as the current one */ + + /* load the first sector onto the sector immediately follows */ +1: + popw %bx /* BX = old_DS = load_segment */ + pushw %bx + movw %bx, %es + addw $0x0080, %bx /* buffer segment */ + call load_cd_sector + + /* compare the two sectors */ + movw $0x200, %cx + movw %bx, %ds + xorw %si, %si + xorw %di, %di + cld + repz cmpsl + je load_the_rest /* 1st sector is ok, continue */ +not_grldr: + testw %bp, %bp + jz 2f + xorw %bp, %bp + xorl %eax, %eax +2: + incl %eax + jnz 1b /* try next */ + +cd_no_grldr: + + popw %ds /* DS=load_segment */ + + # Here we use error message and routine in FAT32 boot sector + # which is also inside the 2048-byte CD sector. + + movw $(msg_BootError_32 - _start1), %si + jmp boot_error_32 + +load_cd_sector: + /* input: EAX LBA + * BX buffer segment(buffer offset=0) + * DS 0x40 (or another safe one) + */ + + movw $0x1A0, %si + + /* disk address packet */ + movl $0x00010010, (%si) /* load 1 sector each time. */ + movw $0, 4(%si) /* buffer offset=0 */ + movw %bx, 6(%si) /* buffer segment */ + movl %eax, 8(%si) /* LBA lo 32 bits */ + movl $0, 12(%si) /* LBA hi 32 bits */ + + pushal + movb $0x42, %ah + int $0x13 + popal + ret + +load_the_rest: + + /* load all sectors (except the first one) */ + + /* EAX = first sector(LBA) of GRLDR */ + + popw %bx /* BX = old_DS = load_segment */ + pushw %bx + movw %bx, %es + /* 6144 = 0x1800 = 3 sectors > 4KB, this is for the additional 4KB-preset-menu at the end of grldr */ + movw $((grldr_signature - _start1 + 4 + STAGE2_SIZE - 1 + 6144) / 2048), %cx /* sectors to load */ +1: + incl %eax /* next sector */ + addw $0x0080, %bx /* buffer segment */ + + call load_cd_sector + + loop 1b + + /* loading is completed. BX=segment of the last sector. */ + + subw $0x0181, %bx /* decw %bx */ + movw %bx, %ds + + /* check the ending signature */ + cmpl $0xCE1A02B0, ((grldr_signature - _start1 + 4 + STAGE2_SIZE - 1) % 2048) + 13 + jne not_grldr +#; je grldr_real_start /* yes. boot it! */ + +#; /* it is not our grldr image, return and use MBR-helper. */ +#; +#;4: +#; //jmp grldr_real_start +#; popw %ds +#; ret + +grldr_real_start: + + #; FAT_12_16 no longer be used. So comment out. + #;je 1f /* jc 1f */ + #;//ZF=0 /* CF cleared, so we are coming from FAT_12_16 */ + #;popw %dx /* discard the cluster number */ + #;popw %dx /* this is our boot_drive/boot_partition */ + #;1: + + #; The partition number for no-emulation-mode bootable CDROM will be + #; set to 0xFF later(in common.c). So comment out. + #;cli + #;movw %cs, %ax + #;cmpw $0x1000, %ax + #;jne 1f + #; + #;/* CS=0x1000, may be booted from ext2 or no-emulation-mode CDROM */ + #; + #;cmpw $0x1000, %di + #;jne 2f + #;cmpw $0x7c00, %bp + #;jne 2f + #;movw %es, %ax + #;cmpw $0x1000, %ax + #;jbe 2f + #;cmpw $0x7c00, %si + #;jbe 2f + #;movl %edx, %eax + #;shrl $16, %eax + #;jnz 2f + #;jecxz 1f // booted from ext2 partition + #;2: + #;// booted from no-emulation-mode bootable CDROM + #;movb $0xff, %dh // partition 0xff means whole drive(for CDROM) + #; #; if needed, 0xfe can be used as an indicator + #; #; here for the bootable CDROM and changed to + #; #; 0xff later. + #;1: + #; + #;//if not booted from CDROM, don't touch the boot partition number(dh) + + cli + xorw %ax, %ax + movw %ax, %ss + movw $0x0400, %sp /* tmp use real-mode IDT as stack */ + movw %cs, %bp /* save CS to BP */ + call 1f +1: + popw %bx /* BX=Instruction Pointer of 1b */ + subw $(1b - _start1), %bx + movw %bx, %cx + shrw $4, %bx + addw %bp, %bx + pushw %bx /* new CS */ + andw $0x000f, %cx + addw $(1f - _start1), %cx + pushw %cx /* new IP */ + lret +1: + pushw %cs + popw %ds + + /* CS=DS=BX, CS:0000 = _start1 */ + + addw $((pre_stage2_start - _start1) >> 4), %bx + + /* BX:0000 = pre_stage2_start */ + + cmpw $0x820, %bx + jb 2f + + movw $((0x8200 - (pre_stage2_start - _start1) - 0x400) >> 4), %cx + + /* Now CS(=DS) >= CX+0x40 */ + + movw %cx, %es + xorw %di, %di + xorw %si, %si + + ///////////////////////////////////////////////////////////// + // + // CS + // DS 0x820 BX + // _start1---------------pre_stage2_start + // CX+0x40---------------0x820 + // CX + // ES + // + ///////////////////////////////////////////////////////////// + + movw $0x200, %cx /* move 2 sectors */ + cld + repz movsw + + pushw %es /* ES:0000 = _start */ + pushw $(1f - _start) + lret /* CS=ES, CS:0000 = _start1 */ +1: + + /* move BX:0000 to 0820:0000 upward since BX >= 0x820 */ + + cld + + movw %bx, %ds + movw $0x820, %bx + movw %bx, %es + + xorw %si, %si + xorw %di, %di + + movw $6, %bx /* 64K pages: 0x20000 - 0x7ffff */ +1: + movw $0x8000, %cx + repz movsw + movw %ds, %ax + addw $0x1000, %ax + movw %ax, %ds + movw %es, %ax + addw $0x1000, %ax + movw %ax, %es + decw %bx + jnz 1b + + jmp 3f +2: + + /* move BX:0000 to 0820:0000 downward since BX < 0x820 */ + + std + + addw $0x7000, %bx + movw %bx, %ds + movw $0x7820, %bx + movw %bx, %es + + movw $0xfffe, %si + movw %si, %di + + movw $8, %bx /* 64K pages: 0x08200 - 0x881ff */ +1: + movw $0x8000, %cx + repz movsw + movw %ds, %ax + subw $0x1000, %ax + movw %ax, %ds + movw %es, %ax + subw $0x1000, %ax + movw %ax, %es + decw %bx + jnz 1b + + cld + +3: + + /* put the config file name */ + xorw %ax, %ax + movw %ax, %es + movw %ax, %ds + + xorl %ebp, %ebp + + movb %dh, 0x820A /* this is the boot partition number */ + + #; clear saved_entryno so that force_cdrom_as_boot_device be cleared + #; later in common.c + + movl %ebp, 0x820C /* EBP=0, clear saved_entryno */ + + movw $0x0010, %cx /* set max length of grub version string */ + movw $0x8212, %di /* version string */ + cld + /* AL is already 0. Locate the end of version string */ + repnz scasb /* find the location of the default config file name */ + + jcxz 1f /* failed, will not use the default config file name */ + + movw $0x4e, %cx /* max length of config file name */ + + movw %cs, %si /* CS:0000 = _start1 */ + shlw $4, %si /* 0000:SI = _start1 */ + + addw $(default_config_file - _start1), %si + + //movw $(default_config_file + 0x8200 - pre_stage2_start), %si + cld + repz movsb /* move file name to the config-file field of stage2 */ +1: + + movw $0x0003, %ax /* set display mode: 80*25 color text */ + int $0x10 + + xorw %bx, %bx + movw $(launch_pre_stage2 - _start1), %si + call print_message /* CS:SI points to message string */ + + xorw %ax, %ax + movw %ax, %ss + movw $0x2000, %sp + + sti + + ljmp $0, $0x8200 + +launch_pre_stage2: + .ascii "\r\n\r\nBooting GRLDR...\r\n" + + .byte 0 /* mark the end of ascii zero string */ + +default_config_file: +//#ifndef PRESET_MENU_STRING + .ascii "/menu.lst" +//#else +// .ascii "[default menu is disabled]" +//#endif + + .byte 0 /* mark the end of ascii zero string */ +#endif /* ! defined(GRLDR_MBR) && (! defined(GRLDR_INSTALL)) */ + + . = _start1 + 0x400 + +#define ALTERNATIVE_KERNEL + + +/* + * The following is based on FreeDOS, modified heavily by Tinybit in Feb, 2004 + * + * Merges LBA and CHS boot sectors to ONE FAT32 boot sector! + * + * Memory layout for GRLDR FAT32 single stage boot process: + * + * ... + * |-------| 1FE0:7E00 + * |BOOTSEC| (GRUB does not use this relocation area) + * |RELOC. | (overwritten by kernel loaded) + * |-------| 1FE0:7C00 + * ... + * |-------| + * |KERNEL | (overwrites bootsec reloc.) + * |LOADED | (holds 1 sector directory buffer before kernel load) + * |-------| 2000:0000 + * ... + * |-------| 0000:7E00 + * |BOOTSEC| GRUB always run inside this sector, + * |ORIGIN | no relocation. + * |-------| 0000:7C00 + * ... + * |-------| 0060:0200 + * | FAT | (only 1 sector buffered) + * |-------| 0060:0000 + * ... + * + */ + +/* +; This is an LBA-enabled FreeDOS FAT32 boot sector (single sector!). +; You can use and copy source code and binaries under the terms of the +; GNU Public License (GPL), version 2 or newer. See www.gnu.org for more. + +; Based on earlier work by FreeDOS kernel hackers, modified heavily by +; Eric Auer and Jon Gentle in 7 / 2003. +; +; Features: Uses LBA and calculates all variables from BPB/EBPB data, +; thus making partition move / resize / image-restore easier. FreeDOS +; can boot from FAT32 partitions which start > 8 GB boundary with this +; boot sector. Disk geometry knowledge is not needed for booting. +; +; Windows uses 2-3 sectors for booting (sector stage, statistics sector, +; filesystem stage). Only using 1 sector for FreeDOS makes multi-booting +; of FreeDOS and Windows on the same filesystem easier. +; +; Requirements: LBA BIOS and 386 or better CPU. Use the older CHS-only +; boot sector if you want FAT32 on really old PCs (problems: you cannot +; boot from > 8 GB boundary, cannot move / resize / ... without applying +; SYS again if you use the CHS-only FAT32 boot sector). +; +; FAT12 / FAT16 hints: Use the older CHS-only boot sector unless you +; have to boot from > 8 GB. The LBA-and-CHS FAT12 / FAT16 boot sector +; needs applying SYS again after move / resize / ... a variant of that +; boot sector without CHS support but with better move / resize / ... +; support would be good for use on LBA harddisks. + + +; Memory layout for the FreeDOS FAT32 single stage boot process: + +; ... +; |-------| 1FE0:7E00 +; |BOOTSEC| +; |RELOC. | +; |-------| 1FE0:7C00 +; ... +; |-------| 2000:0200 +; | FAT | (only 1 sector buffered) +; |-------| 2000:0000 +; ... +; |-------| 0000:7E00 +; |BOOTSEC| overwritten by the kernel, so the +; |ORIGIN | bootsector relocates itself up... +; |-------| 0000:7C00 +; ... +; |-------| +; |KERNEL | maximum size 134k (overwrites bootsec origin) +; |LOADED | (holds 1 sector directory buffer before kernel load) +; |-------| 0060:0000 +; ... +*/ + +#define BOOTGRUB /* undef this if compiled for loading FreeDOS */ +//#undef BOOTGRUB + +#ifdef BOOTGRUB +#define LOADSEG 0x2000 +#define FATSEG 0x0060 +#else +#define LOADSEG 0x0060 +#define FATSEG 0x2000 +#endif + +Entry_32: + jmp 1f + + . = Entry_32 + 0x02 + + /* The default mode is CHS. This is for maximum compatiblity with + * small-sized disks, e.g., floppies. + * + * Valid values are 0x90 for CHS mode, or 0x0e for LBA mode. + * + * If the BIOS int13 supports LBA, this byte can be safely set to 0x0e. + * + * Some USB BIOSes might have bugs when using CHS mode, so the format + * program should set this byte to 0x0e. It seems that (generally) all + * USB BIOSes have LBA support. + * + * If the format program does not know whether the BIOS has LBA + * support, it may operate this way: + * + * if (partition_start + total_sectors_in_partition) exceeds the CHS + * addressing ability(especially when it is greater than 1024*256*63), + * the caller should set this byte to 0x0e, otherwise, set to 0x90. + */ + + .byte 0x90 /* for CHS. Another possible value is 0x0e for LBA */ + + + . = Entry_32 + 0x03 + +#ifdef BOOTGRUB + .ascii "GRLDR " /* OEM name string (of OS which formatted the disk). */ +#endif + + . = Entry_32 + 0x0b + + .word 0x200 /* bytes per sector. Must be 512 */ + + . = Entry_32 + 0x0d + + /* Sectors per cluster. Valid values are 1, 2, 4, 8, 16, 32, 64 and 128. + * But a cluster size larger than 32K should not occur. + */ + + .byte 1 /* sectors per cluster */ + + . = Entry_32 + 0x0e + + /* Reserved sectors(number of sectors before the first FAT, + * including the boot sector), usually 1. + */ + + .word 1 /* reserved sectors */ + + . = Entry_32 + 0x10 + + /* Number of FATs(nearly always 2). */ + + .byte 2 /* number of FATs */ + + . = Entry_32 + 0x11 + + /* (Maximum number of root directory entries)Must be 0. */ + + .word 0 /* Max dir entries for FAT12/FAT16 */ + + . = Entry_32 + 0x13 + + /* (Total number of sectors for small disks only)Must be 0. */ + + .word 0 /* total sectors for FAT12/FAT16 */ + + . = Entry_32 + 0x15 + + /* Media descriptor byte, pretty meaningless now. */ + + .byte 0xf8 /* media descriptor */ + + . = Entry_32 + 0x16 + + /* (Sectors per FAT)Must be 0. */ + + .word 0 /* sectors per FAT for FAT12/FAT16 */ + + . = Entry_32 + 0x18 + + .word 18 /* sectors per track */ + + . = Entry_32 + 0x1a + + .word 2 /* number of heads */ + + . = Entry_32 + 0x1c + + /* Number of hidden sectors (those preceding the boot sector). + * Also referred to as the starting sector of the partition. + * For floppies, it should be 0. + */ + + .long 0 /* hidden sectors */ + + . = Entry_32 + 0x20 + + /* Total number of sectors in the filesystem. */ + + .long 0 /* total sectors for FAT32 */ + + . = Entry_32 + 0x24 + + /* FAT32 sectors per FAT. */ + + .long 0 + + . = Entry_32 + 0x28 + + /* If bit 7 is clear then all FATs are updated, otherwise bits 0-3 + * give the current active FAT, all other bits are reserved. + * This word is not used by grldr boot code. + */ + + .word 0 + + . = Entry_32 + 0x2a + + /* High byte is major revision number, low byte is minor revision + * number, currently both are 0. + * This word is not used by grldr boot code. + */ + + .word 0 + + . = Entry_32 + 0x2c + + /* Root directory starting cluster. */ + + .long 0 + + . = Entry_32 + 0x30 + + /* File system information sector number. + * This word is not used by grldr boot code. + */ + + .word 0 + + . = Entry_32 + 0x32 + + /* If non-zero this gives the sector which holds a copy of the + * boot record, usually 6. + * This word is not used by grldr boot code. + */ + + .word 6 + + . = Entry_32 + 0x34 + + /* Reserved, 12 bytes, set to 0. */ + + .long 0 + .long 0 + .long 0 + + . = Entry_32 + 0x40 + + /* drive number of the boot device. + * This byte is ignored for read. The program will write DL onto + * this byte. The caller should set drive number in DL. + * We assume all BIOSes pass correct drive number in DL. + * That is to say, buggy BIOSes are not supported!! + */ + + .byte 0 + + . = Entry_32 + 0x41 + + /* partition number of this filesystem in the boot drive. + * This byte is ignored for read. The boot code will write partition + * number onto this byte. See Entry + 0x5d below. + */ + + .byte 0 + + . = Entry_32 + 0x42 + + /* Signature (must be 28h or 29h to be recognised by NT). */ + + .byte 0x29 /* extended boot signature for FAT12/FAT16 */ + + . = Entry_32 + 0x43 + + .long 0x0AC4AF63 /* volume serial number */ + + . = Entry_32 + 0x47 + + .ascii "NO NAME " /* volume label, 11 bytes. */ + + . = Entry_32 + 0x52 + + .ascii "FAT32 " /* filesystem ID, 8 bytes. */ + +/* +; bp is initialized to 7c00h +; %define bsOemName bp+0x03 ; OEM label (8) +%define bsBytesPerSec bp+0x0b ; bytes/sector (dw) +%define bsSecPerClust bp+0x0d ; sectors/allocation unit (db) +%define bsResSectors bp+0x0e ; # reserved sectors (dw) +%define bsFATs bp+0x10 ; # of fats (db) +; %define bsRootDirEnts bp+0x11 ; # of root dir entries (dw, 0 for FAT32) + ; (FAT32 has root dir in a cluster chain) +; %define bsSectors bp+0x13 ; # sectors total in image (dw, 0 for FAT32) + ; (if 0 use nSectorHuge even if FAT16) +; %define bsMedia bp+0x15 ; media descriptor: fd=2side9sec, etc... (db) +; %define sectPerFat bp+0x16 ; # sectors in a fat (dw, 0 for FAT32) + ; (FAT32 always uses xsectPerFat) +%define sectPerTrack bp+0x18 ; # sectors/track +; %define nHeads bp+0x1a ; # heads (dw) +%define nHidden bp+0x1c ; # hidden sectors (dd) +; %define nSectorHuge bp+0x20 ; # sectors if > 65536 (dd) +%define xsectPerFat bp+0x24 ; Sectors/Fat (dd) + ; +0x28 dw flags (for fat mirroring) + ; +0x2a dw filesystem version (usually 0) +%define xrootClst bp+0x2c ; Starting cluster of root directory (dd) + ; +0x30 dw -1 or sector number of fs.-info sector + ; +0x32 dw -1 or sector number of boot sector backup + ; (+0x34 .. +0x3f reserved) +%define drive bp+0x40 ; Drive number + bp+0x41 ; partition number for GRLDR + +%define fat_sector bp+0x44 ; last accessed FAT sector (dd) + ; (overwriting unused bytes) +%define fat_start bp+0x48 ; first FAT sector (dd) + ; (overwriting unused bytes) +%define data_start bp+0x4c ; first data sector (dd) + ; (overwriting unused bytes) + +*/ + /* not used: [0x42] = byte 0x29 (ext boot param flag) + * [0x43] = dword serial + * [0x47] = label (padded with 00, 11 bytes) + * [0x52] = "FAT32",32,32,32 (not used by Windows) + * ([0x5a] is where FreeDOS parts start) + */ + + . = Entry_32 + 0x5a +1: + cli + cld + +#ifdef BOOTGRUB + + . = Entry_32 + 0x5c + + /* the byte at offset 0x5d stores the real partition number for read. + * the format program or the caller should set it to a correct value. + * For floppies, it should be 0xff, which stands for whole drive. + */ + + movb $0xff, %dh /* boot partition number */ + + cmpb $0xff, %dh /* is floppy? */ + jne 1f + movb $0, %dl /* yes, let drive number = 0 */ +1: +#endif + + xorw %ax, %ax + movw %ax, %ds + movw $0x7c00, %bp + +#ifdef BOOTGRUB + movw %ax, %es +#else + movw $0x1fe0, %ax + movw %ax, %es + movw %bp, %si /* move from 0000:7c00 */ + movw %bp, %di /* move to 1fe0:7c00 */ + movw $0x0100, %cx /* one sector to move */ + repz movsw + ljmp $0x1fe0, $(1f - Entry_32 + 0x7c00) +1: + movw %ax, %ds +#endif + movw %ax, %ss /* stack and BP-relative moves up, too */ + leaw -0x20(%bp), %sp + sti + movw %dx, 0x40(%bp) /* BIOS passes drive number in DL */ + + movb $0x41, %ah + movw $0x55AA, %bx + int $0x13 + jc 1f /* No EBIOS */ + cmpw $0xAA55, %bx + jne 1f /* No EBIOS */ + testb $1, %cl + jz 1f /* No EBIOS */ + /* EBIOS supported */ + movb $0x42, (ebios_32 - 1 - Entry_32 + 0x7c00) +1: + +/* figure out where FAT and DATA area starts + * (modifies EAX EDX, sets fat_start and data_start variables) + */ + xorl %eax, %eax + movl %eax, 0x44(%bp) /* init buffer status */ + + /* first, find fat_start */ + movw 0x0e(%bp), %ax /* reserved sectors */ + addl 0x1c(%bp), %eax /* hidden sectors */ + movl %eax, 0x48(%bp) /* first FAT sector */ + movl %eax, 0x4c(%bp) /* first data sector, initial value */ + + /* next, find data_start */ + movl 0x10(%bp), %eax /* number of fats, no movzbl needed: the + 2 words after 0x10(%bp) are 0 for fat32 */ + mull 0x24(%bp) /* sectors per fat (EDX=0) */ + addl %eax, 0x4c(%bp) /* first DATA sector */ + +/* Searches for the file in the root directory. + * Returns: EAX = first cluster of file + */ + + movl 0x2c(%bp), %eax /* root dir cluster */ + +1: + pushl %eax /* save cluster */ + call cluster_to_lba_32 + /* EDX is sectors per cluster, EAX is sector number */ + movw $(msg_BootError_32 - Entry_32 + 0x7c00), %si + jc boot_error_32 /* EOC encountered */ + +2: + lesw (loadseg_off_32 - Entry_32)(%bp), %bx /* load to loadseg:0 */ + call readDisk_32 + + xorw %di, %di + + /* Search for kernel file name, and find start cluster */ +3: + movw $11, %cx + movw $(filename_32 - Entry_32 + 0x7c00), %si + repz cmpsb + jz 1f /* note that di now is at dirent+11 */ + + addw $0x20, %di + andw $-0x20, %di /* 0xffe0 */ + cmp 0x0b(%bp), %di /* bytes per sector */ + jnz 3b /* next directory entry */ + + decw %dx /* initially DX holds sectors per cluster */ + jnz 2b /* loop over sectors in cluster */ + + popl %eax /* restore current cluster */ + call next_cluster_32 + jmp 1b /* read next cluster */ + +#ifndef ALTERNATIVE_KERNEL +loadseg_off_32: + .word 0 + .word LOADSEG +#endif + +1: + /* kernel directory entry is found */ + pushw %es:(0x14-11)(%di) /* get cluster number HI */ + pushw %es:(0x1a-11)(%di) /* get cluster number LO */ + popl %eax /* convert to 32bit */ + + xorw %bx, %bx /* read kernel at ES:BX=LOADSEG:0 */ + +/* read kernel */ + +2: + pushl %eax + call cluster_to_lba_32 + /* EDX is sectors per cluster, EAX is sector number */ + jnc 1f + + /* EOC encountered - done */ +#ifdef BOOTGRUB + movw 0x40(%bp), %dx /* boot_drive and boot_partition */ +#else + movb 0x40(%bp), %bl /* FreeDOS kernel uses BL, not DL, for drive */ +#endif + ljmp *(loadseg_off_32 - Entry_32)(%bp) + +1: + call readDisk_32 + decw %dx /* initially DX holds sectors per cluster */ + jnz 1b /* loop over sectors in cluster */ + + popl %eax + call next_cluster_32 + jmp 2b + +/* given a cluster number, find the number of the next cluster in + * the FAT chain. Needs fat_start. + * input: EAX - cluster + * EDX = 0 + * output: EAX - next cluster + * EDX = undefined + */ + +next_cluster_32: + pushw %es + /* pushw %di */ + pushw %bx /* hi word of EBX never used */ + +#if 1 + /* xorl %edx, %edx */ + shll $2, %eax /* 32bit FAT */ + movzwl 0x0b(%bp), %ebx /* bytes per sector */ + divl %ebx /* residue is in EDX */ + /* movw %dx, %di */ +#else + shll $2, %eax /* 32bit FAT */ + ;xchgw %ax, %di /* movw %ax, %di */ + movw %ax, %di + ;shlw $2, %di /* 32bit FAT */ + + pushw %cx + movw 0x0b(%bp), %bx /* bytes per sector */ + bsfw %bx, %cx + ;decw %cx + ;decw %cx + decw %bx + andw %bx, %di /* mask to sector size */ + shrl %cl, %eax + popw %cx +#endif + addl 0x48(%bp), %eax /* add the first FAT sector number. + EAX is absolute sector number now */ + movw $FATSEG, %bx + movw %bx, %es + xorw %bx, %bx + + cmpl 0x44(%bp), %eax /* is it the last accessed and already buffered + FAT sector? */ + jz 1f + movl %eax, 0x44(%bp) /* mark sector EAX as buffered */ + call readDisk_32 /* read sector EAX to buffer */ +1: +#if 1 + //.byte 0x67, 0x26, 0x80, 0x62, 0x03, 0x0f + addr32 andb $0x0f, %es:3(%edx) /* mask out top 4 bits */ + + //.byte 0x67, 0x66, 0x26, 0x8b, 0x02 + addr32 movl %es:(%edx), %eax /* read next cluster number */ +#else + andb $0x0f, %es:3(%di) /* mask out top 4 bits */ + movl %es:(%di), %eax /* read next cluster number */ +#endif + popw %bx + /* popw %di */ + popw %es + ret + +/* Convert cluster number to the absolute sector number + * ... or return carry if EndOfChain! Needs data_start. + * input: EAX - target cluster + * output: EAX - absolute sector + * EDX - [bsSectPerClust] (byte) + * carry clear + * (if carry set, EAX/EDX unchanged, end of chain) + */ + +cluster_to_lba_32: + cmpl $0x0ffffff8, %eax /* check End Of Chain */ + cmc + jb 1f /* carry is stored if EOC */ + + /* sector = (cluster-2) * clustersize + data_start */ + decl %eax + decl %eax + + movzbl 0x0d(%bp), %edx /* sectors per cluster */ + pushw %dx /* only DX would change */ + mull %edx /* EDX = 0 */ + popw %dx + addl 0x4c(%bp), %eax /* data_start */ + /* here, carry is cleared (unless parameters are wrong) */ +1: + ret + +/* Read a sector from disk, using LBA or CHS + * input: EAX - 32-bit DOS sector number + * ES:BX - destination buffer + * (will be filled with 1 sector of data) + * output: ES:BX points one byte after the last byte read. + * EAX - next sector + */ + +readDisk_32: + pushal + xorl %edx, %edx /* EDX:EAX = LBA */ + pushl %edx /* hi 32bit of sector number */ + pushl %eax /* lo 32bit of sector number */ + pushw %es /* buffer segment */ + pushw %bx /* buffer offset */ + pushw $1 /* 1 sector to read */ + pushw $16 /* size of this parameter block */ + + xorl %ecx, %ecx + pushl 0x18(%bp) /* lo:sectors per track, hi:number of heads */ + popw %cx /* ECX = sectors per track */ + divl %ecx /* residue is in EDX */ + /* quotient is in EAX */ + incw %dx /* sector number in DL */ + popw %cx /* ECX = number of heads */ + pushw %dx /* push sector number into stack */ + xorw %dx, %dx /* EDX:EAX = cylinder * TotalHeads + head */ + divl %ecx /* residue is in EDX, head number */ + /* quotient is in EAX, cylinder number */ + xchgb %dl, %dh /* head number should be in DH */ + /* DL = 0 */ + popw %cx /* pop sector number from stack */ + xchgb %al, %ch /* lo 8bit cylinder should be in CH */ + /* AL = 0 */ + shlb $6, %ah /* hi 2bit cylinder ... */ + orb %ah, %cl /* ... should be in CL */ + + movw $0x201, %ax /* read 1 sector */ +ebios_32: /* ebios_32 - 1 points to 0x02 that can be changed to 0x42 */ + +// cmpb $0x0e, 2(%bp) /* force LBA? */ +// jnz 1f /* no, continue */ +// movb $0x42, %ah /* yes, use extended disk read */ +//1: + movw %sp, %si /* DS:SI points to disk address packet */ + movb 0x40(%bp), %dl /* hard disk drive number */ + int $0x13 + popaw /* remove parameter block from stack */ + popal + jc disk_error_32 /* disk read error, jc 1f if caller handles */ + incl %eax /* next sector */ + addw 0x0b(%bp), %bx /* bytes per sector */ + jnc 1f /* 64K bound check */ + pushw %dx + movw %es, %dx + addb $0x10, %dh /* add 1000h to ES */ + /* here, carry is cleared */ + movw %dx, %es + popw %dx +1: + /* carry stored on disk read error */ + ret + + . = . - (. - readDisk_32)/91 + +msg_DiskReadError_32: + + .ascii "disk error\0" + +msg_BootError_32: + + .ascii "No " + +filename_32: + +#ifdef BOOTGRUB + .ascii "GRLDR \0" +#else + .ascii "KERNEL SYS\0" +#endif + +#ifdef ALTERNATIVE_KERNEL +filename_end_32: + + . = Entry_32 + 0x1e8 + +loadseg_off_32: + .word 0 + .word LOADSEG + + . = Entry_32 + 0x1ec + +boot_image_ofs_32: + + .word (filename_32 - Entry_32)+(filename_end_32 - filename_32 - 1)*2048 +#endif + + . = Entry_32 + 0x1ee + +disk_error_32: + + movw $(msg_DiskReadError_32 - Entry_32 + 0x7c00), %si + +boot_error_32: + +/* prints string DS:SI (modifies AX BX SI) */ + +//print_32: +1: + lodsb (%si), %al /* get token */ + //xorw %bx, %bx /* video page 0 */ + movb $0x0e, %ah /* print it */ + int $0x10 /* via TTY mode */ + cmpb $0, %al /* end of string? */ + jne 1b /* until done */ + + /* The caller will change this to + * ljmp $0x9400, $(try_next_partition - _start1) + */ + +1: jmp 1b + + . = Entry_32 + 0x1fc + + .word 0, 0xAA55 /* Win9x uses all 4 bytes as magic value here */ + + . = Entry_32 + 0x200 + + . = _start1 + 0x600 + + //.arch i8086, nojumps + .arch i186, nojumps +/* + * The following is based on FreeDOS, modified heavily by Tinybit in Feb, 2004 + * + * Merges FAT12 and FAT16 boot sectors to ONE FAT boot sector! + * + * Memory layout for GRLDR FAT single stage boot process: + * + * +--------+ + * | | + * |GRLDR | also used as max 128k FAT buffer + * |LOADED | before GRLDR loading starts + * |--------| 2000:0000 + * | | + * |--------| 0000:7E00 + * |BOOTSECT| + * |ORIGIN | + * |--------| 0000:7C00 + * | | + * |--------| 0000:3000 + * |CLUSTER | + * |LIST | + * |--------| 0000:2000 + * | | + * +--------+ + */ + +/* +; +; File: +; boot.asm +; Description: +; DOS-C boot +; +; Copyright (c) 1997; +; Svante Frey +; All Rights Reserved +; +; This file is part of DOS-C. +; +; DOS-C 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, or (at your option) any later version. +; +; DOS-C 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 DOS-C; see the file COPYING. If not, +; write to the Free Software Foundation, 675 Mass Ave, +; Cambridge, MA 02139, USA. +; +; +; +--------+ 1FE0:7E00 +; |BOOT SEC| +; |RELOCATE| +; |--------| 1FE0:7C00 +; | | +; |--------| 1FE0:3000 +; | CLUSTER| +; | LIST | +; |--------| 1FE0:2000 +; | | +; |--------| 0000:7E00 +; |BOOT SEC| overwritten by max 128k FAT buffer +; |ORIGIN | and later by max 134k loaded kernel +; |--------| 0000:7C00 +; | | +; |--------| +; |KERNEL | also used as max 128k FAT buffer +; |LOADED | before kernel loading starts +; |--------| 0060:0000 +; | | +; +--------+ +*/ + +#ifdef BOOTGRUB +#define LOADSEG_12_16 0x2000 +#define FATBUF 0x2000 /* offset of temp buffer for FAT chain */ +#else +#define LOADSEG_12_16 0x0060 +#define FATBUF 0x2000 /* offset of temp buffer for FAT chain */ +#endif + +Entry_12_16: + jmp 1f + + . = Entry_12_16 + 0x02 + + /* The default mode is CHS. This is for maximum compatiblity with + * small-sized disks, e.g., floppies. + * + * Valid values are 0x90 for CHS mode, or 0x0e for LBA mode. + * + * If the BIOS int13 supports LBA, this byte can be safely set to 0x0e. + * + * Some USB BIOSes might have bugs when using CHS mode, so the format + * program should set this byte to 0x0e. It seems that (generally) all + * USB BIOSes have LBA support. + * + * If the format program does not know whether the BIOS has LBA + * support, it may operate this way: + * + * if (partition_start + total_sectors_in_partition) exceeds the CHS + * addressing ability(especially when it is greater than 1024*256*63), + * the caller should set this byte to 0x0e, otherwise, set to 0x90. + */ + + .byte 0x90 /* for CHS. Another possible value is 0x0e for LBA */ + + + . = Entry_12_16 + 0x03 + +#ifdef BOOTGRUB + .ascii "GRLDR " +#endif + + . = Entry_12_16 + 0x0b + + .word 0x200 /* bytes per sector */ + + . = Entry_12_16 + 0x0d + + .byte 1 /* sectors per cluster */ + + . = Entry_12_16 + 0x0e + + .word 1 /* reserved sectors */ + + . = Entry_12_16 + 0x10 + + .byte 2 /* number of FATs */ + + . = Entry_12_16 + 0x11 + + .word 224 /* Max dir entries */ + + . = Entry_12_16 + 0x13 + + .word 2880 /* total sectors in the filesystem */ + + . = Entry_12_16 + 0x15 + + .byte 0xf0 /* media descriptor */ + + . = Entry_12_16 + 0x16 + + .word 9 /* sectors per FAT */ + + . = Entry_12_16 + 0x18 + + .word 18 /* sectors per track */ + + . = Entry_12_16 + 0x1a + + .word 2 /* number of heads */ + + . = Entry_12_16 + 0x1c + + .long 0 /* hidden sectors */ + + . = Entry_12_16 + 0x20 + + .long 0 /* total sectors for large partitions */ + + . = Entry_12_16 + 0x24 + + /* drive number of the boot device. + * This byte is ignored for read. The program will write DL onto + * this byte. The caller should set drive number in DL. + * We assume all BIOSes pass correct drive number in DL. + * That is to say, buggy BIOSes are not supported!! + */ + + .byte 0 + + . = Entry_12_16 + 0x25 + + /* partition number of this filesystem in the boot drive. + * This byte is ignored for read. The boot code will write partition + * number onto this byte. See Entry_12_16 + 0x41 below. + */ + + .byte 0 + + . = Entry_12_16 + 0x26 + + .byte 0x29 /* extended boot signature */ + + . = Entry_12_16 + 0x27 + + .long 0x0AC4AF63 /* volume serial number */ + + . = Entry_12_16 + 0x2b + + .ascii "NO NAME " /* volume label */ + + . = Entry_12_16 + 0x36 + + .ascii "FAT12 " /* filesystem ID */ + +/* +; bp is initialized to 7c00h +%define bsOemName bp+0x03 ; OEM label +%define bsBytesPerSec bp+0x0b ; bytes/sector +%define bsSecPerClust bp+0x0d ; sectors/allocation unit +%define bsResSectors bp+0x0e ; # reserved sectors +%define bsFATs bp+0x10 ; # of fats +%define bsRootDirEnts bp+0x11 ; # of root dir entries +%define bsSectors bp+0x13 ; # sectors total in image +%define bsMedia bp+0x15 ; media descrip: fd=2side9sec, etc... +%define sectPerFat bp+0x16 ; # sectors in a fat +%define sectPerTrack bp+0x18 ; # sectors/track +%define nHeads bp+0x1a ; # heads +%define nHidden bp+0x1c ; # hidden sectors +%define nSectorHuge bp+0x20 ; # sectors if > 65536 +%define drive bp+0x24 ; drive number + bp+0x25 ; partition number for GRLDR +%define extBoot bp+0x26 ; extended boot signature +%define volid bp+0x27 +%define vollabel bp+0x2b +%define filesys bp+0x36 + +%define RootDirSecs bp+0x26 ; # of sectors root dir uses + ; (overwriting unused bytes) +%define fat_start bp+0x28 ; first FAT sector + ; (overwriting unused bytes) +%define root_dir_start bp+0x2c ; first root directory sector + ; (overwriting unused bytes) +%define data_start bp+0x30 ; first data sector + ; (overwriting unused bytes) +%define data_clusters bp+0x34 ; # of clusters in data area + ; (overwriting unused bytes) + bp+0x36 ; bytes per FAT( > 0x1800 means FAT16) + ; (overwriting unused bytes) +*/ + /* not used: [0x26] = byte 0x29 (ext boot param flag) + * [0x27] = dword serial + * [0x2b] = label (padded with 00, 11 bytes) + * [0x36] = "FAT12" or "FAT16",32,32,32 (not used by Windows) + * ([0x3e] is where FreeDOS parts start) + */ + + . = Entry_12_16 + 0x3e +1: + cli + cld + +#ifdef BOOTGRUB + + . = Entry_12_16 + 0x40 + + /* the byte at offset 0x41 stores the real partition number for read. + * the format program or the caller should set it to a correct value. + * For floppies, it should be 0xff, which stands for whole drive. + */ + + movb $0xff, %dh /* boot partition number */ + + cmpb $0xff, %dh /* is floppy? */ + jne 1f + movb $0, %dl /* yes, let drive number = 0 */ +1: +#endif + + xorw %ax, %ax + movw %ax, %ds + movw $0x7c00, %bp + +#ifdef BOOTGRUB + movw %ax, %es + movw %ax, %ss /* stack and BP-relative moves up, too */ + leaw -0x20(%bp), %sp + sti + movw %dx, 0x24(%bp) /* BIOS passes drive number in DL */ + /* AX=0 */ +// xchgw %ax, %dx /* let DX = 0 */ +// xorw %cx, %cx /* CX = 0 */ +#else + movw %bp, %si /* move from 0000:7c00 */ + movw %bp, %di /* move to 1fe0:7c00 */ + movb %dl, 0x24(%si) /* BIOS passes drive number in DL */ +// xchgw %ax, %dx /* let DX = 0 */ + movw $0x1fe0, %ax + movw %ax, %es + movw $0x0100, %cx /* one sector to move */ + repz movsw + /* CX = 0 */ + ljmp $0x1fe0, $(1f - Entry_12_16 + 0x7c00) +1: + movw %ax, %ds + movw %ax, %ss /* stack and BP-relative moves up, too */ + leaw -0x20(%bp), %sp + sti + /* AX=0x1fe0 */ +#endif + + movb $0x41, %ah + movw $0x55AA, %bx + int $0x13 + jc 1f /* No EBIOS */ + cmpw $0xAA55, %bx + jne 1f /* No EBIOS */ + testb $1, %cl + jz 1f /* No EBIOS */ + /* EBIOS supported */ + movb $0x42, (ebios_12_16 - 1 - Entry_12_16 + 0x7c00) +1: +// xorw %cx, %cx + xorw %ax, %ax + + /* GET DRIVE PARMS: Calculate start of some disk areas */ + + movw 0x1c(%bp), %si /* number of hidden sectors(lo) */ + movw 0x1e(%bp), %di /* number of hidden sectors(hi) */ + addw 0x0e(%bp), %si /* number of reserved sectors */ + adcw %ax, %di /* DI:SI = first FAT sector */ + /* AX = 0 */ + + movw %si, 0x28(%bp) /* FAT start sector(lo) */ + movw %di, 0x2a(%bp) /* FAT start sector(hi) */ + + //xchgw %ax, %dx /* let AX = 0 */ + movb 0x10(%bp), %al /* number of FATs */ + /* cbw */ + mulw 0x16(%bp) /* sectors per FAT */ + /* DX:AX = total number of FAT sectors */ + /* DX = 0 since no too many FAT sectors */ + addw %ax, %si + adcw %dx, %di /* DI:SI = root directory start sector */ + movw %si, 0x2c(%bp) /* root directory starting sector(lo) */ + movw %di, 0x2e(%bp) /* root directory starting sector(hi) */ + + /* Calculate how many sectors the root directory occupies */ + + movw 0x0b(%bp), %bx /* bytes per sector */ + movb $5, %cl /* divide BX by 32 */ + shrw %cl, %bx /* BX = directory entries per sector */ + + movw 0x11(%bp), %ax /* max number of root dir entries */ + /* xorw %dx, %dx */ /* assuming DX = 0 */ + divw %bx /* AX = sectors per root directory */ + /* DX = 0 since normally no residue */ + + movw %ax, 0x26(%bp) /* number of sectors the root dir occupies */ + + addw %ax, %si /* DI:SI = first data sector */ + adcw %dx, %di /* assuming DX = 0 */ + + movw %si, 0x30(%bp) /* data starting sector(lo) */ + movw %di, 0x32(%bp) /* data starting sector(hi) */ +#ifdef USE_TOTAL_CLUSTERS + movw 0x13(%bp), %cx /* total sectors(small) */ + jcxz 1f + movw %cx, 0x20(%bp) /* total sectors(large)(lo) */ + movw %dx, 0x22(%bp) /* total sectors(large)(hi), assuming DX = 0 */ +1: + movw 0x20(%bp), %ax /* total sectors(large) */ + movw 0x22(%bp), %bx + addw 0x1c(%bp), %ax /* number of hidden sectors */ + adcw 0x1e(%bp), %bx + subw %si, %ax /* data starting sector */ + sbbw %di, %bx /* BX:AX = total sectors in the data area */ + movb 0x0d(%bp), %dl /* sectors per cluster(DH=0) */ + xchgw %bx, %dx /* DX:AX = total sectors in the data area */ + /* BX = sectors per cluster */ + divw %bx /* AX = total clusters in the data area */ + movw %ax, 0x34(%bp) /* total clusters in the data area */ +#else + movw $0xffff, 0x36(%bp) + movw 0x16(%bp), %ax /* sectors per FAT */ + mulw 0x0b(%bp) /* bytes per sector */ + jc 1f + movw %ax, 0x36(%bp) +1: +#endif + /* Searches for the file in the root directory + * + * Returns: + * AX = first cluster of file + */ + + /* First, read the whole root directory into the temporary buffer */ + + movw 0x2c(%bp), %ax /* root directory starting sector(lo) */ + movw 0x2e(%bp), %dx /* root directory starting sector(hi) */ + movw 0x26(%bp), %di /* number of sectors the root dir occupies */ + lesw (loadseg_off_12_16 - Entry_12_16)(%bp), %bx + /* ES:BX = loadseg:0 */ + call readDisk_12_16 + + lesw (loadseg_off_12_16 - Entry_12_16)(%bp), %di + /* ES:DI = loadseg:0 */ + + + /* Search for kernel file name, and find start cluster */ + +1: + movw $11, %cx + movw $(filename_12_16 - Entry_12_16 + 0x7c00), %si + pushw %di + repz cmpsb + popw %di + movw %es:0x1a(%di), %ax /* get cluster number from dir entry */ + jz 1f + + addw $0x20, %di /* go to next directory entry */ + cmpb %ch, %es:(%di) /* if the first byte of the name is 0, */ + /* there is no more files in the directory */ + /* assuming CH = 0 */ + jnz 1b + movw $(msg_BootError_12_16 - Entry_12_16 + 0x7c00), %si + jmp boot_error_12_16 /* fail if not found */ + +#ifndef ALTERNATIVE_KERNEL +loadseg_off_12_16: .word 0 +loadseg_seg_12_16: .word LOADSEG_12_16 +#endif + +1: + pushw %ax /* store first cluster number */ + /* CX = 0 */ + + + /* Reads the FAT chain and stores it in a temporary buffer in the first + * 64KB. The FAT chain is stored an array of 16-bit cluster numbers, + * ending with 0. + * + * The file must fit in conventional memory, so it can't be larger than + * 640KB. The sector size must be at least 512 bytes, so the FAT chain + * can't be larger than around 3KB. + * + * Call with: AX = first cluster in chain + */ + + /* Load the complete FAT into memory. The FAT can't be larger + * than 128 kb, so it should fit in the temporary buffer. + */ + + lesw (loadseg_off_12_16 - Entry_12_16)(%bp), %bx + /* ES:BX = loadseg:0 */ + movw 0x16(%bp), %di /* sectors per FAT */ + movw 0x28(%bp), %ax /* FAT start sector(lo) */ + movw 0x2a(%bp), %dx /* FAT start sector(hi) */ + call readDisk_12_16 + popw %ax /* restore first cluster number */ + + /* Set ES:DI to the temporary storage for the FAT chain */ + pushw %ds + popw %es + movw (loadseg_seg_12_16 - Entry_12_16)(%bp), %ds + movw $FATBUF, %di + +2: + stosw /* store cluster number */ + movw %ax, %si /* SI = cluster number */ + addw %si, %si /* multiply cluster number by two */ + movw (loadseg_seg_12_16 - Entry_12_16)(%bp), %dx + /* segment for FAT16 */ + jnc 1f + addb $0x10, %dh /* overflow. Add 0x1000 to segment value */ +1: + +#ifdef USE_TOTAL_CLUSTERS + cmpw $0x0ff7, 0x34(%bp) /* total clusters in the data area */ +#else + cmpw $0x1801, 0x36(%bp) /* bytes per FAT */ +#endif + jnb 3f + + /* This is a FAT12 disk */ + + addw %ax, %si /* multiply cluster number by 3 ... */ + shrw $1, %si /* ... and divide by 2 */ + lodsw + + /* If the cluster number was even, the cluster value is now in + * bits 0-11 of AX. If the cluster number was odd, the cluster + * value is in bits 4-15, and must be shifted right 4 bits. If + * the number was odd, CF was set in the last shift instruction. + */ + + jnc 1f + movb $4, %cl + shrw %cl, %ax +1: + andb $0x0f, %ah /* mask off the highest 4 bits */ + cmpw $0x0ff7, %ax /* check for EOF */ + jmp 4f + +3: + /* This is a FAT16 disk. The maximal size of a 16bit FAT + * is 128KB, so it may not fit within a single 64KB segment + */ + + movw %dx, %ds /* DS:SI points to next cluster */ + lodsw /* AX = next cluster */ + + cmpw $0xfff7, %ax /* check for EOF */ +4: + jbe 2b /* continue if not EOF */ + + /* Mark end of FAT chain with 0, so we have a single + * EOF marker for both FAT12 and FAT16 systems. + */ + + xorw %ax, %ax + stosw + + pushw %cs + popw %ds + + /* Loads the file into memory, one cluster at a time */ + + lesw (loadseg_off_12_16 - Entry_12_16)(%bp), %bx + /* ES:BX = loadseg:0 */ + movw $FATBUF, %si /* set DS:SI to the FAT chain */ + +2: + lodsw /* AX = next cluster to read */ + orw %ax, %ax + jnz 1f + + /* EOC encountered - done */ +#ifdef BOOTGRUB + movw 0x24(%bp), %dx /* boot_drive and boot_partition */ +#else + movb 0x24(%bp), %bl /* FreeDOS kernel uses BL, not DL, for drive */ +#endif + ljmp *(loadseg_off_12_16 - Entry_12_16)(%bp) /* boot it! */ + +1: + decw %ax /* cluster numbers start with 2 */ + decw %ax + + movw 0x0d(%bp), %di /* sectors per cluster */ + andw $0xff, %di /* DI = sectors per cluster */ + mulw %di + addw 0x30(%bp), %ax /* data starting sector(lo) */ + adcw 0x32(%bp), %dx /* data starting sector(hi) */ + /* DX:AX = first sector to read */ + call readDisk_12_16 + jmp 2b /* read next cluster */ + +/* Reads a number of sectors into memory. + * + * Call with: DX:AX = 32-bit DOS sector number + * DI = number of sectors to read + * ES:BX = destination buffer + * + * Returns: CF set on error + * ES:BX points one byte after the last byte read. + * DX:AX = next sector number after read + */ + +readDisk_12_16: +2: + pushaw + xorw %cx, %cx + pushw %cx + pushw %cx + pushw %dx + pushw %ax + pushw %es /* buffer segment */ + pushw %bx /* buffer offset */ + incw %cx + pushw %cx /* 1 sector to read */ + movb $16, %cl + pushw %cx /* size of this parameter block */ + + xchgw %ax, %cx /* save AX to CX */ + + /* + * translate sector number to BIOS parameters + * + * LBA = sector-1 offset in track + * + head * sectPerTrack offset in cylinder + * + cyl * sectPerTrack * nHeads offset in platter + * + */ + pushw %bx + movw 0x18(%bp), %ax /* sectors per track */ + movw %ax, %bx + mulb 0x1a(%bp) /* nHeads, but maybe a word value 0x100 */ + jnz 1f + movb %bl, %ah /* nHeads=0x100, so AX=sectPerTrack*0x100 */ +1: + xchgw %ax, %cx /* restore AX from CX, and save AX to CX */ + /* DX:AX = LBA, CX = nHeads * sectPerTrack <= 256*63 */ + divw %cx /* AX = cyl, DX = sector-1 + head * sectPerTrack */ + xchgw %ax, %dx /* DX = cyl, AX = sector-1 + head * sectPerTrack */ + divb %bl /* sectors per track */ + /* DX = cyl, AL = head, AH = sector-1 */ +#if 1 + xchgb %al, %ah /* DX = cyl, AH = head, AL = sector-1 */ + incw %ax /* DX = cyl, AH = head, AL = sector */ + xchgw %ax, %dx /* AX = cyl, DH = head, DL = sector */ + xchgw %ax, %cx /* CX = cyl, DH = head, DL = sector */ + xchgb %cl, %ch /* set cyl number low 8 bits in CH */ + rorb $1, %cl /* move cyl high bits into bits 7-6 */ + rorb $1, %cl /* (assumes top = 0) */ + orb %dl, %cl /* merge sector into cylinder */ +#else + movw %dx, %cx /* CX = cyl, AL = head, AH = sector-1 */ + + /* + * the following manipulations are necessary in order to properly place + * parameters into registers. + * CH = cylinder number low 8 bits + * CL<7-6> = cylinder high two bits + * CL<5-0> = sector + */ + movb %al, %dh /* save head into DH for BIOS */ + xchgb %cl, %ch /* set cyl number low 8 bits in CH */ + rorb $1, %cl /* move cyl high bits into bits 7-6 */ + rorb $1, %cl /* (assumes top = 0) */ + incb %ah /* AH = sector number */ + orb %ah, %cl /* merge sector into cylinder */ +#endif + popw %bx + + movw $0x0201, %ax /* read 1 sector */ +ebios_12_16: /* ebios_12_16 - 1 points to 0x02 that can be changed to 0x42 */ + +// cmpb $0x0e, 2(%bp) /* force LBA? */ +// jnz 1f /* no, continue */ +// movb $0x42, %ah /* yes, use extended disk read */ +//1: + movw %sp, %si /* DS:SI points to disk address packet */ + movb 0x24(%bp), %dl /* drive number */ + int $0x13 +// stc #; only for testing the buggy Virtual PC + popaw /* remove parameter block from stack */ + popaw + jc disk_error_12_16 /* disk read error, jc 1f if caller handles */ + incw %ax /* next sector */ + jnz 1f + incw %dx +1: + addw 0x0b(%bp), %bx /* bytes per sector */ + jnc 1f /* 64K bound check */ + pushw %dx + movw %es, %dx + addb $0x10, %dh /* add 1000h to ES */ + /* here, carry is cleared */ + movw %dx, %es + popw %dx +1: + decw %di + jnz 2b + + /* carry stored on disk read error */ + ret + + . = . - (. - readDisk_12_16)/99 + +msg_DiskReadError_12_16: + + .ascii "disk error\0" + +msg_BootError_12_16: + + .ascii "No " + +filename_12_16: + +#ifdef BOOTGRUB + .ascii "GRLDR \0" +#else + .ascii "KERNEL SYS\0" +#endif + +#ifdef ALTERNATIVE_KERNEL +filename_end_12_16: + + . = Entry_12_16 + 0x1e8 + +loadseg_off_12_16: .word 0 +loadseg_seg_12_16: .word LOADSEG_12_16 + + . = Entry_12_16 + 0x1ec + +boot_image_ofs_12_16: + + .word (filename_12_16 - Entry_12_16)+(filename_end_12_16 - filename_12_16 - 1)*2048 +#endif + + . = Entry_12_16 + 0x1ee + +disk_error_12_16: + + movw $(msg_DiskReadError_12_16 - Entry_12_16 + 0x7c00), %si + +boot_error_12_16: + +/* prints string DS:SI (modifies AX BX SI) */ + +//print_12_16: +1: + lodsb (%si), %al /* get token */ + //xorw %bx, %bx /* video page 0 */ + movb $0x0e, %ah /* print it */ + int $0x10 /* via TTY mode */ + cmpb $0, %al /* end of string? */ + jne 1b /* until done */ + + /* The caller will change this to + * ljmp $0x9400, $(try_next_partition - _start1) + */ + +1: jmp 1b + + . = Entry_12_16 + 0x1fc + + .word 0, 0xAA55 /* Win9x uses all 4 bytes as magic value here */ + + . = Entry_12_16 + 0x200 + + . = _start1 + 0x800 + + + + + .arch i486, nojumps + +/* + #; Ext2 boot sector for GRLDR + */ + + +#define DEBUG call debug_print +#undef DEBUG + + //. = _start1 + 0x800 + +Entry_ext2: + + jmp 1f + + . = Entry_ext2 + 0x02 + + /* The default mode is CHS. This is for maximum compatiblity with + * small-sized disks, e.g., floppies. + * + * Valid values are 0x02 for CHS mode, or 0x42 for LBA mode. + * + * If the BIOS int13 supports LBA, this byte can be safely set to 0x42. + * + * Some USB BIOSes might have bugs when using CHS mode, so the format + * program should set this byte to 0x42. It seems that (generally) all + * USB BIOSes have LBA support. + * + * If the format program does not know whether the BIOS has LBA + * support, it may operate this way: + * + * if (partition_start + total_sectors_in_partition) exceeds the CHS + * addressing ability(especially when it is greater than 1024*256*63), + * the caller should set this byte to 0x42, otherwise, set to 0x02. + */ + + .byte 0x02 /* for CHS. Another possible value is 0x42 for LBA */ + + . = Entry_ext2 + 0x03 + +#if 0 + + .ascii "ext2 grldr" + +#else + +msg_DiskReadError_ext2: + + .ascii "I/O error\0" + +#endif + + . = Entry_ext2 + 0x0d + + /* sectors per block. Valid values are 2, 4, 8, 16, 32. */ + + .byte 2 + + . = Entry_ext2 + 0x0e + + /* bytes per block. + * Valid values are 0x400, 0x800, 0x1000, 0x2000, 0x4000. + */ + + .word 1024 /* bytes per block, at most 16K */ + + . = Entry_ext2 + 0x10 + + /* pointers in pointers-per-block blocks, that is, number of blocks + * covered by a double-indirect block. + * Valid values are 0x10000, 0x40000, 0x100000, 0x400000, 0x1000000. + */ + + .long 0x10000 /* number of blocks covered by double-indirect block */ + /* low word=0 */ + + . = Entry_ext2 + 0x14 + + /* pointers per block, that is, number of blocks covered by an indirect + * block. Valid values are 0x100, 0x200, 0x400, 0x800, 0x1000. + */ + + .long 0x100 /* high word=0, low byte=0 */ + + . = Entry_ext2 + 0x18 + + /* this is default for 1.44M floppy, the caller should set it to + * a correct value */ + + .word 18 /* sectors per track */ + + . = Entry_ext2 + 0x1a + + /* this is default for 1.44M floppy, the caller should set it to + * a correct value */ + + .word 2 /* number of heads */ + + . = Entry_ext2 + 0x1c + + /* this is default for 1.44M floppy, the caller should set it to + * a correct value */ + + .long 0 /* hidden sectors */ + + . = Entry_ext2 + 0x20 + + /* total sectors in the filesystem(or in the partition). + * This value is informative. The code does not use it. + */ + + /* this is default for 1.44M floppy, the caller should set it to + * a correct value */ + + .long 2880 + + . = Entry_ext2 + 0x24 + + /* This byte is ignored for read. The program will write DL onto + * this byte. The caller should set drive number in DL. + * We assume all BIOSes pass correct drive number in DL. + * That is to say, buggy BIOSes are not supported!! + */ + + .byte 0 /* drive number */ + + . = Entry_ext2 + 0x25 + + /* this is default for floppies, the caller should set it to + * a correct value for hard-drive partitions */ + + .byte 0xff /* partition number, 0xff for whole drive */ + + . = Entry_ext2 + 0x26 + + .word 0 /* reserved for future use */ + + . = Entry_ext2 + 0x28 + + /* this is default for 1.44M floppy, the caller should set it to + * a correct value */ + + .long 2048 /* s_inodes_per_group */ + + . = Entry_ext2 + 0x2c + + /* block number for group descriptors = s_first_data_block + 1. + * Valid values are 2 for 1024-byte blocks, and 1 for otherwise. + */ + + /* this is default for 1.44M floppy, the caller should set it to + * a correct value */ + + .long 2 /* block number for group descriptors */ + + . = Entry_ext2 + 0x30 +1: + cld /* 0xFC */ + + xorw %ax, %ax /* 0x31, 0xC0; CF=0, ZF=1 */ + + /* this byte `nop' will be changed to `cwd' by bootlace for floppy */ + nop /* 0x90=nop, 0x99=cwd */ + /* cwd will set DL=0 forcibly for floppy A: */ + + movw %ax, %ss /* constant SS=0 */ + movw $0x7c00, %sp + + movw %sp, %bp /* constant BP=0x7c00 */ + movw %ax, %ds /* constant DS=0 */ + + pushw %ax /* 0x0000 at 0000:7bfe */ + movw $0x1000, %bx + pushw %bx /* 0x1000 at 0000:7bfc */ + pushw %ax /* 0x0000 at 0000:7bfa */ + /* SP=0x7bfa */ + + /* the 6 bytes in the stack are used by read_block(): + * 0000 ---- -2(%bp) + * 1000 ---- -4(%bp) + * 0000 ---- -6(%bp) + * Don't touch them! + */ + + movb %dl, 0x24(%bp) /* BIOS passes drive number in DL */ + + movb $0x41, %ah + movw $0x55AA, %bx + int $0x13 +#if 0 + jnc 1f + /* No EBIOS */ + movb $0x02, (ebios_ext2 - 1 - Entry_ext2 + 0x7c00) +#else + jc 1f #; No EBIOS + + //testb $1, %cl + //jz 1f #; No EBIOS +#if 0 + /* gcc-4.0.1 does not generate 2-byte code. */ + rcrb $1, %cl #; also can be rorb $1, %cl +#else + .byte 0xD0, 0xD9 #; ror cl: D0 C9 +#endif + jnc 1f #; No EBIOS + + movb $0x42, (ebios_ext2 - 1 - Entry_ext2 + 0x7c00) +#endif +1: + xorl %eax, %eax /* CF=0, ZF=1 */ + +#if 0 + /* the INC touches ZF flag, so use MOV instead */ + + incw %ax + incw %ax /* EAX=2=inode number for root dir */ +#else + + /* MOV keeps all flags untouched, so it is better than INC */ + + movb $2, %al /* EAX=2=inode number for root dir */ +#endif + + /* CF=0, ZF=1 because MOV and PUSH do not touch Flags */ + + /* read root dir to 0000:1000, and grldr to 1000:0000 */ + +4: + /* EAX holds the inode number: for root dir or grldr */ + + /* These 3 PUSHes is intended to place 1000:0000 onto the stack for + * grldr. For root dir, the stack is not used since CF is cleared. + * Although there is no corresponding POPs, this is safe enough + * because the program comes here only twice: the first is for + * the root dir, and the second is for grldr. + * + * For root dir, CF=0 and ZF=1. For grldr, CF=1. + */ + + pushw %di /* 0x1000, see "jz 4b" below. */ + pushw %ss /* 0x0000 */ + pushfw + + /* SP=0x7bf4 for root dir, or 0x7bee for grldr */ + + decl %eax /* EAX=(inode - 1) */ + + /* inode numbers are far less than 0x7fffffff, so it is safe to + * initialise EDX with CDQ */ + + cdq /* let EDX=0 */ + + divl 0x28(%bp) /* s_inodes_per_group */ + /* EAX=group number */ + pushl %edx /* EDX=inode number in the group */ + + /* group numbers are far less than 0x7fffffff, so it is safe to + * initialise EDX with CDQ */ + + cdq /* let EDX=0 */ + shll $5, %eax /* EAX=relative displacement of the group descriptor */ + divl 0x0e(%bp) /* bytes per block */ + /* EAX=relative block number for the group descriptor */ + /* DX=displacement in the block */ + /* EDX high=0 */ + + pushw %dx /* we don't care about EDX high word, because it is 0 */ + + addl 0x2c(%bp), %eax /* EAX=absolute block number for the group descriptor */ + /* CF=0, ZF=0 */ + + call read_block /* 0000:1000 points to the block data containing the group descriptor */ + /* ES changed and > 0, BX=0x1000 */ + /* ECX=EDX=0 */ + /* CF=0, ZF=0 */ + + popw %si /* DS:[BX+SI] points to the group descriptor */ + /* DS:[BX+SI+8] points to the starting block number of the group inode table */ + + popl %eax /* inode number in the group */ + shll $7, %eax /* inode struct size = 0x80 */ + /* EAX=relative displacement of the inode struct */ + /* EDX=0 */ + + divl 0x0e(%bp) /* bytes per block */ + /* EAX=relative block number for the inode struct */ + pushw %dx /* DX=displacement of the inode struct in the block */ + /* EDX high=0 */ + + addl 8(%bx, %si), %eax /* EAX=absolute block number for the inode struct */ + /* CF=0, ZF=0 */ + + call read_block /* 0000:1000 points to the block data containing the inode struct */ + /* ES changed and > 0, BX=0x1000 */ + /* ECX=EDX=0 */ + /* CF=0, ZF=0 */ + + popw %si /* DS:[BX+SI] points to the inode struct */ + + addw %bx, %si /* DS:SI points to the inode struct */ + + /* Move the inode struct to a known safe area(0000:0fa8 - 0000:0fff), + * that is, 0x58 bytes immediately before 0000:1000. We care about only + * the beginning 0x58 bytes of the 0x80-byte inode struct, the last + * 0x28 bytes are ignored. The area from 0xfa8+0x28 to 0xfa8+0x57 + * stores 12 direct block pointers. + * + * + * At address Initial value Stores what? + * ========== ============= ====================================== + * 0xfa8+0x04 (const) the size of the file in bytes + * + * 0xfa8+0x08 total blocks blocks left to read + * + * 0xfa8+0x0c 0 serial number of the block to read + * + */ + + pushw %ss + popw %es /* ES=0 */ + + leaw -0x58(%bx), %di /* BX=0x1000, so DI=0x0fa8 */ + //movw $0x0fa8, %di + movb $0x2c, %cl /* 0x2c words = 0x58 bytes */ + + repz movsw /* now ECX=0, BX=0x1000=DI */ + + movl %ecx, (0x0c - 0x58)(%di) /* block serial number of the file */ + /* ECX=0 means first block */ + /* DI=0x1000 */ + + movl (0x04 - 0x58)(%di), %eax /* i_size, the file size */ + decl %eax + + divl 0x0e(%bp) /* bytes per block */ + /* EDX=various */ + incl %eax + movl %eax, (0x08 - 0x58)(%di) /* total blocks for file data */ + + /* + * 0000:1000 trebly indirect block + * 0000:8000 indirect block + * 0000:c000 double indirect block + * 1000:0000 the file data + */ + + /* now DS:SI points to indirect block number */ + + lodsl /* indirect block number */ + testl %eax, %eax + jz 1f + + //pushw %ss + //popw %es /* ES=0 */ + movb $0x80, %bh /* ES:BX=0000:8000 */ +#if 0 + stc + call read_block +#else + call read_block_c +#endif + /* ES changed and > 0, BX=0x8000 */ + /* ECX=EDX=0 */ + /* ZF=0, CF=0 */ + + /* now DS:SI points to double indirect block number */ + + lodsl /* double indirect block number */ + testl %eax, %eax + jz 1f + +#if 0 + pushw %ss + popw %es /* ES=0 */ + movb $0xc0, %bh /* ES:BX=0000:c000 */ + stc + call read_block +#else + movb $0xc0, %bh /* ES:BX=0000:c000 */ + call read_block_c +#endif + /* ES changed and > 0, BX=0xc000 */ + /* ECX=EDX=0 */ + /* ZF=0, CF=0 */ + + /* now DS:SI points to trebly indirect block number */ + + lodsl /* trebly indirect block number */ + testl %eax, %eax /* CF=0, TEST always clears CF */ + jz 1f + /* ZF=0 */ + //pushw %ss + //popw %es /* ES=0 */ + //movb $0x10, %bh /* ES:BX=0000:1000 */ + //stc + call read_block /* 0000:1000 points to the block data */ + /* ES changed and > 0, BX=0x1000 */ + /* ECX=EDX=0 */ + /* ZF=0, CF=0 */ + + /* the block at 0000:1000, which contains the indirect block numbers, + * is just overwritten by the trebly indirect block */ + +1: + /* get absolute block number by block serial number */ + + movl (0x0c - 0x58)(%di), %ebx /* block serial number of the file */ + subl $12, %ebx + jc 3f /* direct block: block serial number < 12 */ + + pushw %bx + subl 0x14(%bp), %ebx + popw %ax + jnc 2f + + /* indirect block: 12 <= block serial number < 12 + 0x14(%bp) */ + + //addw 0x14(%bp), %bx + addb $(0x70 / 4), %ah + //xchgw %ax, %bx + jmp 8f + +2: + pushl %ebx + subl 0x10(%bp), %ebx + jc 7f /* EBX on the stack is < 0x10(%bp). double indirect block: + * 12 + 0x14(%bp) <= block serial number < 12 + 0x14(%bp) + 0x10(%bp) + */ + + /* trebly indirect block: block serial number >= 12 + 0x14(%bp) + 0x10(%bp) */ + + popl %eax /* discard the stack */ + xchgl %eax, %ebx /* move EBX to EAX */ + /* EDX=0 */ + divl 0x10(%bp) + /* EAX=indirect block number, < 0x14(%bp) */ + /* EDX=block number, < 0x10(%bp) */ + + pushl %edx /* EDX < 0x10(%bp) */ + testl %edx, %edx + jnz 7f + + /* EDX=0, so we need to load the double indirect block */ + + shlw $2, %ax + xchgw %ax, %bx + + /* get the double indirect block number from the trebly indirect + * block data */ + + movl (%bx, %di), %eax + +//6: + movw $0xc000, %bx /* ES:BX=0000:c000 */ + + //pushw %ss + //popw %es /* ES=0 */ + //stc + call read_block_c /* 0000:c000 points to the block data */ + /* ES changed and > 0, BX=0xc000 */ + /* ECX=EDX=0 */ + /* CF=0, ZF=0 */ +7: + popl %eax /* EAX < 0x10(%bp) */ + cdq /* let EDX=0 (notice the above jc 7f and jnz 7f) */ + divl 0x14(%bp) + /* EAX=indirect block number, < 0x14(%bp) */ + /* EDX=block number, < 0x14(%bp) */ + + pushw %dx /* EDX < 0x14(%bp) */ + testw %dx, %dx + jnz 7f + + /* if DX=0, we need to load the indirect block */ + + //addb $(0xb0 / 4), %ah + shlw $2, %ax + xchgw %ax, %bx + + /* get the indirect block number from the double indirect block data */ + + movl 0xb000(%bx, %di), %eax + //movl (%bx, %di), %eax +//5: + movw $0x8000, %bx /* ES:BX=0000:8000 */ + + //pushw %ss + //popw %es /* ES=0 */ + //stc + call read_block_c /* 0000:8000 points to the block data */ + /* ES changed and > 0, BX=0x8000 */ + /* ECX=EDX=0 */ + /* CF=0, ZF=0 */ +7: + popw %ax /* AX < 0x14(%bp) */ +8: + xchgw %ax, %bx +3: + shlw $2, %bx + movl (%bx, %di), %eax + + /* got it! EAX=absolute block number */ + + /* read block data to 1000:0000. For root dir, read each block to + * 1000:0000(overwrite the previous read). For grldr, read blocks + * one by one to the area starting at 1000:0000. + */ + + popfw + popw %bx + popw %es + pushfw + + /* CF=0 and ZF=1 for reading root dir, CF=1 for reading grldr */ + + call read_block /* 1000:0000 points to the block data */ + /* ES changed and > 0x1000, BX=0 */ + /* ECX=EDX=0 */ + /* CF=0, ZF=0 */ + + popfw + pushw %es + pushw %bx + pushfw + + jc 3f /* CF=1, we are reading grldr */ + + /* We have just read a block of the root dir to 1000:0000. + * So we check all dir entries in the block to see if anyone + * matches grldr. + */ + + xorw %si, %si + pushw %ss + popw %es /* ES=0 */ + +2: + pushw %ds /* DS=0 */ + movw %di, %ds /* DS=0x1000 */ + movw $(filename_ext2 - Entry_ext2 + 0x7c00), %di + + pushw %si + lodsl /* This is possible inode number for grldr */ + pushl %eax /* This is possible inode number for grldr */ + lodsw + xchgw %ax, %dx /* rec_len */ + lodsw /* AL=name_len, should be 5 for grldr */ + /* AH=file_type(1 for regular file) */ +#if 0 + cmpw $0x0105, %ax + jnz 5f + movb %al, %cl /* CH is already 0 */ + repz cmpsb +#else + decb %ah + //jnz 5f + xchgw %ax, %cx /* CX=name_len */ + repz cmpsb + jnz 5f + xchgw %ax, %cx /* movb $0, %al */ + scasb +#endif +5: + popl %eax /* This is possible inode number for grldr */ + popw %si + + /* DS=0x1000, EAX=inode number */ + + movw %ds, %di /* DI=0x1000 */ + popw %ds /* DS=0 */ + + stc /* indicates the new inode is for grldr */ + + jz 4b /* grldr is found with EAX=inode number */ + + addw %dx, %si + cmpw 0x0e(%bp), %si /* bytes per block */ + jb 2b + + /* file not found in this block, continue */ + + /* We are lucky that CF=0, which indicates we are dealing with + * the root dir. + */ + +3: + + /* CF=1 for grldr, CF=0 for root dir. */ + + incl (0x0c - 0x58)(%di) + decl (0x08 - 0x58)(%di) + jnz 1b + +#if 0 + /* The above 2 instructions INC and DEC do not touch CF, so we + * can omit this POP-PUSH pair. + */ + + popfw + pushfw +#endif + + movw $(msg_No_grldr_ext2 - Entry_ext2 + 0x7c00), %si + + jnc boot_error_ext2 /* grldr not found in the root dir */ + + /* All grldr blocks have been loaded to memory starting at 1000:0000, + * Before the boot, we pass boot_drive and boot_partition to grldr. + */ + + /* ES>0x1000, BX=0, ECX=EDX=0, DI=0x1000, SS=0, SI>0x7c00, DS=0 + * BP=0x7c00, SP<=0x7c00 + */ + + movw 0x24(%bp), %dx + + /* boot it now! */ + + pushw %di /* 0x1000 */ + pushw %ss /* 0x0000 */ + lret + +read_block_c: + + pushw %ss + popw %es /* ES=0 */ + stc + +/* read_block - read a block + * input: CF - indicator for overlap or consecution + * EAX = block number + * ES:BX - buffer + * + * output: if CF is cleared on input, ES:BX is initialized to 0000:1000 + * ES:BX - buffer filled with data + * ES, EAX - Changed + * ECX = 0 + * EDX = 0 + * ZF = 0 + * CF = 0 + */ + +read_block: + + jc 1f + + .byte 0xC4, 0x5E, 0xFC /* lesw -4(%bp), %bx */ + /* ES:BX=0000:1000 */ + jnz 1f + + //at this time, the gcc cannot generate 3 byte code + .byte 0xC4, 0x5E, 0xFA /* lesw -6(%bp), %bx */ + /* ES:BX=1000:0000 */ + //. = . - (. - read_block) / 6 +1: + movzbl 0x0d(%bp), %ecx /* CX=sectors per block */ + /* ECX high=0 */ + . = . - (. - 1b) / 6 + mull %ecx /* EAX=relative sector number */ + /* EDX=0 */ + . = . - (. - 1b) / 9 + addl 0x1c(%bp), %eax /* EAX=absolute sector number */ + +#if 1 + /* pass through, saving 4 bytes(call and ret) */ +#else + call readDisk_ext2 + ret +#endif + +/* Read sectors from disk, using LBA or CHS + * input: EAX = 32-bit LBA sector number + * CX = number of sectors to read + * ECX high word = 0 + * ES:BX = destination buffer + * + * output: No return on error + * BX not changed + * ES = ES + 0x20 * CX + * EAX = EAX + CX + * ZF = 0 + * CF = 0 + */ + +readDisk_ext2: +2: + pushal + //xorl %edx, %edx /* EDX:EAX = LBA */ + pushl %edx /* hi 32bit of sector number */ + pushl %eax /* lo 32bit of sector number */ + pushw %es /* buffer segment */ + pushw %bx /* buffer offset */ + pushw $1 /* 1 sector to read */ + pushw $16 /* size of this parameter block */ + + //xorl %ecx, %ecx + pushl 0x18(%bp) /* lo:sectors per track, hi:number of heads */ + popw %cx /* ECX = sectors per track */ + divl %ecx /* residue is in EDX */ + /* quotient is in EAX */ + /* EDX high=0, DH=0 */ + incw %dx /* DL=sector number */ + popw %cx /* ECX = number of heads */ + pushw %dx /* push sector number into stack */ + xorw %dx, %dx /* EDX:EAX = cylinder * TotalHeads + head */ + divl %ecx /* residue is in EDX, head number */ + /* quotient is in EAX, cylinder number */ + /* EDX high=0, EAX high=0 */ + + + xchgb %dl, %dh /* head number should be in DH */ + /* DL = 0 */ + popw %cx /* pop sector number from stack */ + xchgb %al, %ch /* lo 8bit cylinder should be in CH */ + /* AL = 0 */ + shlb $6, %ah /* hi 2bit cylinder ... */ + orb %ah, %cl /* ... should be in CL */ + + incw %ax /* AL=1, read 1 sector */ + + /* Instead of 0x0e, the LBA indicator at 2(%bp) is + * + * 0x42 for LBA + * + * and + * + * 0x02 for CHS + */ +#if 0 + movb $0x42, %ah + /* ebios_ext2 - 1 points to 0x42 that can be changed to 0x02 */ +#else + movb $0x02, %ah + /* ebios_ext2 - 1 points to 0x02 that can be changed to 0x42 */ +#endif +ebios_ext2: + + //andb 2(%bp), %ah + + movw %sp, %si /* DS:SI points to disk address packet */ + movb 0x24(%bp), %dl /* drive number */ + int $0x13 + jc disk_error_ext2 + movw %es, %ax + addw $0x20, %ax /* here, carry is cleared */ + movw %ax, %es + popaw /* remove parameter block from stack */ + popal + incl %eax /* next sector, here ZF=0 */ + loop 2b + ret + + //. = . - (. - readDisk_ext2)/74 + +//msg_DiskReadError_ext2: +// +// .ascii "disk error\0" + +msg_No_grldr_ext2: + + .ascii "No " + +filename_ext2: + .ascii "grldr\0" + + . = Entry_ext2 + 0x1ee + +filename_end_ext2: + + .word (filename_ext2 - Entry_ext2)+(filename_end_ext2 - filename_ext2 - 1)*2048 + + . = Entry_ext2 + 0x1f0 + +disk_error_ext2: + + movw $(msg_DiskReadError_ext2 - Entry_ext2 + 0x7c00), %si + +boot_error_ext2: + +/* prints string DS:SI (modifies AX BX SI) */ + +//print_ext2: +1: + lodsb (%si), %al /* get token */ + //xorw %bx, %bx /* video page 0 */ + movb $0x0e, %ah /* print it */ + int $0x10 /* via TTY mode */ + cmpb $0, %al /* end of string? */ + jne 1b /* until done */ +#if 1 + + /* The caller will change this to + * ljmp $0x9400, $(try_next_partition - _start1) + */ + +1: jmp 1b + +#else + /* boot failed, try to hand over the control to supervisor */ + ldsw (1f + 3 - Entry_ext2)(%bp), %si + lodsl + cmpl $0x9400b8fa, %eax +1: jnz 1b /* no supervisor, hang up. */ + ljmp $0x9400, $(try_next_partition - _start1) + + //. = . - (. - disk_error_ext2) / 30 +#endif + + . = Entry_ext2 + 0x1fe + + .word 0xAA55 + + . = _start1 + 0xA00 + +#define INSIDE_GRLDR + +#include "ntfsbs.S" + + . = _start1 + 0x1200 + + .arch i586, jumps + +#ifdef DEBUG + + . = Entry_ext2 + 0x201 + +debug_print: + + pushfl + pushal + movl %eax, %ebp + call 2f +#if 0 + popal + pushal + movl %ebx, %ebp + call 2f + popal + pushal + movl %ecx, %ebp + call 2f + popal + pushal + movl %edx, %ebp + call 2f + popal + pushal + movl %esi, %ebp + call 2f + popal + pushal + movl %edi, %ebp + call 2f + popal + popfl + pushfl + pushal + pushfl + popl %ebp /* flags */ + call 2f + movw %ds, %bp + shll $16, %ebp + movw %es, %bp + call 2f + movw $0x0e0d, %ax /* print CR */ + int $0x10 /* via TTY mode */ + movw $0x0e0a, %ax /* print LF */ + int $0x10 /* via TTY mode */ +#endif + popal + popfl + ret +2: + movw $7, %cx +1: + xorw %bx, %bx /* video page 0 */ + movl %ebp, %eax + shrl %cl, %eax + shrl %cl, %eax + shrl %cl, %eax + shrl %cl, %eax + andb $0x0f, %al + addb $0x30, %al + movb $0x0e, %ah /* print char in AL */ + int $0x10 /* via TTY mode */ + + decw %cx + testw %cx, %cx + jns 1b + + movw $0x0e20, %ax /* print space */ + int $0x10 /* via TTY mode */ + ret +#endif + +#if 1 + /* restore GRLDR_CS */ + + /* this code is executed at 0000:MONITOR, which must be a 16-byte + * aligned address. The address 0000:MONITOR should be designed in + * a way that could avoid memory confliction with volume boot records + * (currently FAT12/16/32/NTFS/EXT2/3 are built in). + */ + + /* CS=code */ + + .align 16 + +restore_GRLDR_CS: +2: + call 1f +1: + popw %bx # instruction pointer of 1b + movw %cs, %ax + shrw $4, %bx + addw %ax, %bx # BX=segment value of this code + pushw %bx + pushw $(1f - 2b) + lret +1: + /* modify gdt base */ + xorl %eax, %eax + movw %bx, %ax + shll $4, %eax + addl $(gdt -2b), %eax + movl %eax, %cs:(gdt - 2b + 2) + + movw $GRLDR_CS, %bx + movw %bx, %es + movw %ds, %bx # save old DS to BX + + cli + lgdt %cs:(gdt - 2b) + movl %cr0, %eax + orb $1, %al + movl %eax, %cr0 + + movw $8, %si + movw %si, %ds + + xorl %esi, %esi + xorl %edi, %edi + movl $(0x9000 / 4), %ecx + + cld + repz movsl + + movw $16, %si + movw %si, %ds + + andb $0xfe, %al + movl %eax, %cr0 + + movw %bx, %ds # restore DS from BX + + ljmp $GRLDR_CS, $(try_next_partition - _start1) + +#endif + +# Descriptor tables +# +# NOTE: The intel manual says gdt should be sixteen bytes aligned for +# efficiency reasons. However, there are machines which are known not +# to boot with misaligned GDTs, so alter this at your peril! If you alter +# GDT_ENTRY_BOOT_CS (in asm/segment.h) remember to leave at least two +# empty GDT entries (one for NULL and one reserved). +# +# NOTE: On some CPUs, the GDT must be 8 byte aligned. This is +# true for the Voyager Quad CPU card which will not boot without +# This directive. 16 byte aligment is recommended by intel. +# + .align 16 +gdt: + /* this is the default null entry in GDT */ + .word gdt_end - gdt - 1 # gdt limit + .long (GRLDR_CS * 16 + gdt - _start1) # linear address of gdt + .word 0 # pad 2 bytes + + /* real mode data segment base=0x200000 */ + .word 0xFFFF, 0 + .byte 0x20, 0x92, 0, 0 + + /* real mode data segment base=0 */ + .word 0xFFFF, 0 + .byte 0, 0x92, 0, 0 + +gdt_end: + +helper_start: + + /* helper function begins here + * before the call: + * CF=1 : indicates an invalid or corrupt entry + * CF=0 : indicates a valid entry + * + * on return: + * CF=1 : means "below", try next entry + * CF=0,ZF=1 : means "equal", helper did nothing, so we need + * a further try to boot via NT bootsector + * CF=0,ZF=0 : means "above", helper succeeded, boot it now + */ + + sti + + /* DS=SS=0x9400 */ + pushw %cs + popw %ds + + pushw $FS_BOOT + popw %es + + /* ES=FS_BOOT */ + + /* Format of partition information blocks. + * + * Offset Length in bytes Field + * 00h 1 Set to 80h if this partition is active. + * 01h 1 Partition's starting head. + * 02h 2 Partition's starting sector and track. + * 04h(SI) 1 Partition's ID number. + * 05h 1 Partition's ending head. + * 06h 2 Partition's ending sector and track. + * 08h 4 Starting LBA. + * 0Ch 4 Partition's length in sectors. + */ + + pushw %ds /* DS=0x9400 */ + pushw %es /* ES=FS_BOOT */ + pushal + pushfw + + //pushw %si + //stc + //jc invalid_or_null /* invalid or null entry */ +#if 0 + /* backup 63 sectors at FS_BOOT:0 to 63 sectors at FS_BOOT:8000 + * this piece of code is no longer useful. + */ + pushw %es + popw %ds + xorw %si, %si + movw $0x8000, %di + movw $0x3f00, %cx + cld + repz movsw +#endif + +#if (defined(GRLDR_MBR)) || (defined(GRLDR_INSTALL)) + testb $0x80, %cs:0x02 /* boot previous MBR first? */ + jnz 2f /* no, continue to find GRLDR */ + + /* yes, call the routine for booting the previous MBR. + * it will not return on success. + * on failure, it will return here + */ + + /* before we call the routine, we will check if the user want to + * skip this step and continue to find the GRLDR + */ +#if 0 + movw $(press_space_bar_string - _start1), %si + cmpw $0x3920, %cs:0x04 + je 1f + movw $(press_hot_key_string - _start1), %si +1: + /* if timeout==0, don't display the message */ + + cmpb $0, %cs:0x03 + je 1f + call print_message /* CS:SI points to message string */ + movw $(press_any_key_string - _start1), %si + call print_message /* CS:SI points to message string */ +#else + cmpb $0, %cs:0x03 + je 1f + movw $(press_hot_key_pre - _start1), %si + call print_message + movw $(press_hot_key_name - _start1), %si + call print_message + movw $(press_hot_key_sub - _start1), %si + call print_message +#endif +1: + call sleep_5_seconds + jc 1f /* desired hot-key pressed */ + call boot_prev_mbr //Error_modify +1: + orb $0x80, %cs:0x02 +2: +#endif + popfw + popal + popw %es + popw %ds + + pushw %ds /* DS=0x9400 */ + pushw %es /* ES=FS_BOOT */ + pushal + pushfw + + //cmpb $0x0e, 0x00 /* EBIOS previously checked OK? */ + //jbe 1f /* yes, skip the check */ + movb $0x02, 0x00 /* initialise this byte to 0x02 */ + movb $0x41, %ah /* EBIOS check existence */ + movw $0x55aa, %bx + int $0x13 + jc 1f /* No EBIOS */ + cmpw $0xaa55, %bx + jnz 1f /* No EBIOS */ + testb $1, %cl + jz 1f /* No EBIOS */ + movb $0x42, 0x00 /* LBA supported, save 0x42 to 9400:0000 */ +1: + popfw + popal + popw %es + popw %ds + + pushw %ds /* DS=0x9400 */ + pushw %es /* ES=FS_BOOT */ + pushal + pushfw + + pushaw + cmpw $0x1c2, %si + jne 1f + /* initialize partition number and partition entries end */ + movw $0xffff, 0x1bc /* hd partition number */ + movw $0x01fe, 0x1ba /* partition entries end */ +1: + pushw %dx + testb %dl, %dl + jns 1f /* floppy, use normal CHS mode */ + cmpw $0x1f2, %si /* is it a primary partition? */ + ja 2f /* no, it is an extended partition */ + movl 4(%si), %eax + movl %eax, 8(%si) /* parent part_start saved here */ + xorl %eax, %eax + movl %eax, 4(%si) /* current part_start(0) saved here */ +2: + //movl -4(%si), %eax + //cmpl $0xfffffe00, %eax /* check the starting CHS */ + //jb 1f /* use normal CHS mode */ + + /* get CHS total number of sectors */ + pushw %es + pushw %ds + movb $8, %ah /* read drive parameters changes DX,ES,DI */ + //movb $0x80, %dl /* BIOS drive number is in DL */ + int $0x13 + popw %ds + popw %es + jc 3f + testb $63, %cl + jnz 2f +3: + /* failed to get drive parameters, use maximum value */ +#if 0 + popw %dx + pushw %dx + cmpb $0x80, %dl + jne 3f + pushw %ds + xorw %ax, %ax + movw %ax, %ds + cmpb $0, 0x475 + popw %ds + je 3f + +3: +#endif + movw $0xffff, %cx + movw %cx, %dx +2: + //xorl %eax, %eax + movzbl %dh, %eax + incw %ax + movzbl %cl, %edx + andb $63, %dl + mulw %dx /* DX=0, AX=product */ + shrb $6, %cl + xchgb %cl, %dh + xchgb %ch, %dl + incw %dx /* DX=total cylinders */ + mull %edx /* EDX=0, EAX=product */ + + /* check the partition's starting LBA */ + movl 4(%si), %ebx + addl 8(%si), %ebx /* EBX=start_LBA */ + + testl %ebx, %ebx + je 1f + + ///* we always use LBA mode */ + ////cmpl %eax, %ebx + ////jb 1f /* use normal CHS mode */ + cmpb $0x42, 0x00 /* EBIOS present? */ + jne 1f /* no, skip the LBA mode int13 call */ + + /* load partition boot track to FS_BOOT using LBA mode */ + popw %ax /* AX=orig DX which holds drive number DL */ + pushw %ax + pushl %edx /* EDX=0, higher 4 bytes of starting LBA */ + pushl %ebx /* lower 4 bytes of starting LBA */ + pushw %es /* ES=FS_BOOT */ + pushw %dx /* DX=0, ES:0 is the buffer */ + //pushl $0x003f0010 /* transfer 63 sectors */ + pushw $0x3f /* transfer 63 sectors */ + pushw $0x10 /* size of disk address packet */ + xchgw %ax, %dx /* restore drive number DL from AL */ + movb $0x42, %ah /* extended read */ + movw %sp, %si /* DS:SI points to disk address packet */ + int $0x13 /* ignore the read failure */ + popaw /* adjust the stack */ + jc 1f + popw %dx + popaw + + //popw %ax /* discard flags in the stack */ + popfw + clc + + pushfw /* push new flags with CF=0 */ + pushaw + pushw %dx +1: + popw %dx + popaw + + popfw + popal + popw %es + popw %ds + + pushw %ds /* DS=0x9400 */ + pushw %es /* ES=FS_BOOT */ + pushal + pushfw + + pushw %si + + pushfw + pushw %es +//--------------------------------------------------------- + /* print "Try (hd0,n): " or "Try (fd0): "*/ + pushw %ds + popw %es /* ES=DS=CS=0x9400 */ + + cld /* for stosb */ + xorw %ax, %ax + testb %dl, %dl + jns 1f /* floppy */ + /* hard drive */ +#if 0 + movw %si, %ax + subw $0x1c2, %ax + shrw $4, %ax + cmpw $0x1fe, %si /* is in MBR? */ + jb 1f /* yes */ + /* no, it is an entry in an extended partition */ + movb $0xFC, (add_sub_si + 2 - _start1) /* addw $-4, %si */ + incw 0x1bc /* logical partition number */ + movb 0x1bc, %al +#else + incw 0x1bc /* logical partition number */ + movw 0x1bc, %ax + cmpb $4, %al + jb 1f + movb $0xFC, (add_sub_si + 2 - _start1) /* addw $-4, %si */ +#endif +1: + /* AL=partition number, AH=0 */ + pushw %ax + + movw $(partition_message - _start1 + 7), %di /* drive type */ + movb %dl, %al + shrb $7, %al /* drive type: floppy=0, harddrive=1 */ + shlb $1, %al + addw $0x6466, %ax /* "fd" or "hd" */ + stosw + movb %dl, %al + andb $0x7f, %al /* drive number */ + aam /* convert binary to decimal, AH=high, AL=low */ + testb %ah, %ah + jz 1f + addb $0x30, %ah + movb %ah, (%di) + incw %di +1: + addb $0x30, %al + stosb + + popw %ax + + testb %dl, %dl + jns 2f /* floppy */ + /* this is a hard drive, the partition number is in AL */ + movb $0x2c, (%di) /* "," */ + incw %di + aam /* convert binary to decimal, AH=high, AL=low */ + testb %ah, %ah + jz 1f + addb $0x30, %ah + movb %ah, (%di) + incw %di +1: + addb $0x30, %al + stosb +2: + movl $0x00203a29, (%di) /* "): \0" */ + + movw $(partition_message - _start1), %si + call print_message /* CS:SI points to message string */ +//--------------------------------------------------------- + popw %es + popfw + //stc + jc invalid_or_null /* invalid or null entry */ + + xorw %si, %si + pushw %es + popw %ds + + /* DS=ES=FS_BOOT */ + + /* First, check for ext2 filesystem */ + + cmpw $0xEF53, 0x438 /* Magic signature */ + jnz 1f + xorl %eax, %eax + cmpl %eax, 0x400 /* s_inodes_count */ + jz 1f + cmpl %eax, 0x404 /* s_blocks_count */ + jz 1f +// cmpw %ax, 0x458 /* s_inode_size, usually 0x80 */ +// jz 1f + cmpl %eax, 0x420 /* s_blocks_per_group */ + jz 1f + cmpl %eax, 0x428 /* s_inodes_per_group */ + jz 1f + movl 0x414, %eax /* s_first_data_block */ + movw %ax, %bx /* BX=1 for 1K block, 0 otherwise */ + shrl $1, %eax /* must be 0 */ + jnz 1f + movl 0x418, %ecx /* s_log_block_size */ + cmpl $4, %ecx /* max size of block is 16K */ + ja 1f + negw %cx /* CF clear for 1K block, set otherwise */ + adcw %ax, %bx /* EAX=0 */ + decw %bx + jnz 1f + + /* BX = 0 */ + + /* super block is sane */ + + //pushw %cs + //popw %ds + ///* DS=SS=0x9400 */ + ///* ES=FS_BOOT */ + cld + movw $0x800, %si + xorw %di, %di + movw $0x0200, %cx /* yes, we need 2 sectors if enable debug */ + + repz cs movsw /* CS segment override prefix(=0x2E) */ + + /* modify the boot partition number */ + + /* the boot partition number is at offset 0x25 for ext2 */ + + testb %dl, %dl + jns 3f /* no modification for floppy */ + movw $0x25, %di + movw %cs:0x1bc, %ax /* partition number */ + stosb +3: + /* fix for ext2 partition: hidden_sectors, offset 0x1c */ + popw %si /* DI points to old entry in MBR */ + pushw %si + xorl %eax, %eax /* let hidden_sectors=0 for floppy */ + testb %dl, %dl + jns 3f /* floppy */ + movl %cs:4(%si), %eax + addl %cs:8(%si), %eax +3: + movl %eax, %es:0x1c(%bx) /* adjust hidden_sectors for EXT2 */ + + /* fix for ext2 partition: EBIOS indicator, offset 0x02 */ + + movb %cs:0x00(%bx), %al + movb %al, %es:0x02(%bx) + + /* fix for ext2 partition: sectors per block, offset 0x0d */ + /* fix for ext2 partition: bytes per block, offset 0x0e */ + /* fix for ext2 partition: dwords per block(dpb), offset 0x14 */ + /* fix for ext2 partition: square of dpb, offset 0x10 */ + + movb %es:0x418, %cl /* s_log_block_size */ + //incw %cx + movl $2, %eax + shlw %cl, %ax + movb %al, %es:0x0d(%bx) + shlw $9, %ax /* block size is word wide */ + movw %ax, %es:0x0e(%bx) + shrw $2, %ax + movl %eax, %es:0x14(%bx) + addb $8, %cl + shll %cl, %eax + movl %eax, %es:0x10(%bx) + + + /* fix for ext2 partition: sectors per track, offset 0x18 */ + /* fix for ext2 partition: number of heads, offset 0x1a */ +#if 1 + pushw %ds + pushw %es + pushw %bx + pushw %dx + movb $8, %ah /* read drive parameters changes DX,ES,DI,BX */ + movb $0x80, %dl /* BIOS drive number is in DL */ + int $0x13 + movw %dx, %ax + popw %dx + popw %bx + popw %es + popw %ds + jc 3f + andb $63, %cl + jz 3f + movb %cl, %es:0x18(%bx) + shrw $8, %ax + incw %ax + movw %ax, %es:0x1a(%bx) +3: +#else + testb %dl, %dl + jns 3f /* floppy */ + popw %di /* DI points to old entry in MBR */ + pushw %di + movw %cs:1(%di), %ax + andb $63, %ah + movb %ah, %es:0x18 + xorb %ah, %ah + incw %ax + movw %ax, %es:0x1a +3: +#endif + + /* fix for ext2 partition: s_inodes_per_group, offset 0x28 */ + movl %es:0x428, %eax /* s_inodes_per_group */ + movl %eax, %es:0x28(%bx) + + /* fix for ext2 partition: block number for group descriptors, offset 0x2c */ + /* At which block the group descriptors begin? */ + movl %es:0x414, %eax /* s_first_data_block */ + incw %ax + movl %eax, %es:0x2c(%bx) + + /* fix for ext2 partition: on error go back to supervisor, offset 0x01fc */ + movw $0x01fc, %si + movw %si, %di + lodsw + cmpw $0xFEEB, %ax /* EB FE is jmp back to itself(infinite loop) */ + jnz 3f + decw %ax /* AL=0xEA, ljmp */ + stosb + //movw $(try_next_partition - _start1), %ax + movw $MONITOR, %ax + stosw + //movw %cs, %ax /* AX=0x9400 */ + xorw %ax, %ax + stosw /* the last byte 0x00 is in the next sector! */ +// addw $0x0f, %di +// movw $(restore_GRLDR_CS - _start1), %si +// movw $((gdt_end - restore_GRLDR_CS) / 4), %cx +// .byte 0x2e /* %cs: prefix */ +// repz movsl +3: + + movw $(EXT2_message - _start1), %si + call print_message /* CS:SI points to message string */ + + clc + jmp move_entries_and_return + +1: + #; It is not EXT2. Check for FAT12/16/32/NTFS. + + /* DS=ES=FS_BOOT */ + + cmpw $0x200, 0x0b(%si) /* bytes per sector */ + jne 1f /* not a normal BPB */ + movb 0x0d(%si), %al /* sectors per cluster */ + testb %al, %al + jz 1f /* invalid if = 0 */ + movb %al, %cl + movw $128, %ax + divb %cl /* quo=AL, rem=AH */ + testb %ah, %ah + jnz 1f /* invalid if not 2^n */ + movw 0x18(%si), %ax /* sectors per track */ + testw %ax, %ax + jz 1f /* invalid if = 0 */ + cmpw $63, %ax + ja 1f /* invalid if > 63 */ + movw 0x1a(%si), %ax /* number of heads */ + decw %ax /* Max head number, should be a byte */ + testb %ah, %ah /* should be 0 */ + jnz 1f /* invalid if number of heads > 256 */ + cmpb $0xf0, 0x15(%si) /* media descriptor */ + jb 1f + + cmpb $0x42, %cs:0x00 /* EBIOS present? */ + jne 3f + //movb $0x41, %ah /* EBIOS check existence */ + //movw $0x55aa, %bx + //int $0x13 + //jc 3f /* No EBIOS */ + //cmpw $0xaa55, %bx + //jnz 3f /* No EBIOS */ + //testb $1, %cl + //jz 3f /* No EBIOS */ + movb $0x0e, 0x02(%si) /* force LBA */ +3: + cld + movw $0x0600, %bx /* FAT12/FAT16 */ + movw $0x003c, %cx /* FAT12/FAT16 */ + + movb 0x10(%si), %al /* number of FATs(NTFS:0, FAT:1,2) */ + cmpb $2, %al + ja 1f /* abnormal FAT */ + movw 0x11(%si), %ax /* max root entries */ + testw %ax, %ax + jnz 2f /* FAT12/FAT16 */ + + /* FAT32 or NTFS */ + movw 0x13(%si), %ax /* total sectors(small) */ + testw %ax, %ax + jnz 1f /* invalid FAT32 BPB */ + movw 0x16(%si), %ax /* sectors per FAT(small) */ + testw %ax, %ax + jnz 1f /* invalid FAT32 BPB */ + movb 0x10(%si), %al /* number of FATs(NTFS:0, FAT:1,2) */ + testb %al, %al + jz 8f + + /* FAT32 */ + movl 0x20(%si), %eax /* FAT32 total sectors */ + testl %eax, %eax + jz 1f + movl 0x24(%si), %eax /* FAT32 sectors per FAT */ + testl %eax, %eax + jz 1f + movw $0x0400, %bx /* FAT32 */ + movw $0x0058, %cx /* FAT32 */ + movw $(FAT32_message - _start1), %si + jmp 7f +8: + /* NTFS */ + movl 0x20(%si), %eax /* FAT32 total sectors */ + testl %eax, %eax + jnz 1f + //movw 0x11(%si), %ax /* max root entries */ + //testw %ax, %ax + //jnz 1f + movw 0x0e(%si), %ax /* reserved sectors */ + testw %ax, %ax + jnz 1f + + /* BUG fix for extended NTFS partition */ + popw %si /* SI points to old entry in MBR */ + pushw %si + xorl %eax, %eax /* let hidden_sectors=0 for floppy */ + testb %dl, %dl + jns 3f /* floppy */ + movl %cs:4(%si), %eax + addl %cs:8(%si), %eax +3: + movl %eax, 0x1c /* adjust hidden_sectors for NTFS */ + + movb %dl, 0x24 /* adjust drive number for NTFS */ + +#if 1 + // Load NTFS using internal boot sector at 0xA00 + + movw $(NTFS5_message - _start1), %si + call print_message /* CS:SI points to message string */ + + movw $0xA00, %bx + movw $0x52, %cx + + pushw %cs + popw %ds + + /* DS=SS=0x9400 */ + /* ES=FS_BOOT */ + + movw %bx, %si + xorw %di, %di + lodsw + stosw + addw %cx, %si + addw %cx, %di + movw $0x800, %cx + subw %di, %cx + + repz movsb + + /* modify the boot partition number */ + movb %es:1, %al + addb $5, %al /* AL is less than 0x80 */ + cbw /* AH=0 */ + xchgw %ax, %di /* move AX to DI */ + movb $0xff, %al /* partition=whole drive for floppy */ + testb %dl, %dl + jns 3f /* no modification for floppy */ + movb 0x1bc, %al /* partition number */ +3: + stosb + + /* fix for NTFS partition: on error go back to supervisor, offset 0x01fa */ + + movw $0x01fa, %di + movw %es:(%di), %ax + cmpw $0xFEEB, %ax /* EB FE is jmp back to itself(infinite loop) */ + jnz 3f + decw %ax /* AL=0xEA, ljmp */ + stosb + //movw $(try_next_partition - _start1), %ax + movw $MONITOR, %ax + stosw + + //movw %cs, %ax /* AX=0x9400 */ + xorw %ax, %ax + stosw /* DI=0x01ff */ +3: + clc + jmp move_entries_and_return + +#else + + /* modify the boot partition number */ + movb $0xB6, %al /* 0xB6="MOV DH,imm8" */ + movb %cs:0x1bc, %ah + testb %dl, %dl + js 3f + movb $0xff, %ah /* partition number for floppy is whole drive */ +3: + /* before the call: + * AH= partition number + * AL= 0xB6 ; 0xB6 is opcode of "MOV DH,imm8" + * DL= drive number + * + * on return: CF=0 if there is NTFS boot record; + * CF=1 otherwise. + * CF of flags_orig on the stack will set if CF=1 + */ + + call modify_NTFS_boot_record + //jnc move_entries_and_return + //movw $(NTFS5_message - _start1), %si + ////jmp 4f + //call print_message /* CS:SI points to message string */ + //stc + jmp move_entries_and_return + +#endif + +2: + /* FAT12/FAT16 */ + movb 0x10(%si), %al /* number of FATs(NTFS:0, FAT:1,2) */ + testb %al, %al + jz 1f + movw 0x16(%si), %ax /* sectors per FAT(small) */ + testw %ax, %ax + jz 1f + movw $(FAT16_message - _start1), %si + cmpw $12, %ax + ja 7f + movw $(FAT12_message - _start1), %si +7: + /* BUG fix for extended FAT12/16/32 partition */ + popw %di /* DI points to old entry in MBR */ + pushw %di + xorl %eax, %eax /* let hidden_sectors=0 for floppy */ + testb %dl, %dl + jns 3f /* floppy */ + movl %cs:4(%di), %eax + addl %cs:8(%di), %eax +3: + movl %eax, 0x1c /* adjust hidden_sectors for FAT */ + + call print_message /* CS:SI points to message string */ + pushw %cs + popw %ds + /* DS=SS=0x9400 */ + /* ES=FS_BOOT */ + movw %bx, %si + xorw %di, %di + lodsw + stosw + addw %cx, %si + addw %cx, %di + movw $0x0200, %cx + subw %di, %cx + repz movsb + /* modify the boot partition number */ + movb %es:1, %al + addb $5, %al /* AL is less than 0x80 */ + cbw /* AH=0 */ + xchgw %ax, %di /* move AX to DI */ + movb $0xff, %al /* partition=whole drive for floppy */ + testb %dl, %dl + jns 3f /* no modification for floppy */ + movb 0x1bc, %al /* partition number */ +3: + stosb + + /* fix for FAT12/16/32 partition: on error go back to supervisor, offset 0x01fa */ + //pushw %es + //popw %ds + movw $0x01fa, %di + //movw %di, %si + //lodsw + movw %es:(%di), %ax + cmpw $0xFEEB, %ax /* EB FE is jmp back to itself(infinite loop) */ + jnz 3f + decw %ax /* AL=0xEA, ljmp */ + stosb + //movw $(try_next_partition - _start1), %ax + movw $MONITOR, %ax + stosw + //movw %cs, %ax /* AX=0x9400 */ + xorw %ax, %ax + stosw /* DI=0x01ff */ +3: + + clc + jmp move_entries_and_return +1: + #; It is not FAT12/16/32/NTFS. Check for extended partition. + + /* DS=ES=FS_BOOT */ + + pushw %cs + popw %es + + /* ES=SS=0x9400 */ + /* DS=FS_BOOT */ + + popw %si + pushw %si + cmpb $0x05, %es:(%si) /* extended */ + je 1f + cmpb $0x0f, %es:(%si) /* Win95 extended (LBA) */ + je 1f + cmpb $0x15, %es:(%si) /* hidden extended */ + je 1f + cmpb $0x1f, %es:(%si) /* hidden win95 extended (LBA) */ + je 1f + cmpb $0x85, %es:(%si) /* Linux extended */ + je 1f + movw $(non_MS_message - _start1), %si +4: + call print_message /* CS:SI points to message string */ + stc + jmp move_entries_and_return +1: + /* extended partition entry */ + cmpw $0x1fe, %si + jb 1f + decw %es:0x1bc /* count the partitions in extended zone */ +1: + movw $(extended_message - _start1), %si + call print_message /* CS:SI points to message string */ + movw $0x1be, %si + movw $4, %cx +5: + //xorl %eax, %eax + //cmpl %eax, (%si) + //jnz 2f + movl (%si), %eax + cmpw 2(%si), %ax /* Is EAX high word equal to AX? */ + jnz 2f + cmpb %al, %ah /* Is AL=AH? */ + jnz 2f + + /* now all 4 bytes in EAX are equal to each other. */ + cmpl %eax, 4(%si) + jnz 2f + cmpl %eax, 8(%si) + jnz 2f + cmpl %eax, 12(%si) + jz 3f /* entry with 16 dups of a byte means empty entry */ +2: + movb (%si), %al + shlb $1, %al + jnz 1f + //jnz 3f /* invalid entry is treated as empty entry */ + movb 2(%si), %al + and $63, %al /* starting sector number */ + jz 1f + //jz 3f /* invalid entry is treated as empty entry */ + movb 6(%si), %al + and $63, %al /* ending sector number */ + jz 1f + //jz 3f /* invalid entry is treated as empty entry */ + movl 8(%si), %eax /* starting LBA */ + testl %eax, %eax + jz 1f + //jz 3f /* invalid entry is treated as empty entry */ + movl 12(%si), %eax /* total number of sectors in partition */ + testl %eax, %eax + jz 1f +3: + addw $16, %si + loop 5b + cmpw $0xaa55, (%si) + jnz 1f + + movw $0x1be, %si + movw $4, %cx + popw %bx /* the old SI points to extended partition ID in MBR */ + pushw %bx +5: +#if 1 + //xorl %eax, %eax + //cmpl %eax, (%si) + //jnz 2f + movl (%si), %eax + cmpw 2(%si), %ax /* Is EAX high word equal to AX? */ + jnz 2f + cmpb %al, %ah /* Is AL=AH? */ + jnz 2f + + /* now all 4 bytes in EAX are equal to each other. */ + cmpl %eax, 4(%si) + jnz 2f + cmpl %eax, 8(%si) + jnz 2f + cmpl %eax, 12(%si) + jz 3f /* entry with 16 dups of a byte means empty entry */ +2: + /* now it is an acceptable entry */ + movw %es:0x1ba, %di /* partition entries end */ + /* ensure our stack not to be overwritten by the partition entries */ + cmpw $0x83f0, %di + ja 3f /* try next */ + /* ensure our code not to be overwritten by the partition entries */ + cmpw $0x3fe, %di + jne 6f + /* more entries stores at 0x9be00-0x9c3ff */ + movw $0x7e00, %di + movw %di, %es:0x1ba +6: + addw $16, %es:0x1ba /* increment partition entries end */ + + lodsl + stosl + lodsl + stosl + + xchgw %ax, %dx /* save AL(the partition ID)to DL */ + + lodsl + xchgl %eax, %edx /* restore AL from DL(the partition ID) + * and save EAX to EDX */ + cmpb $0x05, %al + je 6f + cmpb $0x0f, %al + je 6f + cmpb $0x15, %al + je 6f + cmpb $0x1f, %al + je 6f + cmpb $0x85, %al + je 6f + /* normal partition, copied to 0x941fe-0x943fb */ + addl %es:4(%bx), %edx /* current partition start */ +6: + /* extended partition, copied to 0x941fe-0x943fb */ + xchgl %eax, %edx /* restore or update EAX from EDX */ + stosl + lodsl /* adjust SI only */ + movl %es:8(%bx), %eax /* parent partition start ... */ + stosl /* ... stored here */ + jmp 2f +3: + addw $16, %si +#endif + //. = 5b + 0x7c +2: + loop 5b + + /* extended partition is not a normal one, so set carry to try next */ + stc + jmp move_entries_and_return + +invalid_or_null: +1: + movw $(invalid_message - _start1), %si + call print_message /* CS:SI points to message string */ + stc + +move_entries_and_return: + popw %si + pushfw + pushw %cs + popw %ds + pushw %cs + popw %es + pushw %si + cmpw $0x202, %si + jne 1f + /* move entries backward 1 entry */ + movw $0x1fe, %di + movw $0x20e, %si + movw $0xf8, %cx /* 0x1f0 bytes = 0xf8 words */ + cld /* move upward */ + repz movsw + movw $0x3ee, %di + movw $0x7e00, %si + movw $0x8, %cx /* 0x10 bytes = 0x8 words */ + cld /* move upward */ + repz movsw + movw $0x7e00, %di + movw $0x7e10, %si + movw $0x2f8, %cx /* 0x5f0 bytes = 0x2f8 words */ + cld /* move upward */ + repz movsw + cmpw $0x7e10, 0x1ba + jne 2f + movw $0x40e, 0x1ba +2: + subw $0x10, 0x1ba + +1: + popw %si + movw $0x1ff, (add_sub_si + 5 - _start1) + cmpw $0x1fe, 0x1ba + jne 1f + decw (add_sub_si + 5 - _start1) + cmpw $0x31b2, %si /* floppy? */ + je 1f /* yes */ + cmpw $0x1f2, %si + ja 2f /* logical partition */ + jb 1f /* primary partition 0, 1, 2 */ + /* primary partition 3 */ + cmpw $0x0003, 0x1bc /* are there any logical partitions? */ + ja 1f /* yes */ +2: +inc_hard_drive: + + /* all partitions on the drive have been checked, try next drive. + * + * the current stack is: + * + * SP + 38 : DS + * SP + 36 : ES + * SP + 32 : EAX + * SP + 28 : ECX + * SP + 24 : EDX + * SP + 20 : EBX + * SP + 16 : ESP_temp + * SP + 12 : EBP + * SP + 8 : ESI + * SP + 4 : EDI + * SP + 2 : flags_orig + * SP : flags + * + */ + + /* get total hard drives */ + xorw %ax, %ax + movw %ax, %ds + movb 0x475, %dh + pushw %cs + popw %ds +// cmpb $16, %dh +// jnb 2f +// movb $16, %dh +//2: + orb $0x80, %dh /* CF=0, DH=Max harddrive number + 1 */ + //xchgw %ax, %cx /* CL=Max harddrive number + 1, CH=0 */ + movw %sp, %bp + movb 24(%bp), %dl /* BIOS drive number is in DL */ +2: + jnc 3f + call print_message /* CS:SI points to message string */ + movw $(drive_number_string - _start1), %si + movb %dl, %al + andb $0x7f, %al + aam /* AH=high decimal, AL=low decimal */ + addw $0x3030, %ax + xchgb %al, %ah + movw %ax, 9(%si) + call print_message /* CS:SI points to message string */ +3: + incw %dx + cmpb %dh, %dl + jnb 2f /* all drives checked, try floppy finally */ + + pushw %bx + pushw %dx + pushw %es + movb $8, %ah /* read drive parameters changes DX, ES, DI */ + int $0x13 + popw %es + jc 3f /* try next hard drive */ + //xchgw %ax, %cx /* this moves CL to AL */ + andb $63, %cl /* CL=sectors per track, CF cleared */ + stc + jz 3f /* try next hard drive */ + popw %dx /* get DL */ + popw %bx + movb %dl, %ch /* DL saved at BP high byte in the stack */ + pushw %cx /* push new BX onto stack */ + pushw %dx + //movb $0x02, %ah + //movw %ax, %si /* save AX to SI: read 1 track */ + movw $0x201, %ax /* read 1 sector */ + movw $0x7e00, %bx /* read MBR to 9400:7e00 */ + movw $1, %cx + //popw %dx + //pushw %dx + xorb %dh, %dh + stc + int $0x13 + sti +3: + popw %dx + popw %bx /* BL=sectors per track, BH=DL */ + + //movw %si, %bx /* BL=sectors per track */ + + movw $(Error_while_reading_string - _start1), %si + jc 2b /* read failure, try next hard drive */ + + /* on seccessful return, should be: ah=0 for OK, al=1 for 1 sector */ + //decw %ax /* some BIOSes return incorrect AL */ + testb %ah, %ah + stc + jnz 2b + + /* The new partition table might be empty or invalid. + * Move the new partition table onto the old one while checking + */ + + //movb %dl, %bh /* DL saved at BP high byte in the stack */ + + movw $0x7fbe, %si + movw $0x01be, %di + +3: + cmpw $0x1fe, %di + jnb 3f + + xorl %ecx, %ecx + + lodsl + stosl + orl %eax, %ecx + lodsl + stosl + orl %eax, %ecx + lodsl + stosl + orl %eax, %ecx + lodsl + stosl + orl %eax, %ecx + jecxz 3b /* null entry, check next */ + + //lodsw + //stosw + movb -16(%si), %al + shlb $1, %al + stc + xchgw %ax, %si /* save SI to AX */ + movw $(partition_boot_indicator_string - _start1), %si + jnz 2b + xchgw %ax, %si /* restore SI from AX */ + //lodsw + //stosw + movb -14(%si), %al + andb $63, %al + stc + xchgw %ax, %si /* save SI to AX */ + movw $(partition_sectors_per_track_string - _start1), %si + jz 2b + xchgw %ax, %si /* restore SI from AX */ + //lodsw + //stosw + //lodsw + //stosw + movb -10(%si), %al + andb $63, %al + stc + xchgw %ax, %si /* save SI to AX */ + movw $(partition_sectors_per_track_string - _start1), %si + jz 2b + xchgw %ax, %si /* restore SI from AX */ + //lodsl + //stosl + movl -8(%si), %eax + testl %eax, %eax + stc + xchgw %ax, %si /* save SI to AX */ + movw $(partition_start_sector_string - _start1), %si + jz 2b + xchgw %ax, %si /* restore SI from AX */ + + //lodsl + //stosl + movl -4(%si), %eax + testl %eax, %eax + stc + xchgw %ax, %si /* save SI to AX */ + movw $(partition_end_sector_string - _start1), %si + jz 2b + xchgw %ax, %si /* restore SI from AX */ + + jmp 3b +3: + cmpw $0xAA55, (%si) + stc + xchgw %ax, %si /* save SI to AX */ + movw $(no_boot_signature_string - _start1), %si + jnz 2b + xchgw %ax, %si /* restore SI from AX */ + //lodsw + //stosw /* store boot signature */ + + /* Now the partition table is OK */ + + movw %bx, 12(%bp) /* adjust BP in the stack */ + + movw $0x1b2, 8(%bp) /* adjust SI in the stack */ + + /* temp change the code: call self_modify_once + * + * "call self_modify_once" at add_sub_si is: + * + * .byte 0xE8 + * .word (self_modify_once - add_sub_si - 3) + * + */ + movb $0xE8, (add_sub_si - _start1) + movw $(self_modify_once - add_sub_si - 3), (add_sub_si + 1 - _start1) + + /* initialize partition number and partition entries end */ + movw $0xffff, 0x1bc /* hd partition number */ + movw $0x01fe, 0x1ba /* partition entries end */ + + jmp 1f +2: + /* get here if all drives have been checked */ +#if 0 + movw $0x202, 8(%bp) /* adjust SI in the stack */ + + /* restore the original code: addw $-4, %si */ + movw $0xC683, (add_sub_si - _start1) /* 0x83, 0xC6 */ + movb $0xFC, (add_sub_si + 2 - _start1) /* 0xFC */ +#endif + //-------------------------------------------------------------------- + /* change the code: jmp Error_modify + * + * "jmp Error_modify" at Error_or_prev_MBR: + * + * .byte 0xE9 + * .word (Error_modify - Error_or_prev_MBR - 3) + * + */ + movb $0xE9, (Error_or_prev_MBR - _start1) + movw $(Error_modify - Error_or_prev_MBR - 3), (Error_or_prev_MBR + 1 - _start1) + //-------------------------------------------------------------------- + + //-------------------------------------------------------------------- + /* floppy search disabled ? */ +#if 0 + testb $1, 0x02 /* test bit0 of the third byte */ + jz 1f /* zero means floppy search enabled */ + /* 0x1fd or below means disable floppy search */ + decw (add_sub_si + 5 - _start1) +#else + movb 0x02, %al + andb $0x01, %al + subb %al, (add_sub_si + 5 - _start1) +#endif + //-------------------------------------------------------------------- + +1: +#if 0 + popfw + lahf /* Load Flags into AH Register. */ + /* AH = SF:ZF:xx:AF:xx:PF:xx:CF */ + /* CF will be moved to ZF */ + movb %ah, %al + andb $1, %al /* CF=0 */ + shlb $6, %al /* move CF to ZF */ + popfw + lahf /* Load Flags into AH Register. */ + /* AH = SF:ZF:xx:AF:xx:PF:xx:CF */ + andb $0xbf, %ah /* 0xbf= binary 1011 1111. It clears ZF */ + orb %al, %ah +#else + popw %ax /* AX=Flags */ + popfw /* Flags_orig */ + lahf /* Load Flags_orig into AH Register. */ + /* AH = SF:ZF:xx:AF:xx:PF:xx:CF */ + shlb $2, %ah + rorw $2, %ax /* move CF of Flags to ZF of Flags_orig */ +#endif + + sahf /* update flags */ + /* current CF is the CF of Flags_orig */ + /* current ZF is the CF of Flags */ + jc 1f /* CF=1 means failed in loading bootsector */ + popal /* get drive number DL */ + pushal + pushfw + cmpb $0xff, %cs:0x06 + jz 2f + movb %cs:0x1bc, %dh + testb %dl, %dl + js 3f + movb $0xff, %dh /* partition # for floppy is "whole drive" */ +3: + cmpw %cs:0x06, %dx + jz 2f + popfw + stc + pushfw +2: + popfw +1: + popal + popw %es + popw %ds + ret + +self_modify_once: + /* when we get here, SI should be 0x1b2, and BP high holds DL */ + addw $12, %si /* 0x83, 0xC6, 0x0C */ + movw %bp, %ax + movb %ah, %dl + + /* note: DS=0x9400 */ + + /* restore the original code: addw $12, %si */ + movw $0xC683, (add_sub_si - _start1) /* 0x83, 0xC6 */ + movb $0x0C, (add_sub_si + 2 - _start1) /* 0x0C */ + ret + +Error_modify: + cmpb $0xff, %cs:0x06 /* preferred drive? */ + jz 1f /* not active. Turn to the final step. */ + + /* preferred drive is already handled, so de-activate it now. */ + movb $0xff, %cs:0x06 + + /* we will do the second pass, from drive 0x80. */ + movb $0x7f, %dl /* this will become 0x80 after inc. */ + + /* pass "error" to PUSHF, simulating a load failure, in order + * to try the first entry after return from the helper function. + */ + + stc + + pushw $(helper_call + 3 - _start1) /* return address */ + pushw %cs /* 0x9400, it is for DS. */ + pushw $FS_BOOT /* 0x0d00, it is for ES. */ + pushal + //pushl %eax + //pushl %ecx + //pushl %edx + //pushl %ebx + //pushl %esp + //pushl %ebp + //pushl %esi + //pushl %edi + pushfw /* CF=1 */ + pushfw + + pushw %cs + popw %es /* ES=0x9400 */ + + /* redo from start: DL will be 0x80 after inc. */ + jmp inc_hard_drive +1: +boot_prev_mbr: + + /* prepare to boot the previous MBR */ + + /* at this moment DS=0x9400, ES=$FS_BOOT or ES=0x9400 */ + xorw %ax, %ax + //pushw %ax /* AX=0, for the segment of 0000:7c00 */ + movw %ax, %es /* ES=0x0000 */ + movw %ax, %ds /* DS=0x0000 */ + pushw %ds + pushw %es + movw $0x0202, %ax /* read 2 sectors ... */ + movw $0x7A00, %bx /* ... to 0000:7A00 */ + //pushw %bx /* BX=0x7c00, for the offset of 0000:7c00 */ + movw $0x0001, %cx /* from the first sector ... */ + movw $0x0080, %dx /* ... of the first hard drive */ + stc + int $0x13 + sti + popw %es + popw %ds + jc 1f + testb %ah, %ah + jnz 1f + cmpw $0xAA55, 0x7dfe + jne 1f + cmpw $0xAA55, 0x7bfe + jne 1f + + /* has a valid partition table ? */ + movw $0x7dbe, %si +3: + cmpw $0x7dfe, %si + jnb 3f /* partition table is OK */ + movw $4, %cx + + movw %si, %di +2: + lodsl + negl %eax + jc 2f + loop 2b + /* empty entry, check next */ + jmp 3b +2: + /* non-empty entry */ + movw %di, %si + + lodsw + shlb $1, %al + jnz 2f + lodsw + andb $63, %al + jz 2f + lodsw + lodsw + andb $63, %al + jz 2f + lodsl + negl %eax + jnc 2f + lodsl + negl %eax + jc 3b +2: + stc /* invalid partition table */ +3: + pushfw + + /* disable the boot of non-MBR bootsector ? */ + testb $2, %cs:0x02 /* test bit1 of the third byte */ + jz 2f /* zero means non-MBR enabled */ + popfw + jc 1f /* invalid partition table, print "Error" */ + + /* the partition table is valid */ + pushfw + +2: + /* the check passed, and the boot is permitted */ + popfw + + jc 2f /* invalid partition table */ + + /* use partition table in MBR instead */ + + /* copy 72 bytes at 0000:7bb8 to 0000:7db8 */ + + movw $0x7bb8, %si + movw $0x7db8, %di + movw $36, %cx + cld + repz movsw + +2: + testb $0x80, %cs:0x02 /* test bit 7 of the third byte */ + jz 2f /* zero means boot prev-MBR first */ + + movw $(Cannot_find_GRLDR_string - _start1), %si + call print_message /* CS:SI points to message string */ +//#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) + movw $(press_space_bar_string - _start1), %si + cmpw $0x3920, %cs:0x04 + je 3f + movw $0x3920, %cs:0x04 + #;movw $(press_hot_key_string - _start1), %si +3: + call print_message /* CS:SI points to message string */ + movw $(prev_MBR_string - _start1), %si + call print_message /* CS:SI points to message string */ +//#else +// movw $(press_hot_key_pre - _start1), %si +// call print_message +// movw $(press_hot_key_name - _start1), %si +// call print_message +// movw $(press_hot_key_sub - _start1), %si +// call print_message +//#endif +3: + call sleep_5_seconds + /* if hot-key is pressed, wait forever until another key is pressed. */ + movb $0xff, %cs:0x03 + jc 3b /* desired hot-key is pressed */ +2: + /* boot the previous MBR */ + + /* clear the DUCE indicator */ + movl $0, 0x5FC /* DS=ES=0 */ + + //movb $0x80, %dl + ljmp $0, $0x7c00 +1: + /* no previous MBR, print "Error" */ + ///* Note the 0000:7C00 is on the stack */ + //popw %ax /* AX=0x0000 */ + //popw %ax /* AX=0x7C00 */ + + testb $0x80, %cs:0x02 /* are we called prior to the GRLDR search? */ + jnz 1f /* no, it is a failure at last */ + /* yes, so return to the caller */ + movw $(continue_string - _start1), %si + call print_message /* CS:SI points to message string */ + call sleep_5_seconds + ret +1: + movw $(message_string_helper - _start1), %si + call print_message /* CS:SI points to message string */ +1: jmp 1b /* hang */ + +sleep_5_seconds: + /* sleep 5 seconds */ + + /* sleep forever if %cs:0x03 is 0xff */ + + /* calculate the timeout ticks */ + + pushw %ds + pushl %esi + pushl %edx + + movl $0xffffffff, %edx + movzbl %cs:0x03, %eax + cmpb $0xff, %al + je 1f + movl $18, %edx /* 18.2 ticks per second. We simply use 18. */ + mulw %dx /* EDX=0, EAX=ticks */ + xchgw %ax, %dx /* EAX=0, EDX=ticks */ +1: + xorw %ax, %ax + movw %ax, %ds + movl 0x46c, %eax /* initial tick */ + movl %eax, %ecx /* ECX=initial tick */ + testl %edx, %edx + js 1f + addl %edx, %eax /* EAX=timeout tick */ + pushl %eax + + movzbl %cs:0x03, %eax + orl %eax, %eax + jz 3f + + movw $(hot_key_timeout_pre - _start1), %si + pushl %eax + call print_message + popl %eax + + movw $(hot_key_timeout_num - _start1), %si + call print_decimal +3: + movl %ecx, %esi + addl $18, %esi + + popl %eax + jmp 3f +1: + movl %edx, %eax /* EAX=0xffffffff */ + movl %edx, %esi +3: + movl 0x46c, %ebx /* EBX=current tick */ + cmpl %ecx, %ebx + jnb 2f + + /* current tick is less than initial tick, this means the ticks have + * overflowed to the next day, and EBX is rather small. */ + xorl %ecx, %ecx + movl %edx, %eax + movl $18, %esi +2: + /* check if there is any key press. */ + pushl %eax + movb $1, %ah + int $0x16 + pushw %ax + pushfw + + movb $0x11, %ah + int $0x16 + jnz 1f + popfw + jnz 2f + + /* no, there is no key press. */ + + popw %ax + popl %eax + + cmpl %esi, %ebx + jb 4f + pushl %esi + pushl %eax + pushl %edx + + + subl %esi, %eax + xorl %edx, %edx + movl $18, %esi + divl %esi + + movw $(hot_key_timeout_num - _start1), %si + pushl %ebx + call print_decimal + popl %ebx + + popl %edx + popl %eax + popl %esi + addl $18, %esi +4: + cmpl %eax, %ebx /* timeout? */ + jbe 3b /* no, continue to wait */ + + /* timeout reached, CF=0, no key pressed. */ + popl %edx + popl %esi + popw %ds + ret +1: + popfw +2: + /* yes, there is a key press. */ +#if 0 + /* clear the keyboard buffer */ + movb $1, %ah + int $0x16 + jz 1f /* no keys, end */ + movb $0, %ah + int $0x16 /* discard the key */ + jmp 1b +1: +#endif + + /* check if it is the desired key. */ + + xorw %cs:0x04, %ax /* CF=0 */ + popw %ax + je 1f + xorw %cs:0x04, %ax /* CF=0 */ + jne 2f /* not desired, return CF=0 */ + + /* remove the desired key from the keyboard buffer. */ + + movb $0, %ah + int $0x16 /* discard the key */ + jmp 3f +1: + /* remove the desired key from the keyboard buffer. */ + + movb $0x10, %ah + int $0x16 /* discard the key */ +3: + stc /* CF=1, the desired key pressed */ +2: + popl %eax + popl %edx + popl %esi + popw %ds + ret + +out_decimal: + /* + * input: EAX = number, CS:SI = buffer + */ + + pushl %edx + pushl %ecx + pushw %bx + + movl $10, %ecx + movw %si, %bx + +1: + xorl %edx, %edx + divl %ecx + addb $'0', %dl + movb %dl, %cs:(%si) + incw %si + orl %eax, %eax + jnz 1b + + pushw %si + +1: + decw %si + cmpw %bx, %si + jbe 1f + movb %cs:(%si), %al + xchgb %al, %cs:(%bx) + movb %al, %cs:(%si) + incw %bx + jmp 1b +1: + + popw %si + + popw %bx + popl %ecx + popl %edx + ret + +print_decimal: + pushw %si + call out_decimal + +1: + cmpb $'\b', %cs:(%si) + jz 2f + movb $' ', %cs:(%si) + incw %si + jmp 1b +2: + popw %si + call print_message + ret + +#if 0 +modify_NTFS_boot_record: + + /* before the call: + * AH= partition number + * AL= 0xB6 ; 0xB6 is opcode of "MOV DH,imm8" + * DL= drive number + * + * on return: CF=0 if there is NTFS boot record; + * CF=1 otherwise. + * CF of flags_orig on the stack will set if CF=1 + */ + + /* + * + * the current stack is: + * + * SP + 40 : DS + * SP + 38 : ES + * SP + 34 : EAX + * SP + 30 : ECX + * SP + 26 : EDX + * SP + 22 : EBX + * SP + 18 : ESP_temp + * SP + 14 : EBP + * SP + 10 : ESI + * SP + 6 : EDI + * SP + 4 : flags_orig + * SP + 2 : SI ; SI points to old entry in MBR + * SP : return_IP + * + */ + + /* DS=ES=FS_BOOT */ + + /* change NTLDR to GRLDR */ + + /* check GR or NT or anything else */ + + pushw %ax + + movw $0x200, %si + lodsw + cmpw $5, %ax + jne 1f /* failure */ + lodsw + testb %ah, %ah /* high byte of unicode ASCII should be 0 */ + jne 1f /* failure */ + + /* 'N' should be a capital letter */ + + cmpb $0x41, %al /* Less than 'A' */ + jb 1f /* failure */ + cmpb $0x5A, %al /* Greater than 'Z'*/ + ja 1f /* failure */ + + xchgw %ax, %cx /* save AX to CX. CL='N' */ + + lodsw + testb %ah, %ah /* high byte of unicode ASCII should be 0 */ + jne 1f /* failure */ + + /* 'T' should be a capital letter */ + + cmpb $0x41, %al /* Less than 'A' */ + jb 1f /* failure */ + cmpb $0x5A, %al /* Greater than 'Z'*/ + ja 1f /* failure */ + + movb %al, %ch /* save AL to CH. CH='T' */ + + lodsw + cmpw $0x4C, %ax /* 'L' */ + jne 1f /* failure */ + lodsw + cmpw $0x44, %ax /* 'D' */ + jne 1f /* failure */ + lodsw + cmpw $0x52, %ax /* 'R' */ + jne 1f /* failure */ + lodsw + cmpw $0x04, %ax /* length of "$I30" */ + jne 1f /* failure */ + lodsw + cmpw $0x24, %ax /* '$' */ + jne 1f /* failure */ + lodsw + cmpw $0x49, %ax /* 'I' */ + jne 1f /* failure */ + lodsw + cmpw $0x33, %ax /* '3' */ + jne 1f /* failure */ + lodsw + cmpw $0x30, %ax /* '0' */ + jne 1f /* failure */ + + + /* assume it is NT bootsector. first, find "NTLDR". CX holds "NT" */ + movw $0x0100, %di + movb %cl, %al /* AL="N" */ + movb $1, %ah /* AH=Carry for SAHF below */ + movl $0x52444c00, %ebx /* "LDR" */ + movb %ch, %bl /* 'T' */ + movw $0x00fa, %cx + + /* now AL holds 'N' and BL holds 'T' */ + + //cld /* already upward */ +3: + repnz scasb /* find "N" */ + jcxz 4f /* gets the end, exit */ + cmpl %ebx, (%di) /* is it "NTLDR"? */ + jnz 3b /* no, continue to find */ + + /* "NTLDR" is found, so we believe it is NT boot sector. */ + + movw $0x5247, -1(%di) /* change "NT" to "GR" */ + + /* CF=0 for now */ + + lahf /* Load Flags into AH */ + /* AH = SF:ZF:xx:AF:xx:PF:xx:CF */ + /* AH = binary xxxxxxx0 */ + jmp 3b +4: + sahf /* Store AH into flags SF ZF xx AF xx PF xx CF */ + + /* CF=0 means "NTLDR" is found, CF=1 means "NTLDR" is not found. */ + + jc 1f /* failure */ + + movl $0x00520047, 0x202 /* change to "G R L D R" */ + + /* check NT 4.0 */ + + movw $0x406, %si + movl (%si), %ebx /* NT 4.0 */ + cmpl $0x03E8B800, %ebx /* MOV AX, 03E8 */ + jnz 3f + + movl 0x84, %ebx + cmpl $0x680007E8, %ebx /* call 008e; push (0D00) */ + jnz 3f + +// movw 0x154, %bx /* CR LF at end of "A disk read error occurred." */ +// cmpw $0x0A0D, %bx /* CR LF */ +// jnz 3f +// movw 0x180, %bx /* CR LF at end of "A kernel file is missing from the disk." */ +// cmpw $0x0A0D, %bx /* CR LF */ +// jnz 3f +// movw 0x1A8, %bx /* CR LF at end of "A kernel file is too discontiguous." */ +// cmpw $0x0A0D, %bx /* CR LF */ +// jnz 3f +// movw 0x1F8, %bx /* CR LF at end of "NTLDR is compressed." */ +// cmpw $0x0A0D, %bx /* CR LF */ +// jnz 3f + + movl 0xE8, %ebx + cmpl $0x13CD80B2, %ebx /* "B2 80"="mov DL, 80", "CD 13"="int 13" */ + jnz 3f + + popw %ax + movw %ax, 4(%si) + + movl $0x68909090, %ebx /* nop;nop;nop;push (0D00) */ + movl %ebx, 0x84 + +// /* change CRLF in NTFS error messages to spaces */ +// movw $0x2020, %bx /* change CRLF to 2 spaces */ +// movw %bx, 0x154 +// movw %bx, 0x180 +// movw %bx, 0x1A8 +// movw %bx, 0x1F8 + + movb %dl, 0xE9 /* modify drive number */ + + /* modify NTFS boot record */ + movb $0xea, %al /* ljmp, hand over the control to supervisor */ + movb %al, 0x122 + //movw $(try_next_partition - _start1), %ax /* offset for ljmp */ + movw $MONITOR, %ax /* offset for ljmp */ + movw %ax, 0x123 + //movw %cs, %ax /* AX=0x9400, segment for ljmp */ + xorw %ax, %ax + movw %ax, 0x125 + + movw $(NTFS4_message - _start1), %si + call print_message /* CS:SI points to message string */ + clc + ret +3: + /* check NT 5.0 */ + + movw $0x44b, %si + movl (%si), %ebx /* NT 5.0 */ + cmpl $0x03E8B800, %ebx /* MOV AX, 03E8 */ + jz 2f + + movw $0x479, %si + movl (%si), %ebx /* NT 5.1 SP2 */ + cmpl $0x03E8B800, %ebx /* MOV AX, 03E8 */ + jnz 1f +2: + movl 0x71, %ebx + cmpl $0x680053E8, %ebx /* call 00C7; push (0D00) */ + jnz 1f + + //movw 0x183, %bx /* CR LF at begin of "A disk read error occurred." */ + movb 0x1F8, %bl + movb $1, %bh + movw (%bx), %bx + cmpw $0x0A0D, %bx /* CR LF */ + jnz 1f + //movw 0x1A0, %bx /* CR LF at begin of "NTLDR is missing." */ + movb 0x1F9, %bl + movb $1, %bh + movw (%bx), %bx + cmpw $0x0A0D, %bx /* CR LF */ + jnz 1f + //movw 0x1B3, %bx /* CR LF at begin of "NTLDR is compressed." */ + movb 0x1FA, %bl + movb $1, %bh + movw (%bx), %bx + cmpw $0x0A0D, %bx /* CR LF */ + jnz 1f + + popw %ax + movw %ax, 4(%si) + + movl $0x68909090, %ebx /* nop;nop;nop;push (0D00) */ + movl %ebx, 0x71 + + /* change CRLF in NTFS error messages to spaces */ + movw $0x2020, %ax + movb 0x1F8, %bl + movb $1, %bh + movw %ax, (%bx) // 0x183 + movb 0x1F9, %bl + movb $1, %bh + movw %ax, (%bx) // 0x1A0 + movb 0x1FA, %bl + movb $1, %bh + movw %ax, (%bx) // 0x1B3 + + /* modify NTFS boot record */ + movb $0xEA, %al /* ljmp, hand over the control to supervisor */ + movb %al, 0x167 + //movw $(try_next_partition - _start1), %ax /* offset for ljmp */ + movw $MONITOR, %ax /* offset for ljmp */ + movw %ax, 0x168 + //movw %cs, %ax /* AX=0x9400, segment for ljmp */ + xorw %ax, %ax + movw %ax, 0x16A + + cmpw $0x44b, %si + jne 2f + movw $(NTFS5_message - _start1), %si + jmp 3f +2: + movw $(NTFS5p_message - _start1), %si +3: + call print_message /* CS:SI points to message string */ + clc + ret +1: + /* NTFS boot record not found. */ + + movw $(NTFS_no_boot_record_message - _start1), %si + call print_message /* CS:SI points to message string */ + + popw %ax + popl %eax /* return_IP and SI */ + popfw + stc + pushfw + pushl %eax /* return_IP and SI */ + ret +#endif + +//#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) +move_helper: + + /* called only once and only when the boot loader loaded this code */ + pushw %si + pushw %bx + pushl %eax + + movw $0x0003, %ax /* set display mode: 80*25 color text */ + int $0x10 + + movw $0x200, %si + movw %si, %di + movw $0xf00, %cx + cld + repz movsw + + popl %eax + popw %bx + popw %si + ret +//#endif + +#if (defined(GRLDR_MBR)) || (defined(GRLDR_INSTALL)) +filesystem_boot: + /* The partition boot record successfully modified, just boot it */ + + /* + * The boot might fail, but we want to take back the control. + * So we save the registers now. + */ + pushw %ds + pushw %es + pushal + + /* DS=CS=GRLDR_CS, ES=FS_BOOT */ + + /* save GRLDR_CS */ + + movw %es, %bx # save old ES to BX + + cli + lgdt gdt - _start1 + movl %cr0, %eax + orb $1, %al + movl %eax, %cr0 + + movw $8, %si + movw %si, %es + + xorl %esi, %esi + xorl %edi, %edi + movl $(0x9000 / 4), %ecx + + cld + repz movsl + + movw $16, %si + movw %si, %es + + andb $0xfe, %al + movl %eax, %cr0 + + movw %bx, %es # restore ES from BX + + /* move FS_BOOT:0000 to 0:7c00 */ +#if 0 + /* for single sector boot record */ + movw $0x0200, %cx /* move 2 sectors, the old FS_BOOT:0000 will + * keep untouched. */ +#else + /* for 4-sector NTFS boot record */ + movw $0x0400, %cx /* move 4 sectors, the old FS_BOOT:0000 will + * keep untouched. */ +#endif + xorw %si, %si + pushw %si /* SI=0, for the segment of 0000:7c00 */ + movw $0x7c00, %di + pushw %di /* DI=0x7c00, for the offset of 0000:7c00 */ + pushw %es /* ES=FS_BOOT */ + popw %ds /* DS=FS_BOOT */ + pushw %si /* SI=0 */ + popw %es /* ES=0 */ + cld + repz movsw + + movw $MONITOR, %di + movw $(restore_GRLDR_CS - _start1), %si + movw $((gdt_end - restore_GRLDR_CS) / 4), %cx + cld + repz cs movsl /* CS segment override prefix(=0x2E) */ + + pushw %es /* ES=0 */ + popw %ds /* DS=0 */ + sti + lret //ljmp $0, $0x7c00 +#endif + +press_space_bar_string: + .ascii "\r\nPress space bar\0" + +press_hot_key_pre: + .ascii "\r\nPress \0" + +press_hot_key_sub: + .ascii " to start GRUB, any other key to boot previous MBR ...\0" + +hot_key_timeout_pre: + .ascii "\r\nTimeout : \0" + +hot_key_timeout_num: + .ascii " \b\b\b\0" + +continue_string: + .ascii "\r\nInvalid previous MBR. Press any key to start GRUB ...\0" + +Cannot_find_GRLDR_string: + .ascii "\r\nCannot find GRLDR.\0" + +prev_MBR_string: + .ascii " to hold the screen, any other key to boot previous MBR ...\0" + +Error_while_reading_string: + .ascii "\r\nError while reading MBR of \0" + +drive_number_string: + .ascii "drive (hd0 ) \0" + +partition_boot_indicator_string: + .ascii "\r\nInvalid boot indicator in partition table of \0" + +partition_sectors_per_track_string: + .ascii "\r\nInvalid sectors_per_track in partition table of \0" + +partition_start_sector_string: + .ascii "\r\nInvalid start_sector in partition table of \0" + +partition_end_sector_string: + .ascii "\r\nInvalid end_sector in partition table of \0" + +no_boot_signature_string: + .ascii "\r\nNo boot signature in partition table of \0" + +message_string_helper: + .ascii "\r\nError: Cannot find GRLDR in all devices. Press Ctrl+Alt+Del to restart.\0" + +partition_message: + .ascii "\r\nTry (hd0,0 ) : \0" + +EXT2_message: + .ascii "EXT2: \0" +NTFS4_message: + .ascii "NTFS4: \0" +NTFS5_message: + .ascii "NTFS5: \0" +NTFS5p_message: + .ascii "NTFS5p: \0" +FAT32_message: + .ascii "FAT32: \0" +FAT16_message: + .ascii "FAT16: \0" +FAT12_message: + .ascii "FAT12: \0" +non_MS_message: + .ascii "non-MS: skip \0" +extended_message: + .ascii "Extended: \0" +invalid_message: + .ascii "invalid or null \0" +NTFS_no_boot_record_message: + .ascii "This partition is NTFS but with unknown boot record. Please\r\ninstall Microsoft NTFS boot sectors to this partition correctly, or create an\r\nFAT12/16/32 partition and place the same copy of GRLDR and MENU.LST there.\0" + +#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) + . = _start1 + 0x1ffa +#else + . = . + (0x3ec - ((. - _start1) % 0x200)) % 0x200 + +press_hot_key_name: + + /* hot key name, the address is (grldr_signature - 16) */ + + .ascii "hot-key\0" + + . = press_hot_key_name + 14 + + //. = . + (0x3fa - ((. - _start1) % 0x200)) % 0x200 +#endif + + /* version word of grldr.mbr, the address is (grldr_signature - 2) */ + + .word 2 + +grldr_signature: + .byte 0x47, 0x52, 0x55, 0xaa /* signature for helper */ + + .align 0x200 + +#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) + + /* pre_stage2 start at 0x2000 for grldr */ + + . = _start1 + 0x2000 + +#endif + +#if defined(GRLDR_MBR) + /* if the size is less than 8192, let it be 8192 */ + . = . + (0x2000 - (. - _start1)) * (0x4000 / (. - _start1 + 0x2001)) +#endif + +pre_stage2_start: + + --- grub2-1.98+20100804.orig/debian/grub-extras/ntldr-img/ntfsbs.S +++ grub2-1.98+20100804/debian/grub-extras/ntldr-img/ntfsbs.S @@ -0,0 +1,1502 @@ +/* + * GRUB Utilities -- Utilities for GRUB Legacy, GRUB2 and GRUB for DOS + * Copyright (C) 2007 Bean (bean123@126.com) + * + * This program 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +/* NTFS boot sector for loading GRLDR , written by bean + * + * This file can be compiled as standaolne boot sector, or it can be embeded in + * GRLDR.MBR at 0xA00 , right after the ext2 boot sector + * + * To compile the standalone ntfsbs.bin: + * gcc -c -o ntfsbs.o ntfsbs.S + * gcc -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00 -o ntfsbs_exec ntfsbs.o + * objcopy -O binary ntfsbs_exec ntfsbs.bin + * + * To install the standalone ntfsbs.bin: + * grubinst --restore=ntfsbs.bin DEVICE_OR_FILE + * + * Where DEVICE_OR_FILE specify a NTFS partition + * + * Limitations: + * 1. Don't support >1K MFT record size, >4K INDEX record size + * 2. Don't support encrypted file + * 3. Don't support >4K non-resident attribute list and $BITMAP + * + */ + +#ifndef INSIDE_GRLDR + + .text + + .code16 +#endif + +#define AT_STANDARD_INFORMATION 0x10 +#define AT_ATTRIBUTE_LIST 0x20 +#define AT_FILENAME 0x30 +#define AT_OBJECT_ID 0x40 +#define AT_SECURITY_DESCRIPTOR 0x50 +#define AT_VOLUME_NAME 0x60 +#define AT_VOLUME_INFORMATION 0x70 +#define AT_DATA 0x80 +#define AT_INDEX_ROOT 0x90 +#define AT_INDEX_ALLOCATION 0xA0 +#define AT_BITMAP 0xB0 +#define AT_SYMLINK 0xC0 +#define AT_EA_INFORMATION 0xD0 +#define AT_EA 0xE0 + +#define MAX_MFT_SIZE 1 // 1<<(1+9) = 1024 +#define MAX_IDX_SIZE 3 // 1<<(3+9) = 4096 + +#define LOADSEG_NT 0x2000 + +#define MMFT_BASE 0x2000 +#define MMFT_EMFT (MMFT_BASE +1024) +#define MMFT_EBUF (MMFT_BASE + 2048) + +#define CMFT_BASE (MMFT_BASE + 6144) +#define CMFT_EMFT (CMFT_BASE + 1024) +#define CMFT_EBUF (CMFT_BASE + 2048) + +#define INDX_BASE (CMFT_BASE + 6144) + +#define SBUF_BASE (INDX_BASE + 4096) + +#define NTFS_Large_Structure_Error_Code 1 +#define NTFS_Corrupt_Error_Code 2 +#define NTFS_Run_Overflow_Error_Code 3 +#define NTFS_No_Data_Error_Code 4 +#define NTFS_Decompress_Error_Code 5 + +#define NT_FG_COMP 1 +#define NT_FG_MMFT 2 +#define NT_FG_ALST 4 +#define NT_FG_GPOS 8 + +#define nt_boot_drive -2(%bp) +#define nt_blocksize -4(%bp) +#define nt_spc -5(%bp) +#define nt_mft_size -6(%bp) +#define nt_idx_size -7(%bp) +#define nt_mft_start -12(%bp) +#define nt_remain_len -16(%bp) +//#define nt_file_count -18(%bp) + +#define nt_flag (%di) +#define nt_attr_cur 2(%di) +#define nt_attr_nxt 4(%di) +#define nt_attr_end 6(%di) +#define nt_curr_vcn 8(%di) +#define nt_curr_lcn 0x10(%di) +#define nt_attr_ofs 0x14(%di) +#define nt_target_vcn 0x18(%di) +#define nt_read_count 0x1C(%di) +#define nt_vcn_offset 0x20(%di) + +#define nt_emft_buf 1024(%di) +#define nt_edat_buf 2048(%di) + + .arch i586 + +Entry_nt: + jmp 1f + + . = Entry_nt + 0x02 + + .byte 0x90 /* for CHS. Another possible value is 0x0e for LBA */ + + .ascii "NTFS " + + .word 0 /* 0B - Bytes per sector */ + .byte 0 /* 0D - Sectors per cluster */ + .word 0 /* 0E - reserved sectors, unused */ + .byte 0 /* 10 - number of FATs, unused */ + .word 0 /* 11 - Max dir entries for FAT12/FAT16, unused */ + .word 0 /* 13 - total sectors for FAT12/FAT16, unused */ + .byte 0xF8 /* 15 - Media descriptor */ + .word 0 /* 16 - sectors per FAT for FAT12/FAT16, unused */ + .word 255 /* 18 - Sectors per track */ + .word 63 /* 1A - Number of heads */ +nt_part_ofs: + .long 0 /* 1C - hidden sectors */ + .long 0 /* 20 - total sectors for FAT32, unused */ + .long 0x800080 + /* 24 - Usually 80 00 80 00, A value of 80 00 00 00 has + * been seen on a USB thumb drive which is formatted + * with NTFS under Windows XP. Note this is removable + * media and is not partitioned, the drive as a whole + * is NTFS formatted. + */ + .long 0,0 /* 28 - Number of sectors in the volume */ + .long 0,0 /* 30 - LCN of VCN 0 of the $MFT */ + .long 0,0 /* 38 - LCN of VCN 0 of the $MFTMirr */ + .long 0 /* 40 - Clusters per MFT Record */ + .long 4 /* 44 - Clusters per Index Record */ + .long 0,0 /* 48 - Volume serial number */ + .long 0 /* 50 - Checksum, usually 0 */ + +1: + + . = Entry_nt + 0x54 + + cli + cld + + . = Entry_nt + 0x56 + + /* the byte at offset 0x57 stores the real partition number for read. + * the format program or the caller should set it to a correct value. + * For floppies, it should be 0xff, which stands for whole drive. + */ + + movb $0xff, %dh /* boot partition number */ + + xorw %ax, %ax + movw %ax, %ds + movw $0x7c00, %bp + movw %ax, %es + + movw %ax, %ss /* stack and BP-relative moves up, too */ + leaw -0x20(%bp), %sp + sti + + movw %dx, nt_boot_drive + + /* Test if your BIOS support LBA mode */ + movb $0x41, %ah + movw $0x55AA, %bx + int $0x13 + jc 1f /* No EBIOS */ + cmpw $0xAA55, %bx + jne 1f /* No EBIOS */ + testb $1, %cl + jz 1f /* No EBIOS */ + /* EBIOS supported */ + movb $0x42, (ebios_nt - 1 - Entry_nt)(%bp) +1: + + cmpl $0x42555247, (nt_sector_mark - Entry_nt)(%bp) + jz 1f // Must be called from GRLDR.MBR + + movw $0x7E00, %bx + movl (nt_part_ofs - Entry_nt)(%bp), %eax + incl %eax + call readDisk_nt // Load the second sector from disk + call readDisk_nt // Load the third sector from disk + call readDisk_nt +1: + + xorl %eax, %eax + movw 0xb(%bp), %ax // Bytes per sector (blocksize) + movw %ax, nt_blocksize + + call convert_to_power_2 + movb %cl, %bl + movb 0xd(%bp), %al // Sectors per cluster + call convert_to_power_2 + movb %cl, %ch + addb %bl, %ch + subb $9, %ch // 1< + +#endif + +#include +#include + +#include "utils.h" + +static unsigned char ebuf[512]; + +#if defined(WIN32) + +#ifdef __GNUC__ // Mingw or Cygwin + +#define u_off_t off64_t +#define u_lseek lseek64 + +#else + +#define u_off_t __int64 +#define u_lseek _lseeki64 + +#endif + +#else + +#define u_off_t off_t // In FreeBSD, off_t is 64-bit ! +#define u_lseek lseek + +#endif + +int go_sect(int hd,unsigned long sec) +{ + // Test if 64-bit seek is supported + if (sizeof(u_off_t)>=8) + { + u_off_t bs,rs; + + bs=sec; + bs<<=9; + rs=u_lseek(hd,bs,SEEK_SET); + return (bs!=rs); + } + else + { + unsigned long bs[2]; + + bs[0]=sec<<9; + bs[1]=sec>>23; + if (bs[1]) + return 1; + return (lseek(hd,bs[0],SEEK_SET)!=bs[0]); + } +} + +// Partition enumerator +// xe->cur is the current partition number, before the first call to xd_enum, +// it should be set to 0xFF +// xe->nxt is the target partition number, if it equals 0xFF, it means enumerate +// all partitions, otherwise, it means jump to the specific partition. +int xd_enum(int hd,xde_t* xe) +{ + int nn=512,kk=1,cc; + + for (cc=xe->cur;;) + { + if (cc==0xFF) + { + unsigned long pt[4][2]; + int i,j,np; + + if (go_sect(hd,0)) + return 1; + if (read(hd,ebuf,nn)!=nn) + return 1; + if (valueat(ebuf,0x1FE,unsigned short)!=0xAA55) + return 1; + np=0; + for (i=0x1BE;i<0x1FE;i+=16) + if (ebuf[i+4]) + { + if ((pt[np][1]=valueat(ebuf,i+12,unsigned long))==0) + return 1; + pt[np++][0]=valueat(ebuf,i+8,unsigned long); + } + if (np==0) + return 1; + // Sort partition table base on start address + for (i=0;ipt[j][0]) k=j; + if (k!=i) + { + unsigned long tt; + + tt=pt[i][0]; + pt[i][0]=pt[k][0]; + pt[k][0]=tt; + tt=pt[i][1]; + pt[i][1]=pt[k][1]; + pt[k][1]=tt; + } + } + // Should have space for MBR + if (pt[0][0]==0) + return 1; + // Check for partition overlap + for (i=0;ipt[i+1][0]) + return 1; + cc=0; + } + else if (kk) + cc++; + if ((unsigned char)cc>xe->nxt) + return 1; + if (cc<4) + { + if (xe->nxt<4) + { + // Empty partition + if (! ebuf[xe->nxt*16+4+0x1BE]) + return 1; + xe->cur=xe->nxt; + xe->dfs=ebuf[xe->nxt*16+4+0x1BE]; + xe->bse=valueat(ebuf,xe->nxt*16+8+0x1BE,unsigned long); + xe->len=valueat(ebuf,xe->nxt*16+12+0x1BE,unsigned long); + return 0; + } + else if (xe->nxt!=0xFF) + cc=4; + else while (cc<4) + { + if (ebuf[cc*16+4+0x1BE]) + { + xe->cur=cc; + xe->dfs=ebuf[cc*16+4+0x1BE]; + xe->bse=valueat(ebuf,cc*16+8+0x1BE,unsigned long); + xe->len=valueat(ebuf,cc*16+12+0x1BE,unsigned long); + return 0; + } + cc++; + } + } + if ((cc==4) && (kk)) + { + int i; + + // Scan for extended partition + for (i=0;i<4;i++) + if ((ebuf[i*16+4+0x1BE]==5) || (ebuf[i*16+4+0x1BE]==0xF)) break; + if (i==4) + return 1; + xe->ebs=xe->bse=valueat(ebuf,i*16+8+0x1BE,unsigned long); + } + else + { + // Is end of extended partition chain ? + if ((ebuf[4+0x1CE]!=0x5) && (ebuf[4+0x1CE]!=0xF) || + (valueat(ebuf,8+0x1CE,unsigned long)==0)) + return 1; + xe->bse=xe->ebs+valueat(ebuf,8+0x1CE,unsigned long); + } + { + int r; + + while (1) + { + if (go_sect(hd,xe->bse)) + return 1; + + if (read(hd,ebuf,nn)!=nn) + return 1; + + if (valueat(ebuf,0x1FE,unsigned short)!=0xAA55) + return 1; + + if ((ebuf[4+0x1BE]==5) || (ebuf[4+0x1BE]==0xF)) + if (valueat(ebuf,8+0x1BE,unsigned long)==0) + return 1; + else + { + xe->bse=xe->ebs+valueat(ebuf,8+0x1BE,unsigned long); + continue; + } + break; + } + kk=(ebuf[4+0x1BE]!=0); + if ((kk) && ((xe->nxt==0xFF) || (cc==xe->nxt))) + { + xe->cur=cc; + xe->dfs=ebuf[4+0x1BE]; + xe->bse+=valueat(ebuf,8+0x1BE,unsigned long); + xe->len=valueat(ebuf,12+0x1BE,unsigned long); + return 0; + } + } + } +} + +#define EXT2_SUPER_MAGIC 0xEF53 + +int mbr_nhd, mbr_spt; + +void split_chs(unsigned char* chs,unsigned long* c,unsigned long* h,unsigned long* s) +{ + *h=chs[0]; + *s=(chs[1] & 0x3F)-1; + *c=((unsigned long)(chs[1]>>6))*256+chs[2]; +} + +int chk_chs(unsigned long nhd,unsigned long spt,unsigned long lba,unsigned char* chs) +{ + unsigned long c,h,s; + + split_chs(chs,&c,&h,&s); + if (c==0x3FF) + return ((nhd==h+1) && (spt==s+1)); + else + return (c*nhd*spt+h*spt+s==lba); +} + +int chk_mbr(unsigned char* buf) +{ + unsigned long nhd,spt,a1,a2,c2,h2,s2; + int i; + + i=0x1BE; + while ((i<0x1FE) && (buf[i+4]==0)) + i+=16; + if (i>=0x1FE) + return 0; + a1=valueat(buf[i],8,unsigned long); + a2=a1+valueat(buf[i],12,unsigned long)-1; + if (a1>=a2) + return 0; + split_chs(buf+i+5,&c2,&h2,&s2); + if (c2==0x3FF) + { + nhd=h2+1; + spt=s2+1; + if (! chk_chs(nhd,spt,a1,buf+i+1)) + return 0; + } + else + { + unsigned long c1,h1,s1; + long n1,n2; + + split_chs(buf+i+1,&c1,&h1,&s1); + if ((c1==0x3FF) || (c1>c2)) + return 0; + n1=(long)(c1*a2)-(long)(c2*a1)-(long)(c1*s2)+(long)(c2*s1); + n2=(long)(c1*h2)-(long)(c2*h1); + if (n2<0) + { + n2=-n2; + n1=-n1; + } + if ((n2==0) || (n1<=0) || (n1 % n2)) + return 0; + spt=(unsigned long)(n1/n2); + if (c2) + { + n1=(long)a2-(long)s2-(long)(h2*spt); + n2=(long)(c2*spt); + if ((n2==0) || (n1<=0) || (n1 % n2)) + return 0; + nhd=(unsigned long)(n1/n2); + } + else + nhd=h2+1; + } + if ((nhd==0) || (nhd>255) || (spt==0) || (spt>63)) + return 0; + i+=16; + while (i<0x1FE) + { + if (buf[i+4]) + { + if ((! chk_chs(nhd,spt,valueat(buf[i],8,unsigned long),buf+i+1)) || + (! chk_chs(nhd,spt,valueat(buf[i],8,unsigned long)+valueat(buf[i],12,unsigned long)-1,buf+i+5))) + return 0; + } + i+=16; + } + mbr_nhd=(int)nhd; + mbr_spt=(int)spt; + return 1; +} + +int get_fstype(unsigned char* buf) +{ + if (chk_mbr(buf)) + return FST_MBR; + + // The first sector of EXT2 might not contain the 0xAA55 signature + if (valueat(buf[1024],56,unsigned short)==EXT2_SUPER_MAGIC) + return FST_EXT2; + if (valueat(buf[0],0x1FE,unsigned short)!=0xAA55) + return FST_OTHER; + if (! strncmp(&buf[0x36],"FAT",3)) + return ((buf[0x26]==0x28) || (buf[0x26]==0x29))?FST_FAT16:FST_OTHER; + if (! strncmp(&buf[0x52],"FAT32",5)) + return ((buf[0x42]==0x28) || (buf[0x42]==0x29))?FST_FAT32:FST_OTHER; + if (! strncmp(&buf[0x3],"NTFS",4)) + return ((buf[0]==0xEB) && (buf[1]==0x52))?FST_NTFS:FST_OTHER; + return FST_OTHER; +} + +char* fst2str(int fs) +{ + switch (fs) { + case FST_OTHER: + return "Other"; + case FST_MBR: + return "MBR"; + case FST_FAT16: + return "FAT12/FAT16"; + case FST_FAT32: + return "FAT32"; + case FST_NTFS: + return "NTFS"; + case FST_EXT2: + return "EXT2/EXT3"; + default: + return "Unknown"; + } +} + +typedef struct { + int id; + char* str; +} fstab_t; + +static fstab_t fstab[]= { + {0x1,"FAT12"}, + {0x4,"FAT16"}, + {0x5,"Extended"}, + {0x6,"FAT16B"}, + {0x7,"NTFS"}, + {0xB,"FAT32"}, + {0xC,"FAT32X"}, + {0xE,"FAT16X"}, + {0xF,"ExtendedX"}, + {0x11,"(H)FAT12"}, + {0x14,"(H)FAT16"}, + {0x16,"(H)FAT16B"}, + {0x17,"(H)NTFS"}, + {0x1B,"(H)FAT32"}, + {0x1C,"(H)FAT32X"}, + {0x1E,"(H)FAT16X"}, + {0x82,"Swap"}, + {0x83,"Ext2"}, + {0xA5,"FBSD"}, + {0,"Other"}}; + +char* dfs2str(int fs) +{ + int i; + + for (i=0;fstab[i].id;i++) + if (fs==fstab[i].id) + return fstab[i].str; + return fstab[i].str; +} --- grub2-1.98+20100804.orig/debian/grub-extras/ntldr-img/bin2h.c +++ grub2-1.98+20100804/debian/grub-extras/ntldr-img/bin2h.c @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2008 Robert Millan + * + * This program 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. + * + * 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, see . + */ + +#include +#include + +int +main (int argc, char *argv[]) +{ + int b, i; + char *sym; + unsigned int len; + + if (argc != 3) + { + fprintf (stderr, "Usage: %s symbol_name length\n", argv[0]); + exit (1); + } + + sym = argv[1]; + len = atoi (argv[2]); + + b = getchar (); + if (b == EOF) + goto abort; + + printf ("/* THIS CHUNK OF BYTES IS AUTOMATICALY GENERATED */\n" + "unsigned char %s[%u] =\n{\n", sym, len); + + while (1) + { + printf ("0x%02x", b); + + b = getchar (); + if (b == EOF) + goto end; + + for (i = 0; i < 16 - 1; i++) + { + printf (", 0x%02x", b); + + b = getchar (); + if (b == EOF) + goto end; + } + + printf (",\n"); + } + +end: + printf ("\n};\n"); + +abort: + exit (0); +} --- grub2-1.98+20100804.orig/debian/grub-extras/ntldr-img/README +++ grub2-1.98+20100804/debian/grub-extras/ntldr-img/README @@ -0,0 +1,11 @@ + +grub-extras is meant to be used as an overlay on grub2 source tree. + +Build instructions: + + - Copy grub-extras in a subdirectory of your grub2 checkout. + For example, "grub-extras". + + - Export GRUB_CONTRIB environment variable to point to this directory. + + - Build GRUB as usual. --- grub2-1.98+20100804.orig/debian/grub-extras/ntldr-img/g2hdr.S +++ grub2-1.98+20100804/debian/grub-extras/ntldr-img/g2hdr.S @@ -0,0 +1,99 @@ +/* + * GRUB Utilities -- Utilities for GRUB Legacy, GRUB2 and GRUB for DOS + * Copyright (C) 2007 Bean (bean123@126.com) + * + * This program 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include + + .file "g2hdr.S" + + .text + + .code16 + + .globl start, _start + +start: +_start: + + // We are at 0x2000:0 + // Move itself to 0x800:0 + // Don't modify dx + + cld + movw %cs, %ax + movw %ax, %ds + movw $0x800, %ax + movw %ax, %es + xorw %si, %si + movw %si, %di + movw $0x80, %cx + + rep + movsl + + ljmp $0, $(jump_start-start+0x8000) + +jump_start: + // Move data from 0x2040:0 to 0x820:0 + + movw $0x2040, %ax + movw %ax, %ds + movw $0x820, %ax + movw %ax, %es + xorl %eax, %eax + movb %dh, %al + movl %eax, GRUB_KERNEL_MACHINE_INSTALL_DOS_PART + movl GRUB_KERNEL_MACHINE_COMPRESSED_SIZE, %eax + addl $GRUB_KERNEL_MACHINE_RAW_SIZE, %eax + xorl %ecx, %ecx + +1: + xorw %si, %si + movw %si, %di + + movw $0x8000, %cx + cmpl %ecx, %eax + jae 2f + movw %ax, %cx +2: + + pushw %cx + addw $3, %cx + shrw $2, %cx + + rep + movsl + + popw %cx + + movw %ds, %si + addw $0x800, %si + movw %si, %ds + + movw %es, %si + addw $0x800, %si + movw %si, %es + + subl %ecx, %eax + jnz 1b + + ljmp $0, $(0x8000 + 0x200) + + . = _start + 0x200 - 2 + + .word 0xAA55 --- grub2-1.98+20100804.orig/debian/grub-extras/ntldr-img/grubinst.c +++ grub2-1.98+20100804/debian/grub-extras/ntldr-img/grubinst.c @@ -0,0 +1,1031 @@ +/* + * GRUB Utilities -- Utilities for GRUB Legacy, GRUB2 and GRUB for DOS + * Copyright (C) 2007 Bean (bean123@126.com) + * + * This program 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include +#include +#include +#include +#include + +#ifndef WIN32 + +#define O_BINARY 0 + +#endif + +#include "grub_mbr.h" +#include "utils.h" +#include "version.h" + +// Application flags, used by this program + +#define AFG_VERBOSE 1 +#define AFG_PAUSE 2 +#define AFG_READ_ONLY 4 +#define AFG_NO_BACKUP_MBR 8 +#define AFG_FORCE_BACKUP_MBR 16 +#define AFG_RESTORE_PREVMBR 32 +#define AFG_LIST_PART 64 +#define AFG_IS_FLOPPY 128 +#define AFG_LBA_MODE 256 +#define AFG_CHS_MODE 512 +#define AFG_OUTPUT 1024 +#define AFG_EDIT 2048 + +// Grldr flags, this flag is used by grldr.mbr + +#define GFG_DISABLE_FLOPPY 1 +#define GFG_DISABLE_OSBR 2 +#define GFG_DUCE 4 +#define GFG_PREVMBR_LAST 128 + +#define APP_NAME "grubinst: " + +#define print_pause if (afg & AFG_PAUSE) {fputs("Press to continue ...\n",stderr); fflush(stderr); fgetc(stdin);} + +#define print_apperr(a) { fprintf(stderr,APP_NAME "%s\n",a); print_pause; } +#define print_syserr(a) { perror(APP_NAME a); print_pause; } + +void help(void) +{ + fputs("Usage:\n" + "\tgrubinst [OPTIONS] DEVICE_OR_FILE\n\n" + "OPTIONS:\n\n" + "\t--help,-h\t\tShow usage information\n\n" + "\t--pause\t\t\tPause before exiting\n\n" + "\t--version\t\tShow version information\n\n" + "\t--verbose,-v\t\tVerbose output\n\n" + "\t--list-part,-l\t\tList all logical partitions in DEVICE_OR_FILE\n\n" + "\t--save=FN,-s=FN\t\tSave the orginal MBR/BS to FN\n\n" + "\t--restore=FN,-r=FN\tRestore MBR/BS from previously saved FN\n\n" + "\t--restore-prevmbr,-r\tRestore previous MBR saved in the second sector\n" + "\t\t\t\tof DEVICE_OR_FILE\n\n" + "\t--read-only,-t\t\tdo everything except the actual write to the\n" + "\t\t\t\tspecified DEVICE_OR_FILE. (test mode)\n\n" + "\t--no-backup-mbr\t\tdo not copy the old MBR to the second sector of\n" + "\t\t\t\tDEVICE_OR_FILE.\n\n" + "\t--force-backup-mbr\tforce the copy of old MBR to the second sector\n" + "\t\t\t\tof DEVICE_OR_FILE.(default)\n\n" + "\t--mbr-enable-floppy\tenable the search for GRLDR on floppy.(default)\n\n" + "\t--mbr-disable-floppy\tdisable the search for GRLDR on floppy.\n\n" + "\t--mbr-enable-osbr\tenable the boot of PREVIOUS MBR with invalid\n" + "\t\t\t\tpartition table (usually an OS boot sector).\n" + "\t\t\t\t(default)\n\n" + "\t--mbr-disable-osbr\tdisable the boot of PREVIOUS MBR with invalid\n" + "\t\t\t\tpartition table (usually an OS boot sector).\n\n" + "\t--duce\t\t\tdisable the feature of unconditional entrance\n" + "\t\t\t\tto the command-line.\n\n" + "\t--boot-prevmbr-first\ttry to boot PREVIOUS MBR before the search for\n" + "\t\t\t\tGRLDR.\n\n" + "\t--boot-prevmbr-last\ttry to boot PREVIOUS MBR after the search for\n" + "\t\t\t\tGRLDR.(default)\n\n" + "\t--preferred-drive=D\tpreferred boot drive number, 0 <= D < 255.\n\n" + "\t--preferred-partition=P\tpreferred partition number, 0 <= P < 255.\n\n" + "\t--time-out=T,-t=T\twait T seconds before booting PREVIOUS MBR. if\n" + "\t\t\t\tT is 0xff, wait forever. The default is 5.\n\n" + "\t\t\t\tbefore booting PREVIOUS MBR. K is a word\n" + "\t\t\t\tvalue, just as the value in AX register\n" + "\t\t\t\treturned from int16/AH=1. The high byte is the\n" + "\t\t\t\tscan code and the low byte is ASCII code. The\n" + "\t\t\t\tdefault is 0x3920 for space bar.\n\n" + "\t--key-name=S\t\tSpecify the name of the hot key.\n\n" + "\t--floppy,-f\t\tif DEVICE_OR_FILE is floppy, use this option.\n\n" + "\t--floppy=N\t\tif DEVICE_OR_FILE is a partition on a hard\n" + "\t\t\t\tdrive, use this option. N is used to specify\n" + "\t\t\t\tthe partition number: 0,1,2 and 3 for the\n" + "\t\t\t\tprimary partitions, and 4,5,6,... for the\n" + "\t\t\t\tlogical partitions.\n\n" + "\t--sectors-per-track=S\tspecifies sectors per track for --floppy.\n" + "\t\t\t\t1 <= S <= 63, default is 63.\n\n" + "\t--heads=H\t\tspecifies number of heads for --floppy.\n" + "\t\t\t\t1 <= H <= 256, default is 255.\n\n" + "\t--start-sector=B\tspecifies hidden sectors for --floppy=N.\n\n" + "\t--total-sectors=C\tspecifies total sectors for --floppy.\n" + "\t\t\t\tdefault is 0.\n\n" + "\t--lba\t\t\tuse lba mode for --floppy. If the floppy BIOS\n" + "\t\t\t\thas LBA support, you can specify --lba here.\n" + "\t\t\t\tIt is assumed that all floppy BIOSes have CHS\n" + "\t\t\t\tsupport. So you would rather specify --chs.\n" + "\t\t\t\tIf neither --chs nor --lba is specified, then\n" + "\t\t\t\tthe LBA indicator(i.e., the third byte of the\n" + "\t\t\t\tboot sector) will not be touched.\n\n" + "\t--chs\t\t\tuse chs mode for --floppy. You should specify\n" + "\t\t\t\t--chs if the floppy BIOS does not support LBA.\n" + "\t\t\t\tWe assume all floppy BIOSes have CHS support.\n" + "\t\t\t\tSo it is likely you want to specify --chs.\n" + "\t\t\t\tIf neither --chs nor --lba is specified, then\n" + "\t\t\t\tthe LBA indicator(i.e., the third byte of the\n" + "\t\t\t\tboot sector) will not be touched.\n\n" + "\t--install-partition=I\tInstall the boot record onto the boot area of\n" + "\t-p=I\t\t\tpartition number I of the specified hard drive\n" + "\t\t\t\tor harddrive image DEVICE_OR_FILE.\n\n" + "\t--boot-file=F,-b=F\tChange the name of boot file.\n\n" + "\t--load-seg=S\t\tChange load segment for boot file.\n\n" + "\t--grub2,-2\t\tLoad grub2 kernel g2ldr instead of grldr.\n\n" + "\t--output,-o\t\tSave embeded grldr.mbr to DEVICE_OR_FILE.\n\n" + "\t--edit,-e\t\tEdit external grldr/grldr.mbr.\n", + stderr); +} + +int afg,gfg,def_drive,def_part,time_out,hot_key,part_num; +int def_spt,def_hds,def_ssc,def_tsc; +char *save_fn,*restore_fn,*boot_file,boot_file_83[12],*key_name; +unsigned short load_seg; + +static char fn_buf[24]; + +char* get_disk_name(int n) +{ +#if defined(WIN32) + sprintf(fn_buf,"\\\\.\\PhysicalDrive%d",n); +#elif defined(LINUX) + sprintf(fn_buf,"/dev/hd%c",'a'+n); +#elif defined(FREEBSD) + sprintf(fn_buf,"/dev/ad%d",n); +#else + print_apperr("Disk device is not supported in your system"); + return NULL; +#endif + return fn_buf; +} + +char* get_flop_name(int n) +{ +#if defined(WIN32) + if (n>1) + { + print_apperr("Only two floppy drives are supported"); + return NULL; + } + sprintf(fn_buf,"\\\\.\\%c:",'A'+n); +#elif defined(LINUX) || defined(FREEBSD) + sprintf(fn_buf,"/dev/fd%d",n); +#else + print_apperr("Floppy device is not supported in your system"); + return NULL; +#endif + return fn_buf; +} + +char* parse_fname(char* fn) +{ + if ((afg & AFG_OUTPUT) && (fn[0]=='(')) + { + print_apperr("Can\'t use device name while using --output option"); + return NULL; + } + if ((! strncmp(fn,"(hd",3)) || (! strncmp(fn,"(fd",3))) + { + int n; + char *p; + + n=strtol(&fn[3],&p,0); + if ((n<0) || (n>=MAX_DISKS)) + { + print_apperr("Invalid device number"); + return NULL; + } + if (*p==',') + { + part_num=strtol(p+1,&p,0); + if ((part_num<0) || (part_num>=MAX_PARTS)) + { + print_apperr("Invalid partition number"); + return NULL; + } + } + if ((*p!=')') || (*(p+1)!=0)) + { + print_apperr("Invalid device name"); + return NULL; + } + if (fn[1]=='h') + fn=get_disk_name(n); + else + { + fn=get_flop_name(n); + afg|=AFG_IS_FLOPPY; + } + } + return fn; +} + +char* str_upcase(char* str) +{ + int i; + + for (i=0;str[i];i++) + if ((str[i]>='a') && (str[i]<='z')) + str[i]-='a'-'A'; + + return str; +} + +char* str_lowcase(char* str) +{ + int i; + + for (i=0;str[i];i++) + if ((str[i]>='A') && (str[i]<='Z')) + str[i]+='a'-'A'; + + return str; +} + +int SetBootFile(char* fn) +{ + char* pc; + + if (*fn==0) + return 1; + if (strlen(fn)>7) + return 1; + pc=strchr(fn,'.'); + if (pc) + if ((pc==fn) || (pc-fn>8) || (strlen(pc+1)>3)) + return 1; + str_upcase(fn); + memset(boot_file_83,' ',sizeof(boot_file_83)-1); + if (pc) + { + memcpy(boot_file_83,fn,pc-fn); + memcpy(&boot_file_83[8],pc+1,strlen(pc+1)); + } + else + memcpy(boot_file_83,fn,strlen(fn)); + str_lowcase(fn); + boot_file=fn; + return 0; +} + +int chk_mbr(unsigned char* buf); + +void list(int hd) +{ + xde_t xe; + + xe.cur=xe.nxt=0xFF; + fprintf(stderr," # id base leng\n"); + while (! xd_enum(hd,&xe)) + fprintf(stderr,"%2d %02X %8X %8X\n",xe.cur,xe.dfs,xe.bse,xe.len); +} + +int is_grldr_mbr(char* buf) +{ + int i,n; + + i=0x1B7; + n=sizeof("Missing MBR-helper.")-1; + + while ((i>n) && (buf[i]==0)) + i--; + return (! strcmp(&buf[i-n+1],"Missing MBR-helper.")); +} + +int install(char* fn) +{ + int hd,nn,fs,slen; + char prev_mbr[sizeof(grub_mbr)]; + unsigned long ssec; + + if (fn==NULL) + return 1; + + if (afg & AFG_EDIT) + { + unsigned short r1,r2; + + if (afg & AFG_VERBOSE) + fprintf(stderr,"Edit mode\n"); + hd=open(fn,O_RDWR | O_BINARY,0644); + if (hd==-1) + { + print_syserr("open"); + return errno; + } + r1=valueat(grub_mbr[0x1FFA],0,unsigned short); + nn=read(hd,grub_mbr,sizeof(grub_mbr)); + if (nn==-1) + { + print_syserr("read"); + close(hd); + return errno; + } + if (nnvalueat(prev_mbr[n],8,unsigned long)) + ofs=valueat(prev_mbr[n],8,unsigned long); + } + if (ofs<(sizeof(prev_mbr)>>9)) + { + print_apperr("Not enough room to install mbr"); + close(hd); + return 1; + } + slen=sizeof(prev_mbr); + if (go_sect(hd,ofs)) + { + print_apperr("Can\'t seek to the first partition"); + close(hd); + return 1; + } + if (read(hd,bs,sizeof(bs))!=sizeof(bs)) + { + print_apperr("Fail to read boot sector"); + close(hd); + return 1; + } + nfs=get_fstype(bs); + if (nfs==FST_FAT32) + sln=0x5A - 0xB; + else if (nfs==FST_FAT16) + sln=0x3E - 0xB; + else + sln=0; + if (sln) + { + memcpy(&grub_mbr[0xB],&bs[0xB],sln); + valueat(grub_mbr[0],0x1C,unsigned long)=0; + valueat(grub_mbr[0],0xE,unsigned short)+=ofs; + } + } + else if (fs==FST_NTFS) + slen=2048; + else + slen=512; + + if (go_sect(hd,ssec)) + { + print_apperr("Can\'t seek to the start sector"); + close(hd); + return 1; + } + + if (save_fn) + { + int h2; + + h2=open(save_fn,O_CREAT | O_TRUNC | O_RDWR | O_BINARY,S_IREAD | S_IWRITE); + if (h2==-1) + { + print_syserr("open save file"); + close(hd); + return errno; + } + nn=write(h2,prev_mbr,slen); + if (nn==-1) + { + print_syserr("write save file"); + close(hd); + close(h2); + return errno; + } + if (nn=argc) + { + print_apperr("No filename specified"); + return 1; + } + if (idx $@ +DISTCLEANFILES += grldr.mbr + +bin2h: $(GRUB_CONTRIB)/ntldr-img/bin2h.c + $(CC) $^ -o $@ +DISTCLEANFILES += bin2h + +grub_mbr.h: grldr.mbr bin2h + ./bin2h grub_mbr 8192 < $< > $@ +DISTCLEANFILES += grub_mbr.h + +grubinst: $(GRUB_CONTRIB)/ntldr-img/grubinst.c $(GRUB_CONTRIB)/ntldr-img/utils.c grub_mbr.h + $(CC) -I. -I$(GRUB_CONTRIB)/ntldr-img -DLINUX -o $@ $(GRUB_CONTRIB)/ntldr-img/grubinst.c $(GRUB_CONTRIB)/ntldr-img/utils.c +DISTCLEANFILES += grubinst + +g2ldr.mbr: grubinst + ./grubinst --grub2 -o $@ +DISTCLEANFILES += g2ldr.mbr --- grub2-1.98+20100804.orig/debian/grub-extras/ntldr-img/conf/common.mk +++ grub2-1.98+20100804/debian/grub-extras/ntldr-img/conf/common.mk @@ -0,0 +1,3 @@ +# -*- makefile -*- +# Generated by genmk.rb, please don't edit! +-include $(GRUB_CONTRIB)/ntldr-img/conf/$(target_cpu)-$(platform).mk --- grub2-1.98+20100804.orig/debian/grub-extras/ntldr-img/conf/common.rmk +++ grub2-1.98+20100804/debian/grub-extras/ntldr-img/conf/common.rmk @@ -0,0 +1,2 @@ +# -*- makefile -*- +-include $(GRUB_CONTRIB)/ntldr-img/conf/$(target_cpu)-$(platform).mk --- grub2-1.98+20100804.orig/debian/grub-extras/ntldr-img/conf/i386-pc.mk +++ grub2-1.98+20100804/debian/grub-extras/ntldr-img/conf/i386-pc.mk @@ -0,0 +1,104 @@ +# -*- makefile -*- +# Generated by genmk.rb, please don't edit! + +pkglib_IMAGES += g2ldr.mbr g2hdr.bin grldr.img + +all: g2ldr.mbr g2hdr.bin + +DISTCLEANFILES += g2ldr.mbr g2hdr.bin + +g2hdr_bin_SOURCES = $(GRUB_CONTRIB)/ntldr-img/g2hdr.S + +clean-image-g2hdr.bin.1: + rm -f g2hdr.bin g2hdr.exec g2hdr_bin-__GRUB_CONTRIB__ntldr_img_g2hdr.o + +CLEAN_IMAGE_TARGETS += clean-image-g2hdr.bin.1 + +mostlyclean-image-g2hdr.bin.1: + rm -f g2hdr_bin-__GRUB_CONTRIB__ntldr_img_g2hdr.d + +MOSTLYCLEAN_IMAGE_TARGETS += mostlyclean-image-g2hdr.bin.1 + +ifneq ($(TARGET_APPLE_CC),1) +g2hdr.bin: g2hdr.exec + $(OBJCOPY) -O $(g2hdr_bin_FORMAT) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .reginfo -R .rel.dyn $< $@ +else +ifneq (g2hdr.exec,kernel.exec) +g2hdr.bin: g2hdr.exec ./grub-macho2img + ./grub-macho2img $< $@ +else +g2hdr.bin: g2hdr.exec ./grub-macho2img + ./grub-macho2img --bss $< $@ +endif +endif + +g2hdr.exec: g2hdr_bin-__GRUB_CONTRIB__ntldr_img_g2hdr.o + $(TARGET_CC) -o $@ $^ $(TARGET_LDFLAGS) $(g2hdr_bin_LDFLAGS) + +g2hdr_bin-__GRUB_CONTRIB__ntldr_img_g2hdr.o: $(GRUB_CONTRIB)/ntldr-img/g2hdr.S $($(GRUB_CONTRIB)/ntldr-img/g2hdr.S_DEPENDENCIES) + $(TARGET_CC) -I$(GRUB_CONTRIB)/ntldr-img -I$(srcdir)/$(GRUB_CONTRIB)/ntldr-img $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(g2hdr_bin_ASFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/ntldr-img/g2hdr.S\" -MD -c -o $@ $< +-include g2hdr_bin-__GRUB_CONTRIB__ntldr_img_g2hdr.d + +g2hdr_bin_ASFLAGS = $(COMMON_ASFLAGS) +g2hdr_bin_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS)0x0 +g2hdr_bin_FORMAT = binary + +grldr_img_SOURCES = $(GRUB_CONTRIB)/ntldr-img/grldrstart.S $(GRUB_CONTRIB)/ntldr-img/ntfsbs.S + +clean-image-grldr.img.1: + rm -f grldr.img grldr.exec grldr_img-__GRUB_CONTRIB__ntldr_img_grldrstart.o grldr_img-__GRUB_CONTRIB__ntldr_img_ntfsbs.o + +CLEAN_IMAGE_TARGETS += clean-image-grldr.img.1 + +mostlyclean-image-grldr.img.1: + rm -f grldr_img-__GRUB_CONTRIB__ntldr_img_grldrstart.d grldr_img-__GRUB_CONTRIB__ntldr_img_ntfsbs.d + +MOSTLYCLEAN_IMAGE_TARGETS += mostlyclean-image-grldr.img.1 + +ifneq ($(TARGET_APPLE_CC),1) +grldr.img: grldr.exec + $(OBJCOPY) -O $(grldr_img_FORMAT) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .reginfo -R .rel.dyn $< $@ +else +ifneq (grldr.exec,kernel.exec) +grldr.img: grldr.exec ./grub-macho2img + ./grub-macho2img $< $@ +else +grldr.img: grldr.exec ./grub-macho2img + ./grub-macho2img --bss $< $@ +endif +endif + +grldr.exec: grldr_img-__GRUB_CONTRIB__ntldr_img_grldrstart.o grldr_img-__GRUB_CONTRIB__ntldr_img_ntfsbs.o + $(TARGET_CC) -o $@ $^ $(TARGET_LDFLAGS) $(grldr_img_LDFLAGS) + +grldr_img-__GRUB_CONTRIB__ntldr_img_grldrstart.o: $(GRUB_CONTRIB)/ntldr-img/grldrstart.S $($(GRUB_CONTRIB)/ntldr-img/grldrstart.S_DEPENDENCIES) + $(TARGET_CC) -I$(GRUB_CONTRIB)/ntldr-img -I$(srcdir)/$(GRUB_CONTRIB)/ntldr-img $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(grldr_img_ASFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/ntldr-img/grldrstart.S\" -MD -c -o $@ $< +-include grldr_img-__GRUB_CONTRIB__ntldr_img_grldrstart.d + +grldr_img-__GRUB_CONTRIB__ntldr_img_ntfsbs.o: $(GRUB_CONTRIB)/ntldr-img/ntfsbs.S $($(GRUB_CONTRIB)/ntldr-img/ntfsbs.S_DEPENDENCIES) + $(TARGET_CC) -I$(GRUB_CONTRIB)/ntldr-img -I$(srcdir)/$(GRUB_CONTRIB)/ntldr-img $(TARGET_CPPFLAGS) -DASM_FILE=1 $(TARGET_ASFLAGS) $(grldr_img_ASFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/ntldr-img/ntfsbs.S\" -MD -c -o $@ $< +-include grldr_img-__GRUB_CONTRIB__ntldr_img_ntfsbs.d + +grldr_img_ASFLAGS = $(COMMON_ASFLAGS) -DGRLDR_MBR +grldr_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS)0x7c00 +grldr_img_FORMAT = binary + +grldr.mbr: grldr.img + head -c 8192 $< > $@ +DISTCLEANFILES += grldr.mbr + +bin2h: $(GRUB_CONTRIB)/ntldr-img/bin2h.c + $(CC) $^ -o $@ +DISTCLEANFILES += bin2h + +grub_mbr.h: grldr.mbr bin2h + ./bin2h grub_mbr 8192 < $< > $@ +DISTCLEANFILES += grub_mbr.h + +grubinst: $(GRUB_CONTRIB)/ntldr-img/grubinst.c $(GRUB_CONTRIB)/ntldr-img/utils.c grub_mbr.h + $(CC) -I. -I$(GRUB_CONTRIB)/ntldr-img -DLINUX -o $@ $(GRUB_CONTRIB)/ntldr-img/grubinst.c $(GRUB_CONTRIB)/ntldr-img/utils.c +DISTCLEANFILES += grubinst + +g2ldr.mbr: grubinst + ./grubinst --grub2 -o $@ +DISTCLEANFILES += g2ldr.mbr --- grub2-1.98+20100804.orig/debian/grub-extras/915resolution/COPYING +++ grub2-1.98+20100804/debian/grub-extras/915resolution/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program 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. + + 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, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. --- grub2-1.98+20100804.orig/debian/grub-extras/915resolution/915resolution.c +++ grub2-1.98+20100804/debian/grub-extras/915resolution/915resolution.c @@ -0,0 +1,971 @@ +/* 915resolution - Utility to change vbemodes on the intel + * integrated video chipset */ + +/* + * Based on Nathan Coulson's http://nathancoulson.com/proj/eee/grub-1.96-915resolution-0.5.2-3.patch + * Oct 10, 2008, Released as 915 + * Oct 10, 2008, Updated to include support for 945GM thanks to Scot Doyle + */ + +/* Copied from 915 resolution created by steve tomjenovic + * 915 resolution was in the public domain. + * + * All I have done, was make the above program run within + * the grub2 environment. + * + * Some of the checks are still commented, as I did not find + * easy replacement for memmem. + * + * Slightly edited by Nathan Coulson (conathan@gmail.com) + */ + +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2003,2007 Free Software Foundation, Inc. + * Copyright (C) 2003 NIIBE Yutaka + * + * 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 . + */ + + +/* 915 resolution by steve tomljenovic + * + * This was tested only on Sony VGN-FS550. Use at your own risk + * + * This code is based on the techniques used in : + * + * - 855patch. Many thanks to Christian Zietz (czietz gmx net) + * for demonstrating how to shadow the VBIOS into system RAM + * and then modify it. + * + * - 1280patch by Andrew Tipton (andrewtipton null li). + * + * - 855resolution by Alain Poirier + * + * This source code is into the public domain. + */ + +#include +#include +#include +#include +#include +#include +#include + +#define printf grub_printf +#define malloc grub_malloc +#define free grub_free +#define strcmp grub_strcmp +#define fprintf(stream,template,args...) grub_printf(template, ## args) +#define strtol(x,y,z) grub_strtoul(x,y,z) +#define atoi(x) grub_strtoul(x,NULL,10) +#define assert(x) 0 /* FIXME */ +#define memset grub_memset +#define outl grub_outl +#define outb grub_outb +#define inl grub_inl +#define inb grub_inb + +#define NEW(a) ((a *)(malloc(sizeof(a)))) +#define FREE(a) (free(a)) + +#define VBIOS_START 0xc0000 +#define VBIOS_SIZE 0x10000 + +#define VBIOS_FILE "/dev/mem" + +#define FALSE 0 +#define TRUE 1 + +#define MODE_TABLE_OFFSET_845G 617 + +#define VERSION "0.5.3" + +#define ATI_SIGNATURE1 "ATI MOBILITY RADEON" +#define ATI_SIGNATURE2 "ATI Technologies Inc" +#define NVIDIA_SIGNATURE "NVIDIA Corp" +#define INTEL_SIGNATURE "Intel Corp" + +typedef unsigned char * address; +typedef unsigned char byte; +typedef unsigned short word; +typedef unsigned char boolean; +typedef unsigned int cardinal; + +typedef enum { + CT_UNKWN, CT_830, CT_845G, CT_855GM, CT_865G, CT_915G, CT_915GM, CT_945G, CT_945GM, CT_945GME, + CT_946GZ, CT_G965, CT_Q965, CT_965GM, CT_G33, CT_Q33, CT_Q35, CT_500GMA +} chipset_type; + +char * chipset_type_names[] = { + "UNKNOWN", "830", "845G", "855GM", "865G", "915G", "915GM", "945G", "945GM", "945GME", + "946GZ", "G965", "Q965", "965GM", "G33", "Q33", "Q35", "500GMA" +}; + +typedef enum { + BT_UNKWN, BT_1, BT_2, BT_3 +} bios_type; + +char * bios_type_names[] = {"UNKNOWN", "TYPE 1", "TYPE 2", "TYPE 3"}; + +int freqs[] = { 60, 75, 85 }; + +typedef struct { + byte mode; + byte bits_per_pixel; + word resolution; + byte unknown; +} __attribute__((packed)) vbios_mode; + +typedef struct { + byte unknow1[2]; + byte x1; + byte x_total; + byte x2; + byte y1; + byte y_total; + byte y2; +} __attribute__((packed)) vbios_resolution_type1; + +typedef struct { + unsigned long clock; + + word x1; + word htotal; + word x2; + word hblank; + word hsyncstart; + word hsyncend; + + word y1; + word vtotal; + word y2; + word vblank; + word vsyncstart; + word vsyncend; +} __attribute__((packed)) vbios_modeline_type2; + +typedef struct { + byte xchars; + byte ychars; + byte unknown[4]; + + vbios_modeline_type2 modelines[]; +} __attribute__((packed)) vbios_resolution_type2; + +typedef struct { + unsigned long clock; + + word x1; + word htotal; + word x2; + word hblank; + word hsyncstart; + word hsyncend; + + word y1; + word vtotal; + word y2; + word vblank; + word vsyncstart; + word vsyncend; + + word timing_h; + word timing_v; + + byte unknown[6]; +} __attribute__((packed)) vbios_modeline_type3; + +typedef struct { + unsigned char unknown[6]; + + vbios_modeline_type3 modelines[]; +} __attribute__((packed)) vbios_resolution_type3; + + +typedef struct { + cardinal chipset_id; + chipset_type chipset; + bios_type bios; + + int bios_fd; + address bios_ptr; + + vbios_mode * mode_table; + cardinal mode_table_size; + + byte b1, b2; + + boolean unlocked; +} vbios_map; + + +cardinal get_chipset_id(void) { + outl(0x80000000, 0xcf8); + return inl(0xcfc); +} + +chipset_type get_chipset(cardinal id) { + chipset_type type; + + switch (id) { + case 0x35758086: + type = CT_830; + break; + + case 0x25608086: + type = CT_845G; + break; + + case 0x35808086: + type = CT_855GM; + break; + + case 0x25708086: + type = CT_865G; + break; + + case 0x25808086: + type = CT_915G; + break; + + case 0x25908086: + type = CT_915GM; + break; + + case 0x27708086: + type = CT_945G; + break; + + case 0x27a08086: + type = CT_945GM; + break; + + case 0x27ac8086: + type = CT_945GME; + break; + + case 0x29708086: + type = CT_946GZ; + break; + + case 0x29a08086: + type = CT_G965; + break; + + case 0x29908086: + type = CT_Q965; + break; + + case 0x2a008086: + type = CT_965GM; + break; + + case 0x29c08086: + type = CT_G33; + break; + + case 0x29b08086: + type = CT_Q35; + break; + + case 0x29d08086: + type = CT_Q33; + break; + + case 0x81008086: + type = CT_500GMA; + break; + + default: + type = CT_UNKWN; + break; + } + + return type; +} + + +vbios_resolution_type1 * map_type1_resolution(vbios_map * map, word res) { + vbios_resolution_type1 * ptr = ((vbios_resolution_type1*)(map->bios_ptr + res)); + return ptr; +} + +vbios_resolution_type2 * map_type2_resolution(vbios_map * map, word res) { + vbios_resolution_type2 * ptr = ((vbios_resolution_type2*)(map->bios_ptr + res)); + return ptr; +} + +vbios_resolution_type3 * map_type3_resolution(vbios_map * map, word res) { + vbios_resolution_type3 * ptr = ((vbios_resolution_type3*)(map->bios_ptr + res)); + return ptr; +} + + +boolean detect_bios_type(vbios_map * map, boolean modeline, int entry_size) { + int i; + short int r1, r2; + + r1 = r2 = 32000; + + for (i=0; i < map->mode_table_size; i++) { + if (map->mode_table[i].resolution <= r1) { + r1 = map->mode_table[i].resolution; + } + else { + if (map->mode_table[i].resolution <= r2) { + r2 = map->mode_table[i].resolution; + } + } + + /*printf("r1 = %d r2 = %d\n", r1, r2);*/ + } + + return (r2-r1-6) % entry_size == 0; +} + + +void close_vbios(vbios_map * map); + + +vbios_map * open_vbios(chipset_type forced_chipset) { + vbios_map * map = NEW(vbios_map); + memset (map, 0, sizeof(vbios_map)); + + /* + * Determine chipset + */ + + if (forced_chipset == CT_UNKWN) { + map->chipset_id = get_chipset_id(); + + map->chipset = get_chipset(map->chipset_id); + } + else if (forced_chipset != CT_UNKWN) { + map->chipset = forced_chipset; + } + else { + map->chipset = CT_915GM; + } + + /* + * Map the video bios to memory + */ + + map->bios_ptr=(char*)VBIOS_START; + +#if 0 + /* + * check if we have ATI Radeon + */ + + if (memmem(map->bios_ptr, VBIOS_SIZE, ATI_SIGNATURE1, strlen(ATI_SIGNATURE1)) || + memmem(map->bios_ptr, VBIOS_SIZE, ATI_SIGNATURE2, strlen(ATI_SIGNATURE2)) ) { + fprintf(stderr, "ATI chipset detected. 915resolution only works with Intel 800/900 series graphic chipsets.\n"); + close(map->bios_fd); + exit(2); + } + + /* + * check if we have NVIDIA + */ + + if (memmem(map->bios_ptr, VBIOS_SIZE, NVIDIA_SIGNATURE, strlen(NVIDIA_SIGNATURE))) { + fprintf(stderr, "NVIDIA chipset detected. 915resolution only works with Intel 800/900 series graphic chipsets.\n"); + close(map->bios_fd); + exit(2); + } + + /* + * check if we have Intel + */ + + if (map->chipset == CT_UNKWN && memmem(map->bios_ptr, VBIOS_SIZE, INTEL_SIGNATURE, strlen(INTEL_SIGNATURE))) { + fprintf(stderr, "Intel chipset detected. However, 915resolution was unable to determine the chipset type.\n"); + + fprintf(stderr, "Chipset Id: %x\n", map->chipset_id); + + fprintf(stderr, "Please report this problem to stomljen@yahoo.com\n"); + + close_vbios(map); + exit(2); + } +#endif + + /* + * check for others + */ + + if (map->chipset == CT_UNKWN) { + fprintf(stderr, "Unknown chipset type and unrecognized bios.\n"); + fprintf(stderr, "915resolution only works with Intel 800/900 series graphic chipsets.\n"); + + fprintf(stderr, "Chipset Id: %x\n", map->chipset_id); + close_vbios(map); + return 0; + } + + /* + * Figure out where the mode table is + */ + + { + address p = map->bios_ptr + 16; + address limit = map->bios_ptr + VBIOS_SIZE - (3 * sizeof(vbios_mode)); + + while (p < limit && map->mode_table == 0) { + vbios_mode * mode_ptr = (vbios_mode *) p; + + if (((mode_ptr[0].mode & 0xf0) == 0x30) && ((mode_ptr[1].mode & 0xf0) == 0x30) && + ((mode_ptr[2].mode & 0xf0) == 0x30) && ((mode_ptr[3].mode & 0xf0) == 0x30)) { + + map->mode_table = mode_ptr; + } + + p++; + } + + if (map->mode_table == 0) { + fprintf(stderr, "Unable to locate the mode table.\n"); + fprintf(stderr, "Please run the program 'dump_bios' as root and\n"); + fprintf(stderr, "email the file 'vbios.dmp' to stomljen@yahoo.com.\n"); + + fprintf(stderr, "Chipset: %s\n", chipset_type_names[map->chipset]); + close_vbios(map); + return 0; + } + } + + /* + * Determine size of mode table + */ + + { + vbios_mode * mode_ptr = map->mode_table; + + while (mode_ptr->mode != 0xff) { + map->mode_table_size++; + mode_ptr++; + } + } + + /* + * Figure out what type of bios we have + * order of detection is important + */ + + if (detect_bios_type(map, TRUE, sizeof(vbios_modeline_type3))) { + map->bios = BT_3; + } + else if (detect_bios_type(map, TRUE, sizeof(vbios_modeline_type2))) { + map->bios = BT_2; + } + else if (detect_bios_type(map, FALSE, sizeof(vbios_resolution_type1))) { + map->bios = BT_1; + } + else { + fprintf(stderr, "Unable to determine bios type.\n"); + fprintf(stderr, "Please run the program 'dump_bios' as root and\n"); + fprintf(stderr, "email the file 'vbios.dmp' to stomljen@yahoo.com.\n"); + + fprintf(stderr, "Chipset: %s\n", chipset_type_names[map->chipset]); + fprintf(stderr, "Mode Table Offset: $C0000 + $%x\n", ((cardinal)map->mode_table) - ((cardinal)map->bios_ptr)); + fprintf(stderr, "Mode Table Entries: %u\n", map->mode_table_size); + return 0; + } + + return map; +} + +void close_vbios(vbios_map * map) { + assert(!map->unlocked); + + FREE(map); +} + +void unlock_vbios(vbios_map * map) { + + assert(!map->unlocked); + + map->unlocked = TRUE; + + switch (map->chipset) { + case CT_UNKWN: + break; + case CT_830: + case CT_855GM: + outl(0x8000005a, 0xcf8); + map->b1 = inb(0xcfe); + + outl(0x8000005a, 0xcf8); + outb(0x33, 0xcfe); + break; + case CT_845G: + case CT_865G: + case CT_915G: + case CT_915GM: + case CT_945G: + case CT_945GM: + case CT_945GME: + case CT_946GZ: + case CT_G965: + case CT_Q965: + case CT_965GM: + case CT_G33: + case CT_Q35: + case CT_Q33: + case CT_500GMA: + outl(0x80000090, 0xcf8); + map->b1 = inb(0xcfd); + map->b2 = inb(0xcfe); + + outl(0x80000090, 0xcf8); + outb(0x33, 0xcfd); + outb(0x33, 0xcfe); + break; + } + +#if DEBUG + { + cardinal t = inl(0xcfc); + printf("unlock PAM: (0x%08x)\n", t); + } +#endif +} + +void relock_vbios(vbios_map * map) { + + assert(map->unlocked); + map->unlocked = FALSE; + + switch (map->chipset) { + case CT_UNKWN: + break; + case CT_830: + case CT_855GM: + outl(0x8000005a, 0xcf8); + outb(map->b1, 0xcfe); + break; + case CT_845G: + case CT_865G: + case CT_915G: + case CT_915GM: + case CT_945G: + case CT_945GM: + case CT_945GME: + case CT_946GZ: + case CT_G965: + case CT_Q965: + case CT_965GM: + case CT_G33: + case CT_Q35: + case CT_Q33: + case CT_500GMA: + outl(0x80000090, 0xcf8); + outb(map->b1, 0xcfd); + outb(map->b2, 0xcfe); + break; + } + +#if DEBUG + { + cardinal t = inl(0xcfc); + printf("relock PAM: (0x%08x)\n", t); + } +#endif +} + + +void list_modes(vbios_map *map, cardinal raw) { + cardinal i, x, y; + + for (i=0; i < map->mode_table_size; i++) { + switch(map->bios) { + case BT_1: + { + vbios_resolution_type1 * res = map_type1_resolution(map, map->mode_table[i].resolution); + + x = ((((cardinal) res->x2) & 0xf0) << 4) | res->x1; + y = ((((cardinal) res->y2) & 0xf0) << 4) | res->y1; + + if (x != 0 && y != 0) { + printf("Mode %02x : %dx%d, %d bits/pixel\n", map->mode_table[i].mode, x, y, map->mode_table[i].bits_per_pixel); + } + + if (raw) + { + printf("Mode %02x (raw) :\n\t%02x %02x\n\t%02x\n\t%02x\n\t%02x\n\t%02x\n\t%02x\n\t%02x\n", map->mode_table[i].mode, res->unknow1[0],res->unknow1[1], res->x1,res->x_total,res->x2,res->y1,res->y_total,res->y2); + } + + } + break; + case BT_2: + { + vbios_resolution_type2 * res = map_type2_resolution(map, map->mode_table[i].resolution); + + x = res->modelines[0].x1+1; + y = res->modelines[0].y1+1; + + if (x != 0 && y != 0) { + printf("Mode %02x : %dx%d, %d bits/pixel\n", map->mode_table[i].mode, x, y, map->mode_table[i].bits_per_pixel); + } + } + break; + case BT_3: + { + vbios_resolution_type3 * res = map_type3_resolution(map, map->mode_table[i].resolution); + + x = res->modelines[0].x1+1; + y = res->modelines[0].y1+1; + + if (x != 0 && y != 0) { + printf("Mode %02x : %dx%d, %d bits/pixel\n", map->mode_table[i].mode, x, y, map->mode_table[i].bits_per_pixel); + } + } + break; + case BT_UNKWN: + break; + } + } +} + +static void gtf_timings(int x, int y, int freq, + unsigned long *clock, + word *hsyncstart, word *hsyncend, word *hblank, + word *vsyncstart, word *vsyncend, word *vblank) +{ + int hbl, vbl, vfreq; + + vbl = y + (y+1)/(20000.0/(11*freq) - 1) + 1.5; + vfreq = vbl * freq; + hbl = 16 * (int)(x * (30.0 - 300000.0 / vfreq) / + (70.0 + 300000.0 / vfreq) / 16.0 + 0.5); + + *vsyncstart = y; + *vsyncend = y + 3; + *vblank = vbl - 1; + *hsyncstart = x + hbl / 2 - (x + hbl + 50) / 100 * 8 - 1; + *hsyncend = x + hbl / 2 - 1; + *hblank = x + hbl - 1; + *clock = (x + hbl) * vfreq / 1000; +} + +void set_mode(vbios_map * map, cardinal mode, cardinal x, cardinal y, cardinal bp, cardinal htotal, cardinal vtotal) { + int xprev, yprev; + cardinal i, j; + + for (i=0; i < map->mode_table_size; i++) { + if (map->mode_table[i].mode == mode) { + switch(map->bios) { + case BT_1: + { + vbios_resolution_type1 * res = map_type1_resolution(map, map->mode_table[i].resolution); + + if (bp) { + map->mode_table[i].bits_per_pixel = bp; + } + + res->x2 = (htotal?(((htotal-x) >> 8) & 0x0f) : (res->x2 & 0x0f)) | ((x >> 4) & 0xf0); + res->x1 = (x & 0xff); + + res->y2 = (vtotal?(((vtotal-y) >> 8) & 0x0f) : (res->y2 & 0x0f)) | ((y >> 4) & 0xf0); + res->y1 = (y & 0xff); + if (htotal) + res->x_total = ((htotal-x) & 0xff); + + if (vtotal) + res->y_total = ((vtotal-y) & 0xff); + } + break; + case BT_2: + { + vbios_resolution_type2 * res = map_type2_resolution(map, map->mode_table[i].resolution); + + res->xchars = x / 8; + res->ychars = y / 16 - 1; + xprev = res->modelines[0].x1; + yprev = res->modelines[0].y1; + + for(j=0; j < 3; j++) { + vbios_modeline_type2 * modeline = &res->modelines[j]; + + if (modeline->x1 == xprev && modeline->y1 == yprev) { + modeline->x1 = modeline->x2 = x-1; + modeline->y1 = modeline->y2 = y-1; + + gtf_timings(x, y, freqs[j], &modeline->clock, + &modeline->hsyncstart, &modeline->hsyncend, + &modeline->hblank, &modeline->vsyncstart, + &modeline->vsyncend, &modeline->vblank); + + if (htotal) + modeline->htotal = htotal; + else + modeline->htotal = modeline->hblank; + + if (vtotal) + modeline->vtotal = vtotal; + else + modeline->vtotal = modeline->vblank; + } + } + } + break; + case BT_3: + { + vbios_resolution_type3 * res = map_type3_resolution(map, map->mode_table[i].resolution); + + xprev = res->modelines[0].x1; + yprev = res->modelines[0].y1; + + for (j=0; j < 3; j++) { + vbios_modeline_type3 * modeline = &res->modelines[j]; + + if (modeline->x1 == xprev && modeline->y1 == yprev) { + modeline->x1 = modeline->x2 = x-1; + modeline->y1 = modeline->y2 = y-1; + + gtf_timings(x, y, freqs[j], &modeline->clock, + &modeline->hsyncstart, &modeline->hsyncend, + &modeline->hblank, &modeline->vsyncstart, + &modeline->vsyncend, &modeline->vblank); + if (htotal) + modeline->htotal = htotal; + else + modeline->htotal = modeline->hblank; + if (vtotal) + modeline->vtotal = vtotal; + else + modeline->vtotal = modeline->vblank; + + modeline->timing_h = y-1; + modeline->timing_v = x-1; + } + } + } + break; + case BT_UNKWN: + break; + } + } + } +} + +void display_map_info(vbios_map * map) { + printf("Chipset: %s\n", chipset_type_names[map->chipset]); + printf("BIOS: %s\n", bios_type_names[map->bios]); + + printf("Mode Table Offset: $C0000 + $%x\n", ((cardinal)map->mode_table) - ((cardinal)map->bios_ptr)); + printf("Mode Table Entries: %u\n", map->mode_table_size); +} + + +int parse_args(int argc, char *argv[], chipset_type *forced_chipset, cardinal *list, cardinal *mode, cardinal *x, cardinal *y, cardinal *bp, cardinal *raw, cardinal *htotal, cardinal *vtotal) { + cardinal index = 0; + + *list = *mode = *x = *y = *raw = *htotal = *vtotal = 0; + + *forced_chipset = CT_UNKWN; + + + if ((argc > index) && !strcmp(argv[index], "-c")) { + index++; + + if(argc<=index) { + return 0; + } + + if (!strcmp(argv[index], "845")) { + *forced_chipset = CT_845G; + } + else if (!strcmp(argv[index], "855")) { + *forced_chipset = CT_855GM; + } + else if (!strcmp(argv[index], "865")) { + *forced_chipset = CT_865G; + } + else if (!strcmp(argv[index], "915G")) { + *forced_chipset = CT_915G; + } + else if (!strcmp(argv[index], "915GM")) { + *forced_chipset = CT_915GM; + } + else if (!strcmp(argv[index], "945G")) { + *forced_chipset = CT_945G; + } + else if (!strcmp(argv[index], "945GM")) { + *forced_chipset = CT_945GM; + } + else if (!strcmp(argv[index], "945GME")) { + *forced_chipset = CT_945GME; + } + else if (!strcmp(argv[index], "946GZ")) { + *forced_chipset = CT_946GZ; + } + else if (!strcmp(argv[index], "G965")) { + *forced_chipset = CT_G965; + } + else if (!strcmp(argv[index], "Q965")) { + *forced_chipset = CT_Q965; + } + else if (!strcmp(argv[index], "965GM")) { + *forced_chipset = CT_965GM; + } + else if (!strcmp(argv[index], "G33")) { + *forced_chipset = CT_G33; + } + else if (!strcmp(argv[index], "Q35")) { + *forced_chipset = CT_Q35; + } + else if (!strcmp(argv[index], "Q33")) { + *forced_chipset = CT_Q33; + } + else if (!strcmp(argv[index], "500GMA")) { + *forced_chipset = CT_500GMA; + } + else { + *forced_chipset = CT_UNKWN; + } + + index++; + + if (argc<=index) { + return 0; + } + } + + if ((argc > index) && !strcmp(argv[index], "-l")) { + *list = 1; + index++; + + if(argc<=index) { + return 0; + } + } + + if ((argc > index) && !strcmp(argv[index], "-r")) { + *raw = 1; + index++; + + if(argc<=index) { + return 0; + } + } + + if (argc-index < 3 || argc-index > 6) { + return -1; + } + + *mode = (cardinal) strtol(argv[index], NULL, 16); + *x = (cardinal)atoi(argv[index+1]); + *y = (cardinal)atoi(argv[index+2]); + + + if (argc-index > 3) { + *bp = (cardinal)atoi(argv[index+3]); + } + else { + *bp = 0; + } + + if (argc-index > 4) { + *htotal = (cardinal)atoi(argv[index+4]); + } + else { + *htotal = 0; + } + + if (argc-index > 5) { + *vtotal = (cardinal)atoi(argv[index+5]); + } + else { + *vtotal = 0; + } + + return 0; +} + +static void usage() { + printf("Usage: 915resolution [-c chipset] [-l] [mode X Y] [bits/pixel] [htotal] [vtotal]\n"); + printf(" Set the resolution to XxY for a video mode\n"); + printf(" Bits per pixel are optional. htotal/vtotal settings are additionally optional.\n"); + printf(" Options:\n"); + printf(" -c force chipset type (THIS IS USED FOR DEBUG PURPOSES)\n"); + printf(" -l display the modes found in the video BIOS\n"); + printf(" -r display the modes found in the video BIOS in raw mode (THIS IS USED FOR DEBUG PURPOSES)\n"); +} + +int main (int argc, char *argv[]) +{ + vbios_map * map; + cardinal list, mode, x, y, bp, raw, htotal, vtotal; + chipset_type forced_chipset; + + printf("Intel 800/900 Series VBIOS Hack : version %s\n\n", VERSION); + + if (parse_args(argc, argv, &forced_chipset, &list, &mode, &x, &y, &bp, &raw, &htotal, &vtotal) == -1) { + usage(); + return 2; + } + + map = open_vbios(forced_chipset); + display_map_info(map); + + printf("\n"); + + if (list) { + list_modes(map, raw); + } + + if (mode!=0 && x!=0 && y!=0) { + unlock_vbios(map); + + set_mode(map, mode, x, y, bp, htotal, vtotal); + + relock_vbios(map); + + printf("Patch mode %02x to resolution %dx%d complete\n", mode, x, y); + + if (list) { + list_modes(map, raw); + } + } + + close_vbios(map); + + return 0; +} + + + + + +static grub_err_t +grub_cmd_915resolution (struct grub_arg_list *state __attribute__ ((unused)), int argc, char *argv[]) +{ + return main (argc, argv); +} + +GRUB_MOD_INIT(915resolution) +{ + (void)mod; /* To stop warning. */ + grub_register_extcmd ("915resolution", grub_cmd_915resolution, GRUB_COMMAND_FLAG_BOTH, + "915resolution", "Intel VBE editor", 0); +} + +GRUB_MOD_FINI(915resolution) +{ + grub_unregister_command ("915resolution"); +} --- grub2-1.98+20100804.orig/debian/grub-extras/915resolution/README +++ grub2-1.98+20100804/debian/grub-extras/915resolution/README @@ -0,0 +1,11 @@ + +grub-extras is meant to be used as an overlay on grub2 source tree. + +Build instructions: + + - Copy grub-extras in a subdirectory of your grub2 checkout. + For example, "grub-extras". + + - Export GRUB_CONTRIB environment variable to point to this directory. + + - Build GRUB as usual. --- grub2-1.98+20100804.orig/debian/grub-extras/915resolution/conf/i386-pc.rmk +++ grub2-1.98+20100804/debian/grub-extras/915resolution/conf/i386-pc.rmk @@ -0,0 +1,6 @@ +# -*- makefile -*- + +pkglib_MODULES += 915resolution.mod +915resolution_mod_SOURCES = $(GRUB_CONTRIB)/915resolution/915resolution.c +915resolution_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-error +915resolution_mod_LDFLAGS = $(COMMON_LDFLAGS) --- grub2-1.98+20100804.orig/debian/grub-extras/915resolution/conf/common.mk +++ grub2-1.98+20100804/debian/grub-extras/915resolution/conf/common.mk @@ -0,0 +1,3 @@ +# -*- makefile -*- +# Generated by genmk.rb, please don't edit! +-include $(GRUB_CONTRIB)/915resolution/conf/$(target_cpu)-$(platform).mk --- grub2-1.98+20100804.orig/debian/grub-extras/915resolution/conf/common.rmk +++ grub2-1.98+20100804/debian/grub-extras/915resolution/conf/common.rmk @@ -0,0 +1,2 @@ +# -*- makefile -*- +-include $(GRUB_CONTRIB)/915resolution/conf/$(target_cpu)-$(platform).mk --- grub2-1.98+20100804.orig/debian/grub-extras/915resolution/conf/i386-pc.mk +++ grub2-1.98+20100804/debian/grub-extras/915resolution/conf/i386-pc.mk @@ -0,0 +1,107 @@ +# -*- makefile -*- +# Generated by genmk.rb, please don't edit! + +pkglib_MODULES += 915resolution.mod +915resolution_mod_SOURCES = $(GRUB_CONTRIB)/915resolution/915resolution.c + +clean-module-915resolution.mod.1: + rm -f 915resolution.mod mod-915resolution.o mod-915resolution.c pre-915resolution.o 915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.o und-915resolution.lst + +CLEAN_MODULE_TARGETS += clean-module-915resolution.mod.1 + +clean-module-915resolution.mod-symbol.1: + rm -f def-915resolution.lst + +CLEAN_MODULE_TARGETS += clean-module-915resolution.mod-symbol.1 +DEFSYMFILES += def-915resolution.lst +mostlyclean-module-915resolution.mod.1: + rm -f 915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.d + +MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-915resolution.mod.1 +UNDSYMFILES += und-915resolution.lst + +ifeq ($(TARGET_NO_MODULES), yes) +915resolution.mod: pre-915resolution.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(915resolution_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-915resolution.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +ifneq ($(TARGET_APPLE_CC),1) +915resolution.mod: pre-915resolution.o mod-915resolution.o $(TARGET_OBJ2ELF) + -rm -f $@ + $(TARGET_CC) $(915resolution_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-915resolution.o mod-915resolution.o + if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi + if test x$(TARGET_NO_STRIP) != xyes ; then $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@; fi +else +915resolution.mod: pre-915resolution.o mod-915resolution.o $(TARGET_OBJ2ELF) + -rm -f $@ + -rm -f $@.bin + $(TARGET_CC) $(915resolution_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-915resolution.o mod-915resolution.o + $(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -ew2030 -ew2050 -nu -nd $@.bin $@ + -rm -f $@.bin +endif +endif + +pre-915resolution.o: $(915resolution_mod_DEPENDENCIES) 915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.o + -rm -f $@ + $(TARGET_CC) $(915resolution_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ 915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.o + +mod-915resolution.o: mod-915resolution.c + $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(915resolution_mod_CFLAGS) -DGRUB_FILE=\"mod-915resolution.c\" -c -o $@ $< + +mod-915resolution.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh + sh $(srcdir)/genmodsrc.sh '915resolution' $< > $@ || (rm -f $@; exit 1) + +ifneq ($(TARGET_APPLE_CC),1) +def-915resolution.lst: pre-915resolution.o + $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 915resolution/' > $@ +else +def-915resolution.lst: pre-915resolution.o + $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 915resolution/' > $@ +endif + +und-915resolution.lst: pre-915resolution.o + echo '915resolution' > $@ + $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ + +915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.o: $(GRUB_CONTRIB)/915resolution/915resolution.c $($(GRUB_CONTRIB)/915resolution/915resolution.c_DEPENDENCIES) + $(TARGET_CC) -I$(GRUB_CONTRIB)/915resolution -I$(srcdir)/$(GRUB_CONTRIB)/915resolution $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(915resolution_mod_CFLAGS) -DGRUB_FILE=\"$(GRUB_CONTRIB)/915resolution/915resolution.c\" -MD -c -o $@ $< +-include 915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.d + +clean-module-915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution-extra.1: + rm -f cmd-915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.lst fs-915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.lst partmap-915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.lst handler-915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.lst parttool-915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.lst video-915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.lst terminal-915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.lst + +CLEAN_MODULE_TARGETS += clean-module-915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution-extra.1 + +COMMANDFILES += cmd-915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.lst +FSFILES += fs-915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.lst +PARTTOOLFILES += parttool-915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.lst +PARTMAPFILES += partmap-915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.lst +HANDLERFILES += handler-915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.lst +TERMINALFILES += terminal-915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.lst +VIDEOFILES += video-915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.lst + +cmd-915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.lst: $(GRUB_CONTRIB)/915resolution/915resolution.c $($(GRUB_CONTRIB)/915resolution/915resolution.c_DEPENDENCIES) gencmdlist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/915resolution -I$(srcdir)/$(GRUB_CONTRIB)/915resolution $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(915resolution_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh 915resolution > $@ || (rm -f $@; exit 1) + +fs-915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.lst: $(GRUB_CONTRIB)/915resolution/915resolution.c $($(GRUB_CONTRIB)/915resolution/915resolution.c_DEPENDENCIES) genfslist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/915resolution -I$(srcdir)/$(GRUB_CONTRIB)/915resolution $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(915resolution_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh 915resolution > $@ || (rm -f $@; exit 1) + +parttool-915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.lst: $(GRUB_CONTRIB)/915resolution/915resolution.c $($(GRUB_CONTRIB)/915resolution/915resolution.c_DEPENDENCIES) genparttoollist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/915resolution -I$(srcdir)/$(GRUB_CONTRIB)/915resolution $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(915resolution_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh 915resolution > $@ || (rm -f $@; exit 1) + +partmap-915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.lst: $(GRUB_CONTRIB)/915resolution/915resolution.c $($(GRUB_CONTRIB)/915resolution/915resolution.c_DEPENDENCIES) genpartmaplist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/915resolution -I$(srcdir)/$(GRUB_CONTRIB)/915resolution $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(915resolution_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh 915resolution > $@ || (rm -f $@; exit 1) + +handler-915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.lst: $(GRUB_CONTRIB)/915resolution/915resolution.c $($(GRUB_CONTRIB)/915resolution/915resolution.c_DEPENDENCIES) genhandlerlist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/915resolution -I$(srcdir)/$(GRUB_CONTRIB)/915resolution $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(915resolution_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh 915resolution > $@ || (rm -f $@; exit 1) + +terminal-915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.lst: $(GRUB_CONTRIB)/915resolution/915resolution.c $($(GRUB_CONTRIB)/915resolution/915resolution.c_DEPENDENCIES) genterminallist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/915resolution -I$(srcdir)/$(GRUB_CONTRIB)/915resolution $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(915resolution_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh 915resolution > $@ || (rm -f $@; exit 1) + +video-915resolution_mod-__GRUB_CONTRIB__915resolution_915resolution.lst: $(GRUB_CONTRIB)/915resolution/915resolution.c $($(GRUB_CONTRIB)/915resolution/915resolution.c_DEPENDENCIES) genvideolist.sh + set -e; $(TARGET_CC) -I$(GRUB_CONTRIB)/915resolution -I$(srcdir)/$(GRUB_CONTRIB)/915resolution $(TARGET_CPPFLAGS) -DGRUB_LST_GENERATOR $(TARGET_CFLAGS) $(915resolution_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh 915resolution > $@ || (rm -f $@; exit 1) + +915resolution_mod_CFLAGS = $(COMMON_CFLAGS) -Wno-error +915resolution_mod_LDFLAGS = $(COMMON_LDFLAGS) --- grub2-1.98+20100804.orig/debian/legacy/update-grub +++ grub2-1.98+20100804/debian/legacy/update-grub @@ -0,0 +1,1067 @@ +#!/bin/bash +# +# Insert a list of installed kernels in a grub config file +# Copyright 2001 Wichert Akkerman +# Copyright (C) 2007,2008 Free Software Foundation, Inc. +# +# 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 3 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 GRUB. If not, see . +# +# Contributors: +# Jason Thomas +# David B.Harris +# Marc Haber +# Crispin Flowerday + +# Abort on errors +set -e + +host_os=`uname -s | tr '[A-Z]' '[a-z]'` + +abort() { + message=$@ + + echo >&2 + echo -e "$message" >&2 + echo >&2 + exit 1 +} + +find_grub_dir () +{ + echo -n "Searching for GRUB installation directory ... " >&2 + + for d in /boot/grub /boot/boot/grub ; do + if [ -d "$d" ] ; then + grub_dir="$d" + break + fi + done + + if [ -z "$grub_dir" ] ; then + abort "No GRUB directory found.\n To create a template run 'mkdir /boot/grub' first.\n To install grub, install it manually or try the 'grub-install' command.\n ### Warning, grub-install is used to change your MBR. ###" + else + echo "found: $grub_dir" >&2 + fi + + echo $grub_dir +} + +# This function was borrowed from grub2/util/update-grub_lib.in +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 + + echo $path | sed -e "s,^$dir,,g" +} + +# The grub installation directory +grub_dir=$(find_grub_dir) + +# Full path to the device.map +device_map=$grub_dir/device.map + +find_device () +{ + if ! test -e ${device_map} ; then + echo quit | grub --batch --no-floppy --device-map=${device_map} > /dev/null + fi + grub-probe --device-map=${device_map} -t device $1 2> /dev/null +} + +# Usage: convert_raid1 os_device +# Checks if os_device is a software raid1. +# If so, converts to first physical device in array. +convert_raid1 () +{ + case $1 in + /dev/md[0-9] | /dev/md/[0-9]) + : ;; # Continue + *) + return 1 ;; + esac + + [ -x /sbin/mdadm ] || return 1 + + # Check that the raid device is raid1 + raidlevel=$(mdadm -D -b $1 | grep "^ARRAY" | \ + sed "s/^.*level=//" | cut -d" " -f1) + [ "$raidlevel" = "raid1" ] || return 1 + + # Take only the first device that makes up the raid + raiddev=$(mdadm -D $1 | grep -A1 "Number" | grep "dev" \ + | sed "s/^.*\(\/dev\/.*\)$/\1/") + [ -n "$raiddev" ] || return 1 + + echo $raiddev + return 0 +} + +# Usage: convert os_device +# Convert an OS device to the corresponding GRUB drive. +convert () { + if ! test -e ${device_map} ; then + echo quit | grub --batch --no-floppy --device-map=${device_map} > /dev/null + fi + GRUB_LEGACY_0_BASED_PARTITIONS=1 grub-probe --device-map=${device_map} -t drive -d "$1" 2> /dev/null || { + echo "warning: grub-probe can't find drive for $1." >&2 + tmp_map=$(mktemp -t device.map.XXXXXXXX) + grub-mkdevicemap --device-map=${tmp_map} --no-floppy >/dev/null 2>&1 || true + GRUB_LEGACY_0_BASED_PARTITIONS=1 grub-probe --device-map=${tmp_map} -t drive -d "$1" || { + rm -f ${tmp_map} + return 1 + } + echo "Please check ${device_map}, you might have to regenerate it with grub-mkdevicemap." >&2 + rm -f ${tmp_map} + } +} + +# Usage: convert_default os_device +# Convert an OS device to the corresponding GRUB drive. +convert_default () { + # Check if device is software raid1 array + if tmp_dev=$(convert_raid1 $1 2>/dev/null) ; then + : # Use device returned by convert_raid1 + else + tmp_dev=$1 + fi + + convert $tmp_dev +} + +## Configuration Options + +# Full path to the menu.lst +menu_file_basename=menu.lst +menu_file=$grub_dir/$menu_file_basename + +# Full path to the default file +default_file_basename=default +default_file=$grub_dir/$default_file_basename + +# the device for the / filesystem +root_device=$(find_device "/") + +# loop-AES arranges things so that /dev/loop/X can be our root device, but +# the initrds that Linux uses don't like that. +case ${root_device} in + /dev/loop/*|/dev/loop[0-9]) + root_device=`losetup ${root_device} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"` + ;; +esac + +# the device for the /boot filesystem +boot_device=$(find_device "/boot") + +# where grub looks for the kernels at boot time +kernel_dir=`make_system_path_relative_to_its_root /boot` + +# the "-t abstraction" check is a workaround untill #484297 is fixed +if abstraction=`grub-probe -t abstraction --device ${root_device} 2> /dev/null` && [ "$abstraction" = "" ] && \ + root_uuid=`grub-probe --device-map=${device_map} --device ${root_device} --target=fs_uuid 2> /dev/null` && \ + test -e "/dev/disk/by-uuid/${root_uuid}" ; then + linux_root_device=UUID=${root_uuid} +else + linux_root_device=${root_device} +fi + +# Default kernel options, overidden by the kopt statement in the menufile. +kopt="root=$linux_root_device ro" + +# Title +title="Debian GNU/`uname -s | sed -e s,GNU/,,g`" + +# should update-grub remember the default entry +updatedefaultentry="false" + +# Drive(in GRUB terms) where the kernel is located. Overridden by the +# groot statement in menufile. +grub_root_device=$(convert_default "$boot_device") + +# should grub create the alternative boot options in the menu + alternative="true" + +# should grub lock the alternative boot options in the menu + lockalternative="false" + +# additional options to use with the default boot option, but not with the +# alternatives + defoptions="" + +# should grub lock the old kernels + lockold="false" + +# Xen hypervisor options to use with the default Xen boot option + xenhopt="" + +# Xen Linux kernel options to use with the default Xen boot option + xenkopt="console=tty0" + +# options to use with the alternative boot options + altoptions="(single-user mode) single" + +# controls howmany kernels are listed in the config file, +# this does not include the alternative kernels + howmany="all" + +# should grub create a memtest86 entry + memtest86="true" + +# should grub add "savedefault" to default boot options + savedefault="false" + +# stores the command line arguments + command_line_arguments=$1 + +# read user configuration +if test -f "/etc/default/grub" ; then + . /etc/default/grub +fi + +# Default options to use in a new config file. This will only be used if $menu_file +# doesn't already exist. Only edit the lines between the two "EOF"s. The others are +# part of the script. +newtemplate=$(tempfile) +cat > "$newtemplate" <&2 +if [ -f "$default_file" ] ; then + echo "found: $default_file" >&2 +else + echo "Generating $default_file file and setting the default boot entry to 0" >&2 + if [ -f /usr/lib/grub-legacy/grub-set-default ] ; then + /usr/lib/grub-legacy/grub-set-default $1 + else + grub-set-default $1 + fi +fi + +# Make sure we use the standard sorting order +LC_COLLATE=C +# Magic markers we use +start="### BEGIN AUTOMAGIC KERNELS LIST" +end="### END DEBIAN AUTOMAGIC KERNELS LIST" + +startopt="## ## Start Default Options ##" +endopt="## ## End Default Options ##" + +# Extract options from config file +ExtractMenuOpt() +{ + opt=$1 + + sed -ne "/^$start\$/,/^$end\$/ { + /^$startopt\$/,/^$endopt\$/ { + /^# $opt=/ { + s/^# $opt=\(.*\)\$/\1/ + p + } + } + }" $menu +} + +GetMenuOpts() +{ + opt=$1 + + sed -ne "/^$start\$/,/^$end\$/ { + /^$startopt\$/,/^$endopt\$/ { + /^# $opt=/ { + p + } + } + }" $menu +} + +ExtractMenuOpts() +{ + opt=$1 + + GetMenuOpts $opt | sed "s/^# $opt=\(.*\)\$/\1=\"\2\"/" +} + +GetMenuOpt() +{ + opt=$1 + value=$2 + + [ -z "$(GetMenuOpts "$opt")" ] || value=$(ExtractMenuOpt "$opt") + + echo $value +} + +# Compares two version strings A and B +# Returns -1 if AB +# This compares version numbers of the form +# 2.4.14.2 > 2.4.14 +# 2.4.14random = 2.4.14-random > 2.4.14-ac10 > 2.4.14 > 2.4.14-pre2 > +# 2.4.14-pre1 > 2.4.13-ac99 +CompareVersions() +{ + local a=`echo $1 | sed -e "s,.*/vmlinu[zx]-,,g;s/[._-]\(pre\|rc\|test\|git\)/~\1/g"` + local b=`echo $2 | sed -e "s,.*/vmlinu[zx]-,,g;s/[._-]\(pre\|rc\|test\|git\)/~\1/g"` + if [ "$a" = "$b" ] ; then + echo 0 + elif dpkg --compare-versions "$a" gt "$b" ; then + echo 1 + else + echo -1 + fi +} + +# looks in the directory specified for an initrd image with the version specified +FindInitrdName() +{ + # strip trailing slashes + directory=$(echo $1 | sed -e 's#/*$##') + version=$2 + + # initrd + # initrd.img + # initrd-lvm + # .*.gz + + initrdName="" + names="initrd initrd.img initrd-lvm" + compressed="gz" + + for n in $names ; do + # make sure we haven't already found it + if [ -z "$initrdName" ] ; then + if [ -f "$directory/$n$version" ] ; then + initrdName="$n$version" + break + else + for c in $compressed ; do + if [ -f "$directory/$n$version.$c" ] ; then + initrdName="$n$version.$c" + break + fi + done + fi + else + break + fi + done + + # return the result + echo $initrdName +} + +FindXenHypervisorVersions () +{ + version=$1 + + if [ -f "/var/lib/linux-image-$version/xen-versions" ]; then + ret="$(cat /var/lib/linux-image-$version/xen-versions)" + fi + + echo $ret +} + +get_kernel_opt() +{ + kernel_version=$1 + + version=$(echo $kernel_version | sed 's/^[^0-9]*//') + version=$(echo $version | sed 's/[-\+\.]/_/g') + if [ -n "$version" ] ; then + while [ -n "$version" ] ; do + currentOpt="$(eval "echo \${kopt_$version}")" + if [ -n "$currentOpt" ] ; then + break + fi + version=$(echo $version | sed 's/_\?[^_]*$//') + done + fi + + if [ -z "$currentOpt" ] ; then + currentOpt=$kopt + fi + + echo $currentOpt +} + +write_kernel_entry() +{ + local kernel_version; kernel_version=$1; shift + local recovery_desc; recovery_desc=$1; shift + local lock_alternative; lock_alternative=$1; shift + local grub_root_device; grub_root_device=$1; shift + local kernel; kernel=$1; shift + local kernel_options; kernel_options=$1; shift + local recovery_suffix; recovery_suffix=$1; shift + local initrd; initrd=$1; shift + local savedefault; savedefault=$1; shift + local lockold; lockold=$1; shift + local hypervisor + if [ -n "$1" ]; then + # Hypervisor. + hypervisor=$1; shift + local hypervisor_image; hypervisor_image=$1; shift + local hypervisor_version; hypervisor_version=$1; shift + local hypervisor_options; hypervisor_options=$1; shift + fi + + echo -n "title " >> $buffer + + if [ -n "$hypervisor" ]; then + echo -n "$hypervisor $hypervisor_version / " >> $buffer + fi + + echo -n "$title" >> $buffer + if [ -n "$kernel_version" ]; then + echo -n ", kernel $kernel_version" >> $buffer + fi + if [ -n "$recovery_desc" ]; then + echo -n " $recovery_desc" >> $buffer + fi + echo >> $buffer + + # lock the alternative options + if test x"$lock_alternative" = x"true" ; then + echo "lock" >> $buffer + fi + # lock the old entries + if test x"$lockold" = x"true" ; then + echo "lock" >> $buffer + fi + + echo "root $grub_root_device" >> $buffer + + echo -n "kernel " >> $buffer + if [ -n "$hypervisor" ]; then + echo -n "$hypervisor_image" >> $buffer + if [ -n "$hypervisor_options" ]; then + echo -n " $hypervisor_options" >> $buffer + fi + echo >> $buffer + echo -n "module " >> $buffer + fi + echo -n "$kernel" >> $buffer + if [ -n "$kernel_options" ]; then + echo -n " $kernel_options" >> $buffer + fi + if [ -n "$recovery_desc" ]; then + echo -n " $recovery_suffix" >> $buffer + fi + echo >> $buffer + + if [ -n "$initrd" ]; then + if [ -n "$hypervisor" ]; then + echo -n "module " >> $buffer + else + echo -n "initrd " >> $buffer + fi + echo "$initrd" >> $buffer + fi + + if test x"$savedefault" = x"true" ; then + echo "savedefault" >> $buffer + fi + echo >> $buffer +} + + +echo -n "Testing for an existing GRUB $menu_file_basename file ... " >&2 + +# Test if our menu file exists +if [ -f "$menu_file" ] ; then + menu="$menu_file" + rm -f $newtemplate + unset newtemplate + echo "found: $menu_file" >&2 + cp -f "$menu_file" "$menu_file~" +else + # if not ask user if they want us to create one + menu="$menu_file" + echo >&2 + echo >&2 + if [ "-y" = "$command_line_arguments" ] ; then + echo "Warning: ignoring deprecated -y option." >&2 + fi + echo >&2 + echo "Generating $menu_file" >&2 + cat "$newtemplate" > $menu_file + rm -f $newtemplate + unset newtemplate +fi + +# Extract the kernel options to use +kopt=$(GetMenuOpt "kopt" "$kopt") + +# Set the kernel 2.6 option only for fresh install +test -z "$(GetMenuOpt "kopt" "")" && kopt_2_6="root=$linux_root_device ro" + +# Extract options for specific kernels +opts="$(ExtractMenuOpts "\(kopt_[[:alnum:]_]\+\)")" +test -z "$opts" || eval "$opts" +CustomKopts=$(GetMenuOpts "\(kopt_[[:alnum:]_]\+\)") + +# Extract the grub root +grub_root_device=$(GetMenuOpt "groot" "$grub_root_device") + +# Extract the old recovery value +alternative=$(GetMenuOpt "recovery" "$alternative") + +# Extract the alternative value +alternative=$(GetMenuOpt "alternative" "$alternative") + +# Extract the lockalternative value +lockalternative=$(GetMenuOpt "lockalternative" "$lockalternative") + +# Extract the additional default options +defoptions=$(GetMenuOpt "defoptions" "$defoptions") + +# Extract the lockold value +lockold=$(GetMenuOpt "lockold" "$lockold") + +# Extract Xen hypervisor options +xenhopt=$(GetMenuOpt "xenhopt" "$xenhopt") + +# Extract Xen Linux kernel options +xenkopt=$(GetMenuOpt "xenkopt" "$xenkopt") + +# Extract the howmany value +howmany=$(GetMenuOpt "howmany" "$howmany") + +# Extract the memtest86 value +memtest86=$(GetMenuOpt "memtest86" "$memtest86") + + +# Extract the updatedefaultentry option +updatedefaultentry=$(GetMenuOpt "updatedefaultentry" "$updatedefaultentry") + +# Extract the savedefault option +savedefault=$(GetMenuOpt "savedefault" "$savedefault") + +# Generate the menu options we want to insert +buffer=$(tempfile) +echo $start >> $buffer +echo "## lines between the AUTOMAGIC KERNELS LIST markers will be modified" >> $buffer +echo "## by the debian update-grub script except for the default options below" >> $buffer +echo >> $buffer +echo "## DO NOT UNCOMMENT THEM, Just edit them to your needs" >> $buffer +echo >> $buffer +echo "## ## Start Default Options ##" >> $buffer + +echo "## default kernel options" >> $buffer +echo "## default kernel options for automagic boot options" >> $buffer +echo "## If you want special options for specific kernels use kopt_x_y_z" >> $buffer +echo "## where x.y.z is kernel version. Minor versions can be omitted." >> $buffer +echo "## e.g. kopt=root=/dev/hda1 ro" >> $buffer +echo "## kopt_2_6_8=root=/dev/hdc1 ro" >> $buffer +echo "## kopt_2_6_8_2_686=root=/dev/hdc2 ro" >> $buffer +echo "# kopt=$kopt" >> $buffer +if [ -n "$CustomKopts" ] ; then + echo "$CustomKopts" >> $buffer +elif [ -n "$kopt_2_6" ] && [ "$kopt" != "$kopt_2_6" ]; then + echo "# kopt_2_6=$kopt_2_6" >> $buffer +fi +echo >> $buffer + +echo "## default grub root device" >> $buffer +echo "## e.g. groot=(hd0,0)" >> $buffer +echo "# groot=$grub_root_device" >> $buffer +echo >> $buffer + +echo "## should update-grub create alternative automagic boot options" >> $buffer +echo "## e.g. alternative=true" >> $buffer +echo "## alternative=false" >> $buffer +echo "# alternative=$alternative" >> $buffer +echo >> $buffer + +echo "## should update-grub lock alternative automagic boot options" >> $buffer +echo "## e.g. lockalternative=true" >> $buffer +echo "## lockalternative=false" >> $buffer +echo "# lockalternative=$lockalternative" >> $buffer +echo >> $buffer + +echo "## additional options to use with the default boot option, but not with the" >> $buffer +echo "## alternatives" >> $buffer +echo "## e.g. defoptions=vga=791 resume=/dev/hda5" >> $buffer +echo "# defoptions=$defoptions" >> $buffer +echo >> $buffer + +echo "## should update-grub lock old automagic boot options" >> $buffer +echo "## e.g. lockold=false" >> $buffer +echo "## lockold=true" >> $buffer +echo "# lockold=$lockold" >> $buffer +echo >> $buffer + +echo "## Xen hypervisor options to use with the default Xen boot option" >> $buffer +echo "# xenhopt=$xenhopt" >> $buffer +echo >> $buffer + +echo "## Xen Linux kernel options to use with the default Xen boot option" >> $buffer +echo "# xenkopt=$xenkopt" >> $buffer +echo >> $buffer + +echo "## altoption boot targets option" >> $buffer +echo "## multiple altoptions lines are allowed" >> $buffer +echo "## e.g. altoptions=(extra menu suffix) extra boot options" >> $buffer +echo "## altoptions=(single-user) single" >> $buffer + +if ! grep -q "^# altoptions" $menu ; then + echo "# altoptions=$altoptions" >> $buffer +else + grep "^# altoptions" $menu >> $buffer +fi +echo >> $buffer + +echo "## controls how many kernels should be put into the $menu_file_basename" >> $buffer +echo "## only counts the first occurence of a kernel, not the" >> $buffer +echo "## alternative kernel options" >> $buffer +echo "## e.g. howmany=all" >> $buffer +echo "## howmany=7" >> $buffer +echo "# howmany=$howmany" >> $buffer +echo >> $buffer + + +echo "## should update-grub create memtest86 boot option" >> $buffer +echo "## e.g. memtest86=true" >> $buffer +echo "## memtest86=false" >> $buffer +echo "# memtest86=$memtest86" >> $buffer +echo >> $buffer + +echo "## should update-grub adjust the value of the default booted system" >> $buffer +echo "## can be true or false" >> $buffer +echo "# updatedefaultentry=$updatedefaultentry" >> $buffer +echo >> $buffer + +echo "## should update-grub add savedefault to the default options" >> $buffer +echo "## can be true or false" >> $buffer +echo "# savedefault=$savedefault" >> $buffer +echo >> $buffer + +echo "## ## End Default Options ##" >> $buffer +echo >> $buffer + +echo -n "Searching for splash image ... " >&2 +current_splash=`grep '^splashimage=' ${menu_file} || true` +grub_dir_rel=`make_system_path_relative_to_its_root $grub_dir` +splashimage_path="splashimage=${grub_root_device}/${grub_dir_rel##${kernel_dir}}/splash.xpm.gz" +if [ `sed -e "/^$start/,/^$end/d" $menu_file | grep -c '^splashimage='` != "0" ] ; then + #checks for splashscreen defined outside the autoupdated part + splashimage=$(grep '^splashimage=' ${menu_file}) + echo "found: ${splashimage##*=}" >&2 + echo >&2 +elif [ -f "${grub_dir}/splash.xpm.gz" ] && [ "$current_splash" = "" ]; then + echo "found: /boot/grub/splash.xpm.gz" >&2 + echo "$splashimage_path" >> $buffer + echo >> $buffer +elif [ -f "${grub_dir}/splash.xpm.gz" ] && [ "$current_splash" = "$splashimage_path" ]; then + echo "found: /boot/grub/splash.xpm.gz" >&2 + echo "$splashimage_path" >> $buffer + echo >> $buffer +elif [ "$current_splash" != "" ] && [ "$current_splash" != "$splashimage_path" ]; then + echo "found but preserving previous setting: $(grep '^splashimage=' ${menu_file})" >&2 + echo "$current_splash" >> $buffer + echo >> $buffer +else + echo "none found, skipping ..." >&2 +fi + +xen0Kernels="" +# First kernels with xen0 support. +for ver in `grep -l CONFIG_XEN=y /boot/config* | sed -e s%/boot/config-%%`; do + if ! grep -q CONFIG_XEN_PRIVILEGED_GUEST=y /boot/config-$ver ; then + continue + fi + # ver is a kernel version + kern="/boot/vmlinuz-$ver" + if [ -r $kern ] ; then + newerKernels="" + for i in $xen0Kernels ; do + res=$(CompareVersions "$kern" "$i") + if [ "$kern" != "" ] && [ "$res" -gt 0 ] ; then + newerKernels="$newerKernels $kern $i" + kern="" + else + newerKernels="$newerKernels $i" + fi + done + if [ "$kern" != "" ] ; then + newerKernels="$newerKernels $kern" + fi + xen0Kernels="$newerKernels" + fi +done + +sortedKernels="" +for kern in $(/bin/ls -1vr /boot | grep -v "dpkg-*" | grep "^vmlinuz-") ; do + kern="/boot/$kern" + newerKernels="" + for i in $sortedKernels ; do + res=$(CompareVersions "$kern" "$i") + if [ "$kern" != "" ] && [ "$res" -gt 0 ] ; then + newerKernels="$newerKernels $kern $i" + kern="" + else + newerKernels="$newerKernels $i" + fi + done + if [ "$kern" != "" ] ; then + newerKernels="$newerKernels $kern" + fi + sortedKernels="$newerKernels" +done + +if test -f "/boot/vmlinuz.old" ; then + sortedKernels="/boot/vmlinuz.old $sortedKernels" +fi +if test -f "/boot/vmlinuz" ; then + sortedKernels="/boot/vmlinuz $sortedKernels" +fi + +hypervisors="" +for hyp in /boot/xen-*.gz; do + if [ ! -h "$hyp" ] && [ -f "$hyp" ]; then + hypervisors="$hypervisors `basename "$hyp"`" + fi +done + +#Finding the value the default line +use_grub_set_default="false" +if test "$updatedefaultentry" = "true" ; then + defaultEntryNumber=$(sed -ne 's/^[[:blank:]]*default[[:blank:]]*\(.*\).*/\1/p' $menu) + + if [ "$defaultEntryNumber" = "saved" ] ; then + defaultEntryNumber=$(sed 'q' "$grub_dir/default") + use_grub_set_default="true" + fi + + if test -n "$defaultEntryNumber"; then + defaultEntryNumberPlusOne=$(expr $defaultEntryNumber \+ 1); + defaultEntry=$(grep "^[[:blank:]]*title" $menu | sed -ne "${defaultEntryNumberPlusOne}p" | sed -ne ";s/^[[:blank:]]*title[[:blank:]]*//p") + defaultEntry=$(echo $defaultEntry | sed -e "s/[[:blank:]]*$//") # don't trust trailing blanks + else + notChangeDefault="yes" + fi +else + notChangeDefault="yes" +fi + +## heres where we start writing out the kernel entries +counter=0 + +grub2name="${kernel_dir}/grub/core.img" +if [ "$LET_US_TRY_GRUB_2" = "true" ] \ + && test -f /boot/grub/core.img ; then + echo "Found GRUB 2: $grub2name" >&2 + cat >> $buffer << EOF +title Chainload into GRUB 2 +root $grub_root_device +kernel $grub2name + +title `echo ───────────────────────────────────────────────────────────────────── | iconv -f utf-8 -t cp437` +root + +title When you have verified GRUB 2 works, you can use this command to +root + +title complete the upgrade: upgrade-from-grub-legacy +root + +title `echo ───────────────────────────────────────────────────────────────────── | iconv -f utf-8 -t cp437` +root + +EOF +fi + + +# Xen entries first. +for kern in $xen0Kernels ; do + if test ! x"$howmany" = x"all" ; then + if [ $counter -gt $howmany ] ; then + break + fi + fi + + kernelName=$(basename $kern) + kernelVersion=$(echo $kernelName | sed -e 's/vmlinuz//') + + initrdName=$(FindInitrdName "/boot" "$kernelVersion") + initrd="" + + kernel=$kernel_dir/$kernelName + if [ -n "$initrdName" ] ; then + initrd=$kernel_dir/$initrdName + fi + + kernelVersion=$(echo $kernelVersion | sed -e 's/^-//') + currentOpt=$(get_kernel_opt $kernelVersion) + + hypervisorVersions=$(FindXenHypervisorVersions "$kernelVersion") + + found= + for hypervisorVersion in $hypervisorVersions; do + hypervisor="$kernel_dir/xen-$hypervisorVersion.gz" + if [ -e "$hypervisor" ]; then + found=1 + + echo "Found Xen hypervisor $hypervisorVersion, kernel: $kernel" >&2 + + write_kernel_entry "$kernelVersion" '' '' "$grub_root_device" \ + "$kernel" "$currentOpt $xenkopt" '' "$initrd" "$savedefault" '' \ + Xen "$hypervisor" "$hypervisorVersion" "$xenhopt" + counter=$(($counter + 1)) + fi + done + + if [ -z $found ]; then + for hypervisor in $hypervisors; do + hypVersion=`basename "$hypervisor" .gz | sed s%xen-%%` + + echo "Found Xen hypervisor $hypVersion, kernel: $kernel" >&2 + + write_kernel_entry "$kernelVersion" '' '' "$grub_root_device" \ + "$kernel" "$currentOpt $xenkopt" '' "$initrd" "$savedefault" '' \ + Xen "$kernel_dir/$hypervisor" "$hypVersion" "$xenhopt" + counter=$(($counter + 1)) + done + fi +done + +for kern in $sortedKernels ; do + counter=$(($counter + 1)) + if test ! x"$howmany" = x"all" ; then + if [ $counter -gt $howmany ] ; then + break + fi + fi + kernelName=$(basename $kern) + kernelVersion=$(echo $kernelName | sed -e 's/vmlinuz//') + initrdName=$(FindInitrdName "/boot" "$kernelVersion") + initrd="" + + kernel=$kernel_dir/$kernelName + if [ -n "$initrdName" ] ; then + initrd=$kernel_dir/$initrdName + fi + + echo "Found kernel: $kernel" >&2 + + if [ "$kernelName" = "vmlinuz" ]; then + if [ -L "/boot/$kernelName" ]; then + kernelVersion=`readlink -f "/boot/$kernelName"` + kernelVersion=$(echo $kernelVersion | sed -e 's/.*vmlinuz-//') + kernelVersion="$kernelVersion Default" + else + kernelVersion="Default" + fi + fi + if [ "$kernelName" = "vmlinuz.old" ]; then + if [ -L "/boot/$kernelName" ]; then + kernelVersion=`readlink -f "/boot/$kernelName"` + kernelVersion=$(echo $kernelVersion | sed -e 's/.*vmlinuz-//') + kernelVersion="$kernelVersion Previous" + else + kernelVersion="Previous" + fi + fi + kernelVersion=$(echo $kernelVersion | sed -e 's/^-//') + + currentOpt=$(get_kernel_opt $kernelVersion) + + do_lockold=$lockold + # do not lockold for the first entry + [ $counter -eq 1 ] && do_lockold=false + + write_kernel_entry "$kernelVersion" "" "" "$grub_root_device" "$kernel" \ + "$currentOpt $defoptions" "" "$initrd" "$savedefault" "$do_lockold" + + # insert the alternative boot options + if test ! x"$alternative" = x"false" ; then + # for each altoptions line do this stuff + sed -ne 's/# altoptions=\(.*\)/\1/p' $buffer | while read line; do + descr=$(echo $line | sed -ne 's/\(([^)]*)\)[[:space:]]\(.*\)/\1/p') + suffix=$(echo $line | sed -ne 's/\(([^)]*)\)[[:space:]]\(.*\)/\2/p') + + test x"$lockalternative" = x"true" && do_lockold=false + write_kernel_entry "$kernelVersion" "$descr" "$lockalternative" \ + "$grub_root_device" "$kernel" "$currentOpt" "$suffix" "$initrd" \ + "$savedefault" "$do_lockold" + + done + fi +done + +memtest86names="memtest86 memtest86+" + +if test ! x"$memtest86" = x"false" ; then + for name in $memtest86names ; do + if test -f "/boot/$name.bin" ; then + kernelVersion="$name" + kernel="$kernel_dir/$name.bin" + currentOpt= + initrd= + + echo "Found kernel: $kernel" >&2 + + write_kernel_entry "$kernelVersion" "" "" "$grub_root_device" \ + "$kernel" "$currentOpt" "" "$initrd" "false" "" + fi + done +fi + +echo $end >> $buffer + +echo -n "Updating $menu ... " >&2 +# Insert the new options into the menu +if ! grep -q "^$start" $menu ; then + cat $buffer >> $menu + rm -f $buffer +else + umask 077 + sed -e "/^$start/,/^$end/{ + /^$start/r $buffer + d + } + " $menu > $menu.new + cat $menu.new > $menu + rm -f $buffer $menu.new +fi + +# Function to update the default value +set_default_value() { + if [ "$use_grub_set_default" = "true" ] ; then + if [ -f /usr/lib/grub-legacy/grub-set-default ] ; then + /usr/lib/grub-legacy/grub-set-default $1 + else + grub-set-default $1 + fi + else + value="$1" + newmenu=$(tempfile) + sed -e "s/^[[:blank:]]*default[[:blank:]]*[[:digit:]]*\(.*\)/default ${value}\1/;b" $menu > $newmenu + cat $newmenu > $menu + rm -f $newmenu + unset newmenu + fi +} + +#Updating the default number +if [ "$LET_US_TRY_GRUB_2" = "true" ] && test -f /boot/grub/core.img ; then + set_default_value "0" +elif test -z "$notChangeDefault"; then + newDefaultNumberPlusOne=$(grep "^[[:blank:]]*title[[:blank:]]*" $menu | grep -n "${defaultEntry}" | cut -f1 -d ":" | sed -ne "1p") + if test -z "$newDefaultNumberPlusOne"; then + echo "Previous default entry removed, resetting to 0">&2 + set_default_value "0" + elif test -z "$defaultEntry"; then + echo "Value of default value matches no entry, resetting to 0" >&2 + set_default_value "0" + else + if test "$newDefaultNumberPlusOne" = "1"; then + newDefaultNumber="0" + else + newDefaultNumber=$(expr $newDefaultNumberPlusOne - 1) + fi + echo "Updating the default booting kernel">&2 + set_default_value "$newDefaultNumber" + fi +fi + +echo "done" >&2 +echo >&2 --- grub2-1.98+20100804.orig/debian/legacy/upgrade-from-grub-legacy +++ grub2-1.98+20100804/debian/legacy/upgrade-from-grub-legacy @@ -0,0 +1,42 @@ +#!/bin/bash -e + +if test ! -f /boot/grub/core.img ; then + echo -e "\ncore.img doesn't exist, trying to create it.\n" >&2 + grub-install --no-floppy --grub-setup=/bin/true "(hd0)" > /dev/null +fi + +echo RESET grub-pc/install_devices | debconf-communicate + +# Pretend we're upgrading grub-pc. This will make our postinst DTRT. +UPGRADE_FROM_GRUB_LEGACY=1 \ + /var/lib/dpkg/info/grub-pc.postinst configure dummy-version + +if test ! -f /boot/grub/grub.cfg ; then + echo -e "\nCalling update-grub to generate grub.cfg\n" >&2 + update-grub || cat << EOF +Failed to generate /boot/grub/grub.cfg but GRUB2 has been already installed to +your MBR. +THIS MEANS YOU HAVE CURRENTLY AN UNBOOTABLE SYSTEM. +Either fix the error from update-grub and run $0 again +or install old grub again and run grub-install from it to have again +grub-legacy in your MBR. +EOF +fi + +# These never contain any valuable information, and they aren't useful for +# boot anymore, since we just overwrote MBR/PBR. +rm -f /boot/grub/{{xfs,reiserfs,e2fs,fat,jfs,minix}_stage1_5,stage{1,2}} +# Remove marker file used to indicate that grub-install was run rather than +# this script. Since stage2 has been removed, we don't need this any more. +rm -f /boot/grub/grub2-installed + +cat << EOF + +GRUB Legacy has been removed, but its configuration files have been preserved, +since this script cannot determine if they contain valuable information. If +you would like to remove the configuration files as well, use the following +command: + + rm -f /boot/grub/menu.lst* + +EOF --- grub2-1.98+20100804.orig/debian/kernel/zz-update-grub +++ grub2-1.98+20100804/debian/kernel/zz-update-grub @@ -0,0 +1,19 @@ +#! /bin/sh +set -e + +which update-grub >/dev/null 2>&1 || exit 0 + +set -- $DEB_MAINT_PARAMS +mode="${1#\'}" +mode="${mode%\'}" +case $0:$mode in + # Only run on postinst configure and postrm remove, to avoid wasting + # time by calling update-grub multiple times on upgrade and removal. + # Also run if we have no DEB_MAINT_PARAMS, in order to work with old + # kernel packages. + */postinst.d/*:|*/postinst.d/*:configure|*/postrm.d/*:|*/postrm.d/*:remove) + exec update-grub + ;; +esac + +exit 0 --- grub2-1.98+20100804.orig/debian/default/grub +++ grub2-1.98+20100804/debian/default/grub @@ -0,0 +1,30 @@ +# If you change this file, run 'update-grub' afterwards to update +# /boot/grub/grub.cfg. + +GRUB_DEFAULT=0 +GRUB_TIMEOUT=5 +GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` +GRUB_CMDLINE_LINUX_DEFAULT="quiet" +GRUB_CMDLINE_LINUX="" + +# Uncomment to enable BadRAM filtering, modify to suit your needs +# This works with Linux (no patch required) and with any kernel that obtains +# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...) +#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" + +# Uncomment to disable graphical terminal (grub-pc only) +#GRUB_TERMINAL=console + +# The resolution used on graphical terminal +# note that you can use only modes which your graphic card supports via VBE +# you can see them in real GRUB with the command `vbeinfo' +#GRUB_GFXMODE=640x480 + +# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux +#GRUB_DISABLE_LINUX_UUID=true + +# Uncomment to disable generation of recovery mode menu entries +#GRUB_DISABLE_LINUX_RECOVERY="true" + +# Uncomment to get a beep at grub start +#GRUB_INIT_TUNE="480 440 1" --- grub2-1.98+20100804.orig/debian/default/grub.md5sum +++ grub2-1.98+20100804/debian/default/grub.md5sum @@ -0,0 +1,2 @@ +dfad90339e4227d432636ed7d4483744 experimental_1.96+20081129-1 +e916b60d7de71969dd7bad5a809fb9dc lenny_1.96+20080724-16