# ------------------------------------------------------------ # Dateiname: $Source: /ma/miwa/CvsRepository/mjm/mPlan/etc/mPlan.make,v $ # Version: $Revision: 1.19 $ # Datum geaendert: $Date: 2006/05/08 15:38:28 $ # Autor: $Author: miwa $ # ------------------------------------------------------------ # # Makefile fur mPlan # # Annahmen: # - Das Makefile wird in einer Spielwiese ("build") aufgerufen # - Parallel zu "build" findet sich das Sourcen-Verzeichnis "source" # - Parallel zu "build" findet sich das Ergebnis-Verzeichnis "mTools" .SUFFIXES: .class .java #.SUFFIXES: .class .stmp .dir .cf .tar TOOL_PATH = /aa/mjm/tools/Development FIND_OPT = "! -name tmp ! -name CVS" JAR = /opt/j2sdk1.4/bin/jar #MPLAN = Aufgabe Mitarbeiter MPlan #RESOURCE = Fehler IResource ResourceFactory #RESOURCE_IMPL = BasisFehler InstanzenZaehler Konfiguration Resource Trace #JAVA_DIRS = java.dir Resource/java.dir Resource/impl/java.dir #TARS = mplan resource #A_PATH = dummy #CLASSES = dummy1 #ORIG_PATH = /aa/mjm/mPlan/bin CWD = /aa/WEU/mPlan/build #LIBS = #----------------------------------------------------------------- # Hauptziele: # # - delta : kopiert in den Zielbaum nur neue Elemente # - inkrementell: "normales" make # - all : erst alles löschen, dann "normales" make # #----------------------------------------------------------------- inkrementell: pre build finish # build ist fertig delta: delete_mTools inkrementell # inkrementeller build # Nur ein Delta im Verzeichnis "mTools" all: clean_build delta # kompletter build fertig #----------------------------------------------------------------- # Löschschritte: #----------------------------------------------------------------- delete_mTools: -cd ..; rm -r mTools clean_build: -rm -r * 2>/dev/null #----------------------------------------------------------------- # schaffe Voraussetzungen #----------------------------------------------------------------- pre: ../mTools src/makefile ../mTools: cd ..; mkdir mTools cd ..; mkdir mTools/doc cd ..; mkdir mTools/lib cd ..; mkdir mTools/bin src/makefile: src mPlan.pre mPlanSrc.post #--------- # src/makefile #--------- export FIND_OPT=$(FIND_OPT); cd src; $(TOOL_PATH)/mGenMake java $(CWD)/mPlan.pre $(CWD)/mPlanSrc.post src: #--------- # src #--------- mkdir -p src -export FIND_OPT=$(FIND_OPT); $(TOOL_PATH)/mInitTree $(CWD)/../source/mjm/mPlan/src $(CWD)/src 2>mInitTree.syserr bin: #--------- # bin #--------- mkdir -p bin -export FIND_OPT=$(FIND_OPT); $(TOOL_PATH)/mInitTree -nl $(CWD)/../source/mjm/mPlan/src $(CWD)/bin 2>mInitTree.syserr mPlan.pre: cp ../source/mjm/mPlan/etc/mPlan.pre . mPlan.post: cp ../source/mjm/mPlan/etc/mPlan.post . mPlanSrc.post: cp ../source/mjm/mPlan/etc/mPlanSrc.post . #----------------------------------------------------------------- # eigentlicher BUILD #----------------------------------------------------------------- build: mPlan bin_make mPlan.jar bin_make: bin/makefile #------------ # bin_make #------------ export CWD=$(CWD); cd bin; $(TOOL_PATH)/mMake bin/makefile: bin mPlan.pre mPlan.post src_make #---------------- # bin/makefile #---------------- export FIND_OPT=$(FIND_OPT); cd bin; $(TOOL_PATH)/mGenMake java $(CWD)/mPlan.pre $(CWD)/mPlan.post src_make: #------------ # src_make #------------ cd src; $(TOOL_PATH)/mMake mPlan.jar: mPlan.stmp #------------ # mPlan.jar #------------ @if [-f mPlan.jar]; then echo "rm mPlan.jar"; rm mPlan.jar; fi cd bin; $(JAR) cvf ../mPlan.jar * #java: $(JAVA_DIRS) # #bash -c "for dir in '$(JAVA_DIRS)'; do cd ../source/mjm/mPlan/src/$(dir); mGenMake java ../source/mjm/mPlan/etc/mPlan.pre ../source/mjm/mPlan/etc/mPlan.post; make ergebnis.tar; done;" # #$(JAVA_DIRS): # cd ../source/mjm/mPlan/src/$(@D); mGenMake java /aa/mjm/mPlan/etc/mPlan.pre /aa/mjm/mPlan/etc/mPlan.post; make ergebnis.tar BIN_PATH=$(CWD)/src/$(@D); # #java.stmp: $(TARS:=.tar) # echo "TODO: extrakt tar $?" # touch $@ # #mplan.cf: # cd $(ORIG_PATH); export PATH="$(TOOL_PATH):$(PATH)";mGenMake class mplan.tar mPlan.make; make mplan.tar mPlan: ln -s /aa/mjm/mPlan/etc/mPlan . #----------------------------------------------------------------- # Abschlussarbeiten #----------------------------------------------------------------- finish: cp mPlan.jar ../mTools/lib cp mPlan ../mTools/bin # Wir brauchen 3 Teilbäume: # - Hier checken wir aus # - Hier kommen die Zwischenergebnisse (kompilate) # - Hier ist das zu packende Endergebnis (evtl. inkrementell) # -- inkrementell löscht endergebnisse zuvor # -- all löscht Zwischenergebnisse zuvor