PREFIX=/usr
DEST=$(DESTDIR)$(PREFIX)

all:	build

build:	compress

clean:
	rm -f po/*.mo
	rm -f man/C/*.gz

install:
	# Clean-up installed old files that were renamed or moved in later BiT versions
	rm -f $(DEST)/etc/dbus-1/system.d/net.launchpad.backintime.serviceHelper.conf
	rm -f $(DEST)/share/backintime/plugins/qt4plugin.py

	# Inject version string into source files
	(cd .. && ./updateversion.sh)

	# Install python
	install -d $(DEST)/share/backintime/qt
	install --mode=644 aboutdlg.py $(DEST)/share/backintime/qt
	install --mode=644 app.py $(DEST)/share/backintime/qt
	install --mode=644 editusercallback.py $(DEST)/share/backintime/qt
	install --mode=644 encfsmsgbox.py $(DEST)/share/backintime/qt
	install --mode=644 icon.py $(DEST)/share/backintime/qt
	install --mode=644 languagedialog.py $(DEST)/share/backintime/qt
	install --mode=644 logviewdialog.py $(DEST)/share/backintime/qt
	install --mode=644 messagebox.py $(DEST)/share/backintime/qt
	install --mode=644 qtsystrayicon.py $(DEST)/share/backintime/qt
	install --mode=644 qttools_path.py $(DEST)/share/backintime/qt
	install --mode=644 qttools.py $(DEST)/share/backintime/qt
	install --mode=644 restoreconfigdialog.py $(DEST)/share/backintime/qt
	install --mode=644 restoredialog.py $(DEST)/share/backintime/qt
	install --mode=644 serviceHelper.py $(DEST)/share/backintime/qt
	install --mode=644 snapshotsdialog.py $(DEST)/share/backintime/qt
	install --mode=644 statedata.py $(DEST)/share/backintime/qt
	install --mode=644 usermessagedialog.py $(DEST)/share/backintime/qt
	install -d $(DEST)/share/backintime/qt/manageprofiles
	install --mode=644 manageprofiles/combobox.py $(DEST)/share/backintime/qt/manageprofiles
	install --mode=644 manageprofiles/__init__.py $(DEST)/share/backintime/qt/manageprofiles
	install --mode=644 manageprofiles/schedulewidget.py $(DEST)/share/backintime/qt/manageprofiles
	install --mode=644 manageprofiles/spinboxunit.py $(DEST)/share/backintime/qt/manageprofiles
	install --mode=644 manageprofiles/sshproxywidget.py $(DEST)/share/backintime/qt/manageprofiles
	install --mode=644 manageprofiles/statebindcheckbox.py $(DEST)/share/backintime/qt/manageprofiles
	install --mode=644 manageprofiles/tab_expert_options.py $(DEST)/share/backintime/qt/manageprofiles
	install --mode=644 manageprofiles/tab_general.py $(DEST)/share/backintime/qt/manageprofiles
	install --mode=644 manageprofiles/tab_options.py $(DEST)/share/backintime/qt/manageprofiles
	install --mode=644 manageprofiles/tab_remove_retention.py $(DEST)/share/backintime/qt/manageprofiles

	# Install plugin
	install -d $(DEST)/share/backintime/plugins
	install --mode=644 plugins/notifyplugin.py $(DEST)/share/backintime/plugins
	install --mode=644 plugins/systrayiconplugin.py $(DEST)/share/backintime/plugins

	# Install application
	install -d $(DEST)/bin
	install --mode=755 backintime-qt $(DEST)/bin
	install --mode=755 backintime-qt_polkit $(DEST)/bin
	install -d $(DEST)/share/metainfo
	install --mode=644 io.github.bit_team.back_in_time.gui.metainfo.xml $(DEST)/share/metainfo

	# Install dbus service
	install -d $(DEST)/share/dbus-1/system-services
	install --mode=644 net.launchpad.backintime.serviceHelper.service $(DEST)/share/dbus-1/system-services

	# Install dbus conf
	install -d $(DEST)/share/dbus-1/system.d
	install --mode=644 net.launchpad.backintime.serviceHelper.conf $(DEST)/share/dbus-1/system.d

	# Install polkit action
	install -d $(DEST)/share/polkit-1/actions
	install --mode=644 net.launchpad.backintime.policy $(DEST)/share/polkit-1/actions

	# Install documentation
	install -d $(DEST)/share/doc/backintime-qt
	install --mode=644 ../AUTHORS $(DEST)/share/doc/backintime-qt
	install --mode=644 ../README.md $(DEST)/share/doc/backintime-qt
	install --mode=644 ../FAQ.md $(DEST)/share/doc/backintime-qt
	install --mode=644 ../TRANSLATIONS $(DEST)/share/doc/backintime-qt
	install --mode=644 ../CHANGES $(DEST)/share/doc/backintime-qt
	install --mode=644 ../LICENSE $(DEST)/share/doc/backintime-qt
	install -d $(DEST)/share/doc/backintime-qt/LICENSES
	install --mode=644 ../LICENSES/CC0-1.0.txt $(DEST)/share/doc/backintime-qt/LICENSES
	install --mode=644 ../LICENSES/GPL-2.0-or-later.txt $(DEST)/share/doc/backintime-qt/LICENSES
	install --mode=644 ../LICENSES/GPL-3.0-or-later.txt $(DEST)/share/doc/backintime-qt/LICENSES
	install --mode=644 ../LICENSES/MIT.txt $(DEST)/share/doc/backintime-qt/LICENSES

	# Install .desktop
	install -d $(DEST)/share/applications
	install --mode=644 backintime-qt.desktop $(DEST)/share/applications
	install --mode=644 backintime-qt-root.desktop $(DEST)/share/applications

	# Install man
	install -d $(DEST)/share/man/man1
	install --mode=644 man/C/backintime-qt.1.gz $(DEST)/share/man/man1

	# Install icons
	install -d $(DEST)/share/icons/hicolor/scalable/actions
	install --mode=644 icons/scalable/actions/show-hidden.svg $(DEST)/share/icons/hicolor/scalable/actions
	install -d $(DEST)/share/icons/hicolor/48x48/actions
	install --mode=644 icons/48x48/actions/show-hidden.svg $(DEST)/share/icons/hicolor/48x48/actions
	install -d $(DEST)/share/icons/hicolor/32x32/actions
	install --mode=644 icons/32x32/actions/show-hidden.svg $(DEST)/share/icons/hicolor/32x32/actions
	install -d $(DEST)/share/icons/hicolor/24x24/actions
	install --mode=644 icons/24x24/actions/show-hidden.svg $(DEST)/share/icons/hicolor/24x24/actions
	install -d $(DEST)/share/icons/hicolor/22x22/actions
	install --mode=644 icons/22x22/actions/show-hidden.svg $(DEST)/share/icons/hicolor/22x22/actions
	install -d $(DEST)/share/icons/hicolor/16x16/actions
	install --mode=644 icons/16x16/actions/show-hidden.svg $(DEST)/share/icons/hicolor/16x16/actions

compress:
	# Man pages
	for i in $$(ls -1 man/C/); do case $$i in *.gz|*~) continue;; *) gzip -n --best -c man/C/$$i > man/C/$${i}.gz;; esac; done

uninstall: uninstall_files uninstall_dirs

uninstall_files:


	# Uninstall files python
	rm -f $(DEST)/share/backintime/qt/__pycache__/*.pyc
	rm -f $(DEST)/share/backintime/qt/aboutdlg.py
	rm -f $(DEST)/share/backintime/qt/app.py
	rm -f $(DEST)/share/backintime/qt/editusercallback.py
	rm -f $(DEST)/share/backintime/qt/encfsmsgbox.py
	rm -f $(DEST)/share/backintime/qt/icon.py
	rm -f $(DEST)/share/backintime/qt/languagedialog.py
	rm -f $(DEST)/share/backintime/qt/logviewdialog.py
	rm -f $(DEST)/share/backintime/qt/messagebox.py
	rm -f $(DEST)/share/backintime/qt/qtsystrayicon.py
	rm -f $(DEST)/share/backintime/qt/qttools_path.py
	rm -f $(DEST)/share/backintime/qt/qttools.py
	rm -f $(DEST)/share/backintime/qt/restoreconfigdialog.py
	rm -f $(DEST)/share/backintime/qt/restoredialog.py
	rm -f $(DEST)/share/backintime/qt/serviceHelper.py
	rm -f $(DEST)/share/backintime/qt/snapshotsdialog.py
	rm -f $(DEST)/share/backintime/qt/statedata.py
	rm -f $(DEST)/share/backintime/qt/usermessagedialog.py
	rm -f $(DEST)/share/backintime/qt/manageprofiles/combobox.py
	rm -f $(DEST)/share/backintime/qt/manageprofiles/__init__.py
	rm -f $(DEST)/share/backintime/qt/manageprofiles/schedulewidget.py
	rm -f $(DEST)/share/backintime/qt/manageprofiles/spinboxunit.py
	rm -f $(DEST)/share/backintime/qt/manageprofiles/sshproxywidget.py
	rm -f $(DEST)/share/backintime/qt/manageprofiles/statebindcheckbox.py
	rm -f $(DEST)/share/backintime/qt/manageprofiles/tab_expert_options.py
	rm -f $(DEST)/share/backintime/qt/manageprofiles/tab_general.py
	rm -f $(DEST)/share/backintime/qt/manageprofiles/tab_options.py
	rm -f $(DEST)/share/backintime/qt/manageprofiles/tab_remove_retention.py

	# Uninstall files plugin
	rm -f $(DEST)/share/backintime/plugins/__pycache__/*.pyc
	rm -f $(DEST)/share/backintime/plugins/notifyplugin.py
	rm -f $(DEST)/share/backintime/plugins/systrayiconplugin.py

	# Uninstall files application
	rm -f $(DEST)/bin/backintime-qt
	rm -f $(DEST)/bin/backintime-qt_polkit
	rm -f $(DEST)/share/metainfo/io.github.bit_team.back_in_time.gui.metainfo.xml

	# Uninstall files dbus service
	rm -f $(DEST)/share/dbus-1/system-services/net.launchpad.backintime.serviceHelper.service

	# Uninstall files dbus conf
	rm -f $(DEST)/share/dbus-1/system.d/net.launchpad.backintime.serviceHelper.conf

	# Uninstall files polkit action
	rm -f $(DEST)/share/polkit-1/actions/net.launchpad.backintime.policy

	# Uninstall files documentation
	rm -f $(DEST)/share/doc/backintime-qt/AUTHORS
	rm -f $(DEST)/share/doc/backintime-qt/README.md
	rm -f $(DEST)/share/doc/backintime-qt/FAQ.md
	rm -f $(DEST)/share/doc/backintime-qt/TRANSLATIONS
	rm -f $(DEST)/share/doc/backintime-qt/CHANGES
	rm -f $(DEST)/share/doc/backintime-qt/LICENSE
	rm -f $(DEST)/share/doc/backintime-qt/LICENSES/CC0-1.0.txt
	rm -f $(DEST)/share/doc/backintime-qt/LICENSES/GPL-2.0-or-later.txt
	rm -f $(DEST)/share/doc/backintime-qt/LICENSES/GPL-3.0-or-later.txt
	rm -f $(DEST)/share/doc/backintime-qt/LICENSES/MIT.txt

	# Uninstall files .desktop
	rm -f $(DEST)/share/applications/backintime-qt.desktop
	rm -f $(DEST)/share/applications/backintime-qt-root.desktop

	# Uninstall files man
	rm -f $(DEST)/share/man/man1/backintime-qt.1.gz

	# Uninstall files icons
	rm -f $(DEST)/share/icons/hicolor/scalable/actions/show-hidden.svg
	rm -f $(DEST)/share/icons/hicolor/48x48/actions/show-hidden.svg
	rm -f $(DEST)/share/icons/hicolor/32x32/actions/show-hidden.svg
	rm -f $(DEST)/share/icons/hicolor/24x24/actions/show-hidden.svg
	rm -f $(DEST)/share/icons/hicolor/22x22/actions/show-hidden.svg
	rm -f $(DEST)/share/icons/hicolor/16x16/actions/show-hidden.svg

uninstall_dirs:


	# Uninstall directory python
	if [ -d $(DEST)/share/backintime/qt/__pycache__ ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/backintime/qt/__pycache__; fi
	if [ -d $(DEST)/share/backintime/qt ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/backintime/qt; fi
	if [ -d $(DEST)/share/backintime/qt/manageprofiles ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/backintime/qt/manageprofiles; fi

	# Uninstall directory plugin
	if [ -d $(DEST)/share/backintime/plugins/__pycache__ ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/backintime/plugins/__pycache__; fi
	if [ -d $(DEST)/share/backintime/plugins ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/backintime/plugins; fi
	if [ -d $(DEST)/share/backintime ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/backintime; fi

	# Uninstall directory application
	if [ -d $(DEST)/bin ]; then rmdir --ignore-fail-on-non-empty $(DEST)/bin; fi
	if [ -d $(DEST)/share/metainfo ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/metainfo; fi

	# Uninstall directory dbus service
	if [ -d $(DEST)/share/dbus-1/system-services ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/dbus-1/system-services; fi
	if [ -d $(DEST)/share/dbus-1 ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/dbus-1; fi

	# Uninstall directory dbus conf
	if [ -d $(DEST)/share/dbus-1/system.d ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/dbus-1/system.d; fi
	if [ -d $(DEST)/share/dbus-1 ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/dbus-1; fi
	if [ -d $(DEST)/share ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share; fi

	# Uninstall directory polkit action
	if [ -d $(DEST)/share/polkit-1/actions ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/polkit-1/actions; fi
	if [ -d $(DEST)/share/polkit-1 ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/polkit-1; fi

	# Uninstall directory documentation
	if [ -d $(DEST)/share/doc/backintime-qt ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/doc/backintime-qt; fi
	if [ -d $(DEST)/share/doc/backintime-qt/LICENSES ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/doc/backintime-qt/LICENSES; fi

	# Uninstall directory .desktop
	if [ -d $(DEST)/share/applications ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/applications; fi

	# Uninstall directory man
	if [ -d $(DEST)/share/man/man1 ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/man/man1; fi
	if [ -d $(DEST)/share/man ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/man; fi

	# Uninstall directory icons
	if [ -d $(DEST)/share/icons/hicolor/scalable/actions ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/icons/hicolor/scalable/actions; fi
	if [ -d $(DEST)/share/icons/hicolor/scalable ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/icons/hicolor/scalable; fi
	if [ -d $(DEST)/share/icons/hicolor/48x48/actions ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/icons/hicolor/48x48/actions; fi
	if [ -d $(DEST)/share/icons/hicolor/48x48 ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/icons/hicolor/48x48; fi
	if [ -d $(DEST)/share/icons/hicolor/32x32/actions ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/icons/hicolor/32x32/actions; fi
	if [ -d $(DEST)/share/icons/hicolor/32x32 ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/icons/hicolor/32x32; fi
	if [ -d $(DEST)/share/icons/hicolor/24x24/actions ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/icons/hicolor/24x24/actions; fi
	if [ -d $(DEST)/share/icons/hicolor/24x24 ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/icons/hicolor/24x24; fi
	if [ -d $(DEST)/share/icons/hicolor/22x22/actions ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/icons/hicolor/22x22/actions; fi
	if [ -d $(DEST)/share/icons/hicolor/22x22 ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/icons/hicolor/22x22; fi
	if [ -d $(DEST)/share/icons/hicolor/16x16/actions ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/icons/hicolor/16x16/actions; fi
	if [ -d $(DEST)/share/icons/hicolor/16x16 ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/icons/hicolor/16x16; fi
	if [ -d $(DEST)/share/icons/hicolor ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/icons/hicolor; fi
	if [ -d $(DEST)/share/icons ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share/icons; fi
	if [ -d $(DEST)/share ]; then rmdir --ignore-fail-on-non-empty $(DEST)/share; fi

