summaryrefslogtreecommitdiff
path: root/~lukeshu/not-working/codeanalyst/PKGBUILD
blob: 885e06f0ef413a1584663be7e40b38abcc6bd738 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# Maintainer (Parabola): Luke Shumaker <lukeshu@sbcglobal.net>
# Maintainer (AUR): Felipe Bugno <capent@yahoo.com>

# A note about the oprofile fork:
# The docs claim that the fork is just for adding support for
# processors that aren't upstream yet (at the time, they are now that
# 0.9.7 is out). So, shouldn't we just link against 0.9.7? Well:
#  * AMD also added a bunch of CodeAnalyst-specific code.
#  * Several external variables/types have different names; the API is
#    incompatible.
#  * [extra]/oprofile-0.9.7-3 only includes about half of the headers.

pkgbase=CodeAnalyst
pkgname=(codeanalyst codeanalyst-cakm)
pkgver=3.3.18.0361
_pkgver="${pkgver//./_}"
pkgrel=4.1
pkgdesc="AMD performance profiler. Includes a fork of oprofile."
url="http://developer.amd.com/tools/${pkgbase}/"
arch=('i686' 'x86_64')
license=('GPL')
depends=('gcc' 'qt>=4.1' 'libdwarf')
makedepends=('linux-headers' 'elfutils' 'findutils' 'file')
options=('!strip')
install=codeanalyst.install
source=("http://download2-developer.amd.com/amd/${pkgbase}/${pkgbase}${_pkgver}Public.tar.gz"
	'gcc47.patch'
	'skipSetup.patch'
        'kernel3.4.patch'
        'codeanalyst.sudo'
        'codeanalyst.desktop'
	'codeanalyst.svg')

build() {
  build_codeanalyst
  build_codeanalyst-cakm
}

build_codeanalyst() {
  cd "${srcdir}/${pkgbase}-${_pkgver}-Public"
  patch -Np1 -i "${srcdir}/gcc47.patch"
  patch -Np1 -i "${srcdir}/skipSetup.patch"
  rm -rf src/dwarf-* # easiest way to ensure using the system install

  ./autogen.sh
  ./configure --prefix=/usr \
    --with-libdwarf-includes=/usr/include/libdwarf \
    --with-libdwarf-libraries=/usr/lib
  make
}

build_codeanalyst-cakm() {
  cd "${srcdir}/${pkgbase}-${_pkgver}-Public"/src/cakm
  cp -r kernel2.6.38 kernel3.4
  cd kernel3.4
  patch -Np1 -i "${srcdir}/kernel3.4.patch"
  make
}

package_codeanalyst() {
  provides=('oprofile=0.9.6cvs')
  conflicts=('oprofile')

  cd "${srcdir}/${pkgbase}-${_pkgver}-Public"
  make DESTDIR="${pkgdir}" install
  rm -f "${pkgdir}/usr/sbin/ca_user_manager" # either codeanalyst.install does this, or it is trivial

  find "${pkgdir}"/usr/{bin,sbin} -type f -exec file '{}' +|sed -n 's/:\s*ELF .*//p'|xargs strip

  cd "${srcdir}"
  install -D -m644 codeanalyst.sudo "${pkgdir}/etc/sudoers.d/codeanalyst"
  install -D -m644 codeanalyst.svg "${pkgdir}/usr/share/icons/hicolor/scalable/apps/codeanalyst.svg"
  install -D -m644 codeanalyst.desktop "${pkgdir}/usr/share/applications/codeanalyst.desktop"
}

package_codeanalyst-cakm() {
  pkgdesc="CodeAnalyst kernel module, oprofile-ca.ko, a replacement for oprofile.ko"
  depends=(codeanalyst)
  provides=()

  cd "${srcdir}/${pkgbase}-${_pkgver}-Public"/src/cakm/kernel3.4
  install -D -m644 oprofile.ko "${pkgdir}/lib/modules/`uname -r`/kernel/arch/x86/oprofile/oprofile-ca.ko"
}

md5sums=('f1e29bc7c7da259df228ce59281ee1d7'
         '063d0fc9680641a92ce5e310ffe1c9c0'
         'ce549e59c4a5916fd19e8d085e863627'
         '3a5d820a43a0360d561bb0c4d67d9735'
         '3cc8f64fe84c5a886d0172ee8d99f690'
         '3a18d3f7fb01f199a8ed5ae2908c18e4'
         '1822a4157b82904b82e72fc1e9bcbd42')