makefiledir/Makefile.libdetection
author bjarni
Thu, 23 Mar 2006 23:54:43 +0000
changeset 3311 138e38fa6fda
parent 3308 94df0004ebf1
child 3313 735b30b93dc2
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
946badd71033 (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
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
     2
3083
8afc31558162 (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
8afc31558162 (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
8afc31558162 (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
8afc31558162 (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
8afc31558162 (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)
8afc31558162 (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
078a10118842 (svn r3864) -Fix: small problems with make-system, making room for a wrapper-configure
truelight
parents: 3083
diff changeset
     9
ifndef BYPASS_OS_DETECT
078a10118842 (svn r3864) -Fix: small problems with make-system, making room for a wrapper-configure
truelight
parents: 3083
diff changeset
    10
543
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    11
# Automatically recognize if building on Win32
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    12
ifdef WINDIR
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    13
ifndef UNIX
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    14
WIN32:=1
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    15
CYGWIN:=1
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    16
MINGW:=1
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    17
STATIC:=1
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    18
SKIP_STATIC_CHECK:=1
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    19
endif
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    20
else
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    21
UNIX:=1
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    22
endif
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    23
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    24
# Automatically recognize if building on FreeBSD
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    25
ifeq ($(shell uname),FreeBSD)
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    26
FREEBSD:=1
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    27
endif
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    28
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    29
# Automatically recognize if building on MacOSX
2000
0742fdd448e3 (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
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    31
OSX:=1
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    32
# OSX uses the unix setup too
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    33
UNIX:=1
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    34
endif
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    35
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    36
# Automatically recognize if building on MorphOS
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    37
ifeq ($(shell uname), MorphOS)
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    38
MORPHOS:=1
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    39
# MorphOS uses UNIX setup too
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    40
UNIX:=1
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    41
endif
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    42
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    43
# Automatically recognize if building on BeOS
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    44
ifeq ($(shell uname), BeOS)
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    45
BEOS:=1
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    46
# BeOS uses UNIX setup too
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    47
UNIX:=1
946badd71033 (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
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    49
ifeq ($(shell uname -r), 5.0)
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    50
BEOS_NET_SERVER:=1
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    51
endif
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    52
endif
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    53
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    54
# Automatically recognize if building on SunOS/Solaris
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    55
ifeq ($(shell uname), SunOS)
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    56
SUNOS:=1
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    57
# SunOS uses UNIX setup too
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    58
UNIX:=1
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    59
endif
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    60
3197
078a10118842 (svn r3864) -Fix: small problems with make-system, making room for a wrapper-configure
truelight
parents: 3083
diff changeset
    61
# END BYPASS_OS_DETECT
078a10118842 (svn r3864) -Fix: small problems with make-system, making room for a wrapper-configure
truelight
parents: 3083
diff changeset
    62
endif
078a10118842 (svn r3864) -Fix: small problems with make-system, making room for a wrapper-configure
truelight
parents: 3083
diff changeset
    63
543
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    64
# FreeBSD uses sdl11 instead of sdl
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    65
ifdef FREEBSD
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    66
SDL-CONFIG:=sdl11-config
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    67
else
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    68
SDL-CONFIG:=sdl-config
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    69
endif
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    70
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    71
# Networking, enabled by default
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    72
WITH_NETWORK:=1
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    73
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    74
# Library detections
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    75
WITH_SDL:=$(shell $(SDL-CONFIG) --version 2>/dev/null)
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    76
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    77
# libpng detection
1955
793bb2e9f1d3 (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
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    79
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    80
ifdef WITH_PNG
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    81
# LibPNG depends on Zlib
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    82
WITH_ZLIB:=1
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    83
else
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    84
# We go looking for zlib with a little hack
946badd71033 (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) \
946badd71033 (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)
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    87
ifdef WITH_ZLIB
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    88
WITH_ZLIB:=1
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    89
endif
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    90
endif
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    91
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    92
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    93
# sets the default paths
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    94
ifdef UNIX
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    95
ifndef OSX
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    96
ifndef MORPHOS
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    97
ifndef BIN_DIR
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    98
#BINARY_DIR:=
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
    99
#DATA_DIR_PREFIX:=
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
   100
#INSTALL_DIR:=/usr/local/
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
   101
#USE_HOMEDIR:=
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
   102
endif
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
   103
endif
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
   104
endif
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
   105
endif
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
   106
2736
3d6487cbbb69 (svn r3281) -Feature: [OSX] added native cocoa sound and video drivers (egladil)
bjarni
parents: 2688
diff changeset
   107
ifdef OSX
3d6487cbbb69 (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
3d6487cbbb69 (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
94df0004ebf1 (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
3d6487cbbb69 (svn r3281) -Feature: [OSX] added native cocoa sound and video drivers (egladil)
bjarni
parents: 2688
diff changeset
   111
WITH_COCOA:=1
3d6487cbbb69 (svn r3281) -Feature: [OSX] added native cocoa sound and video drivers (egladil)
bjarni
parents: 2688
diff changeset
   112
WITH_SDL:=
3d6487cbbb69 (svn r3281) -Feature: [OSX] added native cocoa sound and video drivers (egladil)
bjarni
parents: 2688
diff changeset
   113
endif
3308
94df0004ebf1 (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
3d6487cbbb69 (svn r3281) -Feature: [OSX] added native cocoa sound and video drivers (egladil)
bjarni
parents: 2688
diff changeset
   115
3d6487cbbb69 (svn r3281) -Feature: [OSX] added native cocoa sound and video drivers (egladil)
bjarni
parents: 2688
diff changeset
   116
543
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
   117
# workaround
946badd71033 (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
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
   119
ifdef CYGWIN
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
   120
WITH_PNG:=
946badd71033 (svn r942) -Merged branch/network back into the trunk
truelight
parents: 528
diff changeset
   121
endif
3083
8afc31558162 (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
8afc31558162 (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
138e38fa6fda (svn r4074) -Feature: [Makefile] the makefile can now detect if iconv is present in the system
bjarni
parents: 3308
diff changeset
   124
138e38fa6fda (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)
138e38fa6fda (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
138e38fa6fda (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
138e38fa6fda (svn r4074) -Feature: [Makefile] the makefile can now detect if iconv is present in the system
bjarni
parents: 3308
diff changeset
   128
138e38fa6fda (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)
138e38fa6fda (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)
138e38fa6fda (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)
138e38fa6fda (svn r4074) -Feature: [Makefile] the makefile can now detect if iconv is present in the system
bjarni
parents: 3308
diff changeset
   132
endif