Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Automake, Target mit mehreren Abhaengigkeiten

  1. #1
    Registrierter Benutzer
    Registriert seit
    23.11.2004
    Ort
    Hamburg
    Beiträge
    279

    Automake, Target mit mehreren Abhaengigkeiten

    Moin, moin,

    ich versuche gerade in einem Makefile.am (Automarke) was zu schreiben um mit R Plots in PDF zu übersetzen. Das Problem ist, dass ich auf biegen und brechen die Abhängigkeit zu den Daten nicht reinbekomme.

    Bisher habe ich folgendes:

    SUFFIXES = .R .pdf

    .R:
    Mache R Script ausfuehrbar

    .R.pdf:
    Fuehre R Script aus ;-)

    Was muss ich machen, damit das PDF auch vom Datenfile abhängt?
    Sowas wie
    .R.pdf: DATENFILE
    Fuehre R Script aus
    Klappt nicht. Oder sowas wie
    .data.pdf:
    ...
    bringe ich auch nicht ans laufen.
    Hat irgendwer ne Idee?

    mfg,

    bienchen

  2. #2
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Das ist eher eine Bash als Automake frage.
    Das Zauberwort ist Variablen expandierung.
    Code:
    SCRIPT = echo
    
    all: info pdf
    
    info: *.R
    	@echo "ARRAY Inhalt:" $?
    	@echo "Zeiger auf Rule:" $@
    
    pdf: *.R
    	@echo "Start:"
    	@for i in $? ; do \
    		$(SCRIPT) $$i $${i/.R/}.$@ ; \
    	done
    Der Grund warum deine .SUFFIX Versuche nicht hinhauen liegt daran.
    Das diese Arbeitsweise ein interne Compiler Erweiterung erwartet z.B. C/C++ auf ein TARGET oder Programm.



    Siehe auch die Infopages "info make/Automatic Variables"
    Geändert von undefined (05-11-2011 um 18:16 Uhr)
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  3. #3
    Registrierter Benutzer
    Registriert seit
    23.11.2004
    Ort
    Hamburg
    Beiträge
    279
    Hallo zurueck,

    Das mit der Variablenexpansion ist mir schon bewusst. Das mit dem Suffix klappt zumindest fuer .R und .pdf. Und *.R als Dependance anzugeben, geht doch auch alle Files mit Endung R im Verzeichnes, nicht blos auf ein bestimmtes, oder? Ich möchte ja nicht jedes mal alle Plots neu erstellen, sondern lediglich jene, fuer welche sich auch etwas geändert hat.

    mfg,

    bienchen

  4. #4
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Du hast nicht verstanden was ich Dir in meinem Beitrag der letzten Zeile mitgeteilt habe.
    Nochmal:
    Es ist Notwendig das du Automake mitteilst:
    Das es sich um ein Ziel Target handelt (z.B. Programm Bibliothek Script Datenziel etc.). Ansonsten Ignoriert Automake deine Eingabe.

    1. Variante mit Datenangabe
    Code:
    ## Makefile.am
    
    AM_DEFAULT_SOURCE_EXT = .R
    
    pdfdir = @datadir@/projekt
    pdf_DATA = 1.pdf 2.pdf 3.pdf 4.pdf 5.pdf  6.pdf  7.pdf  8.pdf  9.pdf
    
    %.pdf: %.R
    	@echo "Generate " $@
    	@echo $< > $@

    2. Beispiel mit FAKE Targets und eigener Installations Routine in einer Multi Umgebung (weitere andere Targets)
    Code:
    ## Makefile.am
    
    AM_DEFAULT_SOURCE_EXT = .R
    
    noinst_SCRIPTS = 1.pdf 2.pdf 3.pdf 4.pdf 5.pdf  6.pdf  7.pdf  8.pdf  9.pdf
    
    %.pdf: %.R
    	@echo "Generate " $@
    	@echo $< > $@
    
    
    install:
    	@mkdir -p $(DESTDIR)/$(datadir)/projekt
    	@install -m 0644 $(noinst_SCRIPTS) $(DESTDIR)/$(datadir)/projekt
    
    uninstall:
    	@for i in $(noinst_SCRIPTS) ; do \
    		rm -fv $(DESTDIR)/$(datadir)/projekt/$$i; done
    Was deine Frage zu Änderungen erkennen betrifft siehe AM_SANITY_CHECK
    Geändert von undefined (06-11-2011 um 08:16 Uhr) Grund: Multible Umgebung
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  5. #5
    Registrierter Benutzer
    Registriert seit
    23.11.2004
    Ort
    Hamburg
    Beiträge
    279
    Aber bei
    %.pdf: %.R
    Regeln habe ich das Problem, dass das GNU-Extensions sind, bei welchen Automarke aussteigt.
    Weil dann könnte ich ja
    %.pdf: %.R %.data
    sagen, oder?

  6. #6
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Also Irgendwie kommt bei dir immer wieder was neues dazu
    Guckst Du hier und hier
    Geändert von undefined (06-11-2011 um 12:26 Uhr)
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  7. #7
    Registrierter Benutzer
    Registriert seit
    23.11.2004
    Ort
    Hamburg
    Beiträge
    279
    Also eigentlich steht das alles schon im ersten Post... aber zugegeben, da ich die Terminologie nicht drauf habe, ist es schwierig fuer mich mein Problem anständig zu kommunizieren.

    Haette ich hingegen die nötigen Begriffe schon vorher gekannt, hätte ich vmtl. gar kein Problem gehabt, da ich dann selber in der Doku hätte suchen können ;-)

    Vielen Dank fuer die Links an die richtigen Stellen der Doku, danach habe ich gestern den halben Tag gesucht. Wenn ich Zeit habe das fertig zu machen, poste ich die Lösung hier.

    mfg,

    bienchen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •