2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2024-12-22 09:41:51 +00:00
fhem-mirror/fhem/Makefile
rudolfkoenig a996589f95 Makefile: add sudo to allow a non-root build
git-svn-id: https://svn.fhem.de/fhem/trunk@28448 2b470e98-0d58-463d-a4d8-8e2adae1ed80
2024-01-31 14:55:53 +00:00

154 lines
4.9 KiB
Makefile

# $Id$
VERS=6.3
DATE=2024-01-28
# used for nightly build
DATEN=$(shell date +"%Y-%m-%d")
VERSN=$(VERS).$(shell svn info | grep 'Revision' | awk '{ print $$2; }')
RELATIVE_PATH=YES
BINDIR=/opt/fhem
MODDIR=$(BINDIR)
VARDIR=$(BINDIR)/log
MANDIR=$(BINDIR)/docs
ETCDIR=$(BINDIR)
DEMODIR=$(BINDIR)
# Used for .deb package creation
RBINDIR=$(ROOT)$(BINDIR)
RMODDIR=$(ROOT)$(MODDIR)
RVARDIR=$(ROOT)$(VARDIR)
RMANDIR=$(ROOT)$(MANDIR)
RETCDIR=$(ROOT)$(ETCDIR)
RDEMODIR=$(ROOT)$(DEMODIR)
# Destination Directories
DEST=$(RETCDIR) $(RBINDIR) $(RMODDIR) $(RMANDIR) $(RVARDIR) $(RDEMODIR)
DESTDIR=fhem-$(VERS)
all:
@echo "Use 'make <target>', where <target> is"
@echo " install - to install fhem"
@echo " dist - to create a .tar.gz and a .zip file"
@echo " deb - to create a .deb file"
@echo " synology - to create an spk file"
@echo " fb7390 - to create an AVM Fritz!Box 7390 imagefile"
@echo " fb7270 - to create a zip file for the AVM Fritz!Box 7270"
@echo " backup - to backup current installation of fhem"
@echo " uninstall - to uninstall fhem (with backup)"
@echo "Check Makefile for default installation paths!"
install:
@echo "- creating directories"
@-$(foreach DIR,$(DEST), if [ ! -e $(DIR) ]; then mkdir -p $(DIR); fi; )
@echo "- fixing permissions in fhem.cfg"
perl contrib/commandref_join.pl
@find FHEM lib configDB.pm MAINTAINER.txt docs www contrib \
-type f -print | xargs chmod 644
@cp fhem.cfg fhem.cfg.install
@-if [ "$(RELATIVE_PATH)" != YES ]; then\
perl -pi -e 's,modpath \.,modpath $(MODDIR),' fhem.cfg.install; \
perl -pi -e 's,([^h]) \./log,$$1 $(VARDIR),' fhem.cfg.install; \
fi;
@-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 "- copying files"
@cp fhem.cfg.install $(RETCDIR)/fhem.cfg
@rm fhem.cfg.install
@cp fhem.pl $(RBINDIR)
@cp -rp FHEM lib docs www contrib configDB.pm $(RMODDIR)
@cp -rp README_DEMO.txt demolog fhem.cfg.demo $(RDEMODIR)
@cp docs/fhem.man $(RMANDIR)/fhem.pl.1
@gzip -f -9 $(RMANDIR)/fhem.pl.1
@echo "- cleanup: removing .svn leftovers"
@find $(RMODDIR) -name .svn -print | xargs rm -rf
@find $(RMODDIR) -name svn-commit\* -print | xargs rm -rf
@echo
@echo "Installation of fhem completed!"
@echo
@echo "Start fhem with"
@echo " perl $(BINDIR)/fhem.pl $(ETCDIR)/fhem.cfg"
@echo
dist:
mkdir .f
cp -r fhem.pl fhem.cfg CHANGED HISTORY Makefile README.SVN\
MAINTAINER.txt demolog fhem.cfg.demo README_DEMO.txt\
FHEM lib configDB.pm contrib docs www .f
mkdir .f/log
touch .f/log/empty_file.txt
(cd .f; perl contrib/commandref_join.pl)
find .f -name .svn -print | xargs rm -rf
find .f -name svn-commit\* -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 | grep -v SWAP |\
xargs perl -pi -e 's/=VERS=/$(VERS)/g;s/=DATE=/$(DATE)/g'
@echo " deb-nightly - to create a nightly .deb file from current svn"
rm -rf .f/www/SVGcache
mv .f $(DESTDIR)
tar cf - $(DESTDIR) | gzip -9 > $(DESTDIR).tar.gz
zip -r $(DESTDIR).zip $(DESTDIR)
rm -rf $(DESTDIR)
deb:
@echo $(PWD)
rm -rf .f
rm -rf $(DESTDIR)
make ROOT=`pwd`/.f install
cp MAINTAINER.txt .f/opt/fhem
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 |\
xargs perl -pi -e 's/=VERS=/$(VERSN)/g;s/=DATE=/$(DATEN)/g'
cp controls_fhem.txt .f/$(MODDIR)/FHEM/controls_fhem.txt
find .f -type f | xargs chmod 644
find .f -type d | xargs chmod 755
chmod 755 `cat contrib/executables`
sudo chown -R root:root .f
mv .f $(DESTDIR)
dpkg-deb --build $(DESTDIR)
sudo rm -rf $(DESTDIR)
backup:
@echo
@echo "Saving fhem to the .backup directory in the current 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 $(RMODDIR)
rm -rf $(RMANDIR)/fhem.pl.*
rm -rf $(RVARDIR)
@echo done
@echo
fb7390:
cd contrib/FB7390 && sh ./makeimage $(DESTDIR)
fb7270:
cd contrib/FB7270 && ./makeimage $(DESTDIR)
synology:
rm -f contrib/Synology/package.tgz
rm -f $(DESTDIR).spk
sed -ie 's/\.\/log/\/var\/log/g' fhem.cfg
sed -ie 's/modpath \./modpath \/var\/packages\/FHEM\/target/g' fhem.cfg
sed -ie 's/version=".*"/version="$(DESTDIR)"/g' contrib/Synology/INFO
tar -pczf contrib/Synology/package.tgz --exclude="contrib/Synology" *
cd contrib/Synology && tar -vcf ../../$(DESTDIR).spk *