"stable"-Releases koennen jetzt NICHT mehr erstellt werden - es war nicht wartbar

nun ist der Export wesentlich sauberer
This commit is contained in:
lars 2005-05-15 15:25:48 +00:00
parent 00e71d1085
commit 1914cfbe65

128
Makefile
View file

@ -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