#############################################################
#
# tar
#
#############################################################
GNUTAR_VERSION:=1.18
GNUTAR_SOURCE:=tar-$(GNUTAR_VERSION).tar.bz2
GNUTAR_SITE:=$(BR2_GNU_MIRROR)/tar/
GNUTAR_DIR:=$(BUILD_DIR)/tar-$(GNUTAR_VERSION)
GNUTAR_CAT:=$(BZCAT)
GNUTAR_BINARY:=src/tar
GNUTAR_TARGET_BINARY:=bin/tar

$(DL_DIR)/$(GNUTAR_SOURCE):
	 $(call DOWNLOAD,$(GNUTAR_SITE),$(GNUTAR_SOURCE))

tar-source: $(DL_DIR)/$(GNUTAR_SOURCE)

$(GNUTAR_DIR)/.unpacked: $(DL_DIR)/$(GNUTAR_SOURCE)
	$(GNUTAR_CAT) $(DL_DIR)/$(GNUTAR_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
	toolchain/patch-kernel.sh $(GNUTAR_DIR) package/tar/ tar\*.patch
	$(CONFIG_UPDATE) $(GNUTAR_DIR)
	$(CONFIG_UPDATE) $(GNUTAR_DIR)/build-aux
	touch $@

$(GNUTAR_DIR)/.configured: $(GNUTAR_DIR)/.unpacked
	(cd $(GNUTAR_DIR); rm -rf config.cache; \
		$(TARGET_CONFIGURE_OPTS) \
		$(TARGET_CONFIGURE_ARGS) \
		ac_cv_func_chown_works=yes \
		gl_cv_func_chown_follows_symlink=yes \
		./configure \
		--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/man \
		--infodir=/usr/info \
		$(DISABLE_NLS) \
		$(DISABLE_LARGEFILE) \
	)
	touch $@

$(GNUTAR_DIR)/$(GNUTAR_BINARY): $(GNUTAR_DIR)/.configured
	$(MAKE) -C $(GNUTAR_DIR)

# This stuff is needed to work around GNU make deficiencies
tar-target_binary: $(GNUTAR_DIR)/$(GNUTAR_BINARY)
	@if [ -L $(TARGET_DIR)/$(GNUTAR_TARGET_BINARY) ]; then \
		rm -f $(TARGET_DIR)/$(GNUTAR_TARGET_BINARY); \
	fi
	@if [ ! -f $(GNUTAR_DIR)/$(GNUTAR_BINARY) -o $(TARGET_DIR)/$(GNUTAR_TARGET_BINARY) \
	-ot $(GNUTAR_DIR)/$(GNUTAR_BINARY) ]; then \
		set -x; \
		rm -f $(TARGET_DIR)/$(GNUTAR_TARGET_BINARY); \
		cp -a $(GNUTAR_DIR)/$(GNUTAR_BINARY) \
			$(TARGET_DIR)/$(GNUTAR_TARGET_BINARY); \
	fi

tar: uclibc tar-target_binary

tar-clean:
	$(MAKE) DESTDIR=$(TARGET_DIR) -C $(GNUTAR_DIR) uninstall
	-$(MAKE) -C $(GNUTAR_DIR) clean

tar-dirclean:
	rm -rf $(GNUTAR_DIR)

#############################################################
#
# Toplevel Makefile options
#
#############################################################
ifeq ($(BR2_PACKAGE_TAR),y)
TARGETS+=tar
endif
