buildrootschalter/package/sed/sed.mk
Peter Korsgaard 3fdf0bffb8 buildroot: silence ./configure step when building with 'make -s'
We have been passing -q to ./configure when using 'make -s' for
packages using Makefile.autotools.in for some time. Do the same
for packages using autotools, but not using the
Makefile.autotools.in infrastructure, taking care to not do it
for packages with hand written configure scripts.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-10-01 21:24:42 +02:00

180 lines
4.9 KiB
Makefile

#############################################################
#
# sed
#
#############################################################
SED_VERSION:=4.1.5
SED_SOURCE:=sed-$(SED_VERSION).tar.gz
SED_SITE:=$(BR2_GNU_MIRROR)/sed
SED_CAT:=$(ZCAT)
SED_DIR1:=$(TOOLCHAIN_DIR)/sed-$(SED_VERSION)
SED_DIR2:=$(BUILD_DIR)/sed-$(SED_VERSION)
SED_BINARY:=sed/sed
SED_TARGET_BINARY:=bin/sed
ifeq ($(BR2_LARGEFILE),y)
SED_CPPFLAGS=-D_FILE_OFFSET_BITS=64
endif
#HOST_SED_DIR:=$(STAGING_DIR)
HOST_SED_DIR:=$(TOOLCHAIN_DIR)
SED:=$(HOST_SED_DIR)/bin/sed -i -e
HOST_SED_BINARY=$(shell package/sed/sedcheck.sh)
HOST_SED_IF_ANY=$(shell toolchain/dependencies/check-host-sed.sh)
$(DL_DIR)/$(SED_SOURCE):
mkdir -p $(DL_DIR)
$(call DOWNLOAD,$(SED_SITE),$(SED_SOURCE))
sed-source: $(DL_DIR)/$(SED_SOURCE)
#############################################################
#
# build sed for use on the host system
#
#############################################################
$(SED_DIR1)/.unpacked: $(DL_DIR)/$(SED_SOURCE)
mkdir -p $(TOOLCHAIN_DIR)
mkdir -p $(HOST_SED_DIR)/bin
$(SED_CAT) $(DL_DIR)/$(SED_SOURCE) | tar -C $(TOOLCHAIN_DIR) $(TAR_OPTIONS) -
toolchain/patch-kernel.sh $(SED_DIR1) package/sed/ configure.patch
$(CONFIG_UPDATE) $(SED_DIR1)/config
touch $@
$(SED_DIR1)/.configured: $(SED_DIR1)/.unpacked
(cd $(SED_DIR1); rm -rf config.cache; \
./configure $(QUIET) \
--prefix=/usr \
)
touch $@
$(SED_DIR1)/$(SED_BINARY): $(SED_DIR1)/.configured
$(MAKE) -C $(SED_DIR1)
# This stuff is needed to work around GNU make deficiencies
build-sed-host-binary: $(SED_DIR1)/$(SED_BINARY)
@if [ -L $(HOST_SED_DIR)/$(SED_TARGET_BINARY) ]; then \
rm -f $(HOST_SED_DIR)/$(SED_TARGET_BINARY); \
fi
@if [ ! -f $(HOST_SED_DIR)/$(SED_TARGET_BINARY) \
-o $(HOST_SED_DIR)/$(SED_TARGET_BINARY) \
-ot $(SED_DIR1)/$(SED_BINARY) ]; then \
set -x; \
mkdir -p $(HOST_SED_DIR)/bin; \
$(MAKE) DESTDIR=$(HOST_SED_DIR) -C $(SED_DIR1) install; \
mv $(HOST_SED_DIR)/usr/bin/sed $(HOST_SED_DIR)/bin/; \
rm -rf $(HOST_SED_DIR)/share/locale; \
rm -rf $(HOST_SED_DIR)/usr/share/doc; \
fi
ifneq ($(BR2_HAVE_INFOPAGES),y)
rm -rf $(HOST_SED_DIR)/usr/man/info
endif
ifneq ($(BR2_HAVE_MANPAGES),y)
rm -rf $(HOST_SED_DIR)/usr/share/man
endif
$(HOST_SED_DIR)/$(SED_TARGET_BINARY):
if [ ! -e "$(HOST_SED_DIR)/$(SED_TARGET_BINARY)" ]; then \
mkdir -p "$(HOST_SED_DIR)/bin"; \
rm -f "$(HOST_SED_DIR)/$(SED_TARGET_BINARY)"; \
ln -sf "$(HOST_SED_IF_ANY)" \
"$(HOST_SED_DIR)/$(SED_TARGET_BINARY)"; \
fi
.PHONY: sed host-sed use-sed-host-binary
use-sed-host-binary: $(HOST_SED_DIR)/$(SED_TARGET_BINARY)
host-sed: $(HOST_SED_BINARY)
ifeq ($(HOST_SED_BINARY),build-sed-host-binary)
host-sed-clean:
$(MAKE) DESTDIR=$(HOST_SED_DIR) -C $(SED_DIR1) uninstall
-$(MAKE) -C $(SED_DIR1) clean
host-sed-dirclean:
rm -rf $(SED_DIR1)
else
host-sed-clean host-sed-dirclean:
endif
#############################################################
#
# build sed for use on the target system
#
#############################################################
$(SED_DIR2)/.unpacked: $(DL_DIR)/$(SED_SOURCE)
$(SED_CAT) $(DL_DIR)/$(SED_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
$(CONFIG_UPDATE) $(SED_DIR2)/config
touch $@
$(SED_DIR2)/.configured: $(SED_DIR2)/.unpacked
(cd $(SED_DIR2); rm -rf config.cache; \
$(TARGET_CONFIGURE_OPTS) \
$(TARGET_CONFIGURE_ARGS) \
CPPFLAGS="$(SED_CPPFLAGS)" \
./configure $(QUIET) \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME) \
--prefix=/usr \
--exec-prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--libdir=/lib \
--libexecdir=/usr/lib \
--sysconfdir=/etc \
--datadir=/usr/share \
--localstatedir=/var \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--include=$(STAGING_DIR)/usr/include \
$(DISABLE_NLS) \
)
touch $@
$(SED_DIR2)/$(SED_BINARY): $(SED_DIR2)/.configured
$(MAKE) -C $(SED_DIR2)
# This stuff is needed to work around GNU make deficiencies
sed-target_binary: $(SED_DIR2)/$(SED_BINARY)
@if [ -L $(TARGET_DIR)/$(SED_TARGET_BINARY) ]; then \
rm -f $(TARGET_DIR)/$(SED_TARGET_BINARY); \
fi
@if [ ! -f $(SED_DIR2)/$(SED_BINARY) \
-o $(TARGET_DIR)/$(SED_TARGET_BINARY) \
-ot $(SED_DIR2)/$(SED_BINARY) ]; then \
set -x; \
$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(SED_DIR2) install; \
mv $(TARGET_DIR)/usr/bin/sed $(TARGET_DIR)/bin/; \
rm -rf $(TARGET_DIR)/share/locale; \
rm -rf $(TARGET_DIR)/usr/share/doc; \
fi
ifneq ($(BR2_HAVE_INFOPAGES),y)
rm -rf $(TARGET_DIR)/usr/share/info
endif
ifneq ($(BR2_HAVE_MANPAGES),y)
rm -rf $(TARGET_DIR)/usr/share/man
endif
sed: sed-target_binary
sed-clean:
$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(SED_DIR2) uninstall
-$(MAKE) -C $(SED_DIR2) clean
sed-dirclean:
rm -rf $(SED_DIR2)
#############################################################
#
# Toplevel Makefile options
#
#############################################################
ifeq ($(BR2_PACKAGE_SED),y)
TARGETS+=sed
endif