-include Makefile.config SHELL := /bin/bash OUTPATH ?= !_addons rsync ?= rsync -acv -e ssh logfile ?= nightbuild.log deps ?= rsync expect ifdef SVN_URL svn_url := $(SVN_URL) else svn_url := $(shell LC_ALL=C svn info | grep "Repository Root" | sed "s/.*: \(.*\)\/[^\/]*/\1/") endif ifdef SVN_BRANCH svn_path := branches/$(SVN_BRANCH) else svn_path := $(shell svn info | grep "^URL:" | sed "s/.*\/MLD\///") endif all: dep svn co $(svn_url)/MLD/$(svn_path) MLD cp Makefile.config MLD $(MAKE) -C MLD checkout_all force=true $(MAKE) -C MLD all $(MAKE) dependencys $(MAKE) docus rm -f nightbuild ln -fns MLD/$(OUTPATH) nightbuild $(rsync) MLD/$(OUTPATH)/* nightbuild@minidvblinux.de:download clean: rm -rf MLD rm -rf nightbuild rm -f $(logfile) $(logfile).old .PHONY: nightbuild nightbuild: test -e $(logfile) && mv -f $(logfile) $(logfile).old || true echo "all:" >> $(logfile) date >> $(logfile) rm -rf MLD >> $(logfile) . $$HOME/.profile; export PATH=$$PATH:/usr/sbin:/sbin; $(MAKE) all status_callback="make -C .. status" >> $(logfile) 2>&1 || true echo -e "\n\n--------------------------------------------------" >> $(logfile) echo "copy-svn:" >> $(logfile) date >> $(logfile) $(MAKE) copy-svn >> $(logfile) 2>&1 status: echo "$(modul) - $$(grep -n -m 1 -x $(modul) MLD/modules_list | cut -d ":" -f1)/$$(wc -l MLD/modules_list | cut -d " " -f1)" > MLD/$(OUTPATH)/$(DISTRI_VER)/status.txt sed "0,/live/{//d;}" MLD/broken_addons.lst 2>/dev/null > MLD/$(OUTPATH)/$(DISTRI_VER)/broken_addons.txt || true $(rsync) MLD/$(OUTPATH)/$(DISTRI_VER)/{status.txt,broken_addons.txt} nightbuild@minidvblinux.de:download/$(DISTRI_VER) > /dev/null copy: find MLD/$(OUTPATH)/* -maxdepth 1 -type d -exec touch "{}" \; $(rsync) MLD/$(OUTPATH)/* nightbuild@minidvblinux.de:download copy-svn: mkdir -p ~/backup $(rsync) nightbuild@minidvblinux.de:svn/repos-3 ~/backup/svn $(rsync) ~/backup/svn/repos-3 ~/backup/svn.$(($(date +%W|sed 's/^0//')%3+1)) dependencys: depfile="$$(ls -d MLD/$(OUTPATH)/*)/dependencys.txt"; \ rm -f $$depfile; \ while read modul; do \ if [ -e MLD/$$modul -a -e MLD/$$modul/INSTALL ]; then \ echo -en "$$modul\t" >> $$depfile; \ MLD/$$modul/INSTALL depend | while read d; do echo -n "$$d " >> $$depfile; done; \ echo >> $$depfile; \ fi; \ done < MLD/modules_list docus: docspath="$$(ls -d MLD/$(OUTPATH)/*)/docs"; \ while read modul; do \ modulname=`echo $$modul | tr "[:upper:]" "[:lower:]"`; \ if [ -d "MLD/$$modul/addon/usr/share/doc/$$modulname" ]; then \ mkdir -p $$docspath; \ cp -rf MLD/$$modul/addon/usr/share/doc/$$modulname $$docspath; \ fi; \ done < MLD/modules_list %: rm -rf MLD/$* if [ ! -e MLD ]; then \ svn co $(svn_url)/MLD/$(svn_path) MLD; \ cp Makefile.config MLD; \ $(MAKE) -C MLD checkout name=KERNEL; \ $(MAKE) -C MLD/KERNEL; \ fi $(MAKE) -C MLD checkout name=$* if [ -x MLD/$*/INSTALL ]; then \ for addon in `MLD/$*/INSTALL depend | sed "s/|/ /g"`; do \ $(MAKE) -C MLD checkout name=$$addon; \ done; \ fi $(MAKE) -C MLD/$* $(rsync) MLD/$(OUTPATH)/* nightbuild@minidvblinux.de:download color_red := \\033[1;31m color_reset := \\033[0;39m dep: if type -P dpkg >/dev/null; then \ for dep in $(deps); do \ if ! dpkg --get-selections | grep -q -e "^$$dep[^a-zA-Z0-9-]\+install"; then \ echo -e "Das für nightbuild benötigtes Ubuntu Paket $(color_red)$${dep}$(color_reset) fehlt. Sie können es durch folgende Eingabe installieren:"; \ echo -e "sudo apt-get install $$dep"; \ false; \ fi; \ done; \ fi