Files
bullet3/mk/autoconf/cs_check_host.m4
res2002 495349f97d Bumped version in configure.ac to 1.5.6 (assuming that "1.5f" is
the next version released).
Updated files in mk/autoconf and mk/jam with copies from CS; fixes a 
  GLU detection issue on MinGW.
Set msvc/bullet_ico.ico as the default application icon.
Disabled exceptions for gcc builds.
2006-06-17 18:17:17 +00:00

145 lines
6.3 KiB
Plaintext

#------------------------------------------------------------------------------
# Determine host platform. Recognized families: Unix, Windows, MacOS/X.
# Orginial Macros Copyright (C)2003 Eric Sunshine <sunshine@sunshineco.com>
#
# This library is free software; you can redistribute it and/or modify it
# under the terms of the GNU Library General Public License as published by
# the Free Software Foundation; either version 2 of the License, or (at your
# option) any later version.
#
# This library is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
# License for more details.
#
# You should have received a copy of the GNU Library General Public License
# along with this library; if not, write to the Free Software Foundation,
# Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Determine host CPU.
#
# CS_CHECK_HOST_CPU
# Set the shell variable cs_host_cpu to a normalized form of the CPU name
# returned by config.guess/config.sub. Typically, Crystal Space's
# conception of CPU name is the same as that returned by
# config.guess/config.sub, but there may be exceptions as seen in the
# `case' statement. Also takes the normalized name, uppercases it to
# form a name suitable for the C preprocessor. Additionally sets the
# TARGET.PROCESSOR Jamconfig property.
#------------------------------------------------------------------------------
AC_DEFUN([CS_CHECK_HOST_CPU],
[AC_REQUIRE([AC_CANONICAL_HOST])
case $host_cpu in
[[Ii][3-9]86*|[Xx]86*]) cs_host_cpu=x86 ;;
*) cs_host_cpu=$host_cpu ;;
esac
cs_host_cpu_normalized="AS_TR_CPP([$cs_host_cpu])"
CS_JAMCONFIG_PROPERTY([TARGET.PROCESSOR], [$cs_host_cpu_normalized])
])
#------------------------------------------------------------------------------
# CS_CHECK_HOST
# Sets the shell variables cs_host_target cs_host_family,
# cs_host_os_normalized, and cs_host_os_normalized_uc. Emits appropriate
# CS_PLATFORM_UNIX, CS_PLATFORM_WIN32, CS_PLATFORM_MACOSX via
# AC_DEFINE(), and TARGET.OS and TARGET.OS.NORMALIZED to Jamconfig.
#------------------------------------------------------------------------------
AC_DEFUN([CS_CHECK_HOST],
[AC_REQUIRE([AC_CANONICAL_HOST])
CS_CHECK_HOST_CPU
cs_host_os_normalized=''
case $host_os in
mingw*|cygwin*)
cs_host_target=win32gcc
cs_host_family=windows
;;
darwin*)
_CS_CHECK_HOST_DARWIN
;;
*)
# Everything else is assumed to be Unix or Unix-like.
cs_host_target=unix
cs_host_family=unix
;;
esac
case $cs_host_family in
windows)
AC_DEFINE([CS_PLATFORM_WIN32], [],
[Define when compiling for Win32])
AS_IF([test -z "$cs_host_os_normalized"],
[cs_host_os_normalized='Win32'])
;;
unix)
AC_DEFINE([CS_PLATFORM_UNIX], [],
[Define when compiling for Unix and Unix-like (i.e. MacOS/X)])
AS_IF([test -z "$cs_host_os_normalized"],
[cs_host_os_normalized='Unix'])
;;
esac
cs_host_os_normalized_uc="AS_TR_CPP([$cs_host_os_normalized])"
CS_JAMCONFIG_PROPERTY([TARGET.OS], [$cs_host_os_normalized_uc])
CS_JAMCONFIG_PROPERTY([TARGET.OS.NORMALIZED], [$cs_host_os_normalized])
])
AC_DEFUN([_CS_CHECK_HOST_DARWIN],
[AC_REQUIRE([CS_PROG_CC])
AC_REQUIRE([CS_PROG_CXX])
# Both MacOS/X and Darwin are identified via $host_os as "darwin". We need
# a way to distinguish between the two. If Carbon.h is present, then
# assume MacOX/S; if not, assume Darwin. If --with-x=yes was invoked, and
# Carbon.h is present, then assume that user wants to cross-build for
# Darwin even though build host is MacOS/X.
# IMPLEMENTATION NOTE *1*
# The QuickTime 7.0 installer removes <CarbonSound/CarbonSound.h>, which
# causes #include <Carbon/Carbon.h> to fail unconditionally. Re-installing
# the QuickTime SDK should restore the header, however not all developers
# know to do this, so we work around the problem of the missing
# CarbonSound.h by #defining __CARBONSOUND__ in the test in order to
# prevent Carbon.h from attempting to #include the missing header.
# IMPLEMENTATION NOTE *2*
# At least one MacOS/X user switches between gcc 2.95 and gcc 3.3 with a
# script which toggles the values of CC, CXX, and CPP. Unfortunately, CPP
# was being set to run the preprocessor directly ("cpp", for instance)
# rather than running it via the compiler ("gcc -E", for instance). The
# problem with running the preprocessor directly is that __APPLE__ and
# __GNUC__ are not defined, which causes the Carbon.h check to fail. We
# avoid this problem by supplying a non-empty fourth argument to
# AC_CHECK_HEADER(), which causes it to test compile the header only (which
# is a more robust test), rather than also testing it via the preprocessor.
AC_DEFINE([__CARBONSOUND__], [],
[Avoid problem caused by missing <Carbon/CarbonSound.h>])
AC_CHECK_HEADER([Carbon/Carbon.h],
[cs_host_macosx=yes], [cs_host_macosx=no], [/* force compile */])
AS_IF([test $cs_host_macosx = yes],
[AC_MSG_CHECKING([for --with-x])
AS_IF([test "${with_x+set}" = set && test "$with_x" = "yes"],
[AC_MSG_RESULT([yes (assume Darwin)])
cs_host_macosx=no],
[AC_MSG_RESULT([no])])])
AS_IF([test $cs_host_macosx = yes],
[cs_host_target=macosx
cs_host_family=unix
cs_host_os_normalized='MacOS/X'
AC_DEFINE([CS_PLATFORM_MACOSX], [],
[Define when compiling for MacOS/X])
AC_CACHE_CHECK([for Objective-C compiler], [cs_cv_prog_objc],
[cs_cv_prog_objc="$CC"])
CS_JAMCONFIG_PROPERTY([CMD.OBJC], [$cs_cv_prog_objc])
AC_CACHE_CHECK([for Objective-C++ compiler], [cs_cv_prog_objcxx],
[cs_cv_prog_objcxx="$CXX"])
CS_JAMCONFIG_PROPERTY([CMD.OBJC++], [$cs_cv_prog_objcxx])],
[cs_host_target=unix
cs_host_family=unix])])