emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r103927: Modified the code that parse


From: Ben Key
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r103927: Modified the code that parses the --cflags and --ldflags options to support parameters that include the = character as long as they are enclosed in quotes.
Date: Fri, 15 Apr 2011 17:48:00 -0500
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 103927
committer: Ben Key <address@hidden>
branch nick: trunk
timestamp: Fri 2011-04-15 17:48:00 -0500
message:
  Modified the code that parses the --cflags and --ldflags options to support 
parameters that include the = character as long as they are enclosed in quotes.
modified:
  nt/ChangeLog
  nt/INSTALL
  nt/configure.bat
=== modified file 'nt/ChangeLog'
--- a/nt/ChangeLog      2011-04-06 15:44:32 +0000
+++ b/nt/ChangeLog      2011-04-15 22:48:00 +0000
@@ -1,3 +1,17 @@
+2011-04-15  Ben Key  <address@hidden>
+
+       * configure.bat: Modified the code that parses the --cflags and
+       --ldflags options to support parameters that include the =
+       character as long as they are enclosed in quotes.  This
+       functionality depends on command extensions.  Configure.bat now
+       attempts to enable command extensions and displays a warning
+       message if they could not be enabled.  If configure.bat could
+       not enable command extensions the old parsing code is used that
+       does not support parameters that include the = character.
+
+       * INSTALL: Updated the file to describe the new functionality
+       using text provided by Eli Zaretskii.
+
 2011-04-06  Eli Zaretskii  <address@hidden>
 
        * config.nt (NO_INLINE, ATTRIBUTE_FORMAT)

=== modified file 'nt/INSTALL'
--- a/nt/INSTALL        2011-01-26 08:36:39 +0000
+++ b/nt/INSTALL        2011-04-15 22:48:00 +0000
@@ -220,13 +220,23 @@
   absolutely sure the produced binaries will never need to be run under
   a debugger.
 
-  Because of limitations of the stock Windows command shell, certain
-  characters (quotes, backslashes and equal signs) can be problematic
-  and should not be used in arguments to configure.  That means that
-  forward slashes must be used in paths passed to the compiler and
-  linker via the --cflags and --ldflags options, and that it is
-  currently not possible to pass a macro like -DFOO=BAR (though -DFOO
-  is perfectly valid).
+  Because of limitations of the stock Windows command shells, special
+  care is needed to pass some characters in the arguments of the
+  --cflags and --ldflags options.  Backslashes should not be used in
+  file names passed to the compiler and linker via these options.  Use
+  forward slashes instead.  If the arguments to these two options
+  include the `=' character, like when passing a -DFOO=bar preprocessor
+  option, the argument with the `=' character should be enclosed in
+  quotes, like this:
+
+    configure --cflags "-DFOO=bar"
+
+  Support for options that include the `=' character require "command
+  extensions" to be enabled.  (They are enabled by default, but your
+  system administrator could have changed that.  See "cmd /?" for
+  details.)  If command extensions are disabled, a warning message might
+  be displayed informing you that "using parameters that include the =
+  character by enclosing them in quotes will not be supported."
 
   N.B.  It is normal to see a few error messages output while configure
   is running, when gcc support is being tested.  These cannot be

=== modified file 'nt/configure.bat'
--- a/nt/configure.bat  2011-01-29 12:36:11 +0000
+++ b/nt/configure.bat  2011-04-15 22:48:00 +0000
@@ -75,6 +75,19 @@
 
 :start
 rem ----------------------------------------------------------------------
+rem   Attempt to enable command extensions.  Set use_extensions to 1 if
+rem   they are available and 0 if they are not available.
+set use_extensions=1
+setlocal ENABLEEXTENSIONS
+if "%CMDEXTVERSION%" == "" set use_extensions=0
+if "%use_extensions%" == "1" goto afterext
+
+echo. Command extensions are not available.  Using parameters that include the 
=
+echo. character by enclosing them in quotes will not be supported.
+
+:afterext
+
+rem ----------------------------------------------------------------------
 rem   Default settings.
 set prefix=
 set nodebug=N
@@ -136,6 +149,20 @@
 echo.   --without-xpm           do not use XPM library even if it is installed
 echo.   --with-svg              use the RSVG library (experimental)
 echo.   --distfiles             path to files for make dist, e.g. libXpm.dll
+if "%use_extensions%" == "0" goto end
+echo.
+echo. The cflags and ldflags arguments support parameters that include the =
+echo. character.  However, since the = character is normally treated as a
+echo. separator character you will need to enclose any parameter that includes
+echo. the = character in quotes.  For example, to include
+echo. -DSITELOAD_PURESIZE_EXTRA=100000 as one of the cflags you would run
+echo. configure.bat as follows:
+echo. configure.bat --cflags "-DSITELOAD_PURESIZE_EXTRA=100000"
+echo.
+echo. Note that this capability of processing parameters that include the =
+echo. character depends on command extensions.  This batch file attempts to
+echo. enable command extensions.  If command extensions cannot be enabled, a
+echo. warning message will be displayed.
 goto end
 
 rem ----------------------------------------------------------------------
@@ -198,6 +225,17 @@
 rem ----------------------------------------------------------------------
 
 :usercflags
+if "%use_extensions%" == "1" goto ucflagex
+goto ucflagne
+
+:ucflagex
+shift
+set usercflags=%usercflags%%sep1%%~1
+set sep1= %nothing%
+shift
+goto again
+
+:ucflagne
 shift
 set usercflags=%usercflags%%sep1%%1
 set sep1= %nothing%
@@ -207,6 +245,17 @@
 rem ----------------------------------------------------------------------
 
 :userldflags
+if "%use_extensions%" == "1" goto ulflagex
+goto ulflagne
+
+:ulflagex
+shift
+set userldflags=%userldflags%%sep2%%~1
+set sep2= %nothing%
+shift
+goto again
+
+:ulflagne
 shift
 set userldflags=%userldflags%%sep2%%1
 set sep2= %nothing%


reply via email to

[Prev in Thread] Current Thread [Next in Thread]