From: "Yoshinori K. Okuji" <okuji@enbug.org>
To: The development of GRUB 2 <grub-devel@gnu.org>
Subject: Re: configure host and target
Date: Wed, 31 May 2006 03:02:20 +0200 [thread overview]
Message-ID: <200605310302.20147.okuji@enbug.org> (raw)
In-Reply-To: <200605262104.55720.okuji@enbug.org>
I describe the new build system a bit here. Maybe this should be written in
somewhere else (such as INSTALL) as well...
GRUB uses "target" and "host". "build" is not explicitly used. A target
represents a native environment where GRUB runs. In reality, the target type
affects:
- the cpu type
- the executable format (for now, must be ELF)
The vendor and the operating system in a target type does not really matter,
except for the choice of programs and supported executable formats, because
you should specify a platform (such as firmware) by --with-platform to
configure.
A host type specifies an environment where utilities are executed. Unless you
are cross-compiling GRUB, you do not have to care very much.
The usage of compiler flags is the following:
- CC, CFLAGS, CPPFLAGS, ASFLAGS and LDFLAGS are used for the host type.
- If you need to specify non-standard locations for header files or libraries,
you should specify CPPFLAGS or LDFLAGS.
- If you cross-compile GRUB, you can set CC explicitly, but optionally.
- You do not need to struggle with CFLAGS or ASFLAGS. This is required only if
you intend to debug GRUB, or you want to optimize GRUB differently for an
unknown reason.
- TARGET_CC, TARGET_CFLAGS, TARGET_CPPFLAGS, TARGET_ASFLAGS and TARGET_LDFLAGS
are used for the target type.
- You might need to specify TARGET_CC explicitly, if you cross-compile GRUB.
- You should not touch other TARGET_* variables, unless you understand what
you are doing.
Besides these flags, GRUB uses target-specific flags (here, "target" means a
Makefile target, but not a target type in autoconf). This allows us to apply
flags specific to each object. This design is based on automake, since the
makefile generator in GRUB was influenced by automake significantly.
For example, when compiling normal.mod, normal_mod_CFLAGS, normal_mod_LDFLAGS,
etc. are applied as well as TARGET_CFLAGS, TARGET_LDFLAGS, etc. This part is
important only for developers, as the user is not supposed to tweak these
target-specific flags manually.
Okuji
next prev parent reply other threads:[~2006-05-31 1:02 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-26 19:04 configure host and target Yoshinori K. Okuji
2006-05-29 17:57 ` Thomas Schwinge
2006-05-31 1:02 ` Yoshinori K. Okuji [this message]
2006-05-31 8:59 ` Tomáš Ebenlendr
2006-06-01 15:43 ` Yoshinori K. Okuji
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200605310302.20147.okuji@enbug.org \
--to=okuji@enbug.org \
--cc=grub-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.