summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 76d4cd942d23efba892ceece536ef715ab14c68e (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
# Maintainer: Matthias Blaicher <matthias at blaicher dot com>
#
# NOTE: If you plan on using the usbblaster make sure you are member of the plugdev group.
# NOTE: Altera has dramatically changed their packing in regards to version 12. This
#       PKGBUILD will install the full Altera suite now. Be aware that the space requirement
#       is around 13GB.
#
pkgname=quartus-lite
pkgver=15.1.0.185
pkgrel=1
pkgdesc="Quartus Prime Lite Edition design software for Altera FPGA's. Modular package"
arch=('i686' 'x86_64')
url="http://dl.altera.com/?edition=lite"
license=('custom')

_build_nr=$(echo ${pkgver} | cut -d '.' -f4)
_alteradir="/opt/altera"

# According to the installer script, these dependencies are needed for the installer
if [[ $CARCH = i686 ]]
then
   depends=('desktop-file-utils' 'expat' 'fontconfig' 'freetype2'
   'glibc' 'gtk2' 'libcanberra' 'libpng' 'libpng12' 'libice' 'libsm'
   'util-linux' 'ncurses' 'tcl' 'tcllib' 'zlib' 'libx11' 'libxau'
   'libxdmcp' 'libxext' 'libxft' 'libxrender' 'libxt' 'libxtst')
fi

if [[ $CARCH = x86_64 ]]
then
   depends=('desktop-file-utils' 'expat' 'fontconfig' 'freetype2'
   'glibc' 'gtk2' 'libcanberra' 'libpng' 'libpng12' 'libice' 'libsm'
   'util-linux' 'ncurses' 'tcl' 'tcllib' 'zlib' 'libx11' 'libxau'
   'libxdmcp' 'libxext' 'libxft' 'libxrender' 'libxt' 'libxtst'

   'lib32-expat' 'lib32-fontconfig' 'lib32-freetype2' 'lib32-glibc'
   'lib32-gtk2' 'lib32-libcanberra' 'lib32-libpng' 'lib32-libpng12'
   'lib32-libice' 'lib32-libsm' 'lib32-util-linux' 'lib32-ncurses'
   'lib32-zlib' 'lib32-libx11' 'lib32-libxau' 'lib32-libxdmcp'
   'lib32-libxext' 'lib32-libxft' 'lib32-libxrender' 'lib32-libxt'
   'lib32-libxtst')
fi

makedepends=('bash')

optdepends=('quartus-lite-max: MAXII, MAXV device support'
            'quartus-lite-max10: MAX10 device support'
            'quartus-lite-cyclone: Cyclone IV device support'
            'quartus-lite-cyclonev: Cyclone V device support'
            'quartus-lite-arria: Arria II device support'
            'quartus-lite-modelsim: ModelSim-Altera Edition'
           )
           # Pkgnames are taken directly from altera downloads file names

source=("http://download.altera.com/akdlm/software/acdsinst/${pkgver%.*.*}/${_build_nr}/ib_installers/QuartusLiteSetup-${pkgver}-linux.run"
	"quartus.sh" "quartus.desktop" "51-usbblaster.rules" "quartus.install")
md5sums=('cc8bfde25f57c2f05d1753882bc9607a'
         '067c444cae7fe31d3608245712b43ce8'
         '32b17cb8b992fc2dccd33d87f0dcd8ce'
         'f5744dc4820725b93917e3a24df13da9'
         'a331a81c44aed062a7af6d28542c3d82')

options=('strip' 'upx') # Stripping and UPX will takes ages, I'd avoid it.
install='quartus.install'
PKGEXT=".pkg.tar" # Do not compress

package() {
    cd "${srcdir}"

    # TODO: Make bogus $DISPLAY
    chmod a+x "QuartusLiteSetup-15.1.0.185-linux.run"
    DISPLAY="" ./QuartusLiteSetup-15.1.0.185-linux.run --mode unattended --unattendedmodeui none --installdir "${pkgdir}/${_alteradir}"

    # Remove uninstaller and install logs since we have a working package management
    rm -r "${pkgdir}${_alteradir}/uninstall"
    rm -r "${pkgdir}${_alteradir}/logs"

    # Remove for now parts that are not needed for core quartus:
    # TODO: Split instead of removing

    # Nios2Eds - no comments on this abomination
    rm -rf ${pkgdir}/${_alteradir}/nios2eds

    # Altera IP cores - you probably don't want to use them anyway (see opencores)
    rm -rf ${pkgdir}/${_alteradir}/ip

    # HLS (HLD) - high level synthesis
    rm -rf ${pkgdir}/${_alteradir}/hld

    # Help (Nearly 1GiB)
    #rm -rf ${pkgdir}/${_alteradir}/quartus/common/help

    # Replace altera directory in integration files
    sed -i.bak "s,_alteradir,$_alteradir,g" quartus.sh
    sed -i.bak "s,_alteradir,$_alteradir,g" quartus.desktop

    # Copy license file
    install -D -m644 "${pkgdir}${_alteradir}/licenses/license.txt" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"

    # Install integration files
    install -D -m755 quartus.sh "${pkgdir}/etc/profile.d/quartus.sh"
    install -D -m644 51-usbblaster.rules "${pkgdir}/etc/udev/rules.d/51-usbblaster.rules"
    install -D -m644 quartus.desktop "${pkgdir}/usr/share/applications/quartus.desktop"
}

# vim:set ts=2 sw=2 et: