123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- #############################################################
- #
- # 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
- $(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
- 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
|