From 84952166f0e5c9e6124ed5339f6be5bf7a856ea7 Mon Sep 17 00:00:00 2001 From: mfr69bs <> Date: Sun, 18 Mar 2012 20:09:07 +0000 Subject: [PATCH] - change: Makefile: additional targets, moderate output (M.Fischer) - change: Housekeeping (M.Fischer) - modpath/FHEM: only contains modules - modpath/htdocs: includes all files from pgm2 now git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@1363 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- CHANGED | 5 + Makefile | 210 +++++++++++++++++++++++++-------- docs/commandref.html | 2 +- webfrontend/pgm2/01_FHEMWEB.pm | 2 +- 4 files changed, 166 insertions(+), 53 deletions(-) diff --git a/CHANGED b/CHANGED index c2ebb0367..b29d272f8 100644 --- a/CHANGED +++ b/CHANGED @@ -19,6 +19,11 @@ - feature: FHEMWEB console (== inform timer) - feature: remove dependency on Google::Weather, major rewrite (Boris) - feature: started experimental interface implementation (fhem API v2) (Boris) + - change: Makefile: additional targets, moderate output (M.Fischer) + - change: Housekeeping (M.Fischer) + - modpath/FHEM: only contains modules + - modpath/www/pgm2: includes all files from pgm2 now + - 2011-12-31 (5.2) - bugfix: applying smallscreen attributes to firefox/opera diff --git a/Makefile b/Makefile index 77f61ecd0..4a8764184 100644 --- a/Makefile +++ b/Makefile @@ -13,80 +13,188 @@ 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 Nothing to do for all. - @echo To install, check the Makefile, and then \'make install\' - @echo or \'make install-pgm2\' to install a web frontend too. + @echo "fhem $(VERS) - $(DATE)" + @echo + @echo "Use 'make ', where 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 -install:install-pgm2 +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-pgm2:install-base - cp -r webfrontend/pgm2/* $(RMODDIR)/FHEM - cp docs/commandref.html docs/faq.html docs/HOWTO.html $(RMODDIR)/FHEM - cp docs/*.png docs/*.jpg $(RMODDIR)/FHEM - cd examples_changed; for i in *; do cp -r $$i $(RMODDIR)/FHEM/example.$$i; done - cp examples_changed/sample_pgm2 $(RETCDIR)/fhem.cfg +install:prepare install-base install-note + +install-pgm2:prepare install-base pgm2 install-note install-base: - @echo After installation start fhem with - @echo perl $(BINDIR)/fhem.pl $(ETCDIR)/fhem.cfg - @echo - @echo - mkdir -p $(RBINDIR) $(RMODDIR) $(RVARDIR) - mkdir -p $(RDOCDIR) $(RETCDIR) $(RMANDIR) + @echo "Install base files of fhem..." + cp examples_changed/sample_fhem $(RETCDIR)/fhem.cfg cp fhem.pl $(RBINDIR) cp -r FHEM $(RMODDIR) - 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]* - -mv $(RETCDIR)/fhem.cfg $(RETCDIR)/fhem.cfg.`date "+%Y-%m-%d_%H:%M:%S"` - cp examples_changed/sample_fhem $(RETCDIR)/fhem.cfg 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 "" + @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 + cd examples_changed; for i in *; do cp -r $$i $(RMODDIR)/www/pgm2/example.$$i; done + cp examples_changed/sample_pgm2 $(RETCDIR)/fhem.cfg + dist: - @echo Version is $(VERS), Date is $(DATE) - mkdir .f - cp -r CHANGED FHEM HISTORY Makefile README.SVN\ + @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 - 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 |\ + @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) - tar cf - $(DESTDIR) | gzip > $(DESTDIR).tar.gz - mv $(DESTDIR)/docs/*.html . - rm -rf $(DESTDIR) + @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:" + @dir $(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 $(PWD) - rm -rf .f + @echo + @echo "Make debian package..." + @echo $(PWD) + @rm -rf .f + @echo make ROOT=`pwd`/.f install - cp -r contrib/DEBIAN .f - 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 - find .f -type f -print | grep -v Makefile |\ + @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' - find .f -type f | xargs chmod 644 - find .f -type d | xargs chmod 755 - chmod 755 `cat contrib/executables` - gzip -9 .f/$(DOCDIR)/changelog - chown -R root:root .f - mv .f $(DESTDIR) - dpkg-deb --build $(DESTDIR) - rm -rf $(DESTDIR) + @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:" + @dir $(DESTDIR).deb + @echo fb7390: cd contrib/FB7390 && ./makeimage $(DESTDIR) diff --git a/docs/commandref.html b/docs/commandref.html index 199b1c0aa..87f9463a0 100644 --- a/docs/commandref.html +++ b/docs/commandref.html @@ -7690,7 +7690,7 @@ AB600, Duewi, DomiaLite, COCO) and others.
  • fwmodpath
    Set the "modpath" for this intance of FHEMWEB. Used to search .gplot - files, pictures, etc. Default is the modpath/FHEM directory. + files, pictures, etc. Default is the modpath/www/pgm2 directory.

  • diff --git a/webfrontend/pgm2/01_FHEMWEB.pm b/webfrontend/pgm2/01_FHEMWEB.pm index 64df3b4fc..b9da17aae 100755 --- a/webfrontend/pgm2/01_FHEMWEB.pm +++ b/webfrontend/pgm2/01_FHEMWEB.pm @@ -336,7 +336,7 @@ FW_AnswerCall($) $FW_RET = ""; $FW_RETTYPE = "text/html; charset=$FW_encoding"; $FW_ME = "/" . AttrVal($FW_wname, "webname", "fhem"); - $FW_dir = AttrVal($FW_wname, "fwmodpath", "$attr{global}{modpath}/FHEM"); + $FW_dir = AttrVal($FW_wname, "fwmodpath", "$attr{global}{modpath}/www/pgm2"); $FW_ss = AttrVal($FW_wname, "smallscreen", 0); $FW_tp = AttrVal($FW_wname, "touchpad", $FW_ss);