[Buildroot] [RFC/PATCH 2/3] fix buildroot sed handling on Mac OS X

Heikki Lindholm holindho at cs.helsinki.fi
Thu Mar 8 21:44:55 UTC 2007


Bernhard Fischer kirjoitti:
> On Sun, Feb 25, 2007 at 01:22:46PM +0200, Heikki Lindholm wrote:
> 
>>Include a patch for GNU sed that allows building it on Mac OS X and
>>remove a spurious --prefix from sed.mk.
>>
>>-- Heikki Lindholm
>>
> 
> 
>>diff -Nru buildroot/package/sed/configure.patch buildroot-devel/package/sed/configure.patch
>>--- buildroot/package/sed/configure.patch	1970-01-01 02:00:00.000000000 +0200
>>+++ buildroot-devel/package/sed/configure.patch	2007-02-23 14:04:16.000000000 +0200
>>@@ -0,0 +1,29 @@
>>+diff -Nru sed-4.1.5.orig/configure sed-4.1.5/configure
>>+--- sed-4.1.5.orig/configure	2006-02-03 11:24:40.000000000 +0200
>>++++ sed-4.1.5/configure	2007-02-23 14:03:55.000000000 +0200
>>+@@ -10147,8 +10147,6 @@
>>+     LINGUAS="${LINGUAS-%UNSET%}"
>>+ 
>>+ 
>>+-  install_sh="$install_sh"
>>+-
>>+ _ACEOF
>>+ 
>>+ 
>>+@@ -11265,14 +11263,10 @@
>>+       esac
>>+     done ;;
>>+     gettext-fix )
>>+-  sed -e '/^mkinstalldirs *=/a\' \
>>+-      -e "install_sh=$install_sh" \
>>+-      -e 's/^mkinstalldirs *=.*/mkinstalldirs=$(MKINSTALLDIRS)/' \
>>++  sed -e 's/^mkinstalldirs *=.*/mkinstalldirs=$(MKINSTALLDIRS)/' \
>>+       intl/Makefile > intl/Makefile.tmp
>>+   mv intl/Makefile.tmp intl/Makefile
>>+-  sed -e '/^mkinstalldirs *=/a\' \
>>+-      -e "install_sh=$install_sh" \
>>+-      -e 's/^mkinstalldirs *=.*/mkinstalldirs=$(MKINSTALLDIRS)/' \
>>++  sed -e 's/^mkinstalldirs *=.*/mkinstalldirs=$(MKINSTALLDIRS)/' \
>>+       po/Makefile > po/Makefile.tmp
>>+   mv po/Makefile.tmp po/Makefile ;;
>>+   esac
> 
> 
> It is not immediately apparent to me why you need this patch. Please
> elaborate.

Nor to me. But it seems to fix a sed incompatibility - it's funny, but 
building GNU sed does seem to require GNU sed. If I try to build 
sed-4.1.5 on OS X without this patch, ./configure fails with
sed: 1: "install_sh=/tmp/sed-4.1 ...": command i expects \ followed by text
sed: 1: "install_sh=/tmp/sed-4.1 ...": command i expects \ followed by text
The patch itself is just copied from Darwinports (macports these days.)

>>diff -Nru buildroot/package/sed/sed.mk buildroot-devel/package/sed/sed.mk
>>--- buildroot/package/sed/sed.mk	2007-02-22 10:50:29.000000000 +0200
>>+++ buildroot-devel/package/sed/sed.mk	2007-02-24 17:05:12.000000000 +0200
>>@@ -18,6 +18,7 @@
>>HOST_SED_DIR:=$(TOOL_BUILD_DIR)
>>SED:=$(HOST_SED_DIR)/bin/sed -i -e
>>HOST_SED_TARGET=$(shell package/sed/sedcheck.sh)
>>+HOST_SED_IF_ANY=$(shell toolchain/dependencies/check-host-sed.sh)
>>
>>$(DL_DIR)/$(SED_SOURCE):
>>	mkdir -p $(DL_DIR)
>>@@ -35,13 +36,13 @@
>>	mkdir -p $(TOOL_BUILD_DIR)
>>	mkdir -p $(HOST_SED_DIR)/bin;
>>	$(SED_CAT) $(DL_DIR)/$(SED_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) -
>>+	toolchain/patch-kernel.sh $(SED_DIR1) package/sed/ configure.patch
>>	touch $(SED_DIR1)/.unpacked
>>
>>$(SED_DIR1)/.configured: $(SED_DIR1)/.unpacked
>>	(cd $(SED_DIR1); rm -rf config.cache; \
>>		./configure \
>>		--prefix=$(HOST_SED_DIR) \
>>-		--prefix=/usr \
>>	);
>>	touch $(SED_DIR1)/.configured
>>
>>@@ -62,17 +63,10 @@
>>		    $(HOST_SED_DIR)/usr/man $(HOST_SED_DIR)/usr/share/doc; fi
>>
>>use-sed-host-binary:
>>-	@if [ -x /usr/bin/sed ] ; then \
>>-		SED="/usr/bin/sed" ; \
>>-	else \
>>-		if [ -x /bin/sed ] ; then \
>>-			SED="/bin/sed" ; \
>>-		fi \
>>-	fi ; \
>>-	if [ ! -e "$(HOST_SED_DIR)/$(SED_TARGET_BINARY)" ] ; then \
>>+	@if [ ! -e "$(HOST_SED_DIR)/$(SED_TARGET_BINARY)" ] ; then \
> 
> 
> Please do not hide away these commands.

Uhm. What do you mean? sed checking is already done for HOST_SED_IF_ANY 
by the same check-sed script.

>>		mkdir -p "$(HOST_SED_DIR)/bin"; \
>>		rm -f "$(HOST_SED_DIR)/$(SED_TARGET_BINARY)"; \
>>-		ln -sf "$$SED" "$(HOST_SED_DIR)/$(SED_TARGET_BINARY)"; \
>>+		ln -sf "$(HOST_SED_IF_ANY)" "$(HOST_SED_DIR)/$(SED_TARGET_BINARY)"; \
>>	fi
>>
>>host-sed: $(HOST_SED_TARGET)




More information about the buildroot mailing list