Squashed 'third_party/gperftools/' content from commit 54505f1
Change-Id: Id02e833828732b0efe7dac722b8485279e67c5fa
git-subtree-dir: third_party/gperftools
git-subtree-split: 54505f1d50c2d1f4676f5e87090b64a117fd980e
diff --git a/packages/deb.sh b/packages/deb.sh
new file mode 100755
index 0000000..31b423c
--- /dev/null
+++ b/packages/deb.sh
@@ -0,0 +1,74 @@
+#!/bin/bash -e
+
+# This takes one commandline argument, the name of the package. If no
+# name is given, then we'll end up just using the name associated with
+# an arbitrary .tar.gz file in the rootdir. That's fine: there's probably
+# only one.
+#
+# Run this from the 'packages' directory, just under rootdir
+
+## Set LIB to lib if exporting a library, empty-string else
+LIB=
+#LIB=lib
+
+PACKAGE="$1"
+VERSION="$2"
+
+# We can only build Debian packages, if the Debian build tools are installed
+if [ \! -x /usr/bin/debuild ]; then
+ echo "Cannot find /usr/bin/debuild. Not building Debian packages." 1>&2
+ exit 0
+fi
+
+# Double-check we're in the packages directory, just under rootdir
+if [ \! -r ../Makefile -a \! -r ../INSTALL ]; then
+ echo "Must run $0 in the 'packages' directory, under the root directory." 1>&2
+ echo "Also, you must run \"make dist\" before running this script." 1>&2
+ exit 0
+fi
+
+# Find the top directory for this package
+topdir="${PWD%/*}"
+
+# Find the tar archive built by "make dist"
+archive="${PACKAGE}-${VERSION}"
+archive_with_underscore="${PACKAGE}_${VERSION}"
+if [ -z "${archive}" ]; then
+ echo "Cannot find ../$PACKAGE*.tar.gz. Run \"make dist\" first." 1>&2
+ exit 0
+fi
+
+# Create a pristine directory for building the Debian package files
+trap 'rm -rf '`pwd`/tmp'; exit $?' EXIT SIGHUP SIGINT SIGTERM
+
+rm -rf tmp
+mkdir -p tmp
+cd tmp
+
+# Debian has very specific requirements about the naming of build
+# directories, and tar archives. It also wants to write all generated
+# packages to the parent of the source directory. We accommodate these
+# requirements by building directly from the tar file.
+ln -s "${topdir}/${archive}.tar.gz" "${LIB}${archive}.orig.tar.gz"
+# Some version of debuilder want foo.orig.tar.gz with _ between versions.
+ln -s "${topdir}/${archive}.tar.gz" "${LIB}${archive_with_underscore}.orig.tar.gz"
+tar zfx "${LIB}${archive}.orig.tar.gz"
+[ -n "${LIB}" ] && mv "${archive}" "${LIB}${archive}"
+cd "${LIB}${archive}"
+# This is one of those 'specific requirements': where the deb control files live
+cp -a "packages/deb" "debian"
+
+# Now, we can call Debian's standard build tool
+debuild -uc -us
+cd ../.. # get back to the original top-level dir
+
+# We'll put the result in a subdirectory that's named after the OS version
+# we've made this .deb file for.
+destdir="debian-$(cat /etc/debian_version 2>/dev/null || echo UNKNOWN)"
+
+rm -rf "$destdir"
+mkdir -p "$destdir"
+mv $(find tmp -mindepth 1 -maxdepth 1 -type f) "$destdir"
+
+echo
+echo "The Debian package files are located in $PWD/$destdir"
diff --git a/packages/deb/README b/packages/deb/README
new file mode 100644
index 0000000..57becfd
--- /dev/null
+++ b/packages/deb/README
@@ -0,0 +1,7 @@
+The list of files here isn't complete. For a step-by-step guide on
+how to set this package up correctly, check out
+ http://www.debian.org/doc/maint-guide/
+
+Most of the files that are in this directory are boilerplate.
+However, you may need to change the list of binary-arch dependencies
+in 'rules'.
diff --git a/packages/deb/changelog b/packages/deb/changelog
new file mode 100644
index 0000000..d67df61
--- /dev/null
+++ b/packages/deb/changelog
@@ -0,0 +1,208 @@
+gperftools (2.1-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- gperftools Contributors <google-perftools@googlegroups.com> Tue, 30 Jul 2013 11:51:13 +0300
+
+gperftools (2.0.99-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- gperftools Contributors <google-perftools@googlegroups.com> Sat, 20 Jul 2013 14:21:10 -0700
+
+gperftools (2.0-1) unstable; urgency=low
+
+ * New upstream release.
+ * Package renamed from google-perftools to gperftools.
+
+ -- Google Inc. and others <google-perftools@googlegroups.com> Fri, 03 Feb 2012 15:40:45 -0800
+
+google-perftools (1.10-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Tue, 31 Jan 2012 10:43:50 -0800
+
+google-perftools (1.9-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Thu, 22 Dec 2011 16:22:45 -0800
+
+google-perftools (1.8-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Fri, 15 Jul 2011 16:10:51 -0700
+
+google-perftools (1.7-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Fri, 04 Feb 2011 15:54:31 -0800
+
+google-perftools (1.6-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Thu, 05 Aug 2010 12:48:03 -0700
+
+google-perftools (1.5-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Tue, 19 Jan 2010 14:46:12 -0800
+
+google-perftools (1.4-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Thu, 10 Sep 2009 13:51:15 -0700
+
+google-perftools (1.3-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Tue, 09 Jun 2009 18:19:06 -0700
+
+google-perftools (1.2-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Fri, 17 Apr 2009 16:40:48 -0700
+
+google-perftools (1.1-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Wed, 11 Mar 2009 11:25:34 -0700
+
+google-perftools (1.0-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Tue, 06 Jan 2009 13:58:56 -0800
+
+google-perftools (1.0rc1-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Thu, 11 Dec 2008 16:01:32 -0800
+
+google-perftools (0.99.1-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Sat, 20 Sep 2008 09:37:18 -0700
+
+google-perftools (0.99-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Thu, 18 Sep 2008 16:00:27 -0700
+
+google-perftools (0.98-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Mon, 09 Jun 2008 16:47:03 -0700
+
+google-perftools (0.97-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Mon, 21 Apr 2008 15:20:52 -0700
+
+google-perftools (0.96-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Tue, 18 Mar 2008 14:30:44 -0700
+
+google-perftools (0.95-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Tue, 12 Feb 2008 12:28:32 -0800
+
+google-perftools (0.94-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Thu, 29 Nov 2007 07:59:43 -0800
+
+google-perftools (0.93-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Fri, 17 Aug 2007 12:32:56 -0700
+
+google-perftools (0.92-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Tue, 17 Jul 2007 22:26:27 -0700
+
+google-perftools (0.91-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Wed, 18 Apr 2007 16:43:55 -0700
+
+google-perftools (0.90-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Fri, 13 Apr 2007 14:50:51 -0700
+
+google-perftools (0.8-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Wed, 14 Jun 2006 15:11:14 -0700
+
+google-perftools (0.7-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Thu, 13 Apr 2006 20:59:09 -0700
+
+google-perftools (0.6-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Fri, 27 Jan 2006 14:04:27 -0800
+
+google-perftools (0.5-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Mon, Nov 14 17:28:59 2005 -0800
+
+google-perftools (0.4-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Wed, 26 Oct 2005 15:19:16 -0700
+
+google-perftools (0.3-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Fri, 24 Jun 2005 18:02:26 -0700
+
+google-perftools (0.2-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Google Inc. <opensource@google.com> Tue, 31 May 2005 08:14:38 -0700
+
+google-perftools (0.1-1) unstable; urgency=low
+
+ * Initial release.
+ The google-perftools package contains some utilities to improve
+ and analyze the performance of C++ programs. This includes an
+ optimized thread-caching malloc() and cpu and heap profiling
+ utilities.
+
+ -- Google Inc. <opensource@google.com> Fri, 11 Mar 2005 08:07:33 -0800
diff --git a/packages/deb/compat b/packages/deb/compat
new file mode 100644
index 0000000..b8626c4
--- /dev/null
+++ b/packages/deb/compat
@@ -0,0 +1 @@
+4
diff --git a/packages/deb/control b/packages/deb/control
new file mode 100644
index 0000000..37c34a5
--- /dev/null
+++ b/packages/deb/control
@@ -0,0 +1,25 @@
+Source: gperftools
+Priority: optional
+Maintainer: gperftools Contributors <google-perftools@googlegroups.com>
+Build-Depends: debhelper (>= 4.0.0), binutils
+Standards-Version: 3.6.1
+
+Package: libgperftools-dev
+Section: libdevel
+Architecture: any
+Depends: libgperftools0 (= ${Source-Version})
+Description: libraries for CPU and heap analysis, plus an efficient thread-caching malloc
+ The gperftools package contains some utilities to improve and
+ analyze the performance of C++ programs. This includes an optimized
+ thread-caching malloc() and cpu and heap profiling utilities. The
+ devel package contains static and debug libraries and header files
+ for developing applications that use the gperftools package.
+
+Package: libgperftools0
+Section: libs
+Architecture: any
+Depends: ${shlibs:Depends}
+Description: libraries for CPU and heap analysis, plus an efficient thread-caching malloc
+ The gperftools package contains some utilities to improve and
+ analyze the performance of C++ programs. This includes an optimized
+ thread-caching malloc() and cpu and heap profiling utilities.
diff --git a/packages/deb/copyright b/packages/deb/copyright
new file mode 100644
index 0000000..db7c78e
--- /dev/null
+++ b/packages/deb/copyright
@@ -0,0 +1,38 @@
+This package was debianized by gperftools Contributors <google-perftools@googlegroups.com>
+on Sat, 20 Jul 2013 14:21:10 -0700.
+
+It was downloaded from http://code.google.com/p/gperftools/downloads/list
+
+Upstream Author: google-perftools@googlegroups.com
+
+Copyright (c) 2005, Google Inc.
+All rights reserved.
+
+Copyright (c) 2013, gperftools Contributors
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/packages/deb/docs b/packages/deb/docs
new file mode 100644
index 0000000..df891c9
--- /dev/null
+++ b/packages/deb/docs
@@ -0,0 +1,47 @@
+AUTHORS
+COPYING
+ChangeLog
+INSTALL
+NEWS
+README
+TODO
+doc/cpuprofile.html
+doc/cpuprofile-fileformat.html
+doc/designstyle.css
+doc/heap-example1.png
+doc/heap_checker.html
+doc/heapprofile.html
+doc/index.html
+doc/overview.gif
+doc/pageheap.gif
+doc/pprof-test-big.gif
+doc/pprof-test.gif
+doc/pprof-vsnprintf-big.gif
+doc/pprof-vsnprintf.gif
+doc/pprof.1
+doc/pprof_remote_servers.html
+doc/spanmap.gif
+doc/t-test1.times.txt
+doc/tcmalloc-opspercpusec.vs.threads.1024.bytes.png
+doc/tcmalloc-opspercpusec.vs.threads.128.bytes.png
+doc/tcmalloc-opspercpusec.vs.threads.131072.bytes.png
+doc/tcmalloc-opspercpusec.vs.threads.16384.bytes.png
+doc/tcmalloc-opspercpusec.vs.threads.2048.bytes.png
+doc/tcmalloc-opspercpusec.vs.threads.256.bytes.png
+doc/tcmalloc-opspercpusec.vs.threads.32768.bytes.png
+doc/tcmalloc-opspercpusec.vs.threads.4096.bytes.png
+doc/tcmalloc-opspercpusec.vs.threads.512.bytes.png
+doc/tcmalloc-opspercpusec.vs.threads.64.bytes.png
+doc/tcmalloc-opspercpusec.vs.threads.65536.bytes.png
+doc/tcmalloc-opspercpusec.vs.threads.8192.bytes.png
+doc/tcmalloc-opspersec.vs.size.1.threads.png
+doc/tcmalloc-opspersec.vs.size.12.threads.png
+doc/tcmalloc-opspersec.vs.size.16.threads.png
+doc/tcmalloc-opspersec.vs.size.2.threads.png
+doc/tcmalloc-opspersec.vs.size.20.threads.png
+doc/tcmalloc-opspersec.vs.size.3.threads.png
+doc/tcmalloc-opspersec.vs.size.4.threads.png
+doc/tcmalloc-opspersec.vs.size.5.threads.png
+doc/tcmalloc-opspersec.vs.size.8.threads.png
+doc/tcmalloc.html
+doc/threadheap.gif
diff --git a/packages/deb/libgperftools-dev.dirs b/packages/deb/libgperftools-dev.dirs
new file mode 100644
index 0000000..8f88347
--- /dev/null
+++ b/packages/deb/libgperftools-dev.dirs
@@ -0,0 +1,5 @@
+usr/lib
+usr/lib/pkgconfig
+usr/include
+usr/include/google
+usr/include/gperftools
diff --git a/packages/deb/libgperftools-dev.install b/packages/deb/libgperftools-dev.install
new file mode 100644
index 0000000..e863529
--- /dev/null
+++ b/packages/deb/libgperftools-dev.install
@@ -0,0 +1,12 @@
+usr/include/google/*
+usr/include/gperftools/*
+usr/lib/lib*.so
+usr/lib/lib*.a
+usr/lib/*.la
+usr/lib/pkgconfig/*.pc
+debian/tmp/usr/include/google/*
+debian/tmp/usr/include/gperftools/*
+debian/tmp/usr/lib/lib*.so
+debian/tmp/usr/lib/lib*.a
+debian/tmp/usr/lib/*.la
+debian/tmp/usr/lib/pkgconfig/*.pc
diff --git a/packages/deb/libgperftools0.dirs b/packages/deb/libgperftools0.dirs
new file mode 100644
index 0000000..14f5b95
--- /dev/null
+++ b/packages/deb/libgperftools0.dirs
@@ -0,0 +1,2 @@
+usr/lib
+usr/bin
diff --git a/packages/deb/libgperftools0.install b/packages/deb/libgperftools0.install
new file mode 100644
index 0000000..047eed5
--- /dev/null
+++ b/packages/deb/libgperftools0.install
@@ -0,0 +1,4 @@
+usr/lib/lib*.so.*
+usr/bin/pprof*
+debian/tmp/usr/lib/lib*.so.*
+debian/tmp/usr/bin/pprof*
diff --git a/packages/deb/libgperftools0.manpages b/packages/deb/libgperftools0.manpages
new file mode 100644
index 0000000..08d1476
--- /dev/null
+++ b/packages/deb/libgperftools0.manpages
@@ -0,0 +1 @@
+doc/pprof.1
diff --git a/packages/deb/rules b/packages/deb/rules
new file mode 100755
index 0000000..f520bef
--- /dev/null
+++ b/packages/deb/rules
@@ -0,0 +1,117 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+
+# These are used for cross-compiling and for saving the configure script
+# from having to guess our platform (since we know it already)
+DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+
+
+CFLAGS = -Wall -g
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+ CFLAGS += -O0
+else
+ CFLAGS += -O2
+endif
+ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
+ INSTALL_PROGRAM += -s
+endif
+
+# shared library versions, option 1
+#version=2.0.5
+#major=2
+# option 2, assuming the library is created as src/.libs/libfoo.so.2.0.5 or so
+version=`ls src/.libs/lib*.so.* | \
+ awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
+major=`ls src/.libs/lib*.so.* | \
+ awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'`
+
+config.status: configure
+ dh_testdir
+ # Add here commands to configure the package.
+ CFLAGS="$(CFLAGS)" ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info
+
+
+build: build-stamp
+build-stamp: config.status
+ dh_testdir
+
+ # Add here commands to compile the package.
+ $(MAKE)
+
+ touch build-stamp
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp
+
+ # Add here commands to clean up after the build process.
+ -$(MAKE) distclean
+ifneq "$(wildcard /usr/share/misc/config.sub)" ""
+ cp -f /usr/share/misc/config.sub config.sub
+endif
+ifneq "$(wildcard /usr/share/misc/config.guess)" ""
+ cp -f /usr/share/misc/config.guess config.guess
+endif
+
+
+ dh_clean
+
+install: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ # Add here commands to install the package into debian/tmp
+ $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
+
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs ChangeLog
+ dh_installdocs
+ dh_installexamples
+ dh_install --sourcedir=debian/tmp
+# dh_installmenu
+# dh_installdebconf
+# dh_installlogrotate
+# dh_installemacsen
+# dh_installpam
+# dh_installmime
+# dh_installinit
+# dh_installcron
+# dh_installinfo
+ dh_installman
+ dh_link
+ dh_strip
+ dh_compress
+ dh_fixperms
+# dh_perl
+# dh_python
+ dh_makeshlibs
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install
diff --git a/packages/rpm.sh b/packages/rpm.sh
new file mode 100755
index 0000000..448a032
--- /dev/null
+++ b/packages/rpm.sh
@@ -0,0 +1,86 @@
+#!/bin/sh -e
+
+# Run this from the 'packages' directory, just under rootdir
+
+# We can only build rpm packages, if the rpm build tools are installed
+if [ \! -x /usr/bin/rpmbuild ]
+then
+ echo "Cannot find /usr/bin/rpmbuild. Not building an rpm." 1>&2
+ exit 0
+fi
+
+# Check the commandline flags
+PACKAGE="$1"
+VERSION="$2"
+fullname="${PACKAGE}-${VERSION}"
+archive=../$fullname.tar.gz
+
+if [ -z "$1" -o -z "$2" ]
+then
+ echo "Usage: $0 <package name> <package version>" 1>&2
+ exit 0
+fi
+
+# Double-check we're in the packages directory, just under rootdir
+if [ \! -r ../Makefile -a \! -r ../INSTALL ]
+then
+ echo "Must run $0 in the 'packages' directory, under the root directory." 1>&2
+ echo "Also, you must run \"make dist\" before running this script." 1>&2
+ exit 0
+fi
+
+if [ \! -r "$archive" ]
+then
+ echo "Cannot find $archive. Run \"make dist\" first." 1>&2
+ exit 0
+fi
+
+# Create the directory where the input lives, and where the output should live
+RPM_SOURCE_DIR="/tmp/rpmsource-$fullname"
+RPM_BUILD_DIR="/tmp/rpmbuild-$fullname"
+
+trap 'rm -rf $RPM_SOURCE_DIR $RPM_BUILD_DIR; exit $?' EXIT SIGHUP SIGINT SIGTERM
+
+rm -rf "$RPM_SOURCE_DIR" "$RPM_BUILD_DIR"
+mkdir "$RPM_SOURCE_DIR"
+mkdir "$RPM_BUILD_DIR"
+
+cp "$archive" "$RPM_SOURCE_DIR"
+
+# rpmbuild -- as far as I can tell -- asks the OS what CPU it has.
+# This may differ from what kind of binaries gcc produces. dpkg
+# does a better job of this, so if we can run 'dpkg --print-architecture'
+# to get the build CPU, we use that in preference of the rpmbuild
+# default.
+target=`dpkg --print-architecture 2>/dev/null || echo ""`
+if [ -n "$target" ]
+then
+ target=" --target $target"
+fi
+
+rpmbuild -bb rpm/rpm.spec $target \
+ --define "NAME $PACKAGE" \
+ --define "VERSION $VERSION" \
+ --define "_sourcedir $RPM_SOURCE_DIR" \
+ --define "_builddir $RPM_BUILD_DIR" \
+ --define "_rpmdir $RPM_SOURCE_DIR"
+
+# We put the output in a directory based on what system we've built for
+destdir=rpm-unknown
+if [ -r /etc/issue ]
+then
+ grep "Red Hat.*release 7" /etc/issue >/dev/null 2>&1 && destdir=rh7
+ grep "Red Hat.*release 8" /etc/issue >/dev/null 2>&1 && destdir=rh8
+ grep "Red Hat.*release 9" /etc/issue >/dev/null 2>&1 && destdir=rh9
+ grep "Fedora Core.*release 1" /etc/issue >/dev/null 2>&1 && destdir=fc1
+ grep "Fedora Core.*release 2" /etc/issue >/dev/null 2>&1 && destdir=fc2
+ grep "Fedora Core.*release 3" /etc/issue >/dev/null 2>&1 && destdir=fc3
+fi
+
+rm -rf "$destdir"
+mkdir -p "$destdir"
+# We want to get not only the main package but devel etc, hence the middle *
+mv "$RPM_SOURCE_DIR"/*/"${PACKAGE}"-*"${VERSION}"*.rpm "$destdir"
+
+echo
+echo "The rpm package file(s) are located in $PWD/$destdir"
diff --git a/packages/rpm/rpm.spec b/packages/rpm/rpm.spec
new file mode 100644
index 0000000..0690e4f
--- /dev/null
+++ b/packages/rpm/rpm.spec
@@ -0,0 +1,77 @@
+%define RELEASE 1
+%define rel %{?CUSTOM_RELEASE} %{!?CUSTOM_RELEASE:%RELEASE}
+%define prefix /usr
+
+Name: %NAME
+Summary: Performance tools for C++
+Version: %VERSION
+Release: %rel
+Group: Development/Libraries
+URL: http://code.google.com/p/gperftools/
+License: BSD
+Vendor: gperftools Contributors
+Packager: gperftools Contributors <google-perftools@googlegroups.com>
+Source: http://%{NAME}.googlecode.com/files/%{NAME}-%{VERSION}.tar.gz
+Distribution: Redhat 7 and above.
+Buildroot: %{_tmppath}/%{name}-root
+Prefix: %prefix
+
+%description
+The %name packages contains some utilities to improve and analyze the
+performance of C++ programs. This includes an optimized thread-caching
+malloc() and cpu and heap profiling utilities.
+
+%package devel
+Summary: Performance tools for C++
+Group: Development/Libraries
+Requires: %{NAME} = %{VERSION}
+
+%description devel
+The %name-devel package contains static and debug libraries and header
+files for developing applications that use the %name package.
+
+%changelog
+ * Mon Apr 20 2009 <opensource@google.com>
+ - Change build rule to use a configure line more like '%configure'
+ - Change install to use DESTDIR instead of prefix for configure
+ - Use wildcards for doc/ and lib/ directories
+
+ * Fri Mar 11 2005 <opensource@google.com>
+ - First draft
+
+%prep
+%setup
+
+%build
+# I can't use '% configure', because it defines -m32 which breaks some
+# of the low-level atomicops files in this package. But I do take
+# as much from % configure (in /usr/lib/rpm/macros) as I can.
+./configure --prefix=%{_prefix} --exec-prefix=%{_exec_prefix} --bindir=%{_bindir} --sbindir=%{_sbindir} --sysconfdir=%{_sysconfdir} --datadir=%{_datadir} --includedir=%{_includedir} --libdir=%{_libdir} --libexecdir=%{_libexecdir} --localstatedir=%{_localstatedir} --sharedstatedir=%{_sharedstatedir} --mandir=%{_mandir} --infodir=%{_infodir}
+make
+
+%install
+rm -rf $RPM_BUILD_ROOT
+make DESTDIR=$RPM_BUILD_ROOT install
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-,root,root)
+
+%docdir %{prefix}/share/doc/%{NAME}-%{VERSION}
+%{prefix}/share/doc/%{NAME}-%{VERSION}/*
+
+%{_libdir}/*.so.*
+%{_bindir}/pprof
+%{_mandir}/man1/pprof.1*
+
+%files devel
+%defattr(-,root,root)
+
+%{_includedir}/google
+%{_includedir}/gperftools
+%{_libdir}/*.a
+%{_libdir}/*.la
+%{_libdir}/*.so
+%{_libdir}/pkgconfig/*.pc