From 1914cfbe651df55e52b244b2cb946ac915b90bf3 Mon Sep 17 00:00:00 2001 From: lars Date: Sun, 15 May 2005 15:25:48 +0000 Subject: [PATCH] "stable"-Releases koennen jetzt NICHT mehr erstellt werden - es war nicht wartbar nun ist der Export wesentlich sauberer --- Makefile | 128 ++++++++++++++++++++++++++----------------------------- 1 file changed, 60 insertions(+), 68 deletions(-) diff --git a/Makefile b/Makefile index 856828b..1619bb6 100644 --- a/Makefile +++ b/Makefile @@ -1,64 +1,72 @@ ########## Variablendefinitionen ########### # Revision-Variablen -STABLE_REVISION := 143 -AKTUELLE_REVISION := $(shell svn -R info| grep ^Revision| cut -f2 -d " " | sort | tail -1) -REVISIONS_SUFFIX = -r$(ARBEITS_REVISION) -REVISIONS_DATUM = $(shell svn log -r $(ARBEITS_REVISION) -q | grep -v "^---" | cut -d "|" -f 3) +REVISIONS_NR := $(shell svn -R info| grep ^Revision| cut -f2 -d " " | sort | tail -1) +REVISIONS_SUFFIX = _r$(REVISIONS_NR) +REVISIONS_DATUM = $(shell svn log -r $(REVISIONS_NR) -q | grep -v "^---" | cut -d "|" -f 3) +REPOSITORY_URL = https://svn.systemausfall.org/svn/cryptocd/trunk # Verzeichnisse ROOT_DIR := $(shell pwd) -EXPORT_DIR = $(ROOT_DIR)/export + +# hierhin sollten lokale Verzeichnisse verlinkt werden EXT_DIR = $(ROOT_DIR)/extern EXT_DIR_PROGS = $(EXT_DIR)/programme EXT_DIR_CHAOSRADIO = $(EXT_DIR)/chaosradio -# der Name der export-Archive + +# Ablage der erstellten zip/iso-Dateien +EXPORT_DIR = $(ROOT_DIR)/export +# so beginnt das export-Verzeichnis EXPORT_PREFIX := cryptocd +# wird an das export-Verzeichnis angehaengt - nur fuer "release" und "release_all" wichtig +EXPORT_FILE_SUFFIX := undefiniert +EXPORT_FILE = $(EXPORT_DIR)/$(EXPORT_PREFIX)$(REVISIONS_SUFFIX)$(EXPORT_FILE_SUFFIX) + +# Zwischenlagerung TMP_ROOT = $(ROOT_DIR)/tmp CCD_BUILD_DIR = $(TMP_ROOT)/$(EXPORT_PREFIX)$(REVISIONS_SUFFIX) -EXPORT_FILE = $(EXPORT_DIR)/$(EXPORT_PREFIX)$(REVISIONS_SUFFIX)$(EXPORT_FILE_SUFFIX) + +# Verzeichnisse, die vorhanden sein muessen ERROR_DIRS = $(TMP_ROOT) $(EXT_DIR) $(EXPORT_DIR) $(EXT_DIR_PROGS) +# Verzeichnisse, die vorhanden sein sollten WARNING_DIRS = $(EXT_DIR_CHAOSRADIO) # Aktionen -ERZEUGE_MIRROR = _scripts/erzeuge_export_mirror.sh $(MIRROR_QUELLE_DIR) $(CCD_BUILD_DIR) ERZEUGE_TAR = tar cjhf $(EXPORT_FILE).tar.bz2 -C $(dir $(CCD_BUILD_DIR)) $(notdir $(CCD_BUILD_DIR)) ERZEUGE_ZIP = cd $(dir $(CCD_BUILD_DIR)); zip -9qr $(EXPORT_FILE).zip $(notdir $(CCD_BUILD_DIR)) ERZEUGE_ISO = mkisofs $(ISO_OPTS) -o $(EXPORT_FILE).iso $(CCD_BUILD_DIR) 2>&1 | $(EINRUECKEN) # Sonstiges +# Optionen fuer mkisofs ISO_OPTS = -iso-level 3 -J -joliet-long -relaxed-filenames -f -r -V $(EXPORT_PREFIX)$(REVISIONS_SUFFIX) +# Ausgabe-Filter zum Einruecken EINRUECKEN = sed 's/^/\t/' - -# Voreinstellungen -ARBEITS_REVISION = $(AKTUELLE_REVISION) +# Voreinstellung - wird nur fuer "make website" ueberschrieben LINE_STATUS = offline -EXPORT_FILE_SUFFIX := undefiniert -# gilt nur fuer "release" und "release_all" ####### Variablen, die vererbt werden sollen ########### export CCD_BUILD_DIR -####### Allgemeine targets ########### +########### Allgemeine targets ########### -.PHONY : clean all documents check help website website-stable release release-stable source source-stable export-all cd-template release_all release_all-stable setze_releaseinfos hole_svn_export svn_erzeuge_links verlinke_programme verlinke_chaosradio cd-template +.PHONY : clean all documents check help website release release_big source export cd-template setze_releaseinfos verlinke_programme verlinke_chaosradio +# nur ein Alias - damit doku das default-target ist (das erste im Makefile) all: doku help: @echo "allgemeine Targets:" @echo " help - diese Uebersicht" @echo " doku - das Doku-Verzeichnis erneuern" - @echo " all - dasselbe wie 'doku'" @echo " clean - unnoetige Dateien loeschen" @echo " check - Pruefung der Links" @echo @echo "Export-Targets:" - @echo " source[-stable] - die lyx-Quellen und Bilder" - @echo " release[-stable] - alles ausser Chaosradio" - @echo " release_all[-stable] - mit Chaosradio-Dateien" - @echo " website[-stable] - fuer die Webseite: mit Programmen, ohne Chaosradio" - @echo " export-all - erstellt alle Export-Formen (auch stable)" + @echo " source - die lyx-Quellen und Bilder" + @echo " release - alles ausser Chaosradio" + @echo " release_big - mit Chaosradio-Dateien" + @echo " website - fuer die Webseite: mit Programmen, ohne Chaosradio" + @echo " export - erstellt alle Export-Formen" clean: @echo $(ICH) @@ -69,6 +77,7 @@ check: make -C doku linkchecker -r 3 --intern='!^mailto:' --extern-strict-all start.html +# pruefe, ob alle notwendigen/empfohlenen Verzeichnisse existieren verzeichnisstruktur: $(ERROR_DIRS) $(WARNING_DIRS) $(ERROR_DIRS): @@ -80,16 +89,6 @@ $(ERROR_DIRS): $(WARNING_DIRS): @[ ! -e "$@" ] && echo -e "directory ($@) does not exist - it is recommended\n\tyou could create a symlink or make this directory\n" -####### speziell fuer die stable-targets ########### - -%-stable: ARBEITS_REVISION := $(STABLE_REVISION) -%-stable: MIRROR_QUELLE_DIR = $(TMP_ROOT)/svn-$(EXPORT_PREFIX)$(REVISIONS_SUFFIX) -website: LINE_STATUS=online - -release-stable: release -release_all-stable: release_all -source-stable: source -website-stable: website ######## die Werkzeuge ######### @@ -98,43 +97,43 @@ cd-template: verzeichnisstruktur @cp --remove-destination -r cd-template $(CCD_BUILD_DIR) @rm -rf `find $(CCD_BUILD_DIR) -type d -name ".svn"` + doku: cd-template @echo "Aktualisiere das Doku-Verzeichnis ..." - # aufgrund einer Seltsamkeit im doku-Makefile, muss es zweimal aufgerufen werden, - # wenn der online- zum offline-Status geaendert wird (und umgekehrt) +# aufgrund einer Seltsamkeit im doku-Makefile, muss es zweimal aufgerufen werden, +# wenn der online- zum offline-Status geaendert wird (und umgekehrt) +# die Dateien werden erst beim zweiten Durchlauf gebaut @make -C documents $(LINE_STATUS) + @make -C documents $(LINE_STATUS) +# Kopieren der Dateien ins das Abbild-Verzeichnis @make -C documents install + setze_releaseinfos: cd-template - # ein nutzloses Relikt, oder nur der falsche Dateiname? - # @echo "Passe version.txt an ..." - # sed -i 's/REVISIONS_PLATZHALTER/$(ARBEITS_REVISION)/g; s/DATUMS_PLATZHALTER/$(REVISIONS_DATUM)/g' $(CCD_BUILD_DIR)/version.txt +# ein nutzloses Relikt, oder nur der falsche Dateiname? +# @echo "Passe version.txt an ..." +# sed -i 's/REVISIONS_PLATZHALTER/$(AKTUELLE_REVISION)/g; s/DATUMS_PLATZHALTER/$(REVISIONS_DATUM)/g' $(CCD_BUILD_DIR)/version.txt -hole_quell_daten: - @if [ ! -e "$(MIRROR_QUELLE_DIR)" ] ;\ - then mkdir -p $(shell dirname "$(MIRROR_QUELLE_DIR)") ;\ - echo "Exportiere die gewaehlte svn-Revision ($(ARBEITS_REVISION)) ..." ;\ - svn export -r $(ARBEITS_REVISION) . "$(MIRROR_QUELLE_DIR)" | $(EINRUECKEN) ;\ - else echo "Verwende existierende lokale svn-Kopie" ;\ - fi verlinke_programme: cd-template @echo "Erzeuge Links zu den Programmen ..." @ln -s "$(EXT_DIR_PROGS)" "$(CCD_BUILD_DIR)/programme" + verlinke_chaosradio: cd-template @echo "Erzeuge Links zu den ChaosRadio-Dateien ..." @if [ -e "$(EXT_DIR_CHAOSRADIO)" ]; \ - then ln -s "$(CCD_BUILD_DIR)/ausLese/chaosradio" "$(CCD_BUILD_DIR)/ausLese" ; \ - else echo "Warnung: keine ChaosRadio-Dateien gefunden ($(ROOT_DIR)/ausLese/chaosradio) - ignoriert" >&2 ; \ + then ln -s "$(EXT_DIR_CHAOSRADIO)" "$(CCD_BUILD_DIR)/ausLese/chaosradio" ; \ + else echo "keine ChaosRadio-Dateien gefunden ($(EXT_DIR_CHAOSRADIO))" >&2 ; \ + false ;\ fi ####### die Ausgabe-Formate ########### +website: LINE_STATUS=online website: EXPORT_FILE_SUFFIX := _website website: cd-template verlinke_programme @echo "Gruppen-Schreibrecht setzen (fuer eduforge) ..." - @# fuer die Zugriffsrechte auf dem eduforge-Server @chmod -R g+rw $(TMP_ROOT) @echo "Erzeuge Archiv der online-Dateien ..." @@ -142,18 +141,23 @@ website: cd-template verlinke_programme source: EXPORT_FILE_SUFFIX := _src -source: CCD_BUILD_DIR = $(MIRROR_QUELLE_DIR) -source: hole_quell_daten +source: CCD_BUILD_DIR := $(CCD_BUILD_DIR)$(EXPORT_FILE_SUFFIX) +source: + @if [ ! -e "$(CCD_BUILD_DIR)" ] ;\ + then echo "Exportiere die gewaehlte svn-Revision ($(REVISIONS_NR)) ..." ;\ + svn export -r $(REVISIONS_NR) "$(REPOSITORY_URL)" "$(CCD_BUILD_DIR)" | $(EINRUECKEN) ;\ + else echo "Verwende existierende lokale svn-Kopie" ;\ + fi @echo "Erzeuge source-Archiv ..." @$(ERZEUGE_TAR) release: EXPORT_FILE_SUFFIX := _small -release_all: EXPORT_FILE_SUFFIX := _all -release_all: verlinke_chaosradio verlinke_programme +release_big: EXPORT_FILE_SUFFIX := _all +release_big: verlinke_chaosradio -release release_all: doku verlinke_programme setze_releaseinfos +release release_big: doku verlinke_programme setze_releaseinfos @echo "Erzeuge zip-Archiv ..." @$(ERZEUGE_ZIP) @echo "Erzeuge iso-Image ..." @@ -161,27 +165,15 @@ release release_all: doku verlinke_programme setze_releaseinfos export-all: - @echo "Erstelle website ..." + @echo "Erstelle die Web-Seite ..." @make website - #make website-stable - # klappt nicht wegen des restriktiven diffs - - @echo "Erstelle aktuelles Quell-Paket ... " - @make source - - @echo "Erstelle stabiles Quell-Paket ..." - @make source-stable - - @echo "Erstelle kleine aktuelle Release-Pakete ..." + @echo "Erstelle kleine Release-Pakete ..." @make release - @echo "Erstelle kleine stabile Release-Pakete ..." - @make release-stable - - @echo "Erstelle grosse aktuelle Release-Pakete ..." + @echo "Erstelle grosse Release-Pakete ..." @make release_all - @echo "Erstelle grosse stabile Release-Pakete ..." - @make release_all-stable + @echo "Erstelle das Quell-Paket ... " + @make source