http://sourceforge.net/tracker/?func=detail&atid=102435&aid=3441135&group_id=2435 https://bugs.gentoo.org/395893 ????-??-?? Keith Marshall Support pragmatic identification for w32api source directory. * aclocal.m4 (MINGW_AC_W32API_SRCDIR): New macro; implement it. * configure.in (W32API_INCLUDE): Assign using MINGW_AC_W32API_SRCDIR. * Makefile.in (W32API_INCLUDE): Prefix -I flag to AC_SUBST value. * mingwex/Makefile.in (W32API_INCLUDE): Likewise. * profile/Makefile.in (W32API_INCLUDE): Likewise. diff -r 62c176864807 Makefile.in --- a/Makefile.in Mon Nov 28 11:32:25 2011 +0000 +++ b/Makefile.in Mon Nov 28 21:18:55 2011 +0000 @@ -166,9 +166,9 @@ THREAD_DLL_NAME = $(THREAD_DLL)$(THREAD_ # Various libraries. LIBM_A=@LIBM_A@ -W32API_INCLUDE = @W32API_INCLUDE@ -INCLUDES = -I$(srcdir)/include \ - -I$(srcdir)/../include \ +W32API_INCLUDE = -I @W32API_INCLUDE@ +INCLUDES = -I $(srcdir)/include \ + -I $(srcdir)/../include \ -nostdinc \ -iwithprefixbefore include ALL_CFLAGS = $(CFLAGS) $(INCLUDES) $(W32API_INCLUDE) diff -r 62c176864807 aclocal.m4 --- a/aclocal.m4 Mon Nov 28 11:32:25 2011 +0000 +++ b/aclocal.m4 Mon Nov 28 21:18:55 2011 +0000 @@ -15,7 +15,65 @@ AC_DEFUN([MINGW_AC_CONFIG_SRCDIR], AC_MSG_CHECKING([package version]) PACKAGE_VERSION=`awk '$[2] == "'"$1"'" { print $[3] }' ${srcdir}/$2` AC_MSG_RESULT([$PACKAGE_VERSION])dnl -]) #MINGW_AC_CONFIG_SRCDIR +])# MINGW_AC_CONFIG_SRCDIR + +# MINGW_AC_W32API_SRCDIR +# ---------------------- +# Attempt to identify the location of the w32api sources. +# Accept an explicit location specified by to user, as argument +# to --with-w32api-srcdir; if unspecified, fall back to standard +# location relative to ${srcdir}. Identification requires that +# include/windows.h is present within the nominated directory. +# This is naive, but AC_CHECK_HEADER cannot be used because +# the system's w32api headers will interfere. +# +AC_DEFUN([MINGW_AC_W32API_SRCDIR], +[AC_ARG_WITH([w32api-srcdir], + [AS_HELP_STRING([--with-w32api-srcdir=DIR], + [locate w32api sources in DIR [SRCDIR/../w32api]]) + ],[],[with_w32api_srcdir=NONE]) + AS_IF([test "x${with_w32api_srcdir}" = xNONE], + [AC_MSG_CHECKING([include path for w32api headers]) + for with_w32api_srcdir in ${srcdir}/../w32api*; do + test -f "${with_w32api_srcdir}/include/windows.h" && break + with_w32api_srcdir=NONE + done + AS_IF([test "x${with_w32api_srcdir}" = xNONE], + [AC_MSG_RESULT([none found]) + AC_MSG_RESULT + AC_MSG_WARN([source directory containing include/windows.h not found]) + AC_MSG_WARN([ensure w32api sources are installed at \${top_srcdir}/../w32api*]) + AC_MSG_WARN([or use --with-w32api-srcdir=DIR to specify an alternative]) + ], + [case "${with_w32api_srcdir}" in + "${srcdir}/"*) with_w32api_srcdir="`echo "${with_w32api_srcdir}"dnl + | sed s,"^${srcdir}/",'${top_srcdir}/',`" ;; + esac + AC_MSG_RESULT([${with_w32api_srcdir}/include]) + ]) + ], + [AC_MSG_CHECKING([for windows.h in ${with_w32api_srcdir}/include]) + AS_IF([test -f "${with_w32api_srcdir}/include/windows.h"], + [AC_MSG_RESULT([yes]) + case "${with_w32api_srcdir}" in /*) ;; + *) with_w32api_srcdir='${top_builddir}/'"${with_w32api_srcdir}" ;; + esac + ], + [AC_MSG_RESULT([no]) + AC_MSG_RESULT + AC_MSG_WARN([the nominated directory, ${with_w32api_srcdir}]) + AC_MSG_WARN([does not appear to contain valid w32api source code]) + AC_MSG_WARN([(file '${with_w32api_srcdir}/include/windows.h' is not present)]) + with_w32api_srcdir=NONE + ]) + ]) + AS_IF([test "x${with_w32api_srcdir}" = xNONE], + [AC_MSG_WARN([please correct this omission and run configure again]) + AC_MSG_RESULT + AC_MSG_ERROR([unable to continue until this issue is resolved]) + ]) + W32API_INCLUDE="${with_w32api_srcdir}/include" +])# MINGW_AC_W32API_SRCDIR # The following is copied from `no-executables.m4', in the top # `src/config' directory. diff -r 62c176864807 configure.in --- a/configure.in Mon Nov 28 11:32:25 2011 +0000 +++ b/configure.in Mon Nov 28 21:18:55 2011 +0000 @@ -44,7 +44,7 @@ AC_CHECK_TOOL([WINDRES], [windres], [win AC_SUBST([NO_CYGWIN]) AC_SUBST([HEADER_SUBDIR]) -AC_SUBST([W32API_INCLUDE], ['-I ${top_srcdir}/../w32api/include']) +AC_SUBST([W32API_INCLUDE], [MINGW_AC_W32API_SRCDIR]) # The following are used by the GCC profiling hooks... # diff -r 62c176864807 mingwex/Makefile.in --- a/mingwex/Makefile.in Mon Nov 28 11:32:25 2011 +0000 +++ b/mingwex/Makefile.in Mon Nov 28 21:18:55 2011 +0000 @@ -126,10 +126,9 @@ ifdef NO_CYGWIN override CC := ${NO_CYGWIN} $(firstword $(filter-out ${NO_CYGWIN},${CC})) endif -W32API_INCLUDE = @W32API_INCLUDE@ -INCLUDES = -I${srcdir} -I${top_srcdir} -I${top_srcdir}/include \ - -nostdinc \ - -iwithprefixbefore include +W32API_INCLUDE = -I @W32API_INCLUDE@ +INCLUDES = -I ${srcdir} -I ${top_srcdir} -I ${top_srcdir}/include \ + -nostdinc -isystem @W32API_INCLUDE@ -iwithprefixbefore include ALL_CFLAGS = $(CFLAGS) $(WARNFLAGS) $(OPTFLAGS) $(INCLUDES) $(W32API_INCLUDE) ALL_CXXFLAGS = $(CXXFLAGS) $(WARNFLAGS) $(OPTFLAGS) $(INCLUDES) -nostdinc++ $(W32API_INCLUDE) diff -r 62c176864807 profile/Makefile.in --- a/profile/Makefile.in Mon Nov 28 11:32:25 2011 +0000 +++ b/profile/Makefile.in Mon Nov 28 21:18:55 2011 +0000 @@ -65,10 +65,9 @@ THREAD_DLL = @THREAD_DLL@ THREAD_DLL_VERSION = 10 THREAD_DLL_NAME = $(THREAD_DLL)$(THREAD_DLL_VERSION).dll -W32API_INCLUDE = @W32API_INCLUDE@ -INCLUDES = -I${srcdir} -I${top_srcdir}/include \ - -nostdinc \ - -iwithprefixbefore include +W32API_INCLUDE = -I @W32API_INCLUDE@ +INCLUDES = -I ${srcdir} -I ${top_srcdir}/include \ + -nostdinc -iwithprefixbefore include ALL_CFLAGS = $(CFLAGS) $(INCLUDES) $(W32API_INCLUDE) ALL_CXXFLAGS = $(CXXFLAGS) $(INCLUDES) -nostdinc++ $(W32API_INCLUDE)