From d429d8e9c3212f87077777dc94f72f33c726cade Mon Sep 17 00:00:00 2001 From: Ben Key Date: Wed, 4 May 2011 21:56:16 -0500 Subject: [PATCH] * configure.bat: Added support for --cflags and --ldflags options that include quotes as long as command extensions are enabled. Specifically when -I, -L, and similar flags are used to specify supplementary include and library directories a directory name that includes spaces may now be used if it is enclosed in quotes. * INSTALL: Documented the change to configure.bat. --- nt/ChangeLog | 11 +++++++++++ nt/INSTALL | 14 ++++++++++++++ nt/configure.bat | 12 +++++++++--- 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/nt/ChangeLog b/nt/ChangeLog index 83080273f5b..34c9ae1ed4c 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -1,3 +1,14 @@ +2011-05-05 Ben Key + + * configure.bat: Added support for --cflags and --ldflags + options that include quotes as long as command extensions are + enabled. Specifically when -I, -L, and similar flags are used + to specify supplementary include and library directories a + directory name that includes spaces may now be used if it is + enclosed in quotes. + + * INSTALL: Documented the change to configure.bat. + 2011-05-04 Juanma Barranquero * INSTALL: Clarify GnuTLS support. diff --git a/nt/INSTALL b/nt/INSTALL index 2a1a9aaab12..b4a97011922 100644 --- a/nt/INSTALL +++ b/nt/INSTALL @@ -245,6 +245,20 @@ be displayed informing you that "using parameters that include the = character by enclosing them in quotes will not be supported." + You may also use the --cflags and --ldflags options to pass + additional parameters to the compiler and linker, respectively; they + are frequently used to pass -I and -L flags to specify supplementary + include and library directories. If a directory name includes + spaces, you will need to enclose it in quotes, as follows + -I"C:/Program Files/GnuTLS-2.10.1/include". Note that only the + directory name is enclosed in quotes, not the entire argument. Also + note that this functionality is only supported if command extensions + are available. If command extensions are disabled and you attempt to + use this functionality you may see the following warning message + "Error in --cflags argument: ... Backslashes and quotes cannot be + used with --cflags. Please use forward slashes for filenames and + paths (e.g. when passing directories to -I)." + 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 suppressed because of limitations in the Windows 9X command.com shell. diff --git a/nt/configure.bat b/nt/configure.bat index 7642d8244f8..63d94972d81 100755 --- a/nt/configure.bat +++ b/nt/configure.bat @@ -97,8 +97,10 @@ set profile=N set nocygwin=N set COMPILER= set usercflags= +set fusercflags= set docflags= set userldflags= +set fuserldflags= set extrauserlibs= set doldflags= set doextralibs= @@ -238,6 +240,7 @@ goto ucflagne :ucflagex shift set usercflags=%usercflags%%sep1%%~1 +set fusercflags=%usercflags:"=\"% set sep1= %nothing% shift goto again @@ -245,6 +248,7 @@ goto again :ucflagne shift set usercflags=%usercflags%%sep1%%1 +set fusercflags=%usercflags% set sep1= %nothing% shift goto again @@ -266,6 +270,7 @@ goto ulflagne :ulflagex shift set userldflags=%userldflags%%sep2%%~1 +set fuserldflags=%userldflags:"=\"% set sep2= %nothing% shift goto again @@ -273,6 +278,7 @@ goto again :ulflagne shift set userldflags=%userldflags%%sep2%%1 +set fuserldflags=%userldflags% set sep2= %nothing% shift goto again @@ -437,7 +443,7 @@ goto nocompiler :chkuser rm -f junk.o echo int main (int argc, char *argv[]) {>junk.c -echo char *usercflags = "%usercflags%";>>junk.c +echo char *usercflags = "%fusercflags%";>>junk.c echo }>>junk.c echo gcc -Werror -c junk.c >>config.log gcc -Werror -c junk.c >>config.log 2>&1 @@ -745,8 +751,8 @@ echo. >>config.tmp echo /* Start of settings from configure.bat. */ >>config.tmp rem We write USER_CFLAGS and USER_LDFLAGS starting with a space to simplify rem processing of compiler options in w32.c:get_emacs_configuration_options -if (%docflags%) == (Y) echo #define USER_CFLAGS " %usercflags%">>config.tmp -if (%doldflags%) == (Y) echo #define USER_LDFLAGS " %userldflags%">>config.tmp +if (%docflags%) == (Y) echo #define USER_CFLAGS " %fusercflags%">>config.tmp +if (%doldflags%) == (Y) echo #define USER_LDFLAGS " %fuserldflags%">>config.tmp if (%profile%) == (Y) echo #define PROFILING 1 >>config.tmp if not "(%HAVE_PNG%)" == "()" echo #define HAVE_PNG 1 >>config.tmp if not "(%HAVE_GNUTLS%)" == "()" echo #define HAVE_GNUTLS 1 >>config.tmp -- 2.39.2