summaryrefslogtreecommitdiff
path: root/community/lazarus/PKGBUILD
blob: 04c1913984416c15f6f198b40bc10999e1304cdb (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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# $Id: PKGBUILD 70866 2012-05-18 06:01:51Z ebelanger $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Jens Adam (byte/jra) <j_adam@web.de>
# Contributor: BlackIkeEagle <ike DOT devolder AT gmail DOT com>

pkgbase=lazarus
pkgname=('lazarus' 'lazarus-gtk2' 'lazarus-qt')
pkgver=0.9.30.4
pkgrel=5
url='http://www.lazarus.freepascal.org/'
license=('GPL2' 'MPL' 'custom:LGPL')
arch=('i686' 'x86_64' 'mips64el')
makedepends=('fpc' 'fpc-src' 'gtk2' 'qt4pas' 'rsync')
options=('!emptydirs' '!makeflags')
source=("http://downloads.sourceforge.net/project/lazarus/Lazarus%20Zip%20_%20GZip/Lazarus%20$pkgver/lazarus-$pkgver-src.tar.bz2"
  'lazcontrols2.diff'
)
md5sums=('ebd40cdfdfc4b66d1ced7a0d48d6da84'
  '288bca6ad5ade79deec34c3602daaaa9'
)

build() {
  cd $srcdir/${pkgbase}

  ( # patch lazcontrols
    cd components/lazcontrols
    patch -p0 -i "$srcdir/lazcontrols2.diff"
  )

  # build gtk2 ide
  make FPC=/usr/bin/fpc LCL_PLATFORM=gtk2 clean bigide
  # move gtk binaries
  mv lazarus lazarus-gtk2
  mv startlazarus startlazarus-gtk2

  # build qt ide
  make FPC=/usr/bin/fpc LCL_PLATFORM=qt bigide
  # move qt binaries
  mv lazarus lazarus-qt
  mv startlazarus startlazarus-qt
}

package_lazarus() {
  pkgdesc='Delphi-like IDE for FreePascal common files'
  depends=('fpc' 'fpc-src')
  optdepends=(
    'perl: to run some scirpts in the tools directory'
    'gtk2: to compile gtk2 apps'
    'qt4pas: to compile qt apps'
  )

  cd $srcdir/${pkgbase}

  # skip the 'make install' mess completely and do everything manually
  mkdir -p $pkgdir/usr/lib/lazarus $pkgdir/usr/bin $pkgdir/usr/share/man/man1 $pkgdir/usr/share/doc
  rsync -a \
    --exclude="CVS"     --exclude=".cvsignore" \
    --exclude="*.ppw"   --exclude="*.ppl" \
    --exclude="*.ow"    --exclude="*.a"\
    --exclude="*.rst"   --exclude=".#*" \
    --exclude="*.~*"    --exclude="*.bak" \
    --exclude="*.orig"  --exclude="*.rej" \
    --exclude=".xvpics" \
    --exclude="killme*" --exclude=".gdb_hist*" \
    --exclude="debian"  --exclude="COPYING*" \
    --exclude="*.app"   --exclude="tools/install" \
    . "$pkgdir"/usr/lib/lazarus

  #remove some stuff, not needed or for in other package
  pushd $pkgdir/usr/lib/lazarus
  rm lazarus-*
  rm startlazarus-*
  popd

  ln -s /usr/lib/lazarus/lazbuild $pkgdir/usr/bin/lazbuild
  cp -R install/man/man1/* $pkgdir/usr/share/man/man1/
  mv $pkgdir/usr/lib/lazarus/docs $pkgdir/usr/share/doc/lazarus
  rm -r $pkgdir/usr/lib/lazarus/install

  # license files: /usr/lib/lazarus/COPYING*
  install -D -m644 COPYING.modifiedLGPL.txt $pkgdir/usr/share/licenses/$pkgbase/COPYING.modifiedLGPL
}

package_lazarus-gtk2() {
  pkgdesc='Delphi-like IDE for FreePascal gtk2 version'
  depends=('lazarus' 'desktop-file-utils' 'gtk2')
  conflicts=('lazarus-qt')
  install='lazarus-ide.install'

  cd $srcdir/${pkgbase}

  # install gtk binaries
  install -Dm755 lazarus-gtk2 $pkgdir/usr/lib/lazarus/lazarus
  install -Dm755 startlazarus-gtk2 $pkgdir/usr/lib/lazarus/startlazarus
  install -dm755 $pkgdir/usr/bin
  ln -s /usr/lib/lazarus/lazarus $pkgdir/usr/bin/lazarus
  ln -s /usr/lib/lazarus/startlazarus $pkgdir/usr/bin/startlazarus

  # make 'desktop-file-validate' happy and fix missing .png icon
  sed -e 's|\(Categories\).*|\1=IDE;Development;|' \
    -e 's|\.png|\.xpm|' -i install/lazarus.desktop
  install -Dm644 install/lazarus.desktop $pkgdir/usr/share/applications/lazarus.desktop
  install -Dm644 images/ide_icon48x48.png $pkgdir/usr/share/pixmaps/lazarus.png
}

package_lazarus-qt() {
  pkgdesc='Delphi-like IDE for FreePascal qt version'
  depends=('lazarus' 'qt4pas')
  conflicts=('lazarus-gtk2')
  install='lazarus-ide.install'

  cd $srcdir/${pkgbase}

  # install qt binaries
  install -Dm755 lazarus-qt $pkgdir/usr/lib/lazarus/lazarus
  install -Dm755 startlazarus-qt $pkgdir/usr/lib/lazarus/startlazarus
  install -dm755 $pkgdir/usr/bin
  ln -s /usr/lib/lazarus/lazarus $pkgdir/usr/bin/lazarus
  ln -s /usr/lib/lazarus/startlazarus $pkgdir/usr/bin/startlazarus

  # make 'desktop-file-validate' happy and fix missing .png icon
  sed -e 's|\(Categories\).*|\1=IDE;Development;|' \
    -e 's|\.png|\.xpm|' -i install/lazarus.desktop
  install -Dm644 install/lazarus.desktop $pkgdir/usr/share/applications/lazarus.desktop
  install -Dm644 images/ide_icon48x48.png $pkgdir/usr/share/pixmaps/lazarus.png
}
# vim:set ts=2 sts=2 sw=2 et: