makefiledir/Makefile.libdetection
author bjarni
Thu, 23 Mar 2006 23:54:43 +0000
changeset 3311 56c1c502ff6d
parent 3308 287d8e862ddf
child 3313 767d77394c61
permissions -rw-r--r--
(svn r4074) -Feature: [Makefile] the makefile can now detect if iconv is present in the system
if detected, WITH_ICONV will be defined in the C code
WITH_ICONV is also added to Makefile.config
OSX do not use this flag setting in Makefile.config, as it is set at compile time based on target OS version
the actual C code is not changed as the current iconv code is hardcoded for OSX and would break if any other OS got iconv
This detection system is by request of Darkvater
543
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
     1
# this file detects what OS and libs the computer have/are running
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
     2
3083
80fd38645e84 (svn r3672) -Fix: [makefile] fixed bug where some settings where overwritten with the default ones when MAKEFILE_VERSION was changed
bjarni
parents: 2736
diff changeset
     3
ifndef CONFIG_VERSION
80fd38645e84 (svn r3672) -Fix: [makefile] fixed bug where some settings where overwritten with the default ones when MAKEFILE_VERSION was changed
bjarni
parents: 2736
diff changeset
     4
CONFIG_VERSION:=0
80fd38645e84 (svn r3672) -Fix: [makefile] fixed bug where some settings where overwritten with the default ones when MAKEFILE_VERSION was changed
bjarni
parents: 2736
diff changeset
     5
endif
80fd38645e84 (svn r3672) -Fix: [makefile] fixed bug where some settings where overwritten with the default ones when MAKEFILE_VERSION was changed
bjarni
parents: 2736
diff changeset
     6
80fd38645e84 (svn r3672) -Fix: [makefile] fixed bug where some settings where overwritten with the default ones when MAKEFILE_VERSION was changed
bjarni
parents: 2736
diff changeset
     7
ifeq ($(shell expr $(CONFIG_VERSION) \< 9), 1)
80fd38645e84 (svn r3672) -Fix: [makefile] fixed bug where some settings where overwritten with the default ones when MAKEFILE_VERSION was changed
bjarni
parents: 2736
diff changeset
     8
3197
95255bcc2e23 (svn r3864) -Fix: small problems with make-system, making room for a wrapper-configure
truelight
parents: 3083
diff changeset
     9
ifndef BYPASS_OS_DETECT
95255bcc2e23 (svn r3864) -Fix: small problems with make-system, making room for a wrapper-configure
truelight
parents: 3083
diff changeset
    10
543
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    11
# Automatically recognize if building on Win32
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    12
ifdef WINDIR
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    13
ifndef UNIX
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    14
WIN32:=1
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    15
CYGWIN:=1
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    16
MINGW:=1
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    17
STATIC:=1
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    18
SKIP_STATIC_CHECK:=1
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    19
endif
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    20
else
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    21
UNIX:=1
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    22
endif
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    23
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    24
# Automatically recognize if building on FreeBSD
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    25
ifeq ($(shell uname),FreeBSD)
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    26
FREEBSD:=1
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    27
endif
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    28
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    29
# Automatically recognize if building on MacOSX
2000
56bcd637009d (svn r2506) - Fix: [OSX, makefile] The makefile can now also see OSX 10.4 as OSX
bjarni
parents: 1955
diff changeset
    30
ifeq ($(shell uname), Darwin)
543
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    31
OSX:=1
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    32
# OSX uses the unix setup too
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    33
UNIX:=1
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    34
endif
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    35
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    36
# Automatically recognize if building on MorphOS
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    37
ifeq ($(shell uname), MorphOS)
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    38
MORPHOS:=1
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    39
# MorphOS uses UNIX setup too
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    40
UNIX:=1
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    41
endif
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    42
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    43
# Automatically recognize if building on BeOS
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    44
ifeq ($(shell uname), BeOS)
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    45
BEOS:=1
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    46
# BeOS uses UNIX setup too
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    47
UNIX:=1
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    48
# Except that in BeOS 5.0 we need to use net_server, not BONE networking
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    49
ifeq ($(shell uname -r), 5.0)
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    50
BEOS_NET_SERVER:=1
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    51
endif
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    52
endif
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    53
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    54
# Automatically recognize if building on SunOS/Solaris
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    55
ifeq ($(shell uname), SunOS)
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    56
SUNOS:=1
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    57
# SunOS uses UNIX setup too
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    58
UNIX:=1
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    59
endif
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    60
3197
95255bcc2e23 (svn r3864) -Fix: small problems with make-system, making room for a wrapper-configure
truelight
parents: 3083
diff changeset
    61
# END BYPASS_OS_DETECT
95255bcc2e23 (svn r3864) -Fix: small problems with make-system, making room for a wrapper-configure
truelight
parents: 3083
diff changeset
    62
endif
95255bcc2e23 (svn r3864) -Fix: small problems with make-system, making room for a wrapper-configure
truelight
parents: 3083
diff changeset
    63
543
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    64
# FreeBSD uses sdl11 instead of sdl
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    65
ifdef FREEBSD
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    66
SDL-CONFIG:=sdl11-config
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    67
else
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    68
SDL-CONFIG:=sdl-config
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    69
endif
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    70
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    71
# Networking, enabled by default
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    72
WITH_NETWORK:=1
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    73
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    74
# Library detections
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    75
WITH_SDL:=$(shell $(SDL-CONFIG) --version 2>/dev/null)
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    76
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    77
# libpng detection
1955
52a84e880864 (svn r2461) -Feature [Makefile] libpng-config can now be called something else in Makefile.config
bjarni
parents: 1823
diff changeset
    78
