Skip to contentSkip to conversation

Permit building grub with an external toolchain.

PATCH New Clark Rawlins 3 participants 13 messages Jan 2, 2010 – Jan 17, 2010

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Permit building grub with an external toolchain.

Grub build failed at the link stage because it
couldn't find libcurses. Adding these variable
invocations to the configure line make it work.

---
 target/x86/grub/grub.mk |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
target/x86/grub/grub.mk +2 -0
index af46244..21f089f 100644
@@ -81,6 +81,8 @@ $(GRUB_DIR)/.unpacked: $(DL_DIR)/$(GRUB_SOURCE) $(DL_DIR)/$(GRUB_PATCH)
 $(GRUB_DIR)/.configured: $(GRUB_DIR)/.unpacked
 	(cd $(GRUB_DIR); rm -rf config.cache; \
 		$(TARGET_CONFIGURE_OPTS) \
+		$(TARGET_CONFIGURE_ARGS) \
+		$(TARGET_CONFIGURE_ENV) \
 		CFLAGS="$(TARGET_CFLAGS)" \
 		CPPFLAGS="$(GRUB_CFLAGS)" \
 		./configure $(QUIET) \
Signature · 1 line
1.6.3.3
#1 lore raw

PATCH 1/1 Permit building grub with an external toolchain.

Le samedi 02 janvier 2010 ? 17:46 -0500, Clark Rawlins a ?crit :

Quoted 14 lines

Grub build failed at the link stage because it
couldn't find libcurses. Adding these variable
invocations to the configure line make it work.

---
 target/x86/grub/grub.mk |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
target/x86/grub/grub.mk +0 -0
index af46244..21f089f 100644

target/x86/grub/grub.mk $(GRUB_DIR)/.unpacked: $(DL_DIR)/$(GRUB_SOURCE) $(DL_DIR)/$(GRUB_PATCH) · line 88

Quoted 8 lines
target/x86/grub/grub.mk +2 -0
@@ -81,6 +81,8 @@ $(GRUB_DIR)/.unpacked: $(DL_DIR)/$(GRUB_SOURCE) $(DL_DIR)/$(GRUB_PATCH)
 $(GRUB_DIR)/.configured: $(GRUB_DIR)/.unpacked
 	(cd $(GRUB_DIR); rm -rf config.cache; \
 		$(TARGET_CONFIGURE_OPTS) \
+		$(TARGET_CONFIGURE_ARGS) \
+		$(TARGET_CONFIGURE_ENV) \
 		CFLAGS="$(TARGET_CFLAGS)" \
 		CPPFLAGS="$(GRUB_CFLAGS)" \
 		./configure $(QUIET) \

Maybe you should consider switching grub to the autotool infrastructure.

Signature · 1 line
Lionel Landwerlin
#2 lore raw

PATCH 1/1 Permit building grub with an external toolchain.

I could give that a shot. I thought as a start I would go with the smallest change possible. Any suggestions for an example to look at for switching grub to the autotools macros?

Quoted 33 lines · Lionel Landwerlin

Le samedi 02 janvier 2010 ? 17:46 -0500, Clark Rawlins a ?crit :

Quoted 14 lines

Grub build failed at the link stage because it
couldn't find libcurses. Adding these variable
invocations to the configure line make it work.

---
 target/x86/grub/grub.mk |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
target/x86/grub/grub.mk +0 -0
index af46244..21f089f 100644

target/x86/grub/grub.mk $(GRUB_DIR)/.unpacked: $(DL_DIR)/$(GRUB_SOURCE) $(DL_DIR)/$(GRUB_PATCH) · line 88

Quoted 8 lines
target/x86/grub/grub.mk +2 -0
@@ -81,6 +81,8 @@ $(GRUB_DIR)/.unpacked: $(DL_DIR)/$(GRUB_SOURCE) $(DL_DIR)/$(GRUB_PATCH)
 $(GRUB_DIR)/.configured: $(GRUB_DIR)/.unpacked
 	(cd $(GRUB_DIR); rm -rf config.cache; \
 		$(TARGET_CONFIGURE_OPTS) \
+		$(TARGET_CONFIGURE_ARGS) \
+		$(TARGET_CONFIGURE_ENV) \
 		CFLAGS="$(TARGET_CFLAGS)" \
 		CPPFLAGS="$(GRUB_CFLAGS)" \
 		./configure $(QUIET) \

Maybe you should consider switching grub to the autotool infrastructure.

Signature · 6 lines
Lionel Landwerlin

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
#3 lore raw

PATCH 1/1 Permit building grub with an external toolchain.

Here is one example :

http://git.buildroot.org/buildroot/commit/?id=21bab8862f3c2906af347e5a993ce4cd36c1b063

You can find a lot like this in the recent git history.
I'm think to the new infrastructure because it provides all the glue to configure the package, especially the 2 lines you added.

Regards,

Le samedi 02 janvier 2010 ? 21:15 -0500, Clark Rawlins a ?crit :

Quoted 40 lines

I could give that a shot. I thought as a start I would go with the smallest change possible. Any suggestions for an example to look at for switching grub to the autotools macros?

Quoted 33 lines · Lionel Landwerlin

Le samedi 02 janvier 2010 ? 17:46 -0500, Clark Rawlins a ?crit :

Quoted 14 lines

Grub build failed at the link stage because it
couldn't find libcurses. Adding these variable
invocations to the configure line make it work.

---
 target/x86/grub/grub.mk |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
target/x86/grub/grub.mk +0 -0
index af46244..21f089f 100644

target/x86/grub/grub.mk $(GRUB_DIR)/.unpacked: $(DL_DIR)/$(GRUB_SOURCE) $(DL_DIR)/$(GRUB_PATCH) · line 88

Quoted 8 lines
target/x86/grub/grub.mk +2 -0
@@ -81,6 +81,8 @@ $(GRUB_DIR)/.unpacked: $(DL_DIR)/$(GRUB_SOURCE) $(DL_DIR)/$(GRUB_PATCH)
 $(GRUB_DIR)/.configured: $(GRUB_DIR)/.unpacked
 	(cd $(GRUB_DIR); rm -rf config.cache; \
 		$(TARGET_CONFIGURE_OPTS) \
+		$(TARGET_CONFIGURE_ARGS) \
+		$(TARGET_CONFIGURE_ENV) \
 		CFLAGS="$(TARGET_CFLAGS)" \
 		CPPFLAGS="$(GRUB_CFLAGS)" \
 		./configure $(QUIET) \

Maybe you should consider switching grub to the autotool infrastructure.

Signature · 6 lines
Lionel Landwerlin

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 1 line
Lionel Landwerlin
#4 lore raw

PATCH 1/1 Permit building grub with an external toolchain.

Okay,

I've started looking at this but it isn't clear to me how to handle the following:

$(GRUB_DIR)/$(GRUB_BINARY): $(GRUB_DIR)/.configured

	$(MAKE) CC=$(TARGET_CC) -C $(GRUB_DIR)
	rm -f $(GRUB_DIR)/$(GRUB_BINARY)
	$(MAKE) CC=$(TARGET_CC) CFLAGS+=-static -C $(GRUB_DIR)/grub grub
	mkdir -p $(dir $(STAGING_DIR)/$(GRUB_TARGET_BINARY))
	mv $(GRUB_DIR)/$(GRUB_BINARY) $(STAGING_DIR)/$(GRUB_TARGET_BINARY).static
	$(MAKE) CC=$(TARGET_CC) -C $(GRUB_DIR)/grub

This builds everything dynamically linked first then builds the grub binary statically. Is the right way to do this to override the target after/before calling the autotools macro?

Quoted 53 lines · Lionel Landwerlin

Here is one example :

http://git.buildroot.org/buildroot/commit/?id=21bab8862f3c2906af347e5a993ce4cd36c1b063

You can find a lot like this in the recent git history.
I'm think to the new infrastructure because it provides all the glue to configure the package, especially the 2 lines you added.

Regards,

Le samedi 02 janvier 2010 ? 21:15 -0500, Clark Rawlins a ?crit :

Quoted 40 lines

I could give that a shot. I thought as a start I would go with the smallest change possible. Any suggestions for an example to look at for switching grub to the autotools macros?

Quoted 33 lines · Lionel Landwerlin

Le samedi 02 janvier 2010 ? 17:46 -0500, Clark Rawlins a ?crit :

Quoted 14 lines

Grub build failed at the link stage because it
couldn't find libcurses. Adding these variable
invocations to the configure line make it work.

---
 target/x86/grub/grub.mk |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
target/x86/grub/grub.mk +0 -0
index af46244..21f089f 100644

target/x86/grub/grub.mk $(GRUB_DIR)/.unpacked: $(DL_DIR)/$(GRUB_SOURCE) $(DL_DIR)/$(GRUB_PATCH) · line 88

Quoted 8 lines
target/x86/grub/grub.mk +2 -0
@@ -81,6 +81,8 @@ $(GRUB_DIR)/.unpacked: $(DL_DIR)/$(GRUB_SOURCE) $(DL_DIR)/$(GRUB_PATCH)
 $(GRUB_DIR)/.configured: $(GRUB_DIR)/.unpacked
 	(cd $(GRUB_DIR); rm -rf config.cache; \
 		$(TARGET_CONFIGURE_OPTS) \
+		$(TARGET_CONFIGURE_ARGS) \
+		$(TARGET_CONFIGURE_ENV) \
 		CFLAGS="$(TARGET_CFLAGS)" \
 		CPPFLAGS="$(GRUB_CFLAGS)" \
 		./configure $(QUIET) \

Maybe you should consider switching grub to the autotool infrastructure.

Signature · 6 lines
Lionel Landwerlin

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
#5 lore raw

PATCH 1/1 Permit building grub with an external toolchain.

Here is my attempt to use the autotools macros.
I look forward to any discussion, suggestions for improvement etc.

I attach the whole file since it is effectively a rewrite. If it is acceptable I will submit as a git diff against head.

Quoted 72 lines · Clark Rawlins

Okay,

I've started looking at this but it isn't clear to me how to handle the following:

$(GRUB_DIR)/$(GRUB_BINARY): $(GRUB_DIR)/.configured

	$(MAKE) CC=$(TARGET_CC) -C $(GRUB_DIR)
	rm -f $(GRUB_DIR)/$(GRUB_BINARY)
	$(MAKE) CC=$(TARGET_CC) CFLAGS+=-static -C $(GRUB_DIR)/grub grub
	mkdir -p $(dir $(STAGING_DIR)/$(GRUB_TARGET_BINARY))
	mv $(GRUB_DIR)/$(GRUB_BINARY) $(STAGING_DIR)/$(GRUB_TARGET_BINARY).static
	$(MAKE) CC=$(TARGET_CC) -C $(GRUB_DIR)/grub

This builds everything dynamically linked first then builds the grub binary statically. Is the right way to do this to override the target after/before calling the autotools macro?

Quoted 4 lines · Lionel Landwerlin

Here is one example :

http://git.buildroot.org/buildroot/commit/?id=21bab8862f3c2906af347e5a993ce4cd36c1b063

Quoted 49 lines

You can find a lot like this in the recent git history.
I'm think to the new infrastructure because it provides all the glue to configure the package, especially the 2 lines you added.

Regards,

Le samedi 02 janvier 2010 ? 21:15 -0500, Clark Rawlins a ?crit :

Quoted 40 lines

I could give that a shot. I thought as a start I would go with the smallest change possible. Any suggestions for an example to look at for switching grub to the autotools macros?

Quoted 33 lines · Lionel Landwerlin

Le samedi 02 janvier 2010 ? 17:46 -0500, Clark Rawlins a ?crit :

Quoted 14 lines

Grub build failed at the link stage because it
couldn't find libcurses. Adding these variable
invocations to the configure line make it work.

---
 target/x86/grub/grub.mk |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
target/x86/grub/grub.mk +0 -0
index af46244..21f089f 100644

target/x86/grub/grub.mk $(GRUB_DIR)/.unpacked: $(DL_DIR)/$(GRUB_SOURCE) $(DL_DIR)/$(GRUB_PATCH) · line 88

Quoted 8 lines
target/x86/grub/grub.mk +2 -0
@@ -81,6 +81,8 @@ $(GRUB_DIR)/.unpacked: $(DL_DIR)/$(GRUB_SOURCE) $(DL_DIR)/$(GRUB_PATCH)
 $(GRUB_DIR)/.configured: $(GRUB_DIR)/.unpacked
 	(cd $(GRUB_DIR); rm -rf config.cache; \
 		$(TARGET_CONFIGURE_OPTS) \
+		$(TARGET_CONFIGURE_ARGS) \
+		$(TARGET_CONFIGURE_ENV) \
 		CFLAGS="$(TARGET_CFLAGS)" \
 		CPPFLAGS="$(GRUB_CFLAGS)" \
 		./configure $(QUIET) \

Maybe you should consider switching grub to the autotool infrastructure.

Signature · 6 lines
Lionel Landwerlin

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Quoted 4 lines

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

-------------- next part --------------
GRUB_SUPPORTED_ARCH=n
ifeq ($(ARCH),i386)
GRUB_SUPPORTED_ARCH=y
endif
ifeq ($(ARCH),i486)
GRUB_SUPPORTED_ARCH=y
endif
ifeq ($(ARCH),i586)
GRUB_SUPPORTED_ARCH=y
endif
ifeq ($(ARCH),i686)
GRUB_SUPPORTED_ARCH=y
endif
ifeq ($(ARCH),x86_64)
GRUB_SUPPORTED_ARCH=y
endif
ifeq ($(GRUB_SUPPORTED_ARCH),y)
#############################################################
#

# grub
#
#############################################################
GRUB_VERSION:=0.97
GRUB_SOURCE:=grub_$(GRUB_VERSION).orig.tar.gz
GRUB_PATCH:=grub_$(GRUB_VERSION)-35.diff.gz
GRUB_SITE:=http://snapshot.debian.net/archive/2008/03/29/debian/pool/main/g/grub/
GRUB_BINARY:=grub/grub
GRUB_TARGET_BINARY:=sbin/grub
GRUB_SPLASHIMAGE=$(TOPDIR)/target/x86/grub/splash.xpm.gz

GRUB_AUTORECONF=NO
GRUB_INSTALL_TARGET=YES
GRUB_INSTALL_STAGING=YES

GRUB_CFLAGS=-DSUPPORT_LOOPDEV
ifeq ($(BR2_LARGEFILE),)
GRUB_CFLAGS+=-U_FILE_OFFSET_BITS
endif

GRUB_CONF_ENV=\
	CFLAGS="$(TARGET_CFLAGS) $(GRUB_CFLAGS)" \
	CPPFLAGS="$(TARGET_CFLAGS) $(GRUB_CFLAGS)" \
	CXXFLAGS="$(TARGET_CXXFLAGS)" \
	LDFLAGS="$(TARGET_LDFLAGS)" \
	FCFLAGS="$(TARGET_FCFLAGS)" \

GRUB_CONFIG-$(BR2_TARGET_GRUB_SPLASH) += --enable-graphics GRUB_CONFIG-$(BR2_TARGET_GRUB_DISKLESS) += --enable-diskless GRUB_CONFIG-$(BR2_TARGET_GRUB_3c595) += --enable-3c595 GRUB_CONFIG-$(BR2_TARGET_GRUB_3c90x) += --enable-3c90x GRUB_CONFIG-$(BR2_TARGET_GRUB_davicom) += --enable-davicom GRUB_CONFIG-$(BR2_TARGET_GRUB_e1000) += --enable-e1000 GRUB_CONFIG-$(BR2_TARGET_GRUB_eepro100) += --enable-eepro100 GRUB_CONFIG-$(BR2_TARGET_GRUB_epic100) += --enable-epic100 GRUB_CONFIG-$(BR2_TARGET_GRUB_forcedeth) += --enable-forcedeth GRUB_CONFIG-$(BR2_TARGET_GRUB_natsemi) += --enable-natsemi GRUB_CONFIG-$(BR2_TARGET_GRUB_ns83820) += --enable-ns83820 GRUB_CONFIG-$(BR2_TARGET_GRUB_ns8390) += --enable-ns8390 GRUB_CONFIG-$(BR2_TARGET_GRUB_pcnet32) += --enable-pcnet32 GRUB_CONFIG-$(BR2_TARGET_GRUB_pnic) += --enable-pnic GRUB_CONFIG-$(BR2_TARGET_GRUB_rtl8139) += --enable-rtl8139 GRUB_CONFIG-$(BR2_TARGET_GRUB_r8169) += --enable-r8169 GRUB_CONFIG-$(BR2_TARGET_GRUB_sis900) += --enable-sis900 GRUB_CONFIG-$(BR2_TARGET_GRUB_tg3) += --enable-tg3 GRUB_CONFIG-$(BR2_TARGET_GRUB_tulip) += --enable-tulip GRUB_CONFIG-$(BR2_TARGET_GRUB_tlan) += --enable-tlan GRUB_CONFIG-$(BR2_TARGET_GRUB_undi) += --enable-undi GRUB_CONFIG-$(BR2_TARGET_GRUB_via_rhine) += --enable-via-rhine GRUB_CONFIG-$(BR2_TARGET_GRUB_w89c840) += --enable-w89c840

GRUB_CONFIG_OPT=$(GRUB_CONFIG-y) --disable-auto-linux-mem-opt

define GRUB_APPLY_DEBIAN_PATCHES

	for i in `grep -v "^#" $(GRUB_DIR)/debian/patches/00list`; do \
		cat $(GRUB_DIR)/debian/patches/$$i | patch -p1 -d $(GRUB_DIR); \
	done

endef

GRUB_POST_PATCH_HOOKS = GRUB_APPLY_DEBIAN_PATCHES

define GRUB_CONFIGURE_CMDS

	(cd $(GRUB_SRCDIR) && rm -rf config.cache && \
	$(TARGET_CONFIGURE_OPTS) \
	$(TARGET_CONFIGURE_ARGS) \
	$(GRUB_CONF_ENV) \
	./configure \
		--target=$(GNU_TARGET_NAME) \
		--host=$(GNU_TARGET_NAME) \
		--build=$(GNU_HOST_NAME) \
		--prefix=/ \
		--mandir=/usr/man \
		--infodir=/usr/info \
		$(DISABLE_DOCUMENTATION) \
		$(DISABLE_NLS) \
		$(DISABLE_LARGEFILE) \
		$(DISABLE_IPV6) \
		$(QUIET) $(GRUB_CONF_OPT) \
	)

endef

define GRUB_BUILD_STATIC_TARGETS

	rm -f $(GRUB_SRCDIR)/$(GRUB_BINARY)
	$(MAKE) CC=$(TARGET_CC) CFLAGS+=-static -C $(GRUB_SRCDIR)/grub grub
	mkdir -p $(dir $(STAGING_DIR)/$(GRUB_TARGET_BINARY))
	mv $(GRUB_SRCDIR)/$(GRUB_BINARY) $(STAGING_DIR)/$(GRUB_TARGET_BINARY).static
	$(MAKE) CC=$(TARGET_CC) -C $(GRUB_SRCDIR)/grub

endef

GRUB_POST_BUILD_HOOKS = GRUB_BUILD_STATIC_TARGETS

define GRUB_INSTALL_BOOT_FILES

	test -d $(TARGET_DIR)/boot/grub || mkdir -p $(TARGET_DIR)/boot/grub
	cp $(GRUB_SRCDIR)/stage1/stage1 $(GRUB_SRCDIR)/stage2/*1_5 $(GRUB_SRCDIR)/stage2/stage2 $(TARGET_DIR)/boot/grub/

endef

define GRUB_INSTALL_SPLASHIMAGE

	test -f $(TARGET_DIR)/boot/grub/$(GRUB_SPLASHIMAGE) || \
		cp $(GRUB_SPLASHIMAGE) $(TARGET_DIR)/boot/grub/

endef

GRUB_POST_INSTALL_TARGET_HOOKS = GRUB_INSTALL_BOOT_FILES

ifeq ($(BR2_TARGET_GRUB_SPLASH),y)

	GRUB_POST_INSTALL_TARGET_HOOKS += GRUB_INSTALL_SPLASHIMAGE

endif

define GRUB_UNINSTALL_TARGET_CMDS

	$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(GRUB_SRCDIR) uninstall
	-$(MAKE) -C $(GRUB_SRCDIR) clean
	rm -f $(TARGET_DIR)/boot/grub/$(GRUB_SPLASHIMAGE) \
		$(TARGET_DIR)/sbin/$(GRUB_BINARY) \
		$(TARGET_DIR)/boot/grub/{stage{1,2},*1_5}

endef

$(eval $(call AUTOTARGETS,target/x86,grub))

endif

#6 lore raw

PATCH 1/1 Permit building grub with an external toolchain.

Why didn't you remove :

define GRUB_CONFIGURE_CMDS

	(cd $(GRUB_SRCDIR) && rm -rf config.cache && \
	$(TARGET_CONFIGURE_OPTS) \
	$(TARGET_CONFIGURE_ARGS) \
	$(GRUB_CONF_ENV) \
	./configure \
		--target=$(GNU_TARGET_NAME) \
		--host=$(GNU_TARGET_NAME) \
		--build=$(GNU_HOST_NAME) \
		--prefix=/ \
		--mandir=/usr/man \
		--infodir=/usr/info \
		$(DISABLE_DOCUMENTATION) \
		$(DISABLE_NLS) \
		$(DISABLE_LARGEFILE) \
		$(DISABLE_IPV6) \
		$(QUIET) $(GRUB_CONF_OPT) \
	)

endef

This might be handled by the autotool infrastructure. Otherwise it looks good, thx !

--
Lionel Landwerlin

Quoted 73 lines · Clark Rawlins

Here is my attempt to use the autotools macros.
I look forward to any discussion, suggestions for improvement etc.

I attach the whole file since it is effectively a rewrite. If it is acceptable I will submit as a git diff against head.

Quoted 11 lines · Clark Rawlins

Okay,

I've started looking at this but it isn't clear to me how to handle the following:

$(GRUB_DIR)/$(GRUB_BINARY): $(GRUB_DIR)/.configured

      $(MAKE) CC=$(TARGET_CC) -C $(GRUB_DIR)
      rm -f $(GRUB_DIR)/$(GRUB_BINARY)
      $(MAKE) CC=$(TARGET_CC) CFLAGS+=-static -C $(GRUB_DIR)/grub grub
      mkdir -p $(dir $(STAGING_DIR)/$(GRUB_TARGET_BINARY))
      mv $(GRUB_DIR)/$(GRUB_BINARY)

$(STAGING_DIR)/$(GRUB_TARGET_BINARY).static

Quoted 3 lines
      $(MAKE) CC=$(TARGET_CC) -C $(GRUB_DIR)/grub

This builds everything dynamically linked first then builds the grub

binary statically.

Quoted 1 line

Is the right way to do this to override the target after/before calling

the autotools macro?

Quoted 6 lines · Lionel Landwerlin
Quoted 3 lines

Here is one example :

http://git.buildroot.org/buildroot/commit/?id=21bab8862f3c2906af347e5a993ce4cd36c1b063

Quoted 11 lines
Quoted 11 lines

You can find a lot like this in the recent git history.
I'm think to the new infrastructure because it provides all the glue to configure the package, especially the 2 lines you added.

Regards,

Le samedi 02 janvier 2010 ? 21:15 -0500, Clark Rawlins a ?crit :

Quoted 2 lines

I could give that a shot. I thought as a start I would go with the smallest change possible. Any suggestions for an example to look at

for

Quoted 14 lines
Quoted 14 lines
Quoted 14 lines

switching grub to the autotools macros?

Quoted 10 lines · Lionel Landwerlin

Le samedi 02 janvier 2010 ? 17:46 -0500, Clark Rawlins a ?crit :

Quoted 9 lines

Grub build failed at the link stage because it
couldn't find libcurses. Adding these variable
invocations to the configure line make it work.

---
 target/x86/grub/grub.mk |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines

target/x86/grub/grub.mk $(GRUB_DIR)/.unpacked: $(DL_DIR)/$(GRUB_SOURCE)

Quoted 5 lines
target/x86/grub/grub.mk +0 -0
index af46244..21f089f 100644
@@ -81,6 +81,8 @@ $(GRUB_DIR)/.unpacked: $(DL_DIR)/$(GRUB_SOURCE)

$(DL_DIR)/$(GRUB_PATCH)

Quoted 9 lines
Quoted 9 lines
Quoted 9 lines
Quoted 9 lines
Quoted 8 lines
target/x86/grub/grub.mk +2 -0
 $(GRUB_DIR)/.configured: $(GRUB_DIR)/.unpacked
      (cd $(GRUB_DIR); rm -rf config.cache; \
              $(TARGET_CONFIGURE_OPTS) \
+             $(TARGET_CONFIGURE_ARGS) \
+             $(TARGET_CONFIGURE_ENV) \
              CFLAGS="$(TARGET_CFLAGS)" \
              CPPFLAGS="$(GRUB_CFLAGS)" \
              ./configure $(QUIET) \
Quoted 19 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

Maybe you should consider switching grub to the autotool

infrastructure.

Quoted 15 lines
Quoted 10 lines
Quoted 9 lines
Quoted 8 lines

--
Lionel Landwerlin

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20100104/dce6253f/attachment.htm>

#7 lore raw

PATCH 1/1 Permit building grub with an external toolchain.

Quoted 21 lines · Lionel Landwerlin

Why didn't you remove :
define GRUB_CONFIGURE_CMDS

	(cd $(GRUB_SRCDIR) && rm -rf config.cache && \
	$(TARGET_CONFIGURE_OPTS) \
	$(TARGET_CONFIGURE_ARGS) \
	$(GRUB_CONF_ENV) \
	./configure \

		--target=$(GNU_TARGET_NAME) \
		--host=$(GNU_TARGET_NAME) \
		--build=$(GNU_HOST_NAME) \
		--prefix=/ \
		--mandir=/usr/man \
		--infodir=/usr/info \
		$(DISABLE_DOCUMENTATION) \
		$(DISABLE_NLS) \

		$(DISABLE_LARGEFILE) \
		$(DISABLE_IPV6) \
		$(QUIET) $(GRUB_CONF_OPT) \
	)
Quoted 3 lines

endef
This might be handled by the autotool infrastructure. Otherwise it looks good, thx !

I would have but I didn't see a way to override the --prefix argument to configure. Also the TARGET_CONFIGURE_ENV needed to be modified to include GRUB_CFLAGS defined earlier in the make fragment. Modifying the CFLAGS also caused the config.cache to not match the global configuration cache so I couldn't use that either.

Of course if I missed a better way of handling these issues I am open to it.

Quoted 111 lines

--
Lionel Landwerlin

On Mon, Jan 4, 2010 at 2:01 PM, Clark Rawlins
<[email protected]> wrote:

        Here is my attempt to use the autotools macros.
        I look forward to any discussion, suggestions for improvement
        etc.
        
        I attach the whole file since it is effectively a rewrite.  If
        it is
        acceptable I will submit as a git diff against head.
        
        
        On Sun, 2010-01-03 at 08:43 -0500, Clark Rawlins wrote:
        > Okay,
        >
        > I've started looking at this but it isn't clear to me how to
        handle the
        > following:
        >
        > $(GRUB_DIR)/$(GRUB_BINARY): $(GRUB_DIR)/.configured
        >       $(MAKE) CC=$(TARGET_CC) -C $(GRUB_DIR)
        >       rm -f $(GRUB_DIR)/$(GRUB_BINARY)
        >       $(MAKE) CC=$(TARGET_CC) CFLAGS+=-static -C
        $(GRUB_DIR)/grub grub
        >       mkdir -p $(dir $(STAGING_DIR)/$(GRUB_TARGET_BINARY))
        >       mv $(GRUB_DIR)/$(GRUB_BINARY)
        $(STAGING_DIR)/$(GRUB_TARGET_BINARY).static
        >       $(MAKE) CC=$(TARGET_CC) -C $(GRUB_DIR)/grub
        >
        > This builds everything dynamically linked first then builds
        the grub binary statically.
        > Is the right way to do this to override the target
        after/before calling the autotools macro?
        >
        >
        > On Sun, 2010-01-03 at 05:08 +0100, Lionel Landwerlin wrote:
        > > Here is one example :
        > >
        > >
        http://git.buildroot.org/buildroot/commit/?id=21bab8862f3c2906af347e5a993ce4cd36c1b063
        > >
        > > You can find a lot like this in the recent git history.
        > > I'm think to the new infrastructure because it provides
        all the glue to
        > > configure the package, especially the 2 lines you added.
        > >
        > > Regards,
        > >
        > >
        > > Le samedi 02 janvier 2010 ? 21:15 -0500, Clark Rawlins a
        ?crit :
        > > > I could give that a shot.  I thought as a start I would
        go with the
        > > > smallest change possible.  Any suggestions for an
        example to look at for
        > > > switching grub to the autotools macros?
        > > >
        > > >
        > > > On Sun, 2010-01-03 at 01:13 +0100, Lionel Landwerlin
        wrote:
        > > > > Le samedi 02 janvier 2010 ? 17:46 -0500, Clark Rawlins
        a ?crit :
        > > > > > Grub build failed at the link stage because it
        > > > > > couldn't find libcurses. Adding these variable
        > > > > > invocations to the configure line make it work.
        > > > > >
        > > > > > Signed-off-by: Clark Rawlins
        <[email protected]>
        > > > > > ---
        > > > > >  target/x86/grub/grub.mk |    2 ++
        > > > > >  1 files changed, 2 insertions(+), 0 deletions(-)
        > > > > >
        > > > > > diff --git a/target/x86/grub/grub.mk
        b/target/x86/grub/grub.mk
        > > > > > index af46244..21f089f 100644
        > > > > > --- a/target/x86/grub/grub.mk
        > > > > > +++ b/target/x86/grub/grub.mk
        > > > > > @@ -81,6 +81,8 @@ $(GRUB_DIR)/.unpacked:
        $(DL_DIR)/$(GRUB_SOURCE) $(DL_DIR)/$(GRUB_PATCH)
        > > > > >  $(GRUB_DIR)/.configured: $(GRUB_DIR)/.unpacked
        > > > > >       (cd $(GRUB_DIR); rm -rf config.cache; \
        > > > > >               $(TARGET_CONFIGURE_OPTS) \
        > > > > > +             $(TARGET_CONFIGURE_ARGS) \
        > > > > > +             $(TARGET_CONFIGURE_ENV) \
        > > > > >               CFLAGS="$(TARGET_CFLAGS)" \
        > > > > >               CPPFLAGS="$(GRUB_CFLAGS)" \
        > > > > >               ./configure $(QUIET) \
        > > > >
        > > > > Maybe you should consider switching grub to the
        autotool infrastructure.
        > > > >
        > > > > --
        > > > > Lionel Landwerlin
        > > > >
        > > > > _______________________________________________
        > > > > buildroot mailing list
        > > > > buildroot at busybox.net
        > > > > http://lists.busybox.net/mailman/listinfo/buildroot
        > > >
        > >
        >
        > _______________________________________________
        > buildroot mailing list
        > buildroot at busybox.net
        > http://lists.busybox.net/mailman/listinfo/buildroot
#8 lore raw

PATCH 1/1 Permit building grub with an external toolchain.

Sorry, I didn't catch the --prefix=/

Quoted 78 lines · Clark Rawlins
Quoted 21 lines · Lionel Landwerlin

Why didn't you remove :
define GRUB_CONFIGURE_CMDS

      (cd $(GRUB_SRCDIR) && rm -rf config.cache && \
      $(TARGET_CONFIGURE_OPTS) \
      $(TARGET_CONFIGURE_ARGS) \
      $(GRUB_CONF_ENV) \
      ./configure \

              --target=$(GNU_TARGET_NAME) \
              --host=$(GNU_TARGET_NAME) \
              --build=$(GNU_HOST_NAME) \
              --prefix=/ \
              --mandir=/usr/man \
              --infodir=/usr/info \
              $(DISABLE_DOCUMENTATION) \
              $(DISABLE_NLS) \

              $(DISABLE_LARGEFILE) \
              $(DISABLE_IPV6) \
              $(QUIET) $(GRUB_CONF_OPT) \
      )
Quoted 3 lines

endef
This might be handled by the autotool infrastructure. Otherwise it looks good, thx !

I would have but I didn't see a way to override the --prefix argument to configure. Also the TARGET_CONFIGURE_ENV needed to be modified to include GRUB_CFLAGS defined earlier in the make fragment. Modifying the CFLAGS also caused the config.cache to not match the global configuration cache so I couldn't use that either.

Of course if I missed a better way of handling these issues I am open to it.

Quoted 34 lines

--
Lionel Landwerlin

On Mon, Jan 4, 2010 at 2:01 PM, Clark Rawlins
<[email protected]> wrote:

        Here is my attempt to use the autotools macros.
        I look forward to any discussion, suggestions for improvement
        etc.

        I attach the whole file since it is effectively a rewrite.  If
        it is
        acceptable I will submit as a git diff against head.


        On Sun, 2010-01-03 at 08:43 -0500, Clark Rawlins wrote:
        > Okay,
        >
        > I've started looking at this but it isn't clear to me how to
        handle the
        > following:
        >
        > $(GRUB_DIR)/$(GRUB_BINARY): $(GRUB_DIR)/.configured
        >       $(MAKE) CC=$(TARGET_CC) -C $(GRUB_DIR)
        >       rm -f $(GRUB_DIR)/$(GRUB_BINARY)
        >       $(MAKE) CC=$(TARGET_CC) CFLAGS+=-static -C
        $(GRUB_DIR)/grub grub
        >       mkdir -p $(dir $(STAGING_DIR)/$(GRUB_TARGET_BINARY))
        >       mv $(GRUB_DIR)/$(GRUB_BINARY)
        $(STAGING_DIR)/$(GRUB_TARGET_BINARY).static
        >       $(MAKE) CC=$(TARGET_CC) -C $(GRUB_DIR)/grub
        >
        > This builds everything dynamically linked first then builds
        the grub binary statically.
Quoted 9 lines
        > Is the right way to do this to override the target
        after/before calling the autotools macro?
        >
        >
        > On Sun, 2010-01-03 at 05:08 +0100, Lionel Landwerlin wrote:
        > > Here is one example :
        > >
        > >
Quoted 71 lines

http://git.buildroot.org/buildroot/commit/?id=21bab8862f3c2906af347e5a993ce4cd36c1b063

Quoted 68 lines
        > >
        > > You can find a lot like this in the recent git history.
        > > I'm think to the new infrastructure because it provides
        all the glue to
        > > configure the package, especially the 2 lines you added.
        > >
        > > Regards,
        > >
        > >
        > > Le samedi 02 janvier 2010 ? 21:15 -0500, Clark Rawlins a
        ?crit :
        > > > I could give that a shot.  I thought as a start I would
        go with the
        > > > smallest change possible.  Any suggestions for an
        example to look at for
        > > > switching grub to the autotools macros?
        > > >
        > > >
        > > > On Sun, 2010-01-03 at 01:13 +0100, Lionel Landwerlin
        wrote:
        > > > > Le samedi 02 janvier 2010 ? 17:46 -0500, Clark Rawlins
        a ?crit :
        > > > > > Grub build failed at the link stage because it
        > > > > > couldn't find libcurses. Adding these variable
        > > > > > invocations to the configure line make it work.
        > > > > >
        > > > > > Signed-off-by: Clark Rawlins
        <[email protected]>
        > > > > > ---
        > > > > >  target/x86/grub/grub.mk |    2 ++
        > > > > >  1 files changed, 2 insertions(+), 0 deletions(-)
        > > > > >
        > > > > > diff --git a/target/x86/grub/grub.mk
        b/target/x86/grub/grub.mk
        > > > > > index af46244..21f089f 100644
        > > > > > --- a/target/x86/grub/grub.mk
        > > > > > +++ b/target/x86/grub/grub.mk
        > > > > > @@ -81,6 +81,8 @@ $(GRUB_DIR)/.unpacked:
        $(DL_DIR)/$(GRUB_SOURCE) $(DL_DIR)/$(GRUB_PATCH)
        > > > > >  $(GRUB_DIR)/.configured: $(GRUB_DIR)/.unpacked
        > > > > >       (cd $(GRUB_DIR); rm -rf config.cache; \
        > > > > >               $(TARGET_CONFIGURE_OPTS) \
        > > > > > +             $(TARGET_CONFIGURE_ARGS) \
        > > > > > +             $(TARGET_CONFIGURE_ENV) \
        > > > > >               CFLAGS="$(TARGET_CFLAGS)" \
        > > > > >               CPPFLAGS="$(GRUB_CFLAGS)" \
        > > > > >               ./configure $(QUIET) \
        > > > >
        > > > > Maybe you should consider switching grub to the
        autotool infrastructure.
        > > > >
        > > > > --
        > > > > Lionel Landwerlin
        > > > >
        > > > > _______________________________________________
        > > > > buildroot mailing list
        > > > > buildroot at busybox.net
        > > > > http://lists.busybox.net/mailman/listinfo/buildroot
        > > >
        > >
        >
        > _______________________________________________
        > buildroot mailing list
        > buildroot at busybox.net
        > http://lists.busybox.net/mailman/listinfo/buildroot

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20100104/584b8233/attachment-0001.htm>

#9 lore raw

PATCH 1/1 Permit building grub with an external toolchain.

In reply to Clark Rawlins

Hello Clark!

Le Mon, 04 Jan 2010 08:01:44 -0500,
Clark Rawlins <[email protected]> a ?crit :

Quoted 5 lines

Here is my attempt to use the autotools macros.
I look forward to any discussion, suggestions for improvement etc.

I attach the whole file since it is effectively a rewrite. If it is acceptable I will submit as a git diff against head.

Thanks for your work.

Maybe the GRUB_SUPPORTED_ARCH thing should be handled at the Config.in level.

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com
#10 lore raw

PATCH 1/1 Permit building grub with an external toolchain.

Quoted 8 lines · Thomas Petazzoni

Hello Clark!

Le Mon, 04 Jan 2010 08:01:44 -0500,
Clark Rawlins <[email protected]> a ?crit :

Quoted 3 lines

Here is my attempt to use the autotools macros.
I look forward to any discussion, suggestions for improvement etc.

Quoted 7 lines
Quoted 2 lines

I attach the whole file since it is effectively a rewrite. If it is acceptable I will submit as a git diff against head.

Thanks for your work.

Maybe the GRUB_SUPPORTED_ARCH thing should be handled at the Config.in level.

Of course I was just copying what was already there for that part.

In grub/Config.in BR2_TARGET_GRUB depends on BR2_i386 || BR2_x86_64. It seems that it would be equivalent to replace all the GRUB_SUPPORTED_ARCH stuff with a single check for

ifeq ($(BR2_TARGET_GRUB),y)

endif

Quoted 11 lines

Thomas

Signature · 8 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
#11 lore raw

PATCH 1/1 Permit building grub with an external toolchain.

I have attached the complete file for review as well as the git format-patch generated diff.

Quoted 19 lines · Clark Rawlins
Quoted 8 lines · Thomas Petazzoni

Hello Clark!

Le Mon, 04 Jan 2010 08:01:44 -0500,
Clark Rawlins <[email protected]> a ?crit :

Quoted 3 lines

Here is my attempt to use the autotools macros.
I look forward to any discussion, suggestions for improvement etc.

Quoted 7 lines
Quoted 2 lines

I attach the whole file since it is effectively a rewrite. If it is acceptable I will submit as a git diff against head.

Thanks for your work.

Maybe the GRUB_SUPPORTED_ARCH thing should be handled at the Config.in level.

Of course I was just copying what was already there for that part.

Quoted 20 lines

In grub/Config.in BR2_TARGET_GRUB depends on BR2_i386 || BR2_x86_64. It seems that it would be equivalent to replace all the GRUB_SUPPORTED_ARCH stuff with a single check for

ifeq ($(BR2_TARGET_GRUB),y)

endif

Quoted 11 lines

Thomas

Signature · 8 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0008-Switch-to-the-autotools-macros-for-building-grub.patch
Type: text/x-patch
Size: 6405 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20100104/d0238703/attachment.bin>

#12 lore raw

PATCH 1/1 Permit building grub with an external toolchain.

Ping?

Is there anything wrong with this patch that should be fixed prior to its inclusion in master?

Quoted 48 lines · Clark Rawlins

I have attached the complete file for review as well as the git format-patch generated diff.

Quoted 19 lines · Clark Rawlins
Quoted 8 lines · Thomas Petazzoni

Hello Clark!

Le Mon, 04 Jan 2010 08:01:44 -0500,
Clark Rawlins <[email protected]> a ?crit :

Quoted 3 lines

Here is my attempt to use the autotools macros.
I look forward to any discussion, suggestions for improvement etc.

Quoted 7 lines
Quoted 2 lines

I attach the whole file since it is effectively a rewrite. If it is acceptable I will submit as a git diff against head.

Thanks for your work.

Maybe the GRUB_SUPPORTED_ARCH thing should be handled at the Config.in level.

Of course I was just copying what was already there for that part.

Quoted 20 lines

In grub/Config.in BR2_TARGET_GRUB depends on BR2_i386 || BR2_x86_64. It seems that it would be equivalent to replace all the GRUB_SUPPORTED_ARCH stuff with a single check for

ifeq ($(BR2_TARGET_GRUB),y)

endif

Quoted 11 lines

Thomas

Signature · 8 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot