# sadms make file
# bbou@ac-toulouse.fr
# dim. 14 nov. 2010 10:12:20 CEST
VERSION=2.0.15

prefix = 

GETDISTRIBUTION = $(shell bin/lsb_release.sh -s -i)
DISTRIBUTION := $(GETDISTRIBUTION)
DISTRIBUTIONFAMILY=
ifeq ($(DISTRIBUTION),Debian)
	DISTRIBUTIONFAMILY = DEBIAN
	SU = "gksu"
endif
ifeq ($(DISTRIBUTION),Ubuntu)
	DISTRIBUTIONFAMILY = DEBIAN
	SU = "gksu -u root "
endif
ifeq ($(DISTRIBUTION),Redhat)
	DISTRIBUTIONFAMILY = REDHAT
	SU =
endif
ifeq ($(DISTRIBUTION),FedoraCore)
	DISTRIBUTIONFAMILY = REDHAT
	SU =
endif
ifeq ($(DISTRIBUTION),Fedora)
	DISTRIBUTIONFAMILY = REDHAT
	SU =
endif
ifeq ($(DISTRIBUTION),MandrivaLinux)
	DISTRIBUTIONFAMILY = REDHAT
	SU =
endif
ifeq ($(DISTRIBUTION),Mandriva)
	DISTRIBUTIONFAMILY = REDHAT
	SU =
endif
ifeq ($(DISTRIBUTION),SuSE)
	DISTRIBUTIONFAMILY = REDHAT
	SU =
endif

dos2unix := $(shell whereis -b dos2unix | awk '{print $$2}')
ifeq ($(dos2unix),)
dos2unix = perl -pi -e 's/\r\n/\n/g'
endif

WHERE = /usr/local
WHEREBIN = $(WHERE)/bin
WHERELIB = $(WHERE)/lib
BASE = $(DESTDIR)$(prefix)$(WHERE)
BIN = $(BASE)/bin
LIB = $(BASE)/lib
FOLDER = $(LIB)/sadms-$(VERSION)
VARFOLDER = $(DESTDIR)/$(prefix)/var/lib/sadms
DOCFOLDER = $(DESTDIR)/$(prefix)/usr/share/doc/sadms
MENUFOLDER = $(DESTDIR)/$(prefix)/usr/share/applications
SHORTCUTFOLDER = $(BIN)

default:

showconfig:
	@echo "version: $(VERSION)"
	@echo "prefix: $(prefix)"
	@echo "bin: $(BIN)"
	@echo "repository: $(FOLDER)"
	@echo "dos2unix: $(dos2unix)"
	@echo "distribution:	$(DISTRIBUTION)"
	@echo "family:		$(DISTRIBUTIONFAMILY)"
	@echo "su:		$(SU)"
	
cleanfiles: 
	rm -Rf $(FOLDER)
	rm -Rf $(VARFOLDER)
	
copyfiles: 
	cp -R bin/* $(FOLDER)
	
installshortcuts:
	ln -s ../lib/sadms-$(VERSION)/sadms.py $(SHORTCUTFOLDER)/sadms
	ln -s ../lib/sadms-$(VERSION)/globs.py $(SHORTCUTFOLDER)/sadms-globs
	ln -s ../lib/sadms-$(VERSION)/users.py $(SHORTCUTFOLDER)/sadms-users
	ln -s ../lib/sadms-$(VERSION)/shares.py $(SHORTCUTFOLDER)/sadms-shares
	ln -s ../lib/sadms-$(VERSION)/share.py $(SHORTCUTFOLDER)/sadms-share
	ln -s ../lib/sadms-$(VERSION)/acls.py $(SHORTCUTFOLDER)/fsacls

uninstallshortcuts:
	if [ -L $(SHORTCUTFOLDER)/sadms ];then rm $(SHORTCUTFOLDER)/sadms; fi
	if [ -L $(SHORTCUTFOLDER)/sadms-globs ];then rm $(SHORTCUTFOLDER)/sadms-globs; fi
	if [ -L $(SHORTCUTFOLDER)/sadms-users ];then rm $(SHORTCUTFOLDER)/sadms-users; fi
	if [ -L $(SHORTCUTFOLDER)/sadms-shares ];then rm $(SHORTCUTFOLDER)/sadms-shares; fi
	if [ -L $(SHORTCUTFOLDER)/sadms-share ];then rm $(SHORTCUTFOLDER)/sadms-share; fi
	if [ -L $(SHORTCUTFOLDER)/fsacls ];then rm $(SHORTCUTFOLDER)/fsacls; fi

installmenu:
	echo "[Desktop Entry]" > $(MENUFOLDER)/sadms.desktop
	echo "Encoding=UTF-8" >> $(MENUFOLDER)/sadms.desktop
	echo "Type=Application" >> $(MENUFOLDER)/sadms.desktop
	echo "Categories=Application;System;" >> $(MENUFOLDER)/sadms.desktop
	echo "Exec=$(SU)$(WHEREBIN)/sadms" >> $(MENUFOLDER)/sadms.desktop
	echo "Icon=$(WHERELIB)/sadms-$(VERSION)/sadms.png" >> $(MENUFOLDER)/sadms.desktop
	echo "Name=Sadms" >> $(MENUFOLDER)/sadms.desktop
	echo "Name[en]=Sadms" >> $(MENUFOLDER)/sadms.desktop
	echo "Name[fr]=Sadms" >> $(MENUFOLDER)/sadms.desktop
	echo "GenericName=Sadms" >> $(MENUFOLDER)/sadms.desktop
	echo "GenericName[en]=Sadms" >> $(MENUFOLDER)/sadms.desktop
	echo "GenericName[fr]=Sadms" >> $(MENUFOLDER)/sadms.desktop
	echo "Comment=Sadms" >> $(MENUFOLDER)/sadms.desktop
	echo "Comment[en]=Sadms-Active Directory Integration" >> $(MENUFOLDER)/sadms.desktop
	echo "Comment[fr]=Sadms-Intégration Active Directory" >> $(MENUFOLDER)/sadms.desktop
	echo "[Desktop Entry]" > $(MENUFOLDER)/sadms-globs.desktop
	echo "Encoding=UTF-8" >> $(MENUFOLDER)/sadms-globs.desktop
	echo "Type=Application" >> $(MENUFOLDER)/sadms-globs.desktop
	echo "Categories=Application;System;" >> $(MENUFOLDER)/sadms-globs.desktop
	echo "Exec=$(SU)$(WHEREBIN)/sadms-globs" >> $(MENUFOLDER)/sadms-globs.desktop
	echo "Icon=$(WHERELIB)/sadms-$(VERSION)/sadms.png" >> $(MENUFOLDER)/sadms-globs.desktop
	echo "Name=Sadms-Globals" >> $(MENUFOLDER)/sadms-globs.desktop
	echo "Name[en]=Sadms-Globals" >> $(MENUFOLDER)/sadms-globs.desktop
	echo "Name[fr]=Sadms-Paramètres globaux" >> $(MENUFOLDER)/sadms-globs.desktop
	echo "GenericName=Sadms-Globals" >> $(MENUFOLDER)/sadms-globs.desktop
	echo "GenericName[en]=Sadms-Globals" >> $(MENUFOLDER)/sadms-globs.desktop
	echo "GenericName[fr]=Sadms-Paramètres globaux" >> $(MENUFOLDER)/sadms-globs.desktop
	echo "Comment=Sadms-Globals" >> $(MENUFOLDER)/sadms-globs.desktop
	echo "Comment[en]=Sadms-Globals" >> $(MENUFOLDER)/sadms-globs.desktop
	echo "Comment[fr]=Sadms-Paramètres globaux" >> $(MENUFOLDER)/sadms-globs.desktop
	echo "[Desktop Entry]" > $(MENUFOLDER)/sadms-shares.desktop
	echo "Encoding=UTF-8" >> $(MENUFOLDER)/sadms-shares.desktop
	echo "Type=Application" >> $(MENUFOLDER)/sadms-shares.desktop
	echo "Categories=Application;System;" >> $(MENUFOLDER)/sadms-shares.desktop
	echo "Exec=$(SU)$(WHEREBIN)/sadms-shares" >> $(MENUFOLDER)/sadms-shares.desktop
	echo "Icon=$(WHERELIB)/sadms-$(VERSION)/sadms.png" >> $(MENUFOLDER)/sadms-shares.desktop
	echo "Name=Sadms-Shares" >> $(MENUFOLDER)/sadms-shares.desktop
	echo "Name[en]=Sadms-Shares" >> $(MENUFOLDER)/sadms-shares.desktop
	echo "Name[fr]=Sadms-Partages" >> $(MENUFOLDER)/sadms-shares.desktop
	echo "GenericName=Sadms-Shares" >> $(MENUFOLDER)/sadms-shares.desktop
	echo "GenericName[en]=Sadms-Shares" >> $(MENUFOLDER)/sadms-shares.desktop
	echo "GenericName[fr]=Sadms-Partages" >> $(MENUFOLDER)/sadms-shares.desktop
	echo "Comment=Sadms-Shares-Partages" >> $(MENUFOLDER)/sadms-shares.desktop
	echo "Comment[en]=Sadms-Shares" >> $(MENUFOLDER)/sadms-shares.desktop
	echo "Comment[fr]=Sadms-Partages" >> $(MENUFOLDER)/sadms-shares.desktop
	echo "[Desktop Entry]" > $(MENUFOLDER)/sadms-share.desktop
	echo "Encoding=UTF-8" >> $(MENUFOLDER)/sadms-share.desktop
	echo "Type=Application" >> $(MENUFOLDER)/sadms-share.desktop
	echo "Categories=Application;System;" >> $(MENUFOLDER)/sadms-share.desktop
	echo "Exec=$(SU)$(WHEREBIN)/sadms-share" >> $(MENUFOLDER)/sadms-share.desktop
	echo "Icon=$(WHERELIB)/sadms-$(VERSION)/sadms.png" >> $(MENUFOLDER)/sadms-share.desktop
	echo "Name=Sadms-Share" >> $(MENUFOLDER)/sadms-share.desktop
	echo "Name[en]=Sadms-Share" >> $(MENUFOLDER)/sadms-share.desktop
	echo "Name[fr]=Sadms-Partage" >> $(MENUFOLDER)/sadms-share.desktop
	echo "GenericName=Sadms-Share" >> $(MENUFOLDER)/sadms-share.desktop
	echo "GenericName[en]=Sadms-Share" >> $(MENUFOLDER)/sadms-share.desktop
	echo "GenericName[fr]=Sadms-Partage" >> $(MENUFOLDER)/sadms-share.desktop
	echo "Comment=Sadms-Share" >> $(MENUFOLDER)/sadms-share.desktop
	echo "Comment[en]=Sadms-Share" >> $(MENUFOLDER)/sadms-share.desktop
	echo "Comment[fr]=Sadms-Partage" >> $(MENUFOLDER)/sadms-share.desktop
	echo "[Desktop Entry]" > $(MENUFOLDER)/sadms-users.desktop
	echo "Encoding=UTF-8" >> $(MENUFOLDER)/sadms-users.desktop
	echo "Type=Application" >> $(MENUFOLDER)/sadms-users.desktop
	echo "Categories=Application;System;" >> $(MENUFOLDER)/sadms-users.desktop
	echo "Exec=$(SU)$(WHEREBIN)/sadms-users" >> $(MENUFOLDER)/sadms-users.desktop
	echo "Icon=$(WHERELIB)/sadms-$(VERSION)/sadms.png" >> $(MENUFOLDER)/sadms-users.desktop
	echo "Name=Sadms-User" >> $(MENUFOLDER)/sadms-users.desktop
	echo "Name[en]=Sadms-Users" >> $(MENUFOLDER)/sadms-users.desktop
	echo "Name[fr]=Sadms-Utilisateurs" >> $(MENUFOLDER)/sadms-users.desktop
	echo "GenericName=Sadms-Users" >> $(MENUFOLDER)/sadms-users.desktop
	echo "GenericName[en]=Sadms-Users" >> $(MENUFOLDER)/sadms-users.desktop
	echo "GenericName[fr]=Sadms-Utilisateurs" >> $(MENUFOLDER)/sadms-users.desktop
	echo "Comment=Sadms-Users" >> $(MENUFOLDER)/sadms-users.desktop
	echo "Comment[en]=Sadms-Users" >> $(MENUFOLDER)/sadms-users.desktop
	echo "Comment[fr]=Sadms-Utilisateurs" >> $(MENUFOLDER)/sadms-users.desktop
	echo "[Desktop Entry]" > $(MENUFOLDER)/sadms-fsacls.desktop
	echo "Encoding=UTF-8" >> $(MENUFOLDER)/sadms-fsacls.desktop
	echo "Type=Application" >> $(MENUFOLDER)/sadms-fsacls.desktop
	echo "Categories=Application;System;" >> $(MENUFOLDER)/sadms-fsacls.desktop
	echo "Exec=$(SU)$(WHEREBIN)/fsacls" >> $(MENUFOLDER)/sadms-fsacls.desktop
	echo "Icon=$(WHERELIB)/sadms-$(VERSION)/sadms.png" >> $(MENUFOLDER)/sadms-fsacls.desktop
	echo "Name=Sadms-ACLs" >> $(MENUFOLDER)/sadms-fsacls.desktop
	echo "Name[en]=Sadms-ACLs" >> $(MENUFOLDER)/sadms-fsacls.desktop
	echo "Name[fr]=Sadms-ACLs" >> $(MENUFOLDER)/sadms-fsacls.desktop
	echo "GenericName=Sadms-ACLs" >> $(MENUFOLDER)/sadms-fsacls.desktop
	echo "GenericName[en]=Sadms-ACLs" >> $(MENUFOLDER)/sadms-fsacls.desktop
	echo "GenericName[fr]=Sadms-ACLs" >> $(MENUFOLDER)/sadms-fsacls.desktop
	echo "Comment=Sadms-ACLs" >> $(MENUFOLDER)/sadms-fsacls.desktop
	echo "Comment[en]=Sadms-ACLs" >> $(MENUFOLDER)/sadms-fsacls.desktop
	echo "Comment[fr]=Sadms-ACLs" >> $(MENUFOLDER)/sadms-fsacls.desktop

uninstallmenu:
	-rm $(MENUFOLDER)/sadms.desktop
	-rm $(MENUFOLDER)/sadms-globs.desktop
	-rm $(MENUFOLDER)/sadms-shares.desktop
	-rm $(MENUFOLDER)/sadms-share.desktop
	-rm $(MENUFOLDER)/sadms-users.desktop
	-rm $(MENUFOLDER)/sadms-fsacls.desktop
	
ifeq ($(DISTRIBUTIONFAMILY),REDHAT)
install: uninstall chkfileattr preinstall copyfiles installshortcuts installmenu

uninstall: uninstallshortcuts cleanfiles
endif
ifeq ($(DISTRIBUTIONFAMILY),DEBIAN)
install: uninstall chkfileattr preinstall copyfiles installshortcuts installdoc installmenu

uninstall: uninstallshortcuts cleanfiles uninstalldoc uninstallmenu
endif
	
preinstall:
	if [ ! -d $(BASE) ];then mkdir -p $(BASE); fi
	if [ ! -d $(BIN) ];then mkdir -p $(BIN); fi
	if [ ! -d $(LIB) ];then mkdir -p $(LIB); fi
	if [ ! -d $(FOLDER) ];then mkdir -p $(FOLDER); fi
	if [ ! -d $(VARFOLDER) ];then mkdir -p $(VARFOLDER); fi
	if [ ! -d $(DOCFOLDER) ];then mkdir -p $(DOCFOLDER); fi
	if [ ! -d $(MENUFOLDER) ];then mkdir -p $(MENUFOLDER); fi

installdoc: 
	cp AUTHORS $(DOCFOLDER)
	cp CHANGELOG $(DOCFOLDER)
	cp COPYING $(DOCFOLDER)
	cp NEWS $(DOCFOLDER)
	cp README $(DOCFOLDER)
	cp -R htmldocs/* $(DOCFOLDER)
	
uninstalldoc: 
	rm -Rf $(DOCFOLDER)

clean:
	
cleansources:
	find . -name "*~" -exec rm {} \;
	find . -name "*bak" -exec rm {} \;
	find . -name "*.gladep" -exec rm {} \;
	
chkfileformat:
	find . -name "*.sh" -exec $(dos2unix) {} \;
	find . -name "*.py" -exec $(dos2unix) {} \;
	
chkfileown:
	#chown -R root.root ./*

chkfileattr:
	chmod -R u=rwX,g=rwX,o=rX ./*
	find . -name "*.sh" -exec chmod ugo+x {} \;
	find . -name "*.py" -exec chmod ugo+x {} \;

stamp:
	echo "$(VERSION)" > bin/version
	echo "(build `date '+%Y%m%d-%H%M'`)" >> bin/version

predist: stamp chkfileformat chkfileown chkfileattr cleansources
	for l in _include.sh _include-distribution.sh _include-defaults.sh _check-samba.sh lsb_release.sh; do cp ./bin/$${l} ./bin/pre/; done
	echo "ready to distribute"
		
dist: predist
	tar cvzf sadms-$(VERSION).tar.gz -C .. sadms-$(VERSION)/bin \
		sadms-$(VERSION)/htmldocs \
		sadms-$(VERSION)/Makefile \
		sadms-$(VERSION)/AUTHORS \
		sadms-$(VERSION)/COPYING \
		sadms-$(VERSION)/README \
		sadms-$(VERSION)/CHANGELOG \
		sadms-$(VERSION)/sadms.pot \
		sadms-$(VERSION)/sadms-en_US.po \
		sadms-$(VERSION)/sadms-fr_FR.po \
		sadms-$(VERSION)/sadms-ru_RU.po \
		sadms-$(VERSION)/NEWS \
		sadms-$(VERSION)/NEWS \
		sadms-$(VERSION)/NEWS \
		sadms-$(VERSION)/Makefile-fsacls \
		sadms-$(VERSION)/Makefile-rh \
		sadms-$(VERSION)/Makefile-fc \
		sadms-$(VERSION)/Makefile-mdk \
		sadms-$(VERSION)/Makefile-debian \
		sadms-$(VERSION)/Makefile-ubu \
		sadms-$(VERSION)/Makefile-suse \
		sadms-$(VERSION)/sadms-fc.spec \
		sadms-$(VERSION)/sadms-mdk.spec \
		sadms-$(VERSION)/sadms-suse.spec \
		sadms-$(VERSION)/sadms-deb.control \
		sadms-$(VERSION)/sadms-deb.rules \
		sadms-$(VERSION)/sadms-deb.changelog
	
localizeinit:
	intltool-extract --type=gettext/glade bin/sadms.glade
	xgettext --language=Python --keyword=_ --keyword=N_ --output=sadms.pot bin/sadms.py bin/sadms.glade.h
	msginit --input=sadms.pot --locale=en_US --output=sadms-en_US.po
	msginit --input=sadms.pot --locale=fr_FR --output=sadms-fr_FR.po
	msginit --input=sadms.pot --locale=ru_RU --output=sadms-ru_RU.po
	mkdir -p bin/en_US/LC_MESSAGES
	mkdir -p bin/fr_FR/LC_MESSAGES
	mkdir -p bin/ru_RU/LC_MESSAGES

localize:
	msgfmt --output-file=bin/en_US/LC_MESSAGES/sadms.mo sadms-en_US.po
	msgfmt --output-file=bin/fr_FR/LC_MESSAGES/sadms.mo sadms-fr_FR.po
	msgfmt --output-file=bin/ru_RU/LC_MESSAGES/sadms.mo sadms-ru_RU.po

update-po:
	intltool-extract --type=gettext/glade bin/sadms.glade
	xgettext --language=Python --keyword=_ --keyword=N_ --output=sadms.pot bin/sadms.py bin/sadms.glade.h
	for i in en_US fr_FR ru_RU; do \
		msgmerge sadms-$$i.po sadms.pot > sadms-$$i.po.tmp; \
		if [ $$? -eq 0 ]; then \
			mv sadms-$$i.po.tmp sadms-$$i.po; \
		else \
			rm -f sadms-$$i.po.tmp; \
		fi; \
	done

.PHONY: default showconfig \
	cleanfiles copyfiles uninstallshortcuts installshortcuts uninstall preinstall install \
	cleansources chkfileformat chkfileown chkfileattr stamp predist predist \
	dist \
	localize localizeinit
