mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-01-31 18:59:33 +00:00
808eae7a4e
git-svn-id: https://svn.fhem.de/fhem/trunk@1573 2b470e98-0d58-463d-a4d8-8e2adae1ed80
201 lines
5.7 KiB
Makefile
201 lines
5.7 KiB
Makefile
BINDIR=/usr/bin
|
|
MODDIR=/usr/share/fhem
|
|
VARDIR=/var/log/fhem
|
|
DOCDIR=/usr/share/doc/fhem
|
|
MANDIR=/usr/share/man/man1
|
|
ETCDIR=/etc
|
|
|
|
# Used for .deb package creation
|
|
RBINDIR=$(ROOT)$(BINDIR)
|
|
RMODDIR=$(ROOT)$(MODDIR)
|
|
RVARDIR=$(ROOT)$(VARDIR)
|
|
RDOCDIR=$(ROOT)$(DOCDIR)
|
|
RMANDIR=$(ROOT)$(MANDIR)
|
|
RETCDIR=$(ROOT)$(ETCDIR)
|
|
|
|
# Destination Directories
|
|
DEST=$(RETCDIR) $(RBINDIR) $(RDOCDIR) $(RMODDIR) $(RMANDIR) $(RVARDIR)
|
|
|
|
VERS=5.2
|
|
DATE=2011-12-31
|
|
DESTDIR=fhem-$(VERS)
|
|
|
|
all:
|
|
@echo "fhem $(VERS) - $(DATE)"
|
|
@echo
|
|
@echo "Use 'make <target>', where <target> is"
|
|
@echo " install - to install base files for fhem"
|
|
@echo " install-pgm2 - to install base files and webgui pgm2 for fhem"
|
|
@echo " dist - to create a compressed archivfile of fhem"
|
|
@echo " deb - to create a .deb file of fhem"
|
|
@echo " fb7390 - to create an imagefile for AVM Fritz!Box 7390"
|
|
@echo " fb7270 - to create an imagefile for AVM Fritz!Box 7270"
|
|
@echo " backup - to backup current installation of fhem"
|
|
@echo " uninstall - to uninstall an existing fhem installation (with backup)"
|
|
@echo
|
|
@echo "Examples:"
|
|
@echo " make install-pgm2"
|
|
@echo " make deb"
|
|
@echo
|
|
@echo "Check Makefile for default installation paths!"
|
|
@echo
|
|
|
|
prepare:
|
|
@echo "Preparing installation for fhem..."
|
|
@echo "- create directories"
|
|
@-$(foreach DIR,$(DEST), if [ ! -e $(DIR) ]; then mkdir -p $(DIR); fi; )
|
|
@echo "- fix permissions"
|
|
@find ./FHEM -type f -print | xargs chmod 644
|
|
@find ./docs -type f -print | xargs chmod 644
|
|
@find ./examples -type f -print | xargs chmod 644
|
|
@echo "- modify examples"
|
|
@rm -rf examples_changed
|
|
@cp -r examples examples_changed
|
|
@perl -pi -e 's,modpath \.,modpath $(MODDIR),' examples_changed/[a-z]*
|
|
@perl -pi -e 's,([^h]) /tmp,$$1 $(VARDIR),' examples_changed/[a-z]*
|
|
@-if [ -e $(RETCDIR)/fhem.cfg ]; then \
|
|
echo "- move existing configuration to fhem.cfg.`date "+%Y-%m-%d_%H:%M:%S"`"; \
|
|
mv $(RETCDIR)/fhem.cfg $(RETCDIR)/fhem.cfg.`date "+%Y-%m-%d_%H:%M:%S"`; fi;
|
|
@echo
|
|
|
|
install:prepare install-base install-note
|
|
|
|
install-pgm2:prepare install-base pgm2 install-note
|
|
|
|
install-base:
|
|
@echo "Install base files of fhem..."
|
|
cp examples_changed/sample_fhem $(RETCDIR)/fhem.cfg
|
|
cp fhem.pl $(RBINDIR)
|
|
cp -r FHEM $(RMODDIR)
|
|
cp -rp contrib $(RMODDIR)
|
|
cp -rp docs/* $(RDOCDIR)
|
|
cp docs/fhem.man $(RMANDIR)/fhem.pl.1
|
|
gzip -f -9 $(RMANDIR)/fhem.pl.1
|
|
|
|
install-note:
|
|
@echo
|
|
@echo "Housekeeping..."
|
|
@rm -rf examples_changed
|
|
@echo "- remove .svn stuff"
|
|
find $(RMODDIR) -name .svn -print | xargs rm -rf
|
|
find $(RDOCDIR) -name .svn -print | xargs rm -rf
|
|
@echo
|
|
@echo "Installation of fhem completed!"
|
|
@echo
|
|
@echo "To start fhem use"
|
|
@echo "<perl $(BINDIR)/fhem.pl $(ETCDIR)/fhem.cfg>"
|
|
@echo
|
|
|
|
backup:
|
|
@echo
|
|
@echo "Backup current installation of fhem to .backup directory.."
|
|
@-if [ ! -e .backup ]; then mkdir .backup; fi;
|
|
@tar czf .backup/fhem-backup_`date +%y%m%d%H%M`.tar.gz \
|
|
$(RETCDIR)/fhem* $(RBINDIR)/fhem* $(RDOCDIR) $(RMODDIR) $(RMANDIR)/fhem* $(RVARDIR)
|
|
|
|
uninstall:backup
|
|
@echo
|
|
@echo "Remove fhem installation..."
|
|
rm -rf $(RETCDIR)/fhem.cfg
|
|
rm -rf $(RBINDIR)/fhem.pl
|
|
rm -rf $(RDOCDIR)
|
|
rm -rf $(RMODDIR)
|
|
rm -rf $(RMANDIR)/fhem.pl.*
|
|
rm -rf $(RVARDIR)
|
|
@echo done
|
|
@echo
|
|
|
|
pgm2:
|
|
@echo
|
|
@echo "Install files of fhem webfrontend pgm2..."
|
|
@-if [ ! -e $(RMODDIR)/www/pgm2 ]; then mkdir -p $(RMODDIR)/www/pgm2; fi;
|
|
@echo "- fix permissions"
|
|
@find ./webfrontend/pgm2/* -type f -print | xargs chmod 644
|
|
cp -r webfrontend/pgm2/*.pm $(RMODDIR)/FHEM
|
|
cp -r webfrontend/pgm2/*?[!pm] $(RMODDIR)/www/pgm2
|
|
cp docs/commandref.html docs/faq.html docs/HOWTO.html $(RMODDIR)/www/pgm2
|
|
cp docs/*.png docs/*.jpg $(RMODDIR)/www/pgm2
|
|
cp examples_changed/sample_pgm2 $(RETCDIR)/fhem.cfg
|
|
|
|
dist:
|
|
@echo "fhem $(VERS) - $(DATE)"
|
|
@echo
|
|
@echo "Make distribution..."
|
|
@echo "- copy files"
|
|
@mkdir .f
|
|
@cp -r CHANGED FHEM HISTORY Makefile README.SVN\
|
|
TODO contrib docs examples fhem.pl webfrontend .f
|
|
@echo
|
|
@echo "Housekeeping..."
|
|
@echo "- remove misc developing stuff"
|
|
@find .f -name .svn -print | xargs rm -rf
|
|
@find .f -name \*.orig -print | xargs rm -f
|
|
@find .f -name .#\* -print | xargs rm -f
|
|
@find .f -type f -print | grep -v Makefile |\
|
|
xargs perl -pi -e 's/=VERS=/$(VERS)/g;s/=DATE=/$(DATE)/g'
|
|
@mv .f $(DESTDIR)
|
|
@echo
|
|
@echo "Distribution..."
|
|
@echo "- create archiv"
|
|
@tar cf - $(DESTDIR) | gzip > $(DESTDIR).tar.gz
|
|
@echo "- copy main documentation files"
|
|
@mv $(DESTDIR)/docs/*.html .
|
|
@echo "- Housekeeping"
|
|
@rm -rf $(DESTDIR)
|
|
@echo
|
|
@echo "Done. Provided files: $(DESTDIR).tar.gz *.html"
|
|
@echo
|
|
|
|
dist-clean:
|
|
@echo
|
|
@echo "Housekeeping..."
|
|
@echo "- remove distribution files"
|
|
@rm -rf *.html $(DESTDIR).tar.gz
|
|
@echo done
|
|
@echo
|
|
|
|
deb:
|
|
@echo
|
|
@echo "Make debian package..."
|
|
@echo $(PWD)
|
|
@rm -rf .f
|
|
@echo
|
|
make ROOT=`pwd`/.f install
|
|
@echo
|
|
@echo "- copy files"
|
|
@cp -r contrib/DEBIAN .f
|
|
@echo "- housekeeping"
|
|
@rm -rf .f/$(MODDIR)/contrib/FB7*/var
|
|
@rm -rf .f/$(MODDIR)/contrib/FB7*/*.image
|
|
@rm -rf .f/$(MODDIR)/contrib/FB7*/*.zip
|
|
@find .f -name .svn -print | xargs rm -rf
|
|
@find .f -name \*.orig -print | xargs rm -f
|
|
@find .f -name .#\* -print | xargs rm -f
|
|
@echo "- modify fhem version and date"
|
|
@find .f -type f -print | grep -v Makefile |\
|
|
xargs perl -pi -e 's/=VERS=/$(VERS)/g;s/=DATE=/$(DATE)/g'
|
|
@echo "- fix permissions"
|
|
@find .f -type f | xargs chmod 644
|
|
@find .f -type d | xargs chmod 755
|
|
@chmod 755 `cat contrib/executables`
|
|
@gzip -9 .f/$(DOCDIR)/changelog
|
|
@echo "- fix ownership"
|
|
@chown -R root:root .f
|
|
@echo "- housekeeping"
|
|
@mv .f $(DESTDIR)
|
|
@echo
|
|
@echo "Build package..."
|
|
@dpkg-deb --build $(DESTDIR)
|
|
@echo
|
|
@echo "Housekeeping..."
|
|
@rm -rf $(DESTDIR)
|
|
@echo
|
|
@echo "Done. Provided file: $(DESTDIR).deb"
|
|
@echo
|
|
|
|
fb7390:
|
|
cd contrib/FB7390 && ./makeimage $(DESTDIR)
|
|
|
|
fb7270:
|
|
cd contrib/FB7270 && ./makeimage $(DESTDIR)
|