# Template file for 'catalyst'
_desc="AMD catalyst driver for Linux"

pkgname=catalyst
_distver=14.2
_patchver=betav1.3
version=${_distver}${_patchver}
revision=3
maintainer="Juan RP <xtraeme@gmail.com>"
license="Propietary AMD license"
homepage="http://www.amd.com"

only_for_archs="i686 x86_64"
hostmakedepends="unzip wget"
depends="xserver-abi-video<16 ${pkgname}-dkms-${version}_${revision}"
conflicts="nvidia>=0"
provides="libGL-${version}_${revision}"
replaces="libGL>=0"
short_desc="${_desc} - Libraries and Utilities"
nonfree=yes
create_wrksrc=yes

XBPS_FETCH_CMD="wget --referer='http://support.amd.com/en-us/download/desktop?os=Linux+x86' "

distfiles="http://www2.ati.com/drivers/beta/amd-catalyst-${_distver}-${_patchver}-linux-x86.x86_64.zip"
checksum=b729fa327fbc030d9e73266997cbbba3186c6ba3f2d3059b9adf6bf9ab5d63cd

if [ "$XBPS_MACHINE" = "i686" ]; then
	_ARCHDIR="x86"
elif [ "$XBPS_MACHINE" = "x86_64" ]; then
	_ARCHDIR="x86_64"
	_ARCHLIB="64"
	_ARCHXPIC="_64a"
fi

do_build() {
	chmod 755 *.run
	./amd-driver-*.run --extract fglrx
}

post_build() {
	cd ${wrksrc}/fglrx

	for f in ${FILESDIR}/*.patch; do
		patch -Np1 -i $f
	done
}

do_install() {
	cd ${wrksrc}/fglrx

	install -dm755 ${DESTDIR}/usr/{bin,sbin}
	install -dm755 ${DESTDIR}/usr/lib/{dri,xorg/modules/{drivers,extensions/fglrx,linux},systemd/system}
	install -dm755 ${DESTDIR}/usr/include/GL
	install -dm755 ${DESTDIR}/etc/{ati,acpi/events,security/console.apps}
	install -dm755 ${DESTDIR}/usr/share/{applications,ati/amdcccle,man/man8,pixmaps}
  
	# binaries
	install -m755 common/usr/sbin/* ${DESTDIR}/usr/sbin/
	install -m755 common/usr/X11R6/bin/* ${DESTDIR}/usr/bin/
	install -m755 arch/${_ARCHDIR}/usr/sbin/* ${DESTDIR}/usr/sbin/
	install -m755 arch/${_ARCHDIR}/usr/X11R6/bin/* ${DESTDIR}/usr/bin/

	# headers
	install -m644 common/usr/include/GL/* ${DESTDIR}/usr/include/GL/

	# xorg/dri/gl/... drivers
	cd xpic${_ARCHXPIC}/usr/X11R6/lib${_ARCHLIB}/modules
	install -m755 *.so ${DESTDIR}/usr/lib/xorg/modules/
	install -m755 drivers/*.so ${DESTDIR}/usr/lib/xorg/modules/drivers/
	install -m755 linux/*.so ${DESTDIR}/usr/lib/xorg/modules/linux/
	install -m755 extensions/fglrx/fglrx-libglx.so ${DESTDIR}/usr/lib/xorg/modules/extensions
	ln -sf fglrx-libglx.so ${DESTDIR}/usr/lib/xorg/modules/extensions/libglx.so
	ln -sf fglrx-libglx.so ${DESTDIR}/usr/lib/xorg/modules/extensions/libglx.so.1

	cd ${wrksrc}/fglrx/arch/${_ARCHDIR}/usr/X11R6/lib${_ARCHLIB}

	install -m755 modules/dri/fglrx_dri.so ${DESTDIR}/usr/lib/xorg/modules/drivers/
	ln -sfr ${DESTDIR}/usr/lib/xorg/modules/drivers/fglrx_dri.so ${DESTDIR}/usr/lib/dri/fglrx_dri.so
	install -m755 fglrx/fglrx-libGL.so.1.2 ${DESTDIR}/usr/lib/
	ln -sf fglrx-libGL.so.1.2 ${DESTDIR}/usr/lib/libGL.so
	ln -sf fglrx-libGL.so.1.2 ${DESTDIR}/usr/lib/libGL.so.1
	install -m755 *.so* ${DESTDIR}/usr/lib/
	install -m644 libAMDXvBA.cap ${DESTDIR}/usr/lib/

	cd ${wrksrc}/fglrx/arch/${_ARCHDIR}/usr/lib${_ARCHLIB}

	install -m755 *.so* ${DESTDIR}/usr/lib/
	# needed symlinks
	ln -s libatiuki.so.1.0 ${DESTDIR}/usr/lib/libatiuki.so.1
	ln -s libAMDXvBA.so.1.0 ${DESTDIR}/usr/lib/libAMDXvBA.so.1
	ln -s libXvBAW.so.1.0 ${DESTDIR}/usr/lib/libXvBAW.so
	ln -s libfglrx_dm.so.1.0 ${DESTDIR}/usr/lib/libfglrx_dm.so.1
                                                              
	# various files 
	cd ${wrksrc}/fglrx/common

	install -m644 usr/share/man/man8/* ${DESTDIR}/usr/share/man/man8/
	install -m644 usr/share/applications/* ${DESTDIR}/usr/share/applications/
	install -m644 usr/share/icons/* ${DESTDIR}/usr/share/pixmaps/
	install -m644 usr/share/ati/amdcccle/* ${DESTDIR}/usr/share/ati/amdcccle/
	install -m644 etc/ati/* ${DESTDIR}/etc/ati/
	install -m755 ${wrksrc}/fglrx/packages/Ubuntu/dists/source/replacements/authatieventsd.sh ${DESTDIR}/etc/ati/
	install -m644 etc/security/console.apps/amdcccle-su ${DESTDIR}/etc/security/console.apps/
	install -m644 usr/share/applications/*.desktop ${DESTDIR}/usr/share/applications/
	# use ACPI example files
	install -m755 usr/share/doc/fglrx/examples/etc/acpi/*.sh ${DESTDIR}/etc/acpi/
	install -m644 usr/share/doc/fglrx/examples/etc/acpi/events/* ${DESTDIR}/etc/acpi/events/
	# systemd scripts
	install -m644 ${FILESDIR}/atieventsd.service ${DESTDIR}/usr/lib/systemd/system/

	# provided in catalyst-opencl package
	rm ${DESTDIR}/usr/lib/lib{amdocl*,OpenCL}.so*

	# we remove the watermark
	install -m644 ${FILESDIR}/signature.from.12.9 ${DESTDIR}/etc/ati/signature

	# licenses
	install -Dm644 ${wrksrc}/fglrx/common/usr/share/doc/fglrx/LICENSE.TXT \
		${DESTDIR}/usr/share/licenses/${pkgname}/LICENSE.TXT
	install -Dm644 ${wrksrc}/fglrx/common/usr/share/doc/amdcccle/ccc_copyrights.txt \
		${DESTDIR}/usr/share/licenses/${pkgname}/amdcccle_copyrights.txt
}

catalyst-dkms_package() {
	short_desc="${_desc} - DKMS kernel module"
	triggers="dkms"
	depends="dkms"
	dkms_modules="fglrx ${version}_${revision}"
	nonfree=yes
	pkg_install() {
		local _fglrx=fglrx-${version}_${revision}

		vmkdir usr/lib/modprobe.d
		vmkdir usr/lib/modules-load.d
		vmkdir usr/src/${_fglrx}

		cd ${wrksrc}/fglrx
		cp -r common/lib/modules/fglrx/build_mod/* ${PKGDESTDIR}/usr/src/${_fglrx}

		vinstall arch/${_ARCHDIR}/lib/modules/fglrx/build_mod/libfglrx_ip.a 644 usr/src/${_fglrx}

		vinstall ${FILESDIR}/dkms.conf 644 usr/src/${_fglrx}

		sed -i -e "s/@VERSION@/${version}-${revision}/" ${PKGDESTDIR}/usr/src/${_fglrx}/dkms.conf
  
		echo "blacklist radeon" > ${PKGDESTDIR}/usr/lib/modprobe.d/catalyst.conf
		echo "fglrx" > ${PKGDESTDIR}/usr/lib/modules-load.d/catalyst.conf
	}
}

catalyst-opencl_package() {
	short_desc="${_desc} - OpenCL implementation"
	depends="libOpenCL"
	nonfree=yes
	noverifyrdeps=yes
	pkg_install() {
		cd ${wrksrc}/fglrx/arch/${_ARCHDIR}

		vinstall usr/bin/clinfo 755 usr/bin

		vmkdir usr/lib
		vmkdir etc/OpenCL/vendors

		install -m644 etc/OpenCL/vendors/amdocl*.icd ${PKGDESTDIR}/etc/OpenCL/vendors

		install -m755 usr/lib${_ARCHLIB}/libamdocl*.so ${PKGDESTDIR}/usr/lib/
	}
}