WITH_PNG:=$(shell $(LIBPNG-CONFIG) --version 2>/dev/null)
543
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    79
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    80
ifdef WITH_PNG
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    81
# LibPNG depends on Zlib
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    82
WITH_ZLIB:=1
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    83
else
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    84
# We go looking for zlib with a little hack
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    85
WITH_ZLIB:=$(shell ls /usr/include | grep "zlib.h" 2>/dev/null) \
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    86
$(shell ls /usr/local/include | grep "zlib.h" 2>/dev/null)
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    87
ifdef WITH_ZLIB
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    88
WITH_ZLIB:=1
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    89
endif
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    90
endif
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    91
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    92
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    93
# sets the default paths
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    94
ifdef UNIX
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    95
ifndef OSX
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    96
ifndef MORPHOS
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    97
ifndef BIN_DIR
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    98
#BINARY_DIR:=
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    99
#DATA_DIR_PREFIX:=
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
   100
#INSTALL_DIR:=/usr/local/
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
   101
#USE_HOMEDIR:=
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
   102
endif
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
   103
endif
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
   104
endif
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
   105
endif
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
   106
2736
1ea068235989 (svn r3281) -Feature: [OSX] added native cocoa sound and video drivers (egladil)
bjarni
parents: 2688
diff changeset
   107
ifdef OSX
1ea068235989 (svn r3281) -Feature: [OSX] added native cocoa sound and video drivers (egladil)
bjarni
parents: 2688
diff changeset
   108
# we prefer to use cocoa drivers rather than SDL drivers
1ea068235989 (svn r3281) -Feature: [OSX] added native cocoa sound and video drivers (egladil)
bjarni
parents: 2688
diff changeset
   109
# if you really want SDL drivers, you can always modify Makefile.config
3308
287d8e862ddf (svn r4070) -Fix: on OSX COCOA was set by default, even with DEDICATED, while those 2 conflict
truelight
parents: 3197
diff changeset
   110
ifndef DEDICATED
2736
1ea068235989 (svn r3281) -Feature: [OSX] added native cocoa sound and video drivers (egladil)
bjarni
parents: 2688
diff changeset
   111
WITH_COCOA:=1
1ea068235989 (svn r3281) -Feature: [OSX] added native cocoa sound and video drivers (egladil)
bjarni
parents: 2688
diff changeset
   112
WITH_SDL:=
1ea068235989 (svn r3281) -Feature: [OSX] added native cocoa sound and video drivers (egladil)
bjarni
parents: 2688
diff changeset
   113
endif
3308
287d8e862ddf (svn r4070) -Fix: on OSX COCOA was set by default, even with DEDICATED, while those 2 conflict
truelight
parents: 3197
diff changeset
   114
endif
2736
1ea068235989 (svn r3281) -Feature: [OSX] added native cocoa sound and video drivers (egladil)
bjarni
parents: 2688
diff changeset
   115
1ea068235989 (svn r3281) -Feature: [OSX] added native cocoa sound and video drivers (egladil)
bjarni
parents: 2688
diff changeset
   116
543
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
   117
# workaround
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
   118
# cygwin have problems with libpng, so we will just disable it for now until the problem is solved
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
   119
ifdef CYGWIN
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
   120
WITH_PNG:=
e3b43338096b (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
   121
endif
3083
80fd38645e84 (svn r3672) -Fix: [makefile] fixed bug where some settings where overwritten with the default ones when MAKEFILE_VERSION was changed
bjarni
parents: 2736
diff changeset
   122
80fd38645e84 (svn r3672) -Fix: [makefile] fixed bug where some settings where overwritten with the default ones when MAKEFILE_VERSION was changed
bjarni
parents: 2736
diff changeset
   123
endif
3311
56c1c502ff6d (svn r4074) -Feature: [Makefile] the makefile can now detect if iconv is present in the system
bjarni
parents: 3308
diff changeset
   124
56c1c502ff6d (svn r4074) -Feature: [Makefile] the makefile can now detect if iconv is present in the system
bjarni
parents: 3308
diff changeset
   125
ifeq ($(shell expr $(CONFIG_VERSION) \< 10), 1)
56c1c502ff6d (svn r4074) -Feature: [Makefile] the makefile can now detect if iconv is present in the system
bjarni
parents: 3308
diff changeset
   126
# we need to test if iconv is present on the current system
56c1c502ff6d (svn r4074) -Feature: [Makefile] the makefile can now detect if iconv is present in the system
bjarni
parents: 3308
diff changeset
   127
# even though we test on OSX, the read data is actually not used since it relies on target OS and this flag will be overwritten later
56c1c502ff6d (svn r4074) -Feature: [Makefile] the makefile can now detect if iconv is present in the system
bjarni
parents: 3308
diff changeset
   128
56c1c502ff6d (svn r4074) -Feature: [Makefile] the makefile can now detect if iconv is present in the system
bjarni
parents: 3308
diff changeset
   129
$(shell $(CC) -liconv -o makefiledir/iconv_detector makefiledir/iconv_detector.c 2>/dev/null)
56c1c502ff6d (svn r4074) -Feature: [Makefile] the makefile can now detect if iconv is present in the system
bjarni
parents: 3308
diff changeset
   130
WITH_ICONV:=$(shell makefiledir/iconv_detector 2>/dev/null)
56c1c502ff6d (svn r4074) -Feature: [Makefile] the makefile can now detect if iconv is present in the system
bjarni
parents: 3308
diff changeset
   131
$(shell rm makefiledir/iconv_detector 2>/dev/null)
56c1c502ff6d (svn r4074) -Feature: [Makefile] the makefile can now detect if iconv is present in the system
bjarni
parents: 3308
diff changeset
   132
endif