Re: How to pass a group of COMPILER OPTIONS using GNU Make Command Line under WINDOWS

Eli Zaretskii <[email protected]>
Newsgroups gmane.comp.gnu.make.windows
Message-ID <[email protected]>
Please keep the discussion on the list.

> From: Partha None <[email protected]>
> Date: Mon, 11 Oct 2010 14:23:20 +0000
> 
> Command:
> 
>  
> 
> C:\temp\GNUMakeBug>C:\Partha\GNU\MAKE\DJGPP_BUILD\make-3.82\WinRel\gnumake -f TestRunGNUMakeForBoot BYPASS_ANCGEN=TRUE MAKEBENCH=FALSE C_DISABLE_CCP=TRUE COMPILE_OPTIONS_FROM_MAKE="--define=COMPILE_ENABLE_EXTENDED_NEGATIVE_RESPONSE=FALSE" COMPILE_OPTIONS_FROM_MAKE+="--define=DEVELOPMENT_BOOT_CCP=TRUE" SHELL="C:\WINNT\System32\cmd.exe" PACKAGE_NAME=junk BUILD_TYPE=ISO_CAN_BUILD
> 
>  
> 
> Response:
> 
> 
> cd DBC_Boot_Build && C:/Partha/GNU/MAKE/DJGPP_BUILD/make-3.82/WinRel/gnumake  BYPASS_ANCGEN=TRUE MAKEBENCH=FALSE COMPILE_OPTIONS_FROM_MAKE="--define=COMPILE_ENABLE_EXTENDED_NEGATIVE_RESPONSE=FALSE --define=DEVELOPMENT_BOOT_CCP=TRUE" -f TestDBCGNUBootMake BUILD_TYPE=ISO_CAN_BUILD PACKAGE_NAME=junk SHELL=C:/WINNT/System32/cmd.exe COMPILE_OPTIONS_FROM_MAKE=--define=COMPILE_ENABLE_EXTENDED_NEGATIVE_RESPONSE=FALSE\ --define=DEVELOPMENT_BOOT_CCP=TRUE C_DISABLE_CCP=TRUE MAKEBENCH=FALSE BYPASS_ANCGEN=TRUE
> C:/Partha/GNU/MAKE/DJGPP_BUILD/make-3.82/WinRel/gnumake: unrecognized option `--define=DEVELOPMENT_BOOT_CCP=TRUE'
> Usage: gnumake [options] [target] ...

The problem seems to be with your use of "+=":

  COMPILE_OPTIONS_FROM_MAKE="--define=COMPILE_ENABLE_EXTENDED_NEGATIVE_RESPONSE=FALSE" COMPILE_OPTIONS_FROM_MAKE+="--define=DEVELOPMENT_BOOT_CCP=TRUE"

The result does not quote the whitespace correctly:

  COMPILE_OPTIONS_FROM_MAKE=--define=COMPILE_ENABLE_EXTENDED_NEGATIVE_RESPONSE=FALSE\ --define=DEVELOPMENT_BOOT_CCP=TRUE
     ^^
This quotes the blank character with a backslash, which is not how
whitespace should be quoted on Windows.

Questions:

 1. Do you have sh.exe on your PATH, so that Make uses it as the shell
    when it runs this Makefile?

 2. Why are using the += method of adding several options to the
    COMPILE_OPTIONS_FROM_MAKE variable? can you modify the Makefile so
    that the full value is passed with a single command-line argument?

 3. (This is mainly for Paul Smith) Where is this feature with +=
    documented, and does it work or should work in GNU Make?
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.