Wie kann ich Text in autoconf / m4 entkommen lassen?

7

Der folgende Code aus meiner Datei configuration.ac funktioniert nicht (beachten Sie die verschachtelten eckigen Klammern mit [default = no] ):

%Vor%

Wie kann ich diesen Klammern entkommen?

    
user278429 22.02.2010, 04:04
quelle

3 Antworten

16

Es gefunden! Aus diesem Lernprogramm:

  

M4 Argumente werden mit [und] zitiert. Es gibt KEINE Möglichkeit, diesen zu entkommen, aber Sie haben mehrere Optionen, wenn Sie ['s oder]' s einfügen möchten:

     
  1. Benutze einen 'Quadrigaph'. @ & lt;: @ gibt dir [und @: & gt; @ gibt dir].
  2.   
  3. Stimmen Sie Ihre Angebote ab. M4 dreht [[]] in []. Achten Sie darauf, dies in Argumenten für Makros zu verwenden. Manchmal müssen Sie auch ein Anführungszeichen angeben ([[[]]]).
  4.   
  5. Ändern Sie das Zitat mit: changequote (& lt; & lt;, & gt; & gt;), um das Zitat in & lt; & lt; und & gt; & gt ;. Die Autoconf-Dokumentation (zu Recht meiner Meinung nach) warnt vor der (Über-) Nutzung, da sie zu unerwarteten Ergebnissen führen kann.
  6.   
  7. Vermeide [und] wo immer es möglich ist. Das ist meine persönliche Entscheidung.
  8.   

Mein neuer Code lautet daher:

%Vor%     
user278429 22.02.2010 07:21
quelle
7

Brackets sind Art von Escape-Zeichen, so wie Sie es für '\' tun, können Sie die Klammern [] mit Klammern ausschließen, zB:

  

AC_ARG_ENABLE (debuggen,       [--enable-debug build mit Debugging-Unterstützung [ [default = no] ] .],       [DEBUG="$ enableval"],       [DEBUG="nein"]       )

Hinweis: [ [] default = no [] ] funktioniert möglicherweise nicht wie erwartet, da m4 den end_bracket vom Ende aus durchsuchen sollte. Es sollte so auf [ ]default=no[ ] erweitert werden.

    
jbar 21.11.2012 12:22
quelle
0

verwende AC_HELP_STRING

    
Anycorn 22.02.2010 04:09
quelle

Tags und Links