SHELL := /bin/bash
PACKAGING_DIR := $(shell cd ..; pwd)
PATH := $(PATH):$(shell pwd)/build
TDE_VERSION = 14.0.0

buildpkg = \
  @echo "Now processing '$(1)' [from $(PACKAGING_DIR)]."; \
  export PACKAGING_DIR=$(PACKAGING_DIR); \
  if [ "${REBUILD}" = "$(1)" ] || ! is_latest_package_installed.sh "$(1)" ${TDE_VERSION}; then \
    echo "  Package '${1}' is not yet installed."; \
    if [ "${REBUILD}" = "$(1)" ] || ! is_latest_package_built.sh "$(1)" ${TDE_VERSION}; then \
      echo "  Building package."; \
      build_rpm_package.sh "$(1)" ${TDE_VERSION} || exit 1; \
      echo "  Updating repository."; \
      update_repository.sh ${TDE_VERSION}; \
    fi; \
    echo "Now installing package '$(1)'"; \
    install_rpm_package.sh "$(1)" || exit 2; \
  fi; \
  echo


all:	dependencies main libraries applications i18n meta extras
dependencies:	tqt3 tqtinterface arts libart_lgpl libcaldav libcarddav sip4-tqt tqca tqca-tls avahi-tqt dbus-tqt dbus-1-tqt akode
main:	tdelibs tdebase tdeaccessibility tdeadmin tdegames tdemultimedia tdepim tdetoys tdevelop tdeaddons tdeartwork tdebindings tdeedu tdegraphics tdenetwork tdesdk tdeutils tdewebdev
libraries:	libkdcraw libkexiv2 libkipi libksquirrel libtdeldap libtqt-perl pytdeextensions python-trinity
applications:	abakus amarok basket bibletime digikam dolphin filelight gtk3-tqt-engine gtk-qt-engine gwenview k3b k9copy kaffeine kaffeine-mozilla kasablanca katapult kbarcode kbfx kbibtex kbiff kbookreader kchmviewer kcmautostart kcmldap kcmldapcontroller kcmldapmanager kcpuload kdbg kdbusnotification kdiff3 kdirstat keep kerberostray kftpgrabber kile kima kiosktool kkbswitch klcddimmer kmplayer kmyfirewall kmymoney knemo knetload knetstats knights knmap knowit knutclient koffice konversation kopete-otr kpicosim kpilot krecipes krename krusader kscope ksensors kshowmail kshutdown ksplash-engine-moodin ksquirrel kstreamripper ksystemlog ktechlab ktorrent kuickshow kvirc kvkbd kvpnc mplayerthumbs piklab potracegui qt4-tqt-theme-engine rosegarden smartcardauth smb4k soundkonverter tde-guidance tdeio-apt tdeio-ftps tdeio-locate tdeio-sword tdeio-umountwrapper tdenetworkmanager tdepowersave tderadio tde-style-lipstik tde-style-qtcurve tdesudo tdesvn tde-systemsettings tdmtheme tellico tork twin-style-crystal wlassistant yakuake
i18n:	gwenview-i18n k3b-i18n koffice-i18n tde-i18n
extras:	icons-nuvola kdevmon kdissert klamav klibido knoda kompose koverartist kpacman mathemagics png2qrgb style-ia-ora


### Trinity Dependencies
arts:	tqtinterface trinity-filesystem esound cmake
	$(call buildpkg,dependencies/arts)

avahi-tqt:	tqtinterface autoconf automake libtool
	$(call buildpkg,dependencies/avahi-tqt)

dbus-1-tqt:	tqtinterface cmake
	$(call buildpkg,dependencies/dbus-1-tqt)

dbus-tqt: tqtinterface cmake
	$(call buildpkg,dependencies/dbus-tqt)

libart_lgpl:	tqtinterface libtool
	$(call buildpkg,dependencies/libart-lgpl)

libcaldav: tqtinterface autoconf libcurl
	$(call buildpkg,dependencies/libcaldav)

libcarddav:	tqtinterface autoconf libcurl
	$(call buildpkg,dependencies/libcarddav)
	
python-tqt: sip4-tqt tdelibs
	$(call buildpkg,dependencies/python-tqt)

sip4-tqt:
	$(call buildpkg,dependencies/sip4-tqt)

tqca:	tqtinterface
	$(call buildpkg,dependencies/tqca)

tqca-tls: tqtinterface tqca
	$(call buildpkg,dependencies/tqca-tls)

tqscintilla: tqca-tls tdelibs
	$(call buildpkg,dependencies/tqscintilla)

tqt3:
	$(call buildpkg,dependencies/tqt3)

tqtinterface:	tqt3 cmake
	$(call buildpkg,dependencies/tqtinterface)

# Main packages
tdeaccessibility:	tdebase tdemultimedia
	$(call buildpkg,main/tdeaccessibility)

tdeaddons:	tdebase tdegames tdemultimedia tdenetwork tdepim
	$(call buildpkg,main/tdeaddons)

tdeadmin:	tdebase
	$(call buildpkg,main/tdeadmin)

tdeartwork:	tdebase
	$(call buildpkg,main/tdeartwork)

tdebase:	tdelibs cmake htdig fileshareset libconfig
	$(call buildpkg,main/tdebase)

tdebindings:	tdebase tqscintilla
	$(call buildpkg,main/tdebindings)

tdeedu:	tdebase
	$(call buildpkg,main/tdeedu)

tdegames:	tdebase tdemultimedia
	$(call buildpkg,main/tdegames)

tdegraphics:	tdebase poppler cmake
	$(call buildpkg,main/tdegraphics)

tdelibs:	tqt3 tqtinterface arts dbus-tqt dbus-1-tqt cmake avahi-tqt fileshareset trinity-filesystem libart_lgpl
	$(call buildpkg,main/tdelibs)

tdemultimedia:	tdebase akode
	$(call buildpkg,main/tdemultimedia)

tdenetwork:	tdebase
	$(call buildpkg,main/tdenetwork)

tdepim:	tdebase libcaldav libcarddav cmake
	$(call buildpkg,main/tdepim)

tdesdk:		tdebase tdebindings cmake
	$(call buildpkg,main/tdesdk)

tdetoys:	tdebase
	$(call buildpkg,main/tdetoys)

tdeutils:	tdebase
	$(call buildpkg,main/tdeutils)

tdevelop:	tdebase tdesdk cmake
	$(call buildpkg,main/tdevelop)

tdewebdev:	tdebase tdesdk
	$(call buildpkg,main/tdewebdev)

### 3rd party libraries and tools
autoconf: m4
# Build on CentOS 5 only
ifneq ($(wildcard /boot/vmlinuz*.el5*),)
	$(call buildpkg,3rdparty/autoconf)
endif

automake:
# Build on CentOS 5 only
ifneq ($(wildcard /boot/vmlinuz*.el5*),)
	$(call buildpkg,3rdparty/automake)
endif

cmake:
# Build on CentOS 5/6 only
ifneq ($(wildcard /boot/vmlinuz*.el5* /boot/vmlinuz*.el6*),)
	$(call buildpkg,3rdparty/cmake)
endif

esound:
# Build on Mageia and CentOS >= 7
ifneq ($(wildcard /etc/mageia-release /boot/vmlinuz*.el7*),)
	$(call buildpkg,3rdparty/esound)
endif

gnuchess:
# Build on CentOS 5, CentOS 7
ifneq ($(wildcard /boot/vmlinuz*.el5* /boot/vmlinuz*.el7*),)
	$(call buildpkg,3rdparty/gnuchess)
endif

htdig:
# build on Mageia, and CentOS >= 7
ifneq ($(wildcard /etc/mageia-release /boot/vmlinuz*.el7*),)
	$(call buildpkg,extras/htdig)
endif

imlib1:
# Do NOT build on Fedora, nor CentOS, nor PCLOS
ifeq ($(wildcard /etc/fedora-release),)
ifeq ($(wildcard /etc/centos-release),)
ifeq ($(wildcard /boot/vmlinuz*.el5*),)
	$(call buildpkg,3rdparty/imlib1)
endif
endif
endif

libconfig:
# Build on CentOS 5 only
ifneq ($(wildcard /boot/vmlinuz*.el5*),)
	$(call buildpkg,3rdparty/libconfig)
endif
	

libcurl: automake libtool
# Build on CentOS 5 only
ifneq ($(wildcard /boot/vmlinuz*.el5*),)
	$(call buildpkg,3rdparty/curl)
endif

libtool: autoconf automake
# Build on CentOS 5 only
ifneq ($(wildcard /boot/vmlinuz*.el5*),)
	$(call buildpkg,3rdparty/libtool)
endif

lilypond: mftrace
# Build on CentOS 6 only
ifneq ($(wildcard /boot/vmlinuz*.el6*),)
	$(call buildpkg,3rdparty/lilypond)
endif

m4:
# Build on CentOS 5 only (vendor-provided m4 is too old)
ifneq ($(wildcard /boot/vmlinuz*.el5*),)
	$(call buildpkg,3rdparty/m4)
endif

mftrace:
# Build on CentOS 6 only
ifneq ($(wildcard /boot/vmlinuz*.el6*),)
	$(call buildpkg,3rdparty/mftrace)
endif

pcsc-perl:
# Build on CentOS 
ifneq ($(wildcard /etc/centos-release /boot/vmlinuz*.el5*),)
	$(call buildpkg,3rdparty/pcsc-perl)
endif

poppler:
# Build on CentOS 5 only (vendor-provided Poppler is too old)
ifneq ($(wildcard /boot/vmlinuz*.el5*),)
	$(call buildpkg,3rdparty/poppler)
endif

python-qt3: tdelibs sip
	$(call buildpkg,3rdparty/python-qt3)

sip:
# Build on CentOS 5 only (vendor-provided SIP is too old)
ifneq ($(wildcard /boot/vmlinuz*.el5*),)
	$(call buildpkg,3rdparty/sip)
endif

torsocks:
# Do NOT build on RHEL 7
ifeq ($(wildcard /boot/vmlinuz*.el7*),)
	$(call buildpkg,3rdparty/torsocks)
endif

wv2:
# Do NOT build on Mageia or openSUSE or PCLINUXOS
ifeq ($(wildcard /etc/mageia-release /etc/SuSE-release /etc/pclinuxos-release),)
	$(call buildpkg,3rdparty/wv2)
endif

### Extra packages
akode:	tqtinterface
	$(call buildpkg,extras/akode)

cmake-macros: cmake
ifneq ($(wildcard /etc/SuSE-release),)
	$(call buildpkg,extras/trinity-cmake-macros)
endif

### Trinity Libraries
kipi-plugins:	tqtinterface libkipi
	$(call buildpkg,libraries/kipi-plugins)

libkdcraw:	tqtinterface
	$(call buildpkg,libraries/libkdcraw)

libkexiv2:	tqtinterface
	$(call buildpkg,libraries/libkexiv2)

libkipi:	tqtinterface
	$(call buildpkg,libraries/libkipi)

libksquirrel:	tdelibs
	$(call buildpkg,libraries/libksquirrel)

libtdeldap:	tqtinterface
	$(call buildpkg,libraries/libtdeldap)

libtqt-perl:	tqtinterface
	$(call buildpkg,libraries/libtqt-perl)

mlt:	tqtinterface
	$(call buildpkg,libraries/mlt)

pytdeextensions:	tqtinterface python-trinity
	$(call buildpkg,libraries/pytdeextensions)

python-trinity:	tqtinterface python-tqt
	$(call buildpkg,libraries/python-trinity)

### Trinity Applications
abakus:	tdebase
	$(call buildpkg,applications/abakus)

adept:	tdebase
	$(call buildpkg,applications/adept)

amarok:	tdebase cmake
	$(call buildpkg,applications/amarok)

basket:	tdebase
	$(call buildpkg,applications/basket)

bibletime:	tdebase
	$(call buildpkg,applications/bibletime)

compizconfig-backend-kconfig:	tdebase
	$(call buildpkg,applications/compizconfig-backend-kconfig)

desktop-effects-tde:	tdebase
	$(call buildpkg,applications/desktop-effects-tde)

digikam:	tdebase libkdcraw libkexiv2 libkipi libksquirrel
	$(call buildpkg,applications/digikam)

dolphin:	tdebase
	$(call buildpkg,applications/dolphin)

filelight:	tdebase
	$(call buildpkg,applications/filelight)

filelight-l10n:	tdebase
	$(call buildpkg,applications/filelight-l10n)

fusion-icon:	tdebase
	$(call buildpkg,applications/fusion-icon)

gtk3-tqt-engine:	tdebase
# Do NOT build on CentOS 5, CentOS 6
ifeq ($(wildcard /boot/vmlinuz*.el5* /boot/vmlinuz*.el6*),)
	$(call buildpkg,applications/gtk3-tqt-engine)
endif

gtk-qt-engine:	tdebase
# Do NOT build on CentOS 5 (GTK2 is too old)
ifeq ($(wildcard /boot/vmlinuz*.el5*),)
	$(call buildpkg,applications/gtk-qt-engine)
endif

gwenview:	tdebase
	$(call buildpkg,applications/gwenview)

k3b:	tdebase
	$(call buildpkg,applications/k3b)

k9copy:	tdebase k3b
	$(call buildpkg,applications/k9copy)

kaffeine:	tdebase
	$(call buildpkg,applications/kaffeine)

kaffeine-mozilla:	tdebase kaffeine
	$(call buildpkg,applications/kaffeine-mozilla)

kasablanca:	tdebase
	$(call buildpkg,applications/kasablanca)

katapult:	tdebase
	$(call buildpkg,applications/katapult)

kbarcode:	tdebase
	$(call buildpkg,applications/kbarcode)

kbfx:	tdebase
	$(call buildpkg,applications/kbfx)

kbibtex:	tdebase
	$(call buildpkg,applications/kbibtex)

kbiff:	tdebase
	$(call buildpkg,applications/kbiff)

kbookreader:	tdebase
	$(call buildpkg,applications/kbookreader)

kchmviewer:	tdebase
	$(call buildpkg,applications/kchmviewer)

kcmautostart:	tdebase
	$(call buildpkg,applications/kcmautostart)

kcmldap:	tdebase libtdeldap
	$(call buildpkg,applications/kcmldap)

kcmldapcontroller:	tdebase kcmldap
	$(call buildpkg,applications/kcmldapcontroller)

kcmldapmanager:	tdebase kcmldap
	$(call buildpkg,applications/kcmldapmanager)

kcpuload:	tdebase
	$(call buildpkg,applications/kcpuload)

kdbg:	tdebase
	$(call buildpkg,applications/kdbg)

kdbusnotification:	tdebase
	$(call buildpkg,applications/kdbusnotification)

kdiff3:	tdebase
	$(call buildpkg,applications/kdiff3)

kdirstat:	tdebase
	$(call buildpkg,applications/kdirstat)

kdpkg:	tdebase
	$(call buildpkg,applications/kdpkg)

keep:	tdebase
	$(call buildpkg,applications/keep)

kerberostray:	tdebase
	$(call buildpkg,applications/kerberostray)

kerry:	tdebase
	$(call buildpkg,applications/kerry)

kftpgrabber:	tdebase
	$(call buildpkg,applications/kftpgrabber)

kgtk-qt3:	tdebase
# Do NOT build on CentOS 5 (GTK2 is too old)
# Do NOT build on CentOS >=7 (GTK2 is too new)
# Do NOT build on Fedora >= 20 (GTK2 is too new)
# Do NOT build on Mageia >= 4 (GTK2 is too new)
ifeq ($(wildcard /boot/vmlinuz*.el5* /boot/vmlinuz*.el7* /boot/vmlinuz*.fc20* /boot/vmlinuz*.mga4*),)
	$(call buildpkg,applications/kgtk-qt3)
endif

kile:	tdebase
	$(call buildpkg,applications/kile)

kima:	tdebase
	$(call buildpkg,applications/kima)

kiosktool:	tdebase
	$(call buildpkg,applications/kiosktool)

kkbswitch:	tdebase
	$(call buildpkg,applications/kkbswitch)

klcddimmer:	tdebase
	$(call buildpkg,applications/klcddimmer)

kmplayer:	tdebase
	$(call buildpkg,applications/kmplayer)

kmyfirewall:	tdebase
	$(call buildpkg,applications/kmyfirewall)

kmymoney:	tdebase
	$(call buildpkg,applications/kmymoney)

knemo:	tdebase
	$(call buildpkg,applications/knemo)

knetload:	tdebase
	$(call buildpkg,applications/knetload)

knetstats:	tdebase
	$(call buildpkg,applications/knetstats)

knetworkmanager8:	tdebase
	$(call buildpkg,applications/knetworkmanager8)

knights:	tdebase gnuchess
	$(call buildpkg,applications/knights)

knmap:	tdebase
	$(call buildpkg,applications/knmap)

knowit:	tdebase
	$(call buildpkg,applications/knowit)

knutclient:	tdebase
	$(call buildpkg,applications/knutclient)

koffice:	tdebase wv2
	$(call buildpkg,applications/koffice)

konversation:	tdebase
	$(call buildpkg,applications/konversation)

kopete-otr:	tdebase
	$(call buildpkg,applications/kopete-otr)

kpicosim:	tdebase
	$(call buildpkg,applications/kpicosim)

kpilot:	tdebase
# Do NOT build on CentOS 5 (pilot-link library is too old)
ifeq ($(wildcard /boot/vmlinuz*.el5*),)
	$(call buildpkg,applications/kpilot)
endif

kpowersave:	tdebase
	$(call buildpkg,applications/kpowersave)

krecipes:	tdebase
	$(call buildpkg,applications/krecipes)

krename:	tdebase
	$(call buildpkg,applications/krename)

krusader:	tdebase
	$(call buildpkg,applications/krusader)

kscope:	tdebase
	$(call buildpkg,applications/kscope)

ksensors:	tdebase
	$(call buildpkg,applications/ksensors)

kshowmail:	tdebase
	$(call buildpkg,applications/kshowmail)

kshutdown:	tdebase
	$(call buildpkg,applications/kshutdown)

ksplash-engine-moodin:	tdebase
	$(call buildpkg,applications/ksplash-engine-moodin)

ksquirrel:	tdebase libksquirrel
	$(call buildpkg,applications/ksquirrel)

kstreamripper:	tdebase
	$(call buildpkg,applications/kstreamripper)

ksystemlog:	tdebase
	$(call buildpkg,applications/ksystemlog)

ktechlab:	tdebase
	$(call buildpkg,applications/ktechlab)

ktorrent:	tdebase
	$(call buildpkg,applications/ktorrent)

kuickshow:	tdebase imlib1
	$(call buildpkg,applications/kuickshow)

kvirc:	tdebase
	$(call buildpkg,applications/kvirc)

kvkbd:	tdebase
	$(call buildpkg,applications/kvkbd)

kvpnc:	tdebase
	$(call buildpkg,applications/kvpnc)

mplayerthumbs:	tdebase
	$(call buildpkg,applications/mplayerthumbs)

piklab:	tdebase
	$(call buildpkg,applications/piklab)

potracegui:	tdebase
	$(call buildpkg,applications/potracegui)

qt4-tqt-theme-engine:	tdebase
# Do NOT build on CentOS
ifeq ($(wildcard /etc/centos-release),)
	$(call buildpkg,applications/qt4-tqt-theme-engine)
endif

rosegarden:	tdebase lilypond
# Do NOT build on CentOS 5, CentOS 7
ifeq ($(wildcard /boot/vmlinuz*.el5* /boot/vmlinuz*.el7*),)
	$(call buildpkg,applications/rosegarden)
endif

smartcardauth:	tdebase pcsc-perl
	$(call buildpkg,applications/smartcardauth)

smb4k:	tdebase
	$(call buildpkg,applications/smb4k)

soundkonverter:	tdebase
	$(call buildpkg,applications/soundkonverter)

tde-guidance:	tdebase pytdeextensions
	$(call buildpkg,applications/tde-guidance)

tdeio-apt:	tdebase
	$(call buildpkg,applications/tdeio-apt)

tdeio-ftps:	tdebase
	$(call buildpkg,applications/tdeio-ftps)

tdeio-locate:	tdebase
	$(call buildpkg,applications/tdeio-locate)

tdeio-sword:	tdebase
	$(call buildpkg,applications/tdeio-sword)

tdeio-umountwrapper:	tdebase
	$(call buildpkg,applications/tdeio-umountwrapper)

tdenetworkmanager:	tdebase
# Do NOT build on CentOS 5, CentOS 6
ifeq ($(wildcard /boot/vmlinuz*.el5* /boot/vmlinuz*.el6*),)
	$(call buildpkg,applications/tdenetworkmanager)
endif

tdepowersave:	tdebase
	$(call buildpkg,applications/tdepowersave)

tderadio:	tdebase
	$(call buildpkg,applications/tderadio)

tde-style-lipstik:	tdebase
	$(call buildpkg,applications/tde-style-lipstik)

tde-style-qtcurve:	tdebase
	$(call buildpkg,applications/tde-style-qtcurve)

tdesudo:	tdebase
	$(call buildpkg,applications/tdesudo)

tdesvn:	tdebase
	$(call buildpkg,applications/tdesvn)

tde-systemsettings:	tdebase
	$(call buildpkg,applications/tde-systemsettings)

tdmtheme:	tdebase
	$(call buildpkg,applications/tdmtheme)

tellico:	tdebase
	$(call buildpkg,applications/tellico)

tork:	tdebase torsocks
	$(call buildpkg,applications/tork)

twin-style-crystal:	tdebase
	$(call buildpkg,applications/twin-style-crystal)

wlassistant:	tdebase
	$(call buildpkg,applications/wlassistant)

yakuake:	tdebase
	$(call buildpkg,applications/yakuake)

### Trinity Translations
gwenview-i18n:	tdebase
	$(call buildpkg,applications/gwenview-i18n)

k3b-i18n:	tdebase
	$(call buildpkg,applications/k3b-i18n)

koffice-i18n:	tdebase
	$(call buildpkg,applications/koffice-i18n)

tde-i18n:	tdebase cmake
	$(call buildpkg,tde-i18n)

### Meta packages
meta:
	$(call buildpkg,extras/trinity-desktop)

### Extra packages
celestia:
	$(call buildpkg,extras/celestia)

fileshareset:
	$(call buildpkg,extras/fileshareset)

hk_classes:
	$(call buildpkg,extras/hk_classes)

icons-nuvola:
	$(call buildpkg,extras/icons-nuvola)

kdevmon:
	$(call buildpkg,extras/kdevmon)

kdissert:
	$(call buildpkg,extras/kdissert)

klamav:
	$(call buildpkg,extras/klamav)

klibido: pan
	$(call buildpkg,extras/klibido)

knoda: hk_classes
	$(call buildpkg,extras/knoda)

kompose:
	$(call buildpkg,extras/kompose)

koverartist:
	$(call buildpkg,extras/koverartist)

kpacman:
	$(call buildpkg,extras/kpacman)

mathemagics:
	$(call buildpkg,extras/mathemagics)

pan:
	$(call buildpkg,3rdparty/pan)

png2qrgb:
	$(call buildpkg,extras/png2qrgb)

scribus:
	$(call buildpkg,extras/scribus)

style-ia-ora:
	$(call buildpkg,extras/style-ia-ora)

trinity-filesystem:
	$(call buildpkg,extras/trinity-filesystem)