Add smart identification of auxiliary header file paths.
This commit is contained in:
parent
f485d8ffb4
commit
71992560f7
|
@ -1,3 +1,22 @@
|
|||
2012-01-15 Keith Marshall <keithmarshall@users.sf.net>
|
||||
|
||||
Add smart identification of auxiliary header file paths.
|
||||
|
||||
* aclocal.m4: New file; replaces previously removed file of
|
||||
same name, with entirely new content.
|
||||
|
||||
* Makefile.in (DISTFILES): Reinstate aclocal.m4
|
||||
|
||||
* Makefile.comm.in (EXTRA_INCLUDES): Use AC_SUBST to assign it.
|
||||
(BUILDENV): No longer required; remove all references to it.
|
||||
|
||||
* configure.ac (BUILDENV): Redundant AC_SUBST variable; delete it.
|
||||
(MINGW_AC_CONFIG_SRCDIR): Factor out; relocate it to aclocal.m4
|
||||
(EXTRA_INCLUDES): Define as AC_SUBST variable; assign value using...
|
||||
(MINGW_AC_RUNTIME_SRCDIR): ...this new aclocal.m4 macro.
|
||||
|
||||
* configure: Regenerated.
|
||||
|
||||
2012-01-15 Keith Marshall <keithmarshall@users.sf.net>
|
||||
|
||||
More makefile code refactoring; fix top_srcdir references.
|
||||
|
|
|
@ -35,6 +35,7 @@ LD = @LD@
|
|||
|
||||
CFLAGS = @CFLAGS@
|
||||
ALL_CFLAGS = $(CFLAGS) $(INCLUDES)
|
||||
EXTRA_INCLUDES = -nostdinc -iwithprefix include @EXTRA_INCLUDES@
|
||||
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DLLTOOL_FLAGS = --as=$(AS) -k
|
||||
|
@ -43,24 +44,6 @@ WINDRES = @WINDRES@
|
|||
RANLIB = @RANLIB@
|
||||
AR = @AR@
|
||||
|
||||
# Depending on if we build as part of winsup or mingw we need to
|
||||
# add additional include paths in order to get the correct headers
|
||||
# from the C library.
|
||||
#
|
||||
BUILDENV = @BUILDENV@
|
||||
|
||||
ifeq ($(BUILDENV), cygwin)
|
||||
# winsup/include
|
||||
# winsup/../newlib/libc/include
|
||||
# winsup/../newlib/libc/sys/cygwin
|
||||
EXTRA_INCLUDES = -I ${top_srcdir}/../include \
|
||||
-I ${top_srcdir}/../../newlib/libc/include \
|
||||
-I ${top_srcdir}/../../newlib/libc/sys/cygwin
|
||||
endif
|
||||
ifeq ($(BUILDENV), mingw)
|
||||
EXTRA_INCLUDES = -I ${top_srcdir}/../mingw/include
|
||||
endif
|
||||
|
||||
# In spite of its general unsuitability for use on MS-Windows hosts,
|
||||
# Cygwin is able to, and likes to support the $(DESTDIR) capability;
|
||||
# provide a graceful rejection mechanism, for any (non-Cygwin) cases
|
||||
|
|
|
@ -30,7 +30,7 @@ TARFILEEXT = .tar.lzma
|
|||
SUBDIRS = lib
|
||||
|
||||
DISTFILES = \
|
||||
ChangeLog configure.ac Makefile.in Makefile.comm.in configure \
|
||||
ChangeLog aclocal.m4 configure.ac Makefile.in Makefile.comm.in configure \
|
||||
config.guess config.sub install-sh README.w32api TODO CONTRIBUTIONS
|
||||
|
||||
all: $(SUBDIRS)
|
||||
|
|
|
@ -0,0 +1,174 @@
|
|||
# aclocal.m4 for MinGW/Cygwin w32api package. -*- Autoconf -*-
|
||||
#
|
||||
# Definitions of autoconf macros used to implement the configure
|
||||
# script for the w32api package.
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Written by Keith Marshall <keithmarshall@users.sourceforge.net>
|
||||
# Copyright (C) 2011, 2012, MinGW Project
|
||||
#
|
||||
# -----------------------------------------------------------------------------
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
# THE SOFTWARE.
|
||||
#
|
||||
# -----------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
# MINGW_AC_CONFIG_SRCDIR( VERSION_TAG, UNIQUE_FILE )
|
||||
# --------------------------------------------------
|
||||
# Wrapper for AC_CONFIG_SRCDIR; in addition to checking for a
|
||||
# unique file reference within the source tree, it resolves the
|
||||
# definition for PACKAGE_VERSION, based on a tagged definition
|
||||
# within that file.
|
||||
#
|
||||
AC_DEFUN([MINGW_AC_CONFIG_SRCDIR],
|
||||
[AC_CONFIG_SRCDIR([$2])
|
||||
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_RUNTIME_SRCDIR
|
||||
# -----------------------
|
||||
# Attempt to identify the locations of the C runtime sources.
|
||||
# Accept explicit locations specified by the user, as arguments
|
||||
# to --with-host-srcdir and --with-libc-srcdir; if unspecified,
|
||||
# fall back to standard locations relative to ${srcdir}. For a
|
||||
# MinGW build, identification of an appropriate location will be
|
||||
# determined by presence of include/_mingw.h in host-srcdir, and
|
||||
# lib-srcdir is not required; for a Cygwin build, host-srcdir is
|
||||
# identified by the presence of include/cygwin/cygwin_dll.h, and
|
||||
# presence of include/newlib.h is also required to identify the
|
||||
# libc-srcdir location. This is naive; however, AC_CHECK_HEADER
|
||||
# cannot be used because the system's runtime headers may result
|
||||
# in false identification of unsuitable locations.
|
||||
#
|
||||
AC_DEFUN([MINGW_AC_RUNTIME_SRCDIR],
|
||||
[AC_REQUIRE([MINGW_AC_HOST_SRCDIR])dnl
|
||||
AC_REQUIRE([MINGW_AC_LIBC_SRCDIR])dnl
|
||||
AS_IF([(test "x${with_host_srcdir}" = xMISSING || test "x${with_libc_srcdir}" = xMISSING)],
|
||||
[AC_MSG_WARN([the location of required runtime headers cannot be established])
|
||||
AC_MSG_WARN([please correct this omission before running configure again])
|
||||
AC_MSG_RESULT
|
||||
AC_MSG_ERROR([unable to continue until this issue is resolved])
|
||||
])dnl
|
||||
])# MINGW_AC_RUNTIME_SRCDIR
|
||||
|
||||
# MINGW_AC_HOST_SRCDIR
|
||||
# --------------------
|
||||
# Helper macro, AC_REQUIREd by MINGW_AC_RUNTIME_SRCDIR.
|
||||
# This establishes the --with-host-srcdir reference for identification
|
||||
# of runtime header path; it is never called directly by configure.ac
|
||||
#
|
||||
AC_DEFUN([MINGW_AC_HOST_SRCDIR],
|
||||
[AC_REQUIRE([AC_CANONICAL_HOST])dnl
|
||||
AC_ARG_WITH([host-srcdir],
|
||||
[AS_HELP_STRING([--with-host-srcdir=DIR],
|
||||
[locate host-specific runtime library sources in DIR [SRCDIR/../mingw*]
|
||||
([SRCDIR/../cygwin] when HOST == Cygwin)
|
||||
])dnl
|
||||
],[],[with_host_srcdir=NONE])
|
||||
AS_CASE([${host_os}],
|
||||
[*cygwin*],[ac_dir="cygwin" ac_file="cygwin/cygwin_dll"],
|
||||
[ac_dir="mingw" ac_file="_mingw"])
|
||||
MINGW_AC_CHECK_RUNTIME_SRCDIR([host],[host runtime])
|
||||
EXTRA_INCLUDES="-I ${with_host_srcdir}/include"
|
||||
])# MINGW_AC_HOST_SRCDIR
|
||||
|
||||
# MINGW_AC_LIBC_SRCDIR
|
||||
# --------------------
|
||||
# Helper macro, AC_REQUIREd by MINGW_AC_RUNTIME_SRCDIR.
|
||||
# This establishes the --with-libc-srcdir reference for identification
|
||||
# of runtime header path; it is never called directly by configure.ac
|
||||
#
|
||||
AC_DEFUN([MINGW_AC_LIBC_SRCDIR],
|
||||
[AC_ARG_WITH([libc-srcdir],
|
||||
[AS_HELP_STRING([--with-libc-srcdir=DIR],
|
||||
[locate additional libc sources in DIR [SRCDIR/../../newlib/libc]
|
||||
(required only when HOST == Cygwin)
|
||||
])dnl
|
||||
],[],[with_libc_srcdir=NONE])
|
||||
AC_MSG_CHECKING([whether additional runtime headers are required])
|
||||
AS_CASE([${host_os}],
|
||||
[*cygwin*],
|
||||
[AC_MSG_RESULT([libc (newlib)])
|
||||
ac_dir="../newlib/libc" ac_file="newlib"
|
||||
MINGW_AC_CHECK_RUNTIME_SRCDIR([libc],[libc runtime])
|
||||
AS_IF([test "x${with_libc_srcdir}" != xNONE],
|
||||
[EXTRA_INCLUDES="-I ${with_libc_srcdir}/include ${EXTRA_INCLUDES}"
|
||||
])dnl
|
||||
],dnl
|
||||
[AC_MSG_RESULT([no])
|
||||
])dnl
|
||||
])# MINGW_AC_LIBC_SRCDIR
|
||||
|
||||
# MINGW_AC_CHECK_RUNTIME_SRCDIR( KEY, CATEGORY )
|
||||
# ----------------------------------------------
|
||||
# Helper macro, invoked by each of MINGW_AC_HOST_SRCDIR and
|
||||
# MINGW_AC_LIBC_SRCDIR, with KEY passed as 'host' or as 'libc'
|
||||
# respectively; it establishes and verifies the reference path
|
||||
# for headers of the class described by CATEGORY, assigning
|
||||
# the result to the shell variable 'with_KEY_srcdir'.
|
||||
#
|
||||
# As is the case for each of the preceding macros, which may
|
||||
# call it, MINGW_AC_CHECK_RUNTIME_SRCDIR is never invoked
|
||||
# directly by configure.ac
|
||||
#
|
||||
AC_DEFUN([MINGW_AC_CHECK_RUNTIME_SRCDIR],
|
||||
[AS_IF([test "x${with_$1_srcdir}" = xNONE],
|
||||
[AC_MSG_CHECKING([include path for $2 headers])
|
||||
for with_$1_srcdir in ${srcdir}/../${ac_dir}*; do
|
||||
test -f "${with_$1_srcdir}/include/${ac_file}.h" && break
|
||||
with_$1_srcdir=MISSING
|
||||
done
|
||||
AS_IF([test "x${with_$1_srcdir}" = xMISSING],
|
||||
[AC_MSG_RESULT([none found])
|
||||
AC_MSG_RESULT
|
||||
AC_MSG_WARN([source directory containing include/${ac_file}.h not found])
|
||||
AC_MSG_WARN([ensure $2 sources are installed at \${top_srcdir}/../${ac_dir}*])
|
||||
AC_MSG_WARN([or use --with-$1-srcdir=DIR to specify an alternative])
|
||||
AC_MSG_RESULT
|
||||
],dnl
|
||||
[case "${with_$1_srcdir}" in
|
||||
"${srcdir}/"*) with_$1_srcdir="`echo "${with_$1_srcdir}" \
|
||||
| sed s,"^${srcdir}/",'${top_srcdir}/',`" ;;
|
||||
esac
|
||||
AC_MSG_RESULT([${with_$1_srcdir}/include])dnl
|
||||
])dnl
|
||||
],dnl
|
||||
[AC_MSG_CHECKING([for ${ac_file}.h in ${with_$1_srcdir}/include])
|
||||
AS_IF([test -f "${with_$1_srcdir}/include/${ac_file}.h"],
|
||||
[AC_MSG_RESULT([yes])
|
||||
case "${with_$1_srcdir}" in /*) ;;
|
||||
*) with_$1_srcdir='${top_builddir}/'"${with_$1_srcdir}" ;;
|
||||
esac
|
||||
],dnl
|
||||
[AC_MSG_RESULT([no])
|
||||
AC_MSG_RESULT
|
||||
AC_MSG_WARN([the nominated directory, ${with_$1_srcdir}])
|
||||
AC_MSG_WARN([does not appear to contain valid $2 source code])
|
||||
AC_MSG_WARN([(file '${with_$1_srcdir}/include/${ac_file}.h' is not present)])
|
||||
AC_MSG_RESULT
|
||||
with_$1_srcdir=MISSING
|
||||
])dnl
|
||||
])dnl
|
||||
])# MINGW_AC_CHECK_RUNTIME_SRCDIR
|
||||
|
||||
# $RCSfile$: end of file: vim: ft=config
|
|
@ -9,20 +9,10 @@
|
|||
|
||||
AC_PREREQ([2.59])
|
||||
#
|
||||
# Extract current release version from include/w32api.h
|
||||
# at autoconf time...
|
||||
# Extract current release version from include/w32api.h at autoconf time.
|
||||
#
|
||||
m4_define([__ver__],dnl
|
||||
m4_esyscmd([awk '$2=="__W32API_VERSION"{printf "%s","v"$3}' include/w32api.h]))
|
||||
#
|
||||
# ...and confirm it at configure time.
|
||||
#
|
||||
AC_DEFUN([MINGW_AC_CONFIG_SRCDIR],
|
||||
[AC_CONFIG_SRCDIR([$2])
|
||||
AC_MSG_CHECKING([package version])
|
||||
PACKAGE_VERSION=`awk '$[2] == "'"$1"'" { print $[3] }' ${srcdir}/$2`
|
||||
AC_MSG_RESULT([$PACKAGE_VERSION])dnl
|
||||
])# MINGW_AC_CONFIG_SRCDIR
|
||||
|
||||
AC_INIT([MS-Windows API],[__ver__],[http://mingw.org/reporting_bugs],[w32api])
|
||||
MINGW_AC_CONFIG_SRCDIR([__W32API_VERSION],[include/w32api.h])
|
||||
|
@ -50,6 +40,7 @@ AC_PROG_INSTALL
|
|||
#
|
||||
AC_CHECK_TOOL([CC], [gcc], [gcc])
|
||||
AC_SUBST([CFLAGS], [${CFLAGS-"-O2 -g"}])
|
||||
AC_SUBST([EXTRA_INCLUDES], [MINGW_AC_RUNTIME_SRCDIR])
|
||||
|
||||
# FIXME: What is the purpose of this? I think it should go away.
|
||||
#
|
||||
|
@ -64,19 +55,8 @@ AC_CHECK_TOOL([DLLTOOL], [dlltool], [dlltool])
|
|||
AC_CHECK_TOOL([WINDRES], [windres], [windres])
|
||||
AC_CHECK_TOOL([LD], [ld], [ld])
|
||||
|
||||
|
||||
AC_MSG_CHECKING([for build environment])
|
||||
case "$build_alias" in
|
||||
*-mingw*) BUILDENV=mingw;;
|
||||
*-cygwin*) BUILDENV=cygwin;;
|
||||
esac
|
||||
if test -z "$BUILDENV"; then
|
||||
AC_MSG_RESULT([standard])
|
||||
else
|
||||
AC_MSG_RESULT([$BUILDENV])
|
||||
fi
|
||||
AC_SUBST([BUILDENV])
|
||||
|
||||
# Create makefiles
|
||||
#
|
||||
AC_CONFIG_FILES([Makefile Makefile.comm])
|
||||
AC_CONFIG_FILES([lib/Makefile lib/ddk/Makefile lib/directx/Makefile])
|
||||
AC_OUTPUT
|
||||
|
|
Loading…
Reference in New Issue