Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Makefiles

  1. #1
    Registrierter Benutzer
    Registriert seit
    28.08.2002
    Beiträge
    496

    Makefiles

    Hallo allerseits, ich habe ein Problem bei einem Makefile...
    Ich muss die Abhängigkeiten Dynamisch verändert in Abhängigkeit ob eine bestimmte Datei existiert oder nicht. Schematisch sieht mein Makefile so aus:
    Code:
    all: test
    
    test: test.o
        gcc beispiel.c test.o -o test
    
    test.o: test.c
        gcc -c test.c
    Nun ist es erforderlich, dass die Datei test.c gelöscht wird, aber test.o wurde vorher erstellt.
    Theoretisch funktioniert der gcc befehl nachwievor, bis auf die tatsache, dass make die datei test.c nicht findet und abbricht, anstatt einfach test.o zu verwenden.

    jetzt möchte ich am liebsten so was in der art haben:
    Code:
    DEP=$([ -e test.c ] && echo test.o)
    
    all: test
    
    test: $(DEP)
        gcc beispiel.c test.o -o test
    
    test.o: test.c
        gcc -c test.c
    was aber so nicht geht...
    weiß einer wie man das lösen kann?

    danke schonmal für jeden ansatz

    greetz

  2. #2
    Registrierter Benutzer
    Registriert seit
    07.05.2007
    Beiträge
    656
    Moin,

    make kennt u. a. Funktionen, mit denen Du sowas machen könntest, aber versuchs mal ganz einfach (ungetestet):
    Code:
    test.o: test.c
            test -f test.c && gcc -c test.c
    Jan

    EDIT: Funktioniert nicht, glaube ich - make bricht ja schon ab, weil die Dependency nicht existiert. Also doch make-Funktionen - z. B. so:
    Code:
    DEP := $(shell test -f test.c && echo test.c || echo test.o)
    Geändert von jan61 (17-04-2008 um 21:21 Uhr)

  3. #3
    Registrierter Benutzer
    Registriert seit
    28.08.2002
    Beiträge
    496
    echt genial
    danke, funktioniert prima!

    greetz

Lesezeichen

Berechtigungen

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