#############################################################
#
# valgrind
#
#############################################################

VALGRIND_VERSION=3.2.3
VALGRIND_SITE:=http://valgrind.org/downloads/
VALGRIND_DIR:=$(BUILD_DIR)/valgrind-$(VALGRIND_VERSION)
VALGRIND_SOURCE:=valgrind-$(VALGRIND_VERSION).tar.bz2
VALGRIND_CAT:=$(BZCAT)

$(DL_DIR)/$(VALGRIND_SOURCE):
	$(WGET) -P $(DL_DIR) $(VALGRIND_SITE)/$(VALGRIND_SOURCE)

$(VALGRIND_DIR)/.unpacked: $(DL_DIR)/$(VALGRIND_SOURCE)
	$(VALGRIND_CAT) $(DL_DIR)/$(VALGRIND_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
	touch $(VALGRIND_DIR)/.unpacked

$(VALGRIND_DIR)/.patched: $(VALGRIND_DIR)/.unpacked
	toolchain/patch-kernel.sh $(VALGRIND_DIR) package/valgrind/ valgrind\*.patch
	touch $(VALGRIND_DIR)/.patched

$(VALGRIND_DIR)/.configured: $(VALGRIND_DIR)/.patched
	(cd $(VALGRIND_DIR); rm -rf config.cache; \
		$(TARGET_CONFIGURE_OPTS) \
		$(TARGET_CONFIGURE_ARGS) \
		./configure \
		--target=$(GNU_TARGET_NAME) \
		--host=$(GNU_TARGET_NAME) \
		--build=$(GNU_HOST_NAME) \
		--prefix=/usr \
		$(DISABLE_NLS) \
		--without-uiout --disable-valgrindmi \
		--disable-tui --disable-valgrindtk \
		--without-x --without-included-gettext \
		--disable-tls \
	)
	touch $(VALGRIND_DIR)/.configured

$(VALGRIND_DIR)/none/vgskin_none.so: $(VALGRIND_DIR)/.configured
	$(MAKE) -C $(VALGRIND_DIR)
	-$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(VALGRIND_DIR)/*.so*
	touch -c $(VALGRIND_DIR)/none/vgskin_none.so

$(TARGET_DIR)/usr/bin/valgrind: $(VALGRIND_DIR)/none/vgskin_none.so
	$(MAKE) \
	    prefix=$(TARGET_DIR)/usr \
	    exec_prefix=$(TARGET_DIR)/usr \
	    bindir=$(TARGET_DIR)/usr/bin \
	    sbindir=$(TARGET_DIR)/usr/sbin \
	    libexecdir=$(TARGET_DIR)/usr/lib \
	    datadir=$(TARGET_DIR)/usr/share \
	    sysconfdir=$(TARGET_DIR)/etc \
	    sharedstatedir=$(TARGET_DIR)/usr/com \
	    localstatedir=$(TARGET_DIR)/var \
	    libdir=$(TARGET_DIR)/usr/lib \
	    infodir=$(TARGET_DIR)/usr/info \
	    mandir=$(TARGET_DIR)/usr/man \
	    includedir=$(TARGET_DIR)/usr/include \
	    -C $(VALGRIND_DIR) install
	mv $(TARGET_DIR)/usr/bin/valgrind $(TARGET_DIR)/usr/bin/valgrind.bin
	cp package/valgrind/uclibc.supp $(TARGET_DIR)/usr/lib/valgrind/
	cp package/valgrind/valgrind.sh $(TARGET_DIR)/usr/bin/valgrind
	chmod a+x $(TARGET_DIR)/usr/bin/valgrind
	rm -rf $(TARGET_DIR)/usr/share/doc/valgrind
	#mkdir -p $(TARGET_DIR)/etc/default
	#cp $(VALGRIND_DIR)/valgrind.default $(TARGET_DIR)/etc/default/valgrind
	#mkdir -p $(TARGET_DIR)/usr/lib/valgrind
	#cp $(VALGRIND_DIR)/woody.supp $(TARGET_DIR)/usr/lib/valgrind/
	touch -c $(TARGET_DIR)/usr/bin/valgrind

valgrind: $(TARGET_DIR)/usr/bin/valgrind

valgrind-source: $(DL_DIR)/$(VALGRIND_SOURCE)

valgrind-clean:
	-$(MAKE) -C $(VALGRIND_DIR) clean
	-rm -f $(TARGET_DIR)/usr/bin/valgrind*
	rm -rf $(TARGET_DIR)/usr/lib/valgrind

valgrind-dirclean:
	rm -rf $(VALGRIND_DIR)

#############################################################
#
# Toplevel Makefile options
#
#############################################################
ifeq ($(strip $(BR2_PACKAGE_VALGRIND)),y)
TARGETS+=valgrind
endif
