You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
153 lines
8.0 KiB
153 lines
8.0 KiB
From a8fb484206d0cc509ba27b8214bdb512ba258702 Mon Sep 17 00:00:00 2001 |
|
From: Andrey Borzenkov <arvidjaar@gmail.com> |
|
Date: Sat, 18 Jan 2014 19:50:54 +0400 |
|
Subject: [PATCH 022/237] reintroduce BUILD_LDFLAGS for the cross-compile case |
|
|
|
This allows providing separate LDFLAGS for build and host environments, which |
|
are not necessary the same for cross-compile case. In particular, it allows |
|
building host programs statically to not depend on presence of libraries at |
|
run-time (e.g. MinGW DLLs on Windows) while continue to use default dynamic |
|
linking at build time. |
|
|
|
Also fix obsolete comments in confgure.ac - we do use different environment |
|
for build and host now. |
|
--- |
|
ChangeLog | 7 +++++++ |
|
INSTALL | 3 ++- |
|
Makefile.am | 8 ++++---- |
|
configure.ac | 13 ++++++++----- |
|
grub-core/Makefile.am | 6 +++--- |
|
5 files changed, 24 insertions(+), 13 deletions(-) |
|
|
|
diff --git a/ChangeLog b/ChangeLog |
|
index 8534158..9c3ef2e 100644 |
|
--- a/ChangeLog |
|
+++ b/ChangeLog |
|
@@ -1,3 +1,10 @@ |
|
+2014-01-07 Andrey Borzenkov <arvidjaar@gmail.com> |
|
+ |
|
+ * configure.ac: Add support for BUILD_LDFLAGS. |
|
+ * Makefile.am: Use BUILD_LDFLAGS for build time programs here ... |
|
+ * grub-core/Makefile.am: ... and here. |
|
+ * INSTALL: Mention BUILD_LDFLAGS. |
|
+ |
|
2014-01-18 Vladimir Serbinenko <phcoder@gmail.com> |
|
|
|
* util/grub-mount.c: Extend GCC warning workaround to grub-mount. |
|
diff --git a/INSTALL b/INSTALL |
|
index db12530..b67cd7f 100644 |
|
--- a/INSTALL |
|
+++ b/INSTALL |
|
@@ -168,7 +168,8 @@ corresponding platform are not needed for the platform in question. |
|
generate sin and cos tables. |
|
2. BUILD_CFLAGS= for C options for build. |
|
3. BUILD_CPPFLAGS= for C preprocessor options for build. |
|
- 4. BUILD_FREETYPE= for freetype-config for build (optional). |
|
+ 4. BUILD_LDFLAGS= for linker options for build. |
|
+ 5. BUILD_FREETYPE= for freetype-config for build (optional). |
|
|
|
- For host |
|
1. --host= to autoconf name of host. |
|
diff --git a/Makefile.am b/Makefile.am |
|
index 320e86f..1bbec0e 100644 |
|
--- a/Makefile.am |
|
+++ b/Makefile.am |
|
@@ -67,20 +67,20 @@ endif |
|
starfield_theme_files = $(srcdir)/themes/starfield/blob_w.png $(srcdir)/themes/starfield/boot_menu_c.png $(srcdir)/themes/starfield/boot_menu_e.png $(srcdir)/themes/starfield/boot_menu_ne.png $(srcdir)/themes/starfield/boot_menu_n.png $(srcdir)/themes/starfield/boot_menu_nw.png $(srcdir)/themes/starfield/boot_menu_se.png $(srcdir)/themes/starfield/boot_menu_s.png $(srcdir)/themes/starfield/boot_menu_sw.png $(srcdir)/themes/starfield/boot_menu_w.png $(srcdir)/themes/starfield/slider_c.png $(srcdir)/themes/starfield/slider_n.png $(srcdir)/themes/starfield/slider_s.png $(srcdir)/themes/starfield/starfield.png $(srcdir)/themes/starfield/terminal_box_c.png $(srcdir)/themes/starfield/terminal_box_e.png $(srcdir)/themes/starfield/terminal_box_ne.png $(srcdir)/themes/starfield/terminal_box_n.png $(srcdir)/themes/starfield/terminal_box_nw.png $(srcdir)/themes/starfield/terminal_box_se.png $(srcdir)/themes/starfield/terminal_box_s.png $(srcdir)/themes/starfield/terminal_box_sw.png $(srcdir)/themes/starfield/terminal_box_w.png $(srcdir)/themes/starfield/theme.txt $(srcdir)/themes/starfield/README $(srcdir)/themes/starfield/COPYING.CC-BY-SA-3.0 |
|
|
|
build-grub-mkfont: util/grub-mkfont.c grub-core/unidata.c grub-core/kern/emu/misc.c util/misc.c |
|
- $(BUILD_CC) -o $@ -I$(top_srcdir)/include $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) -DGRUB_MKFONT=1 -DGRUB_BUILD=1 -DGRUB_UTIL=1 -DGRUB_BUILD_PROGRAM_NAME=\"build-grub-mkfont\" $^ $(build_freetype_cflags) $(build_freetype_libs) |
|
+ $(BUILD_CC) -o $@ -I$(top_srcdir)/include $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $(BUILD_LDFLAGS) -DGRUB_MKFONT=1 -DGRUB_BUILD=1 -DGRUB_UTIL=1 -DGRUB_BUILD_PROGRAM_NAME=\"build-grub-mkfont\" $^ $(build_freetype_cflags) $(build_freetype_libs) |
|
CLEANFILES += build-grub-mkfont |
|
|
|
garbage-gen: util/garbage-gen.c |
|
- $(BUILD_CC) -o $@ $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $^ |
|
+ $(BUILD_CC) -o $@ $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $(BUILD_LDFLAGS) $^ |
|
CLEANFILES += garbage-gen |
|
EXTRA_DIST += util/garbage-gen.c |
|
|
|
build-grub-gen-asciih: util/grub-gen-asciih.c |
|
- $(BUILD_CC) -o $@ -I$(top_srcdir)/include $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) -DGRUB_MKFONT=1 -DGRUB_BUILD=1 -DGRUB_UTIL=1 $^ $(build_freetype_cflags) $(build_freetype_libs) -Wall -Werror |
|
+ $(BUILD_CC) -o $@ -I$(top_srcdir)/include $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $(BUILD_LDFLAGS) -DGRUB_MKFONT=1 -DGRUB_BUILD=1 -DGRUB_UTIL=1 $^ $(build_freetype_cflags) $(build_freetype_libs) -Wall -Werror |
|
CLEANFILES += build-grub-gen-asciih |
|
|
|
build-grub-gen-widthspec: util/grub-gen-widthspec.c |
|
- $(BUILD_CC) -o $@ -I$(top_srcdir)/include $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) -DGRUB_MKFONT=1 -DGRUB_BUILD=1 -DGRUB_UTIL=1 $^ $(build_freetype_cflags) $(build_freetype_libs) -Wall -Werror |
|
+ $(BUILD_CC) -o $@ -I$(top_srcdir)/include $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $(BUILD_LDFLAGS) -DGRUB_MKFONT=1 -DGRUB_BUILD=1 -DGRUB_UTIL=1 $^ $(build_freetype_cflags) $(build_freetype_libs) -Wall -Werror |
|
CLEANFILES += build-grub-gen-widthspec |
|
|
|
if COND_STARFIELD |
|
diff --git a/configure.ac b/configure.ac |
|
index 7c5d080..2e4cf3c 100644 |
|
--- a/configure.ac |
|
+++ b/configure.ac |
|
@@ -26,11 +26,10 @@ dnl This is necessary because the target type in autoconf does not |
|
dnl describe such a system very well. |
|
dnl |
|
dnl The current strategy is to use variables with no prefix (such as |
|
-dnl CC, CFLAGS, etc.) for the host type as well as the build type, |
|
-dnl because GRUB does not need to use those variables for the build |
|
-dnl type, so there is no conflict. Variables with the prefix "TARGET_" |
|
-dnl (such as TARGET_CC, TARGET_CFLAGS, etc.) are used for the target |
|
-dnl type. |
|
+dnl CC, CFLAGS, etc.) for the host type, variables with prefix "BUILD_" |
|
+dnl (such as BUILD_CC, BUILD_CFLAGS, etc.) for the build type and variables |
|
+dnl with the prefix "TARGET_" (such as TARGET_CC, TARGET_CFLAGS, etc.) are |
|
+dnl used for the target type. See INSTALL for full list of variables. |
|
|
|
AC_INIT([GRUB],[2.02~beta2],[bug-grub@gnu.org]) |
|
|
|
@@ -477,6 +476,7 @@ AC_SUBST(HOST_CC) |
|
AC_SUBST(BUILD_CC) |
|
AC_SUBST(BUILD_CFLAGS) |
|
AC_SUBST(BUILD_CPPFLAGS) |
|
+AC_SUBST(BUILD_LDFLAGS) |
|
AC_SUBST(TARGET_CC) |
|
AC_SUBST(TARGET_NM) |
|
AC_SUBST(TARGET_RANLIB) |
|
@@ -1290,10 +1290,12 @@ SAVED_CC="$CC" |
|
SAVED_CPP="$CPP" |
|
SAVED_CFLAGS="$CFLAGS" |
|
SAVED_CPPFLAGS="$CPPFLAGS" |
|
+SAVED_LDFLAGS="$LDFLAGS" |
|
CC="$BUILD_CC" |
|
CPP="$BUILD_CPP" |
|
CFLAGS="$BUILD_CFLAGS" |
|
CPPFLAGS="$BUILD_CPPFLAGS" |
|
+LDFLAGS="$BUILD_LDFAGS" |
|
|
|
unset ac_cv_c_bigendian |
|
unset ac_cv_header_ft2build_h |
|
@@ -1356,6 +1358,7 @@ CC="$SAVED_CC" |
|
CPP="$SAVED_CPP" |
|
CFLAGS="$SAVED_CFLAGS" |
|
CPPFLAGS="$SAVED_CPPFLAGS" |
|
+LDFLAGS="$SAVED_LDFLAGS" |
|
|
|
|
|
DJVU_FONT_SOURCE= |
|
diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am |
|
index 1b3142d..13b7979 100644 |
|
--- a/grub-core/Makefile.am |
|
+++ b/grub-core/Makefile.am |
|
@@ -27,14 +27,14 @@ CPPFLAGS_LIBRARY += $(CPPFLAGS_PLATFORM) |
|
CCASFLAGS_LIBRARY += $(CCASFLAGS_PLATFORM) |
|
|
|
build-grub-pep2elf: $(top_srcdir)/util/grub-pe2elf.c $(top_srcdir)/grub-core/kern/emu/misc.c $(top_srcdir)/util/misc.c |
|
- $(BUILD_CC) -o $@ -I$(top_srcdir)/include $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) -DGRUB_BUILD=1 -DGRUB_TARGET_WORDSIZE=64 -DGRUB_UTIL=1 -DGRUB_BUILD_PROGRAM_NAME=\"build-grub-pep2elf\" $^ |
|
+ $(BUILD_CC) -o $@ -I$(top_srcdir)/include $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $(BUILD_LDFLAGS) -DGRUB_BUILD=1 -DGRUB_TARGET_WORDSIZE=64 -DGRUB_UTIL=1 -DGRUB_BUILD_PROGRAM_NAME=\"build-grub-pep2elf\" $^ |
|
|
|
build-grub-pe2elf: $(top_srcdir)/util/grub-pe2elf.c $(top_srcdir)/grub-core/kern/emu/misc.c $(top_srcdir)/util/misc.c |
|
- $(BUILD_CC) -o $@ -I$(top_srcdir)/include $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) -DGRUB_BUILD=1 -DGRUB_TARGET_WORDSIZE=32 -DGRUB_UTIL=1 -DGRUB_BUILD_PROGRAM_NAME=\"build-grub-pe2elf\" $^ |
|
+ $(BUILD_CC) -o $@ -I$(top_srcdir)/include $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $(BUILD_LDFLAGS) -DGRUB_BUILD=1 -DGRUB_TARGET_WORDSIZE=32 -DGRUB_UTIL=1 -DGRUB_BUILD_PROGRAM_NAME=\"build-grub-pe2elf\" $^ |
|
|
|
# gentrigtables |
|
gentrigtables: gentrigtables.c |
|
- $(BUILD_CC) -o $@ -I$(top_srcdir)/include $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $< $(BUILD_LIBM) |
|
+ $(BUILD_CC) -o $@ -I$(top_srcdir)/include $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $(BUILD_LDFLAGS) $< $(BUILD_LIBM) |
|
CLEANFILES += gentrigtables |
|
|
|
# trigtables.c |
|
-- |
|
2.9.3 |
|
|
|
|