# -*- coding: ascii; tab-width: 4; x-counterpart: valgrind.patch -*-
Info4: <<
Package: valgrind
Epoch: 1
Version: 3.14.0
Revision: 1
Distribution: 10.9, 10.10, 10.11, 10.12, 10.13
Description: Debugging and profiling tool
DescDetail: <<
	Valgrind is an award-winning instrumentation framework for building
	dynamic analysis tools. There are Valgrind tools that can automatically
	detect many memory management and threading bugs, and profile your
	programs in detail. You can also use Valgrind to build new tools.

	The Valgrind distribution currently includes six production-quality
	tools: a memory error detector, two thread error detectors, a cache and
	branch-prediction profiler, a call-graph generating cache profiler, and
	a heap profiler. It also includes one experimental tool, which detects
	out of bounds reads and writes of stack, global and heap arrays.
<<
DescUsage: <<
	On Architecture x86_64, valgrind is always both 32 and 64 bit.
<<
DescPackaging: <<
	Note that configure checks for pkgconfig, boost and openmp but these are
	only used by some of the regression tests which we don't run anyway.
	
	Version 3.6.1 was seg faulting so downgrade to 3.6.0 which works.
	Needed to use Epoch. Yuck. Seems to be this bug:
	http://bugs.kde.org/show_bug.cgi?id=267769
	
	Add patch to work with clang on i386. Also must use -new_linker there.
	Thanks to Jack Howarth for the fix.
	
	Upstream patch for preliminary 10.14 support.
<<
Source: http://valgrind.org/downloads/%{ni}-%v.tar.bz2
Source-Checksum: SHA256(037c11bfefd477cc6e9ebe8f193bb237fe397f7ce791b4a4ce3fa1c6a520baa5)

PatchFile: %n.patch
PatchFile-MD5: 51f8cddcdb8f97c16b20045dbddd71a1
PatchScript: <<
	%{default_script}
	perl -pi -e 's/-mno-dynamic-no-pic//' Makefile.all.am
<<

BuildDepends: sed, fink (>= 0.28), autoconf2.6, automake1.15
ConfigureParams: <<
	--disable-dependency-tracking \
	--host="%m-apple-darwin`uname -r`" \
	--build="%m-apple-darwin`uname -r`" \
	--without-mpicc
<<
UseMaxBuildJobs: true
SetLDFLAGS: -headerpad_max_install_names
CompileScript: <<
	#!/bin/bash -ev
	# We have to avoid fink's compiler_wrapper on x86_64 or we get build errors
	# since we have to build both 32 and 64 bit code.
	export PATH="%p/bin:%p/sbin:/usr/bin:/usr/sbin:/bin:/sbin"
	if [ `perl -e "print readlink '/usr/bin/cc'"` != "clang" ]
	then
		export CC=llvm-gcc-4.2
	fi
	./autogen.sh
	./configure %c
	make
<<
InstallScript: <<
	#!/bin/bash -ev
	make install DESTDIR=%d
	
	# Fix up install_names to make validator happy.
	cd %i/lib/valgrind
	libraries="vgpreload_core-x86-darwin.so vgpreload_drd-x86-darwin.so vgpreload_exp-dhat-x86-darwin.so vgpreload_exp-sgcheck-x86-darwin.so vgpreload_helgrind-x86-darwin.so vgpreload_massif-x86-darwin.so vgpreload_memcheck-x86-darwin.so"
	for lib in $libraries ; do
		install_name_tool -id %p/lib/valgrind/$lib $lib
	done
	
	libraries="vgpreload_core-amd64-darwin.so vgpreload_drd-amd64-darwin.so vgpreload_exp-dhat-amd64-darwin.so vgpreload_exp-sgcheck-amd64-darwin.so vgpreload_helgrind-amd64-darwin.so vgpreload_massif-amd64-darwin.so vgpreload_memcheck-amd64-darwin.so"
	for lib in $libraries ; do
		install_name_tool -id %p/lib/valgrind/$lib $lib
	done
<<
# This is necessary to avoid validation errors, but it throws warnings
# because the shared libs end in .so. This is unavoidable without extensive
# changes to valgrind source code and the libs are only used internally.
Shlibs: <<
	!%p/lib/valgrind/vgpreload_core-x86-darwin.so
	!%p/lib/valgrind/vgpreload_drd-x86-darwin.so
	!%p/lib/valgrind/vgpreload_exp-dhat-x86-darwin.so
	!%p/lib/valgrind/vgpreload_exp-sgcheck-x86-darwin.so
	!%p/lib/valgrind/vgpreload_helgrind-x86-darwin.so
	!%p/lib/valgrind/vgpreload_massif-x86-darwin.so
	!%p/lib/valgrind/vgpreload_memcheck-x86-darwin.so
	( %m = x86_64 ) !%p/lib/valgrind/vgpreload_core-amd64-darwin.so
	( %m = x86_64 ) !%p/lib/valgrind/vgpreload_drd-amd64-darwin.so
	( %m = x86_64 ) !%p/lib/valgrind/vgpreload_exp-dhat-amd64-darwin.so
	( %m = x86_64 ) !%p/lib/valgrind/vgpreload_exp-sgcheck-amd64-darwin.so
	( %m = x86_64 ) !%p/lib/valgrind/vgpreload_helgrind-amd64-darwin.so
	( %m = x86_64 ) !%p/lib/valgrind/vgpreload_massif-amd64-darwin.so
	( %m = x86_64 ) !%p/lib/valgrind/vgpreload_memcheck-amd64-darwin.so
<<
DocFiles: AUTHORS COPYING* NEWS README*
License: GPL
Maintainer: Daniel Johnson <daniel@daniel-johnson.org>
Homepage: http://valgrind.org/

Splitoff: <<
	Package: %N-dev

	Depends: %N (= %V)
	BuildDependsOnly: true

	Files: include lib/pkgconfig lib/valgrind/*.a

	DocFiles: AUTHORS COPYING* NEWS README*
<<
<<