diff options
author | Andreas Baumann <abaumann@yahoo.com> | 2009-02-26 09:45:30 +0100 |
---|---|---|
committer | Andreas Baumann <abaumann@yahoo.com> | 2009-02-26 09:45:30 +0100 |
commit | 8cff71890f72d619162b4b8fac6f96f268deabd6 (patch) | |
tree | b4c94d7455bcc44b0b607198984134e81b0797a0 /makefiles/gmake/guess_env | |
parent | 6a4d7e4836dc9e4b7dba4a39dd0a51e0bea0d1c5 (diff) | |
download | wolfbones-8cff71890f72d619162b4b8fac6f96f268deabd6.tar.gz wolfbones-8cff71890f72d619162b4b8fac6f96f268deabd6.tar.bz2 |
made the GNU make NMAKE switch as we go to Windows now, also fixed small bugs in the makefiles
Diffstat (limited to 'makefiles/gmake/guess_env')
-rwxr-xr-x | makefiles/gmake/guess_env | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/makefiles/gmake/guess_env b/makefiles/gmake/guess_env new file mode 100755 index 0000000..d0a31ae --- /dev/null +++ b/makefiles/gmake/guess_env @@ -0,0 +1,173 @@ +#!/bin/sh + +# operating system and major, minor version, more should not be necessary + +UNAME_SYSTEM=`(uname -s) 2>/dev/null` +UNAME_RELEASE=`(uname -r) 2>/dev/null` +UNAME_VERSION=`(uname -v) 2>/dev/null` +UNAME_MACHINE=`(uname -m) 2>/dev/null` + +case "$UNAME_SYSTEM.$UNAME_RELEASE" in + Linux*) PLATFORM=LINUX + OS_MAJOR_VERSION=`echo $UNAME_RELEASE | cut -d . -f 1` + OS_MINOR_VERSION=`echo $UNAME_RELEASE | cut -d . -f 2` + ;; + + FreeBSD*) PLATFORM=FREEBSD + OS_MAJOR_VERSION=`echo $UNAME_RELEASE | cut -d . -f 1` + OS_MINOR_VERSION=`echo $UNAME_RELEASE | cut -d . -f 2 | cut -d - -f 1` + ;; + + OpenBSD*) PLATFORM=OPENBSD + OS_MAJOR_VERSION=`echo $UNAME_RELEASE | cut -d . -f 1` + OS_MINOR_VERSION=`echo $UNAME_RELEASE | cut -d . -f 2 | cut -d - -f 1` + ;; + + NetBSD*) PLATFORM=NETBSD + OS_MAJOR_VERSION=`echo $UNAME_RELEASE | cut -d . -f 1` + OS_MINOR_VERSION=`echo $UNAME_RELEASE | cut -d . -f 2 | cut -d - -f 1` + ;; + + SunOS*) PLATFORM=SUNOS + OS_MAJOR_VERSION=`echo $UNAME_RELEASE | cut -d . -f 1` + OS_MINOR_VERSION=`echo $UNAME_RELEASE | cut -d . -f 2` + ;; + + CYGWIN_NT*) PLATFORM=CYGWIN + _tmp=`echo $UNAME_SYSTEM | cut -d - -f 2` + OS_MAJOR_VERSION=`echo $_tmp | cut -d . -f 1` + OS_MINOR_VERSION=`echo $_tmp | cut -d . -f 2` + ;; + + *) + PLATFORM=UNKNOWN + echo "Unknown platform '$UNAME_SYSTEM $UNAME_RELEASE'" + exit 1 +esac + +# the architecture + +case "$UNAME_MACHINE" in + i*86*) ARCH=x86 + ;; + + sun4u) ARCH=sun4u + ;; + + *) ARCH=UNKNOWN + echo "Unknown architecture '$UNAME_MACHINE'" + exit 1 + +esac + +# the compiler and version + +# what compiler do we have (we can't relly on it's name as it may be a cc link to the binary!) +CC=$2 +( $CC --version | grep GCC ) 2>/dev/null 1>/dev/null +if test $? = 0; then + COMPILER='gcc' +else + ( $CC -v | grep tcc ) 2>/dev/null 1>/dev/null + if test $? = 0; then + COMPILER='tcc' + else + ( $CC -V 2>&1 | grep l_cproc_p ) >/dev/null + if test $? = 0; then + COMPILER='icc' + else + ( $CC -xhelp=readme | head -n 1 | grep 'Sun Studio' ) >/dev/null + if test $? = 0; then + COMPILER='spro' + else + COMPILER='unknown' + fi + fi + fi +fi + +# version of gcc (GNU C compiler) + +if test $COMPILER = "gcc"; then + GCC_VERSION=`gcc -dumpversion` + GCC_MAJOR_VERSION=`echo $GCC_VERSION | cut -d . -f 1` + GCC_MINOR_VERSION=`echo $GCC_VERSION | cut -d . -f 2` +fi + +# version of tcc (Tiny C compiler) + +if test $COMPILER = "tcc"; then + TCC_VERSION=`tcc -v | cut -d ' ' -f 3` + TCC_MAJOR_VERSION=`echo $ICC_VERSION | cut -d . -f 1` + TCC_MINOR_VERSION=`echo $ICC_VERSION | cut -d . -f 2` +fi + +# version of icc (Intel C compiler) + +if test $COMPILER = "icc"; then + ICC_VERSION=`icc -dumpversion` + ICC_MAJOR_VERSION=`echo $ICC_VERSION | cut -d . -f 1` + ICC_MINOR_VERSION=`echo $ICC_VERSION | cut -d . -f 2` +fi + +# version of spro (Sun Pro compiler, Sun Studio) + +if test $COMPILER = 'spro'; then + SPRO_VERSION=`$CC -xhelp=readme | head -n 1 | cut -d ' ' -f 3` + SPRO_MAJOR_VERSION=`echo $SPRO_VERSION | cut -d : -f 1` +fi + +case "$1" in + --platform) echo $PLATFORM + ;; + + --os-major-version) echo $OS_MAJOR_VERSION + ;; + + --os-minor-version) echo $OS_MINOR_VERSION + ;; + + --arch) echo $ARCH + ;; + + --compiler) echo $COMPILER + ;; + + --gcc-major-version) echo $GCC_MAJOR_VERSION + ;; + + --gcc-minor-version) echo $GCC_MINOR_VERSION + ;; + + --tcc-major-version) echo $TCC_MAJOR_VERSION + ;; + + --tcc-minor-version) echo $TCC_MINOR_VERSION + ;; + + --icc-major-version) echo $ICC_MAJOR_VERSION + ;; + + --icc-minor-version) echo $ICC_MINOR_VERSION + ;; + + --spro-major-version) echo $SPRO_MAJOR_VERSION + ;; + + --all) + cat <<EOF +ARCH = $ARCH +PLATFORM = $PLATFORM +OS_MAJOR_VERSION = $OS_MAJOR_VERSION +OS_MINOR_VERSION = $OS_MINOR_VERSION +COMPILER = $COMPILER +GCC_MAJOR_VERSION = $GCC_MAJOR_VERSION +GCC_MINOR_VERSION = $GCC_MINOR_VERSION +TCC_MAJOR_VERSION = $TCC_MAJOR_VERSION +TCC_MINOR_VERSION = $TCC_MINOR_VERSION +ICC_MAJOR_VERSION = $ICC_MAJOR_VERSION +ICC_MINOR_VERSION = $ICC_MINOR_VERSION +SPRO_MAJOR_VERSION = $SPRO_MAJOR_VERSION +EOF + ;; +esac |