Skip to content
Snippets Groups Projects
  • Simon Marchi's avatar
    1ddd41fd
    Pass PKG_CONFIG_PATH down from top-level Makefile · 1ddd41fd
    Simon Marchi authored
    [Sending to binutils, gdb-patches and gcc-patches, since it touches the
    top-level Makefile/configure]
    
    I have my debuginfod library installed in a non-standard location
    (/opt/debuginfod), which requires me to set
    PKG_CONFIG_PATH=/opt/debuginfod/lib/pkg-config.  If I just set it during
    configure:
    
        $ PKG_CONFIG_PATH=/opt/debuginfod/lib/pkg-config ./configure --with-debuginfod
        $ make
    
    or
    
        $ ./configure --with-debuginfod PKG_CONFIG_PATH=/opt/debuginfod/lib/pkg-config
        $ make
    
    Then PKG_CONFIG_PATH is only present (and ignored) during the top-level
    configure.  When running make (which runs gdb's and binutils'
    configure), PKG_CONFIG_PATH is not set, which results in their configure
    script not finding the library:
    
        checking for libdebuginfod >= 0.179... no
        configure: error: "--with-debuginfod was given, but libdebuginfod is missing or unusable."
    
    Change the top-level configure/Makefile system to capture the value
    passed when configuring the top-level and pass it down to
    subdirectories (similar to CFLAGS, LDFLAGS, etc).
    
    I don't know much about the top-level build system, so I really don't
    know if I did this correctly.  The changes are:
    
     - Use AC_SUBST(PKG_CONFIG_PATH) in configure.ac, so that
       @PKG_CONFIG_PATH@ gets replaced with the actual PKG_CONFIG_PATH value
       in config files (i.e. Makefile)
     - Add a PKG_CONFIG_PATH Makefile variable in Makefile.tpl, initialized
       to @PKG_CONFIG_PATH@
     - Add PKG_CONFIG_PATH to HOST_EXPORTS in Makefile.tpl, which are the
       variables set when running the sub-configures
    
    I initially added PKG_CONFIG_PATH to flags_to_pass, in Makefile.def, but
    I don't think it's needed.  AFAIU, this defines the flags to pass down
    when calling "make" in subdirectories.  We only need PKG_CONFIG_PATH to
    be passed down during configure.  After that, it's captured in
    gdb/config.status, so even if a "make" causes a re-configure later
    (because gdb/configure has changed, for example), the PKG_CONFIG_PATH
    value will be remembered.
    
    Change-Id: I91138dfca41c43b05e53e445f62e4b27882536bf
    
    ChangeLog:
    
    	* configure.ac: Add AC_SUBST(PKG_CONFIG_PATH).
    	* configure: Re-generate.
    	* Makefile.tpl (HOST_EXPORTS): Pass PKG_CONFIG_PATH.
    	(PKG_CONFIG_PATH): New.
    	* Makefile.in: Re-generate.
    Pass PKG_CONFIG_PATH down from top-level Makefile
    Simon Marchi authored
    [Sending to binutils, gdb-patches and gcc-patches, since it touches the
    top-level Makefile/configure]
    
    I have my debuginfod library installed in a non-standard location
    (/opt/debuginfod), which requires me to set
    PKG_CONFIG_PATH=/opt/debuginfod/lib/pkg-config.  If I just set it during
    configure:
    
        $ PKG_CONFIG_PATH=/opt/debuginfod/lib/pkg-config ./configure --with-debuginfod
        $ make
    
    or
    
        $ ./configure --with-debuginfod PKG_CONFIG_PATH=/opt/debuginfod/lib/pkg-config
        $ make
    
    Then PKG_CONFIG_PATH is only present (and ignored) during the top-level
    configure.  When running make (which runs gdb's and binutils'
    configure), PKG_CONFIG_PATH is not set, which results in their configure
    script not finding the library:
    
        checking for libdebuginfod >= 0.179... no
        configure: error: "--with-debuginfod was given, but libdebuginfod is missing or unusable."
    
    Change the top-level configure/Makefile system to capture the value
    passed when configuring the top-level and pass it down to
    subdirectories (similar to CFLAGS, LDFLAGS, etc).
    
    I don't know much about the top-level build system, so I really don't
    know if I did this correctly.  The changes are:
    
     - Use AC_SUBST(PKG_CONFIG_PATH) in configure.ac, so that
       @PKG_CONFIG_PATH@ gets replaced with the actual PKG_CONFIG_PATH value
       in config files (i.e. Makefile)
     - Add a PKG_CONFIG_PATH Makefile variable in Makefile.tpl, initialized
       to @PKG_CONFIG_PATH@
     - Add PKG_CONFIG_PATH to HOST_EXPORTS in Makefile.tpl, which are the
       variables set when running the sub-configures
    
    I initially added PKG_CONFIG_PATH to flags_to_pass, in Makefile.def, but
    I don't think it's needed.  AFAIU, this defines the flags to pass down
    when calling "make" in subdirectories.  We only need PKG_CONFIG_PATH to
    be passed down during configure.  After that, it's captured in
    gdb/config.status, so even if a "make" causes a re-configure later
    (because gdb/configure has changed, for example), the PKG_CONFIG_PATH
    value will be remembered.
    
    Change-Id: I91138dfca41c43b05e53e445f62e4b27882536bf
    
    ChangeLog:
    
    	* configure.ac: Add AC_SUBST(PKG_CONFIG_PATH).
    	* configure: Re-generate.
    	* Makefile.tpl (HOST_EXPORTS): Pass PKG_CONFIG_PATH.
    	(PKG_CONFIG_PATH): New.
    	* Makefile.in: Re-generate.
Makefile.tpl 75.71 KiB