| From 31c522842364459c2a240ac87de2d9f9ba07aab3 Mon Sep 17 00:00:00 2001 |
| Message-Id: <31c522842364459c2a240ac87de2d9f9ba07aab3.1365267423.git.dbn.lists@gmail.com> |
| From: Dan Nicholson <dbn.lists@gmail.com> |
| Date: Thu, 4 Apr 2013 07:39:56 -0700 |
| Subject: [PATCH] Expand paths in configure to avoid MSYS garbage in Makefile |
| |
| The default pkg-config path and system include/library paths are |
| currently defined in the Makefile so that make will expand the |
| variables. Due to MSYS shell mangling paths with forward slashes into |
| Windows style paths, the path separators all need to be escaped before |
| passing to the compiler via -D. This causes warnings in both automake |
| and the compiler about "\/". |
| |
| Expand the variables in configure and set them in config.h to avoid this |
| issue. |
| --- |
| Makefile.am | 13 ------------- |
| check/check-path | 3 +-- |
| configure.ac | 28 ++++++++++++++++++++++++++++ |
| 3 files changed, 29 insertions(+), 15 deletions(-) |
| |
| diff --git a/Makefile.am b/Makefile.am |
| index 41e48e8..b808aa4 100644 |
| --- a/Makefile.am |
| +++ b/Makefile.am |
| @@ -9,19 +9,6 @@ endif |
| SUBDIRS = $(GLIB_SUBDIR) . check |
| DIST_SUBDIRS = $(SUBDIRS) |
| |
| -# Escape paths properly on windows |
| -if NATIVE_WIN32 |
| -AM_CPPFLAGS = \ |
| - -DPKG_CONFIG_PC_PATH="\"$(subst /,\/,$(pc_path))\"" \ |
| - -DPKG_CONFIG_SYSTEM_INCLUDE_PATH="\"$(subst /,\/,$(system_include_path))\"" \ |
| - -DPKG_CONFIG_SYSTEM_LIBRARY_PATH="\"$(subst /,\/,$(system_library_path))\"" |
| -else |
| -AM_CPPFLAGS = \ |
| - -DPKG_CONFIG_PC_PATH="\"$(pc_path)\"" \ |
| - -DPKG_CONFIG_SYSTEM_INCLUDE_PATH="\"$(system_include_path)\"" \ |
| - -DPKG_CONFIG_SYSTEM_LIBRARY_PATH="\"$(system_library_path)\"" |
| -endif |
| - |
| AM_CFLAGS = \ |
| $(WARN_CFLAGS) \ |
| $(GCOV_CFLAGS) \ |
| diff --git a/check/check-path b/check/check-path |
| index 2a6be75..d50f421 100755 |
| --- a/check/check-path |
| +++ b/check/check-path |
| @@ -7,8 +7,7 @@ set -e |
| RESULT="" |
| PKG_CONFIG_PATH="$srcdir/sub" run_test --exists sub1 |
| |
| -# default pkg-config path, making sure to resolve the variables fully |
| -eval pc_path="$pc_path" |
| +# check default pkg-config path |
| if [ "$native_win32" = yes ]; then |
| # This is pretty hacky. On native win32 (MSYS/MINGW), pkg-config |
| # builds the default path from the installation directory. It |
| diff --git a/configure.ac b/configure.ac |
| index 94666a4..481573b 100644 |
| --- a/configure.ac |
| +++ b/configure.ac |
| @@ -37,6 +37,25 @@ dnl from the make command line if necessary. |
| AC_SUBST([TESTS_PKG_CONFIG], ['${top_builddir}/pkg-config${EXEEXT}']) |
| |
| dnl |
| +dnl Macro to expand variables |
| +dnl |
| +AC_DEFUN([PKG_EXPAND_VAR], |
| +[m4_pushdef([var], [m4_default([$2], [$1])]) |
| +var=[$]$1 |
| +_prefix_save=$prefix |
| +_exec_prefix_save=$exec_prefix |
| +test "x$prefix" = xNONE && prefix=$ac_default_prefix |
| +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' |
| +_prev= |
| +while test "x$var" != "x$_prev"; do |
| + _prev=$var |
| + eval var=\"$var\" |
| +done |
| +prefix=$_prefix_save |
| +exec_prefix=$_exec_prefix_save |
| +m4_popdef([var])]) |
| + |
| +dnl |
| dnl Default pkg-config search path |
| dnl |
| AC_MSG_CHECKING([for default search path for .pc files]) |
| @@ -53,8 +72,11 @@ else |
| pc_path='${libdir}/pkgconfig:${datadir}/pkgconfig' |
| fi |
| ]) |
| +PKG_EXPAND_VAR([pc_path]) |
| AC_MSG_RESULT([$pc_path]) |
| AC_SUBST([pc_path]) |
| +AC_DEFINE_UNQUOTED([PKG_CONFIG_PC_PATH], ["$pc_path"], |
| + [Default pkg-config path]) |
| |
| dnl |
| dnl System default -I paths |
| @@ -65,8 +87,11 @@ AC_ARG_WITH([system_include_path], |
| [avoid -I flags from the given path])], |
| [system_include_path="$withval"], |
| [system_include_path="/usr/include"]) |
| +PKG_EXPAND_VAR([system_include_path]) |
| AC_MSG_RESULT([$system_include_path]) |
| AC_SUBST([system_include_path]) |
| +AC_DEFINE_UNQUOTED([PKG_CONFIG_SYSTEM_INCLUDE_PATH], ["$system_include_path"], |
| + [Default system include path]) |
| |
| dnl |
| dnl System default -L paths |
| @@ -87,8 +112,11 @@ case "$pc_lib_sfx" in |
| ;; |
| esac |
| ]) |
| +PKG_EXPAND_VAR([system_library_path]) |
| AC_MSG_RESULT([$system_library_path]) |
| AC_SUBST([system_library_path]) |
| +AC_DEFINE_UNQUOTED([PKG_CONFIG_SYSTEM_LIBRARY_PATH], ["$system_library_path"], |
| + [Default system library path]) |
| |
| dnl Code taken from gtk+-2.0's configure.in. |
| dnl |
| -- |
| 1.8.1.4 |
| |