Funktionen in Makefile

Ich Schreibe ein Makefile mit einer Menge von sich wiederholenden Themen, wie z.B.

debug_ifort_Linux:
        if [ $(UNAME) = Linux ]; then                           \
          $(MAKE) FC=ifort FFLAGS=$(difort) PETSC_FFLAGS="..."  \
                  TARGET=$@ LEXT="ifort_$(UNAME)" -e syst;      \
        else                                                    \
          echo $(err_arch);                                     \
          exit 1;                                               \
        fi

wo ist das target 'syst' definiert ist, wird die variable "UNAME" ist definiert (und ist in der Regel Linux, könnte aber auch von Cygwin oder OSF1) und den Variablen "difort' und 'err_arch' werden auch definiert. Dieser code-block wird sehr viele Male für verschiedene compiler-targets (mit einem Namen-Konvention"'). Da dies eine große Menge an redundanten code, ich möchte in der Lage sein zu schreiben Sie es in einer einfachen Art und Weise. E. g., Ich würde gerne etwas wie das hier tun:

debug_ifort_Linux:
        compile(uname,compiler,flags,petsc_flags,target,lext)

wo kompilieren könnte eine Funktion sein tun den obigen code auf der Grundlage der Argumente. Hat jemand eine Idee, wie könnte ich dies erreichen?

InformationsquelleAutor der Frage Karl Yngve Lervåg | 2009-02-03

Schreibe einen Kommentar