Home | History | Annotate | Download | only in m4
      1 # ===========================================================================
      2 #       http://
      3 # ===========================================================================
      4 #
      5 # SYNOPSIS
      6 #
      7 #   AX_PLATFORM
      8 #
      9 # DESCRIPTION
     10 #
     11 #   Provide target and host defines.
     12 #
     13 # LICENSE
     14 #
     15 #   Copyright (c) 2012 Brian Aker <brian (a] tangent.org>
     16 #   Copyleft  () 2013 Jacob Appelbaum <jacob (a] appelbaum.net>
     17 #
     18 #   Copying and distribution of this file, with or without modification, are
     19 #   permitted in any medium without royalty provided the copyright notice
     20 #   and this notice are preserved. This file is offered as-is, without any
     21 #   warranty.
     22 
     23 #serial 1
     24   AC_DEFUN([AX_PLATFORM],
     25       [AC_REQUIRE([AC_CANONICAL_HOST])
     26       AC_REQUIRE([AC_CANONICAL_TARGET])
     27 
     28       AC_DEFINE_UNQUOTED([HOST_VENDOR],["$host_vendor"],[Vendor of Build System])
     29       AC_DEFINE_UNQUOTED([HOST_OS],["$host_os"], [OS of Build System])
     30       AC_DEFINE_UNQUOTED([HOST_CPU],["$host_cpu"], [CPU of Build System])
     31 
     32       AC_DEFINE_UNQUOTED([TARGET_VENDOR],["$target_vendor"],[Vendor of Target System])
     33       AC_DEFINE_UNQUOTED([TARGET_OS],["$target_os"], [OS of Target System])
     34       AC_DEFINE_UNQUOTED([TARGET_CPU],["$target_cpu"], [CPU of Target System])
     35 
     36       AS_CASE([$target_os],
     37         [*mingw32*],
     38         [TARGET_OS_WINDOWS="true"
     39         AC_DEFINE([TARGET_OS_WINDOWS], [1], [Whether we are building for Windows])
     40         AC_DEFINE([WINVER], [WindowsXP], [Version of Windows])
     41         AC_DEFINE([_WIN32_WINNT], [0x0501], [Magical number to make things work])
     42         AC_DEFINE([EAI_SYSTEM], [11], [Another magical number])
     43         AH_BOTTOM([
     44 #ifndef HAVE_SYS_SOCKET_H
     45 # define SHUT_RD SD_RECEIVE
     46 # define SHUT_WR SD_SEND
     47 # define SHUT_RDWR SD_BOTH
     48 #endif
     49           ])],
     50         [*mingw*],
     51         [TARGET_OS_MINGW="true"
     52         AC_DEFINE([TARGET_OS_MINGW],[1],[Whether we build for MinGW])],
     53         [*cygwin*],
     54         [TARGET_OS_CYGWIN="true"
     55         AC_DEFINE([TARGET_OS_CYGWIN],[1],[Whether we build for Cygwin])],
     56         [*haiku*],
     57         [TARGET_OS_HAIKU="true"
     58         AC_DEFINE([TARGET_OS_HAIKU],[1],[Whether we build for Haiku])],
     59         [*freebsd*],
     60         [TARGET_OS_FREEBSD="true"
     61         AC_DEFINE([TARGET_OS_FREEBSD],[1],[Whether we are building for FreeBSD])],
     62         [*kfreebsd*-gnu],
     63         [TARGET_OS_GNUKFREEBSD="true"
     64         TARGET_OS_FREEBSD="true"
     65         AC_DEFINE([TARGET_OS_FREEBSD],[1],[Whether we are building for FreeBSD])
     66         AC_DEFINE([TARGET_OS_GNUKFREEBSD],[1],[Whether we are building for GNU/kFreeBSD])],
     67         [*netbsd*],
     68         [TARGET_OS_NETBSD="true"
     69         AC_DEFINE([TARGET_OS_NETBSD],[1],[Whether we are building for NetBSD])],
     70         [*openbsd*],
     71         [TARGET_OS_OPENBSD="true"
     72         AC_DEFINE([TARGET_OS_OPENBSD],[1],[Whether we are building for OpenBSD])],
     73         [*dragonfly*],
     74         [TARGET_OS_DRAGONFLYBSD="true"
     75         AC_DEFINE([TARGET_OS_DRAGONFLYBSD],[1],[Whether we are building for DragonFly BSD])],
     76         [*bsd*],
     77         [TARGET_OS_BSD="true"
     78         AC_DEFINE([TARGET_OS_BSD],[1],[Whether we are building for some other *BSD])],
     79         [*solaris*],[AC_DEFINE([TARGET_OS_SOLARIS],[1],[Whether we are building for Solaris])],
     80         [*darwin*],
     81         [TARGET_OS_OSX="true"
     82         AC_DEFINE([TARGET_OS_OSX],[1],[Whether we build for OSX])],
     83         [*linux*],
     84         [TARGET_OS_LINUX="true"
     85         AC_DEFINE([TARGET_OS_LINUX],[1],[Whether we build for Linux])],
     86         [*gnu*],
     87         [TARGET_OS_GNUHURD="true"
     88         AC_DEFINE([TARGET_OS_GNUHURD],[1],[Whether we build for GNU/Hurd])])
     89 
     90   AM_CONDITIONAL([TARGET_WIN32],[test "x${TARGET_OS_WINDOWS}" = "xtrue"])
     91   AM_CONDITIONAL([TARGET_MINGW],[test "x${TARGET_OS_MINGW}" = "xtrue"])
     92   AM_CONDITIONAL([TARGET_CYGWIN],[test "x${TARGET_OS_CYGWIN}" = "xtrue"])
     93   AM_CONDITIONAL([TARGET_HAIKU],[test "x${TARGET_OS_HAIKU}" = "xtrue"])
     94   AM_CONDITIONAL([TARGET_OSX],[test "x${TARGET_OS_OSX}" = "xtrue"])
     95   AM_CONDITIONAL([TARGET_GNUHURD],[test "x${TARGET_OS_GNUHURD}" = "xtrue"])
     96   AM_CONDITIONAL([TARGET_LINUX],[test "x${TARGET_OS_LINUX}" = "xtrue"])
     97   AM_CONDITIONAL([TARGET_FREEBSD],[test "x${TARGET_OS_FREEBSD}" = "xtrue"])
     98   AM_CONDITIONAL([TARGET_GNUKFREEBSD],[test "x${TARGET_OS_GNUKFREEBSD}" = "xtrue"])
     99   AM_CONDITIONAL([TARGET_NETBSD],[test "x${TARGET_OS_NETBSD}" = "xtrue"])
    100   AM_CONDITIONAL([TARGET_OPENBSD],[test "x${TARGET_OS_OPENBSD}" = "xtrue"])
    101   AM_CONDITIONAL([TARGET_DRAGONFLYBSD],[test "x${TARGET_OS_DRAGONFLYBSD}" = "xtrue"])
    102   AM_CONDITIONAL([TARGET_BSD],[test "x${TARGET_OS_BSD}" = "xtrue"])
    103   ])
    104