2010-12-19 22:29:01 +00:00
2014-07-22 11:19:25 +00:00
# OS package maintainers: Please try invoking make with PACKAGE_REPOSITORY=1 to see if that meets your needs before patching out our optimizations entirely.
PACKAGE_REPOSITORY ?= 0
2017-06-09 06:38:42 +00:00
# Are we running from synthesis?
SYNTHESIS ?= 0
##### Detect platform
i f n d e f H O S T P L A T F O R M
HOSTPLATFORM = UNKNOWN
ifeq ( $( findstring Windows,$( OS) ) ,Windows)
HOSTPLATFORM = WINDOWS
else
uname:= $( strip $( shell uname -s) )
ifeq ( $( findstring Linux,$( uname) ) ,Linux)
HOSTPLATFORM = LINUX
else ifeq ( $( findstring BSD,$( uname) ) ,BSD)
HOSTPLATFORM = BSD
else ifeq ( $( findstring MINGW,$( uname) ) ,MINGW)
HOSTPLATFORM = WINDOWS
else ifeq ( $( findstring MSYS,$( uname) ) ,MSYS)
HOSTPLATFORM = WINDOWS
else ifeq ( $( findstring Darwin,$( uname) ) ,Darwin)
HOSTPLATFORM = DARWIN
else ifeq ( $( findstring BeOS,$( uname) ) ,BeOS)
HOSTPLATFORM = BEOS
else ifeq ( $( findstring skyos,$( uname) ) ,skyos)
HOSTPLATFORM = SKYOS
else ifeq ( $( findstring QNX,$( uname) ) ,QNX)
HOSTPLATFORM = QNX
else ifeq ( $( findstring SunOS,$( uname) ) ,SunOS)
HOSTPLATFORM = SUNOS
else ifeq ( $( findstring syllable,$( uname) ) ,syllable)
HOSTPLATFORM = SYLLABLE
endif
endif
e n d i f
i f n d e f P L A T F O R M
PLATFORM = $( HOSTPLATFORM)
e n d i f
i f n d e f S U B P L A T F O R M
SUBPLATFORM =
ifeq ( $( PLATFORM) ,$( filter $( PLATFORM) ,LINUX DINGOO GCW CAANOO) )
SUBPLATFORM = LINUX
endif
e n d i f
i f e q ( $( HOSTPLATFORM ) , D A R W I N )
DARWINVERSION:= $( strip $( shell uname -r | cut -d . -f 1) )
DARWIN9 ?= 0
DARWIN10 ?= 0
ifeq ( 1,$( strip $( shell expr $( DARWINVERSION) \< 10) ) )
override DARWIN9 := 1
endif
ifeq ( 1,$( strip $( shell expr $( DARWINVERSION) \< 11) ) )
override DARWIN10 := 1
endif
e n d i f
##### Makefile meta-settings
2011-02-12 13:25:24 +00:00
PRETTY_OUTPUT ?= 1
2010-12-19 22:29:01 +00:00
2017-06-09 06:38:42 +00:00
NULLSTREAM = /dev/null
DONT_PRINT = > $( NULLSTREAM) 2>& 1
DONT_PRINT_STDERR = 2> $( NULLSTREAM)
DONT_FAIL = ; exit 0
i f e q ( $( HOSTPLATFORM ) , W I N D O W S )
# MSYS2 lets you create files named NUL but has a /dev/null. Go figure.
ifeq ( ,$( wildcard /dev/null) )
NULLSTREAM = NUL
endif
e n d i f
##### Toolchain setup
2013-07-20 03:36:54 +00:00
CROSS =
2017-03-22 15:46:01 +00:00
CROSS_SUFFIX =
i f n e q ( $( CROSS ) $( CROSS_SUFFIX ) , )
2014-07-22 11:19:25 +00:00
undefine CC
undefine CXX
undefine AR
undefine RC
undefine RANLIB
undefine STRIP
e n d i f
2017-03-22 15:46:01 +00:00
CC = $( CROSS) gcc$( CROSS_SUFFIX)
CXX = $( CROSS) g++$( CROSS_SUFFIX)
2017-06-09 06:38:42 +00:00
COBJC = $( CC) -x objective-c
COBJCXX = $( CXX) -x objective-c++
L_CC = $( CC)
L_CXX = $( CXX)
2017-03-22 15:46:01 +00:00
AR = $( CROSS) ar$( CROSS_SUFFIX)
RC = $( CROSS) windres$( CROSS_SUFFIX)
RANLIB = $( CROSS) ranlib$( CROSS_SUFFIX)
STRIP = $( CROSS) strip$( CROSS_SUFFIX)
2017-06-09 06:38:42 +00:00
2014-10-19 00:44:23 +00:00
AS = nasm
2017-06-09 06:38:42 +00:00
# LuaJIT standalone interpreter executable:
LUAJIT = luajit$( EXESUFFIX)
2014-10-19 00:44:23 +00:00
PKG_CONFIG = pkg-config
2014-07-22 11:19:25 +00:00
2017-06-09 06:38:42 +00:00
ELF2DOL = elf2dol
2014-12-09 23:56:31 +00:00
2014-07-22 11:19:25 +00:00
# Override defaults that absolutely will not work.
i f e q ( $( CC ) , c c )
override CC = gcc
e n d i f
i f e q ( $( AS ) , a s )
override AS = nasm
e n d i f
2012-10-29 04:26:25 +00:00
2014-07-22 07:25:54 +00:00
CCFULLPATH = $( CC)
Win64 support! (Meaning it works, not that we recommend it for everyday use.)
This includes a complete Windows header and library refresh, including the addition of 64-bit compiled libs:
*libogg 1.3.0
*libvorbis 1.3.3
*zlib 1.2.7
*libpng 1.5.13
*libvpx 9a3de881c0e681ba1a79a166a86308bbc84b4acd
*SDL_mixer 1.2.12 (for RENDERTYPE=SDL)
*DirectX import libraries: dsound and dxguid (now included)
To build in 64-bit, you essentially need MinGW's MSYS (but not MinGW itself) and MinGW-w64 at the top of your PATH. The target is automatically detected using `$(CC) -dumpmachine`. The EDukeWiki will get detailed instrucitons.
All compiler and linker warnings when building in 64-bit mode have been fixed.
Remaining 64-bit to-do:
- The ebacktrace dll does not build under 64-bit. It uses code specific to the format of 32-bit executables and will have to be ported to work with 64-bit executables. A future 64-bit version will be named ebacktrace1-64.dll.
- RENDERTYPE=SDL crashes in SDL_mixer's Mix_Linked_Version().
- DirectInput gives an error and does not function. This only affects joysticks, and the error never happens without any plugged in.
- Port the classic renderer ASM to 64-bit. (Just kidding, this is way out of my league.)
This commit includes a fair bit of Makefile development spanning all platforms, including simplifying the SDLCONFIG code, fixing build on Mac OS X (thanks rhoenie!), globally factoring Apple brew/port inclusion, enforcing that all -L come before all -l, and ensuring that $(shell ) is always :='d.
In addition, I have resurrected the old GCC_MAJOR and GCC_MINOR detection using `$(CC) -dumpversion`, but I have made it failsafe in case the command fails or the version is manually specified. I have applied this new fine-grained detection where applicable, including allowing LTO, and restraining -W's to versions that support them.
git-svn-id: https://svn.eduke32.com/eduke32@3278 1a8010ca-5511-0410-912e-c29ae57300e0
2012-12-13 02:37:20 +00:00
i f e q ( $( PLATFORM ) , W I I )
ifeq ( $( strip $( DEVKITPPC) ) ,)
$( error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC" )
endif
include $( DEVKITPPC) /wii_rules
2014-07-22 07:25:54 +00:00
CCFULLPATH = $( DEVKITPPC) /bin/$( CC)
2014-10-19 00:44:23 +00:00
CROSS = powerpc-eabi-
Win64 support! (Meaning it works, not that we recommend it for everyday use.)
This includes a complete Windows header and library refresh, including the addition of 64-bit compiled libs:
*libogg 1.3.0
*libvorbis 1.3.3
*zlib 1.2.7
*libpng 1.5.13
*libvpx 9a3de881c0e681ba1a79a166a86308bbc84b4acd
*SDL_mixer 1.2.12 (for RENDERTYPE=SDL)
*DirectX import libraries: dsound and dxguid (now included)
To build in 64-bit, you essentially need MinGW's MSYS (but not MinGW itself) and MinGW-w64 at the top of your PATH. The target is automatically detected using `$(CC) -dumpmachine`. The EDukeWiki will get detailed instrucitons.
All compiler and linker warnings when building in 64-bit mode have been fixed.
Remaining 64-bit to-do:
- The ebacktrace dll does not build under 64-bit. It uses code specific to the format of 32-bit executables and will have to be ported to work with 64-bit executables. A future 64-bit version will be named ebacktrace1-64.dll.
- RENDERTYPE=SDL crashes in SDL_mixer's Mix_Linked_Version().
- DirectInput gives an error and does not function. This only affects joysticks, and the error never happens without any plugged in.
- Port the classic renderer ASM to 64-bit. (Just kidding, this is way out of my league.)
This commit includes a fair bit of Makefile development spanning all platforms, including simplifying the SDLCONFIG code, fixing build on Mac OS X (thanks rhoenie!), globally factoring Apple brew/port inclusion, enforcing that all -L come before all -l, and ensuring that $(shell ) is always :='d.
In addition, I have resurrected the old GCC_MAJOR and GCC_MINOR detection using `$(CC) -dumpversion`, but I have made it failsafe in case the command fails or the version is manually specified. I have applied this new fine-grained detection where applicable, including allowing LTO, and restraining -W's to versions that support them.
git-svn-id: https://svn.eduke32.com/eduke32@3278 1a8010ca-5511-0410-912e-c29ae57300e0
2012-12-13 02:37:20 +00:00
RANLIB = powerpc-eabi-ranlib
STRIP = powerpc-eabi-strip
e n d i f
2017-06-09 06:38:42 +00:00
i f e q ( $( PLATFORM ) , $( filter $ ( PLATFORM ) ,DINGOO GCW ) )
CROSS = mipsel-linux-
e n d i f
2014-10-16 21:03:24 +00:00
2017-06-09 06:38:42 +00:00
CLANG ?= 0
2017-03-23 20:47:11 +00:00
i f e q ( $( findstring clang ,$ ( CC ) $ ( MAKECMDGOALS ) ) , c l a n g )
2014-10-16 21:03:24 +00:00
override CLANG = 1
2016-09-16 21:55:42 +00:00
CLANGNAME:= $( CC)
e l s e
CLANGNAME:= clang
2014-10-16 21:03:24 +00:00
e n d i f
# detect clang symlinked as gcc, as in OS X
2017-06-09 06:38:42 +00:00
CLANG_POTENTIAL_VERSION := $( shell $( CCFULLPATH) --version)
2014-10-16 21:03:24 +00:00
i f e q ( $( findstring clang ,$ ( CLANG_POTENTIAL_VERSION ) ) , c l a n g )
override CLANG = 1
e n d i f
i f n e q ( 0 , $( CLANG ) )
2017-03-22 15:46:04 +00:00
CLANGXXNAME:= $( subst clang,clang++,$( CLANGNAME) )
2016-09-16 21:55:42 +00:00
override CC = $( CLANGNAME) -x c
2017-03-22 15:46:04 +00:00
override CXX = $( CLANGXXNAME) -x c++
2016-09-16 21:55:42 +00:00
override COBJC = $( CLANGNAME) -x objective-c
2017-03-22 15:46:04 +00:00
override COBJCXX = $( CLANGXXNAME) -x objective-c++
2016-09-16 21:55:42 +00:00
override L_CC = $( CLANGNAME)
2017-03-22 15:46:04 +00:00
override L_CXX = $( CLANGXXNAME)
2014-10-16 21:03:24 +00:00
e n d i f
Win64 support! (Meaning it works, not that we recommend it for everyday use.)
This includes a complete Windows header and library refresh, including the addition of 64-bit compiled libs:
*libogg 1.3.0
*libvorbis 1.3.3
*zlib 1.2.7
*libpng 1.5.13
*libvpx 9a3de881c0e681ba1a79a166a86308bbc84b4acd
*SDL_mixer 1.2.12 (for RENDERTYPE=SDL)
*DirectX import libraries: dsound and dxguid (now included)
To build in 64-bit, you essentially need MinGW's MSYS (but not MinGW itself) and MinGW-w64 at the top of your PATH. The target is automatically detected using `$(CC) -dumpmachine`. The EDukeWiki will get detailed instrucitons.
All compiler and linker warnings when building in 64-bit mode have been fixed.
Remaining 64-bit to-do:
- The ebacktrace dll does not build under 64-bit. It uses code specific to the format of 32-bit executables and will have to be ported to work with 64-bit executables. A future 64-bit version will be named ebacktrace1-64.dll.
- RENDERTYPE=SDL crashes in SDL_mixer's Mix_Linked_Version().
- DirectInput gives an error and does not function. This only affects joysticks, and the error never happens without any plugged in.
- Port the classic renderer ASM to 64-bit. (Just kidding, this is way out of my league.)
This commit includes a fair bit of Makefile development spanning all platforms, including simplifying the SDLCONFIG code, fixing build on Mac OS X (thanks rhoenie!), globally factoring Apple brew/port inclusion, enforcing that all -L come before all -l, and ensuring that $(shell ) is always :='d.
In addition, I have resurrected the old GCC_MAJOR and GCC_MINOR detection using `$(CC) -dumpversion`, but I have made it failsafe in case the command fails or the version is manually specified. I have applied this new fine-grained detection where applicable, including allowing LTO, and restraining -W's to versions that support them.
git-svn-id: https://svn.eduke32.com/eduke32@3278 1a8010ca-5511-0410-912e-c29ae57300e0
2012-12-13 02:37:20 +00:00
i f n d e f G C C _ M A J O R
2017-06-09 06:38:42 +00:00
ifeq ( 0,$( CLANG) )
GCC_MAJOR := $( shell $( CCFULLPATH) -dumpversion 2>& 1 | cut -d'.' -f1)
endif
Win64 support! (Meaning it works, not that we recommend it for everyday use.)
This includes a complete Windows header and library refresh, including the addition of 64-bit compiled libs:
*libogg 1.3.0
*libvorbis 1.3.3
*zlib 1.2.7
*libpng 1.5.13
*libvpx 9a3de881c0e681ba1a79a166a86308bbc84b4acd
*SDL_mixer 1.2.12 (for RENDERTYPE=SDL)
*DirectX import libraries: dsound and dxguid (now included)
To build in 64-bit, you essentially need MinGW's MSYS (but not MinGW itself) and MinGW-w64 at the top of your PATH. The target is automatically detected using `$(CC) -dumpmachine`. The EDukeWiki will get detailed instrucitons.
All compiler and linker warnings when building in 64-bit mode have been fixed.
Remaining 64-bit to-do:
- The ebacktrace dll does not build under 64-bit. It uses code specific to the format of 32-bit executables and will have to be ported to work with 64-bit executables. A future 64-bit version will be named ebacktrace1-64.dll.
- RENDERTYPE=SDL crashes in SDL_mixer's Mix_Linked_Version().
- DirectInput gives an error and does not function. This only affects joysticks, and the error never happens without any plugged in.
- Port the classic renderer ASM to 64-bit. (Just kidding, this is way out of my league.)
This commit includes a fair bit of Makefile development spanning all platforms, including simplifying the SDLCONFIG code, fixing build on Mac OS X (thanks rhoenie!), globally factoring Apple brew/port inclusion, enforcing that all -L come before all -l, and ensuring that $(shell ) is always :='d.
In addition, I have resurrected the old GCC_MAJOR and GCC_MINOR detection using `$(CC) -dumpversion`, but I have made it failsafe in case the command fails or the version is manually specified. I have applied this new fine-grained detection where applicable, including allowing LTO, and restraining -W's to versions that support them.
git-svn-id: https://svn.eduke32.com/eduke32@3278 1a8010ca-5511-0410-912e-c29ae57300e0
2012-12-13 02:37:20 +00:00
e n d i f
i f e q ( $( GCC_MAJOR ) , )
GCC_MAJOR := 4
e n d i f
i f n d e f G C C _ M I N O R
2017-06-09 06:38:42 +00:00
ifeq ( 0,$( CLANG) )
GCC_MINOR := $( shell $( CCFULLPATH) -dumpversion 2>& 1 | cut -d'.' -f2)
endif
Win64 support! (Meaning it works, not that we recommend it for everyday use.)
This includes a complete Windows header and library refresh, including the addition of 64-bit compiled libs:
*libogg 1.3.0
*libvorbis 1.3.3
*zlib 1.2.7
*libpng 1.5.13
*libvpx 9a3de881c0e681ba1a79a166a86308bbc84b4acd
*SDL_mixer 1.2.12 (for RENDERTYPE=SDL)
*DirectX import libraries: dsound and dxguid (now included)
To build in 64-bit, you essentially need MinGW's MSYS (but not MinGW itself) and MinGW-w64 at the top of your PATH. The target is automatically detected using `$(CC) -dumpmachine`. The EDukeWiki will get detailed instrucitons.
All compiler and linker warnings when building in 64-bit mode have been fixed.
Remaining 64-bit to-do:
- The ebacktrace dll does not build under 64-bit. It uses code specific to the format of 32-bit executables and will have to be ported to work with 64-bit executables. A future 64-bit version will be named ebacktrace1-64.dll.
- RENDERTYPE=SDL crashes in SDL_mixer's Mix_Linked_Version().
- DirectInput gives an error and does not function. This only affects joysticks, and the error never happens without any plugged in.
- Port the classic renderer ASM to 64-bit. (Just kidding, this is way out of my league.)
This commit includes a fair bit of Makefile development spanning all platforms, including simplifying the SDLCONFIG code, fixing build on Mac OS X (thanks rhoenie!), globally factoring Apple brew/port inclusion, enforcing that all -L come before all -l, and ensuring that $(shell ) is always :='d.
In addition, I have resurrected the old GCC_MAJOR and GCC_MINOR detection using `$(CC) -dumpversion`, but I have made it failsafe in case the command fails or the version is manually specified. I have applied this new fine-grained detection where applicable, including allowing LTO, and restraining -W's to versions that support them.
git-svn-id: https://svn.eduke32.com/eduke32@3278 1a8010ca-5511-0410-912e-c29ae57300e0
2012-12-13 02:37:20 +00:00
e n d i f
i f e q ( $( GCC_MINOR ) , )
2014-07-22 07:25:54 +00:00
GCC_MINOR := 8
Win64 support! (Meaning it works, not that we recommend it for everyday use.)
This includes a complete Windows header and library refresh, including the addition of 64-bit compiled libs:
*libogg 1.3.0
*libvorbis 1.3.3
*zlib 1.2.7
*libpng 1.5.13
*libvpx 9a3de881c0e681ba1a79a166a86308bbc84b4acd
*SDL_mixer 1.2.12 (for RENDERTYPE=SDL)
*DirectX import libraries: dsound and dxguid (now included)
To build in 64-bit, you essentially need MinGW's MSYS (but not MinGW itself) and MinGW-w64 at the top of your PATH. The target is automatically detected using `$(CC) -dumpmachine`. The EDukeWiki will get detailed instrucitons.
All compiler and linker warnings when building in 64-bit mode have been fixed.
Remaining 64-bit to-do:
- The ebacktrace dll does not build under 64-bit. It uses code specific to the format of 32-bit executables and will have to be ported to work with 64-bit executables. A future 64-bit version will be named ebacktrace1-64.dll.
- RENDERTYPE=SDL crashes in SDL_mixer's Mix_Linked_Version().
- DirectInput gives an error and does not function. This only affects joysticks, and the error never happens without any plugged in.
- Port the classic renderer ASM to 64-bit. (Just kidding, this is way out of my league.)
This commit includes a fair bit of Makefile development spanning all platforms, including simplifying the SDLCONFIG code, fixing build on Mac OS X (thanks rhoenie!), globally factoring Apple brew/port inclusion, enforcing that all -L come before all -l, and ensuring that $(shell ) is always :='d.
In addition, I have resurrected the old GCC_MAJOR and GCC_MINOR detection using `$(CC) -dumpversion`, but I have made it failsafe in case the command fails or the version is manually specified. I have applied this new fine-grained detection where applicable, including allowing LTO, and restraining -W's to versions that support them.
git-svn-id: https://svn.eduke32.com/eduke32@3278 1a8010ca-5511-0410-912e-c29ae57300e0
2012-12-13 02:37:20 +00:00
e n d i f
2012-10-29 04:26:25 +00:00
2017-06-09 06:38:42 +00:00
GCC_PREREQ_4 := 1
i f e q ( 1 , $( strip $ ( shell expr $ ( GCC_MAJOR ) \< 4) ) )
ifeq ( 0,$( CLANG) )
GCC_PREREQ_4 := 0
$( error How do you still have an old GCC in $$ ( CURRENT_YEAR) ?)
2012-10-29 04:26:25 +00:00
endif
e n d i f
2017-06-09 06:38:42 +00:00
##### Detect machine architecture
BITS = 32
i f e q ( $( PLATFORM ) , W I N D O W S )
ifndef COMPILERTARGET
COMPILERTARGET:= $( strip $( shell $( CC) -dumpmachine) )
2012-12-13 02:32:59 +00:00
endif
2017-06-09 06:38:42 +00:00
IMPLICIT_ARCH = i386
ifeq ( $( findstring x86_64,$( COMPILERTARGET) ) ,x86_64)
IMPLICIT_ARCH = x86_64
BITS = 64
2012-12-13 02:32:59 +00:00
endif
2017-06-09 06:38:42 +00:00
e l s e i f e q ( $( PLATFORM ) , W I I )
IMPLICIT_ARCH = ppc
e l s e
ifneq ( $( ARCH) ,)
override ARCH:= $( subst i486,i386,$( subst i586,i386,$( subst i686,i386,$( strip $( ARCH) ) ) ) )
IMPLICIT_ARCH = $( ARCH)
else
IMPLICIT_ARCH:= $( subst i486,i386,$( subst i586,i386,$( subst i686,i386,$( strip $( shell uname -m) ) ) ) )
2012-12-13 02:32:59 +00:00
endif
2017-06-09 06:38:42 +00:00
ifeq ( $( findstring x86_64,$( IMPLICIT_ARCH) ) ,x86_64)
BITS = 64
2012-12-13 02:32:59 +00:00
endif
e n d i f
2017-06-09 06:38:42 +00:00
EXESUFFIX =
DLLSUFFIX = .so
DOLSUFFIX = .dol
i f e q ( $( PLATFORM ) , D A R W I N )
DLLSUFFIX = .dylib
e n d i f
i f e q ( $( PLATFORM ) , W I I )
EXESUFFIX = .elf
e n d i f
i f e q ( $( PLATFORM ) , S K Y O S )
EXESUFFIX = .app
e n d i f
i f e q ( $( PLATFORM ) , W I N D O W S )
EXESUFFIX = .exe
DLLSUFFIX = .dll
e n d i f
2012-03-14 06:27:45 +00:00
2013-08-18 21:14:37 +00:00
2017-06-09 06:38:42 +00:00
##### Toggles
2012-03-04 09:31:37 +00:00
2017-06-09 06:38:42 +00:00
# CPLUSPLUS - 1 = enable C++ building
# RELEASE - 1 = no debugging
# DEBUGANYWAY:
# 1 = Include debug symbols even when generating release code.
# 2 = Also enable sanitizers with Clang. On the C side, make 'sprite' etc. be real arrays.
# KRANDDEBUG - 1 = include logging of krand() calls for debugging the demo system
# MEMMAP - 1 = produce .memmap file when linking
# OPTLEVEL - 0..3 = GCC optimization strategy
# LTO - 1 = enable link-time optimization
# Optional overrides for text
2017-01-23 11:21:42 +00:00
APPNAME =
APPBASENAME =
2017-06-09 06:38:42 +00:00
# Build toggles
RELEASE ?= 1
NOASM = 0
# EXPERIMENTAL, unfinished x86_64 assembly routines. DO NOT ENABLE.
USE_ASM64 ?= 0
MEMMAP ?= 0
CPLUSPLUS ?= 1
# Feature toggles
2017-01-18 22:21:08 +00:00
STANDALONE ?= 0
2017-06-09 06:38:42 +00:00
NETCODE ?= 1
STARTUP_WINDOW ?= 1
SIMPLE_MENU ?= 0
2010-12-19 22:29:01 +00:00
POLYMER = 1
USE_OPENGL = 1
2017-06-09 06:38:42 +00:00
LUNATIC ?= 0
USE_LUAJIT_2_1 ?= 0
# Library toggles
HAVE_GTK2 ?= 1
2012-07-20 21:57:53 +00:00
USE_LIBPNG ?= 1
2011-10-11 16:53:52 +00:00
USE_LIBVPX ?= 1
2014-11-02 05:34:49 +00:00
HAVE_VORBIS ?= 1
HAVE_FLAC ?= 1
2016-11-08 02:59:05 +00:00
i f e q ( $( PLATFORM ) , W I N D O W S )
HAVE_XMP ?= 1
e l s e
HAVE_XMP ?= 0
e n d i f
2017-06-09 06:38:42 +00:00
RENDERTYPE = SDL
MIXERTYPE = SDL
SDL_TARGET ?= 2
2010-12-19 22:29:01 +00:00
# Debugging/Build options
DEBUGANYWAY ?= 0
KRANDDEBUG ?= 0
PROFILER ?= 0
2014-02-08 14:37:41 +00:00
# Make allocache() a wrapper around malloc()? Useful for debugging
# allocache()-allocated memory accesses with e.g. Valgrind.
# For debugging with Valgrind + GDB, see
# http://valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserver
ALLOCACHE_AS_MALLOC ?= 0
2017-06-09 06:38:42 +00:00
##### Settings overrides and implicit cascades
i f n e q ( 0 , $( KRANDDEBUG ) )
RELEASE = 0
e n d i f
i f n e q ( 1 0 0 , $( RELEASE ) $( PROFILER ) $( ALLOCACHE_AS_MALLOC ) )
# so that we have debug symbols
DEBUGANYWAY = 1
e n d i f
i f e q ( $( PLATFORM ) , W I N D O W S )
MIXERTYPE = WIN
ifneq ( $( RENDERTYPE) ,SDL)
ifeq ( $( MIXERTYPE) ,SDL)
override MIXERTYPE:= WIN
endif
endif
override HAVE_GTK2 = 0
e l s e i f e q ( $( PLATFORM ) , D A R W I N )
HAVE_GTK2 = 0
e l s e i f e q ( $( PLATFORM ) , W I I )
override USE_OPENGL = 0
override NETCODE = 0
override HAVE_GTK2 = 0
override HAVE_FLAC = 0
override HAVE_XMP = 0
SDL_TARGET = 1
e l s e i f e q ( $( PLATFORM ) , $( filter $ ( PLATFORM ) ,DINGOO GCW QNX SUNOS SYLLABLE ) )
override USE_OPENGL = 0
override NOASM = 1
e l s e i f e q ( $( PLATFORM ) , $( filter $ ( PLATFORM ) ,BEOS SKYOS ) )
override NOASM = 1
e n d i f
i f n e q ( i 3 8 6 , $( strip $ ( IMPLICIT_ARCH ) ) )
override NOASM = 1
e n d i f
i f e q ( 0 , $( USE_OPENGL ) )
override POLYMER = 0
override USE_LIBVPX = 0
2013-05-04 16:36:10 +00:00
e n d i f
2013-01-20 21:17:36 +00:00
i f e q ( $( RELEASE ) , 0 )
2013-01-21 21:18:10 +00:00
override STRIP =
2013-01-20 21:17:36 +00:00
e n d i f
i f n e q ( $( DEBUGANYWAY ) , 0 )
2013-01-21 21:18:10 +00:00
override STRIP =
2013-01-20 21:17:36 +00:00
e n d i f
2017-06-09 06:38:42 +00:00
i f e q ( $( RELEASE ) , 0 )
OPTLEVEL?= 0
LTO = 0
e l s e
OPTLEVEL?= 2
LTO = 1
e n d i f
i f n e q ( 0 , $( CLANG ) )
ifeq ( $( PLATFORM) ,WINDOWS)
LTO = 0
endif
e n d i f
2013-07-13 21:05:05 +00:00
i f n e q ( $( LUNATIC ) , 0 )
# FIXME: Lunatic builds with LTO don't start up properly as the required
# symbol names are apparently not exported.
override LTO = 0
e n d i f
2017-06-09 06:38:42 +00:00
i f e q ( 0 , $( CLANG ) )
ifeq ( 0,$( GCC_PREREQ_4) )
override LTO = 0
endif
ifeq ( 1,$( strip $( shell expr $( GCC_MAJOR) = 4) ) )
ifeq ( $( PLATFORM) ,WII)
ifeq ( 1,$( strip $( shell expr $( GCC_MINOR) \< 8) ) )
override LTO = 0
endif
else
ifeq ( 1,$( strip $( shell expr $( GCC_MINOR) \< 6) ) )
override LTO = 0
endif
2012-11-06 07:49:44 +00:00
endif
endif
e n d i f
2014-07-22 07:25:54 +00:00
2017-06-09 06:38:42 +00:00
########## End Toggles, Begin Construction ##########
2014-07-22 07:25:54 +00:00
2017-06-09 06:38:42 +00:00
##### Instantiate variables
COMMONFLAGS =
COMPILERFLAGS = -funsigned-char
2014-07-22 07:25:54 +00:00
2017-03-23 03:03:21 +00:00
CSTD := -std= gnu99
2017-03-22 15:45:56 +00:00
CONLYFLAGS = $( CSTD)
2017-04-12 08:30:38 +00:00
CXXSTD := -std= gnu++11
2017-02-19 22:16:00 +00:00
CXXONLYFLAGS = $( CXXSTD) -fno-exceptions -fno-rtti
2017-03-27 17:13:13 +00:00
i f n e q ( 0 , $( CLANG ) )
CSTD:= $( subst gnu,c,$( CSTD) )
CXXSTD:= $( subst gnu,c,$( CXXSTD) )
e n d i f
2017-06-09 06:38:42 +00:00
ASFLAGS = -s #-g
LUAJIT_BCOPTS :=
2014-07-22 07:25:54 +00:00
LINKERFLAGS =
2016-05-23 04:47:12 +00:00
L_CXXONLYFLAGS =
2017-06-09 06:38:42 +00:00
LIBS =
2015-09-27 21:18:06 +00:00
GUI_LIBS =
2014-07-22 07:25:54 +00:00
LIBDIRS =
2012-10-29 04:26:25 +00:00
2017-06-09 06:38:42 +00:00
##### Mandatory platform parameters
2016-06-03 04:50:47 +00:00
2017-06-09 06:38:42 +00:00
ASFORMAT = elf$( BITS)
# Options to "luajit -b" for synthesis. Since it runs on Linux, we need to tell
# the native LuaJIT to emit PE object files.
Win64 support! (Meaning it works, not that we recommend it for everyday use.)
This includes a complete Windows header and library refresh, including the addition of 64-bit compiled libs:
*libogg 1.3.0
*libvorbis 1.3.3
*zlib 1.2.7
*libpng 1.5.13
*libvpx 9a3de881c0e681ba1a79a166a86308bbc84b4acd
*SDL_mixer 1.2.12 (for RENDERTYPE=SDL)
*DirectX import libraries: dsound and dxguid (now included)
To build in 64-bit, you essentially need MinGW's MSYS (but not MinGW itself) and MinGW-w64 at the top of your PATH. The target is automatically detected using `$(CC) -dumpmachine`. The EDukeWiki will get detailed instrucitons.
All compiler and linker warnings when building in 64-bit mode have been fixed.
Remaining 64-bit to-do:
- The ebacktrace dll does not build under 64-bit. It uses code specific to the format of 32-bit executables and will have to be ported to work with 64-bit executables. A future 64-bit version will be named ebacktrace1-64.dll.
- RENDERTYPE=SDL crashes in SDL_mixer's Mix_Linked_Version().
- DirectInput gives an error and does not function. This only affects joysticks, and the error never happens without any plugged in.
- Port the classic renderer ASM to 64-bit. (Just kidding, this is way out of my league.)
This commit includes a fair bit of Makefile development spanning all platforms, including simplifying the SDLCONFIG code, fixing build on Mac OS X (thanks rhoenie!), globally factoring Apple brew/port inclusion, enforcing that all -L come before all -l, and ensuring that $(shell ) is always :='d.
In addition, I have resurrected the old GCC_MAJOR and GCC_MINOR detection using `$(CC) -dumpversion`, but I have made it failsafe in case the command fails or the version is manually specified. I have applied this new fine-grained detection where applicable, including allowing LTO, and restraining -W's to versions that support them.
git-svn-id: https://svn.eduke32.com/eduke32@3278 1a8010ca-5511-0410-912e-c29ae57300e0
2012-12-13 02:37:20 +00:00
i f e q ( $( PLATFORM ) , W I N D O W S )
2017-06-09 06:38:42 +00:00
LINKERFLAGS += -static-libgcc
ifeq ( 0,$( CLANG) )
L_CXXONLYFLAGS += -static-libstdc++
Win64 support! (Meaning it works, not that we recommend it for everyday use.)
This includes a complete Windows header and library refresh, including the addition of 64-bit compiled libs:
*libogg 1.3.0
*libvorbis 1.3.3
*zlib 1.2.7
*libpng 1.5.13
*libvpx 9a3de881c0e681ba1a79a166a86308bbc84b4acd
*SDL_mixer 1.2.12 (for RENDERTYPE=SDL)
*DirectX import libraries: dsound and dxguid (now included)
To build in 64-bit, you essentially need MinGW's MSYS (but not MinGW itself) and MinGW-w64 at the top of your PATH. The target is automatically detected using `$(CC) -dumpmachine`. The EDukeWiki will get detailed instrucitons.
All compiler and linker warnings when building in 64-bit mode have been fixed.
Remaining 64-bit to-do:
- The ebacktrace dll does not build under 64-bit. It uses code specific to the format of 32-bit executables and will have to be ported to work with 64-bit executables. A future 64-bit version will be named ebacktrace1-64.dll.
- RENDERTYPE=SDL crashes in SDL_mixer's Mix_Linked_Version().
- DirectInput gives an error and does not function. This only affects joysticks, and the error never happens without any plugged in.
- Port the classic renderer ASM to 64-bit. (Just kidding, this is way out of my league.)
This commit includes a fair bit of Makefile development spanning all platforms, including simplifying the SDLCONFIG code, fixing build on Mac OS X (thanks rhoenie!), globally factoring Apple brew/port inclusion, enforcing that all -L come before all -l, and ensuring that $(shell ) is always :='d.
In addition, I have resurrected the old GCC_MAJOR and GCC_MINOR detection using `$(CC) -dumpversion`, but I have made it failsafe in case the command fails or the version is manually specified. I have applied this new fine-grained detection where applicable, including allowing LTO, and restraining -W's to versions that support them.
git-svn-id: https://svn.eduke32.com/eduke32@3278 1a8010ca-5511-0410-912e-c29ae57300e0
2012-12-13 02:37:20 +00:00
endif
2017-06-09 06:38:42 +00:00
ifeq ( 0,$( CLANG) )
GUI_LIBS += -mwindows
2016-06-03 04:50:47 +00:00
endif
2017-06-09 06:38:42 +00:00
COMPILERFLAGS += -DUNDERSCORES
ASFORMAT = win$( BITS)
ASFLAGS += -DUNDERSCORES
Win64 support! (Meaning it works, not that we recommend it for everyday use.)
This includes a complete Windows header and library refresh, including the addition of 64-bit compiled libs:
*libogg 1.3.0
*libvorbis 1.3.3
*zlib 1.2.7
*libpng 1.5.13
*libvpx 9a3de881c0e681ba1a79a166a86308bbc84b4acd
*SDL_mixer 1.2.12 (for RENDERTYPE=SDL)
*DirectX import libraries: dsound and dxguid (now included)
To build in 64-bit, you essentially need MinGW's MSYS (but not MinGW itself) and MinGW-w64 at the top of your PATH. The target is automatically detected using `$(CC) -dumpmachine`. The EDukeWiki will get detailed instrucitons.
All compiler and linker warnings when building in 64-bit mode have been fixed.
Remaining 64-bit to-do:
- The ebacktrace dll does not build under 64-bit. It uses code specific to the format of 32-bit executables and will have to be ported to work with 64-bit executables. A future 64-bit version will be named ebacktrace1-64.dll.
- RENDERTYPE=SDL crashes in SDL_mixer's Mix_Linked_Version().
- DirectInput gives an error and does not function. This only affects joysticks, and the error never happens without any plugged in.
- Port the classic renderer ASM to 64-bit. (Just kidding, this is way out of my league.)
This commit includes a fair bit of Makefile development spanning all platforms, including simplifying the SDLCONFIG code, fixing build on Mac OS X (thanks rhoenie!), globally factoring Apple brew/port inclusion, enforcing that all -L come before all -l, and ensuring that $(shell ) is always :='d.
In addition, I have resurrected the old GCC_MAJOR and GCC_MINOR detection using `$(CC) -dumpversion`, but I have made it failsafe in case the command fails or the version is manually specified. I have applied this new fine-grained detection where applicable, including allowing LTO, and restraining -W's to versions that support them.
git-svn-id: https://svn.eduke32.com/eduke32@3278 1a8010ca-5511-0410-912e-c29ae57300e0
2012-12-13 02:37:20 +00:00
2017-06-09 06:38:42 +00:00
ifneq ( $( findstring x86_64,$( COMPILERTARGET) ) ,x86_64)
LINKERFLAGS += -Wl,--large-address-aware
Win64 support! (Meaning it works, not that we recommend it for everyday use.)
This includes a complete Windows header and library refresh, including the addition of 64-bit compiled libs:
*libogg 1.3.0
*libvorbis 1.3.3
*zlib 1.2.7
*libpng 1.5.13
*libvpx 9a3de881c0e681ba1a79a166a86308bbc84b4acd
*SDL_mixer 1.2.12 (for RENDERTYPE=SDL)
*DirectX import libraries: dsound and dxguid (now included)
To build in 64-bit, you essentially need MinGW's MSYS (but not MinGW itself) and MinGW-w64 at the top of your PATH. The target is automatically detected using `$(CC) -dumpmachine`. The EDukeWiki will get detailed instrucitons.
All compiler and linker warnings when building in 64-bit mode have been fixed.
Remaining 64-bit to-do:
- The ebacktrace dll does not build under 64-bit. It uses code specific to the format of 32-bit executables and will have to be ported to work with 64-bit executables. A future 64-bit version will be named ebacktrace1-64.dll.
- RENDERTYPE=SDL crashes in SDL_mixer's Mix_Linked_Version().
- DirectInput gives an error and does not function. This only affects joysticks, and the error never happens without any plugged in.
- Port the classic renderer ASM to 64-bit. (Just kidding, this is way out of my league.)
This commit includes a fair bit of Makefile development spanning all platforms, including simplifying the SDLCONFIG code, fixing build on Mac OS X (thanks rhoenie!), globally factoring Apple brew/port inclusion, enforcing that all -L come before all -l, and ensuring that $(shell ) is always :='d.
In addition, I have resurrected the old GCC_MAJOR and GCC_MINOR detection using `$(CC) -dumpversion`, but I have made it failsafe in case the command fails or the version is manually specified. I have applied this new fine-grained detection where applicable, including allowing LTO, and restraining -W's to versions that support them.
git-svn-id: https://svn.eduke32.com/eduke32@3278 1a8010ca-5511-0410-912e-c29ae57300e0
2012-12-13 02:37:20 +00:00
endif
2017-06-09 06:38:42 +00:00
LINKERFLAGS += -Wl,--enable-auto-import
2014-10-16 21:03:24 +00:00
2017-06-09 06:38:42 +00:00
LUAJIT_BCOPTS := -o windows
ifeq ( 32,$( BITS) )
LUAJIT_BCOPTS += -a x86
2012-10-29 04:26:25 +00:00
endif
2017-06-09 06:38:42 +00:00
ifeq ( 64,$( BITS) )
LUAJIT_BCOPTS += -a x64
2012-10-29 04:26:25 +00:00
endif
2017-06-09 06:38:42 +00:00
e l s e i f e q ( $( PLATFORM ) , D A R W I N )
2016-10-29 16:59:28 +00:00
ifneq ( $( ARCH) ,)
ifneq ( $( findstring -arch,$( ARCH) ) ,-arch)
override ARCH := -arch $( ARCH)
endif
endif
2017-06-09 06:38:42 +00:00
COMMONFLAGS += $( ARCH)
2016-10-29 16:59:28 +00:00
2017-06-09 06:38:42 +00:00
ifneq ( $( findstring x86_64,$( IMPLICIT_ARCH) ) ,x86_64)
LINKERFLAGS += -read_only_relocs suppress
2012-10-29 04:26:25 +00:00
endif
2017-01-01 17:44:56 +00:00
2017-06-09 06:38:42 +00:00
COMPILERFLAGS += -DUNDERSCORES
ASFORMAT = macho
ASFLAGS += -DUNDERSCORES
2014-07-22 07:25:54 +00:00
2017-06-09 06:38:42 +00:00
ifeq ( $( findstring x86_64,$( IMPLICIT_ARCH) ) ,x86_64)
ASFORMAT += 64
2014-07-24 14:01:44 +00:00
endif
2017-06-09 06:38:42 +00:00
e l s e i f e q ( $( PLATFORM ) , W I I )
LINKERFLAGS += -mrvl -meabi -mhard-float -Wl,--gc-sections
# -msdata=eabi
COMPILERFLAGS += -DGEKKO -D__POWERPC__ -I$( LIBOGC_INC)
LIBDIRS += -L$( LIBOGC_LIB)
e l s e i f e q ( $( PLATFORM ) , $( filter $ ( PLATFORM ) ,DINGOO GCW ) )
COMPILERFLAGS += -D__OPENDINGUX__
e l s e i f e q ( $( PLATFORM ) , S K Y O S )
COMPILERFLAGS += -DUNDERSCORES
2014-07-24 14:01:44 +00:00
e n d i f
2017-06-09 06:38:42 +00:00
ASFLAGS += -f $( ASFORMAT)
COMPILERFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE= 0
##### Optimizations
2014-07-24 14:01:44 +00:00
2012-10-29 04:26:25 +00:00
i f n d e f O P T O P T
2016-06-05 04:46:01 +00:00
ifeq ( $( findstring x86_64, $( IMPLICIT_ARCH) ) ,x86_64)
2016-06-15 07:08:26 +00:00
ifeq ( $( findstring x86_64h, $( IMPLICIT_ARCH) ) ,x86_64h)
OPTOPT = -march= haswell -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mpopcnt -mpclmul -mavx -mrdrnd -mf16c -mfsgsbase -mavx2 -maes -mfma -mbmi -mbmi2
# -mcrc32 -mmovbe
else
ifeq ( $( PLATFORM) ,DARWIN)
OPTOPT = -march= core2 -mmmx -msse -msse2 -msse3 -mssse3
endif
2016-06-05 04:46:01 +00:00
endif
endif
2016-06-03 04:50:47 +00:00
ifeq ( $( findstring i386, $( IMPLICIT_ARCH) ) ,i386)
2016-06-03 04:50:52 +00:00
ifeq ( $( PLATFORM) ,DARWIN)
OPTOPT = -march= nocona -mmmx -msse -msse2 -msse3
else
2017-06-09 06:38:42 +00:00
OPTOPT = -march= pentium3
ifneq ( 0,$( GCC_PREREQ_4) )
OPTOPT += -mtune= generic
# -mstackrealign
endif
OPTOPT += -mmmx
# -msse2 -mfpmath=sse,387 -malign-double
2016-06-03 04:50:52 +00:00
endif
endif
2017-06-09 06:38:42 +00:00
ifeq ( $( PLATFORM) ,WII)
OPTOPT = -mtune= 750
endif
2012-10-29 04:26:25 +00:00
e n d i f
2010-12-19 22:29:01 +00:00
2017-06-09 06:38:42 +00:00
i f e q ( $( PACKAGE_REPOSITORY ) , 0 )
COMMONFLAGS += -O$( OPTLEVEL) $( OPTOPT)
2010-12-19 22:29:01 +00:00
e n d i f
2017-06-09 06:38:42 +00:00
i f n e q ( 0 , $( LTO ) )
COMPILERFLAGS += -DUSING_LTO
COMMONFLAGS += -flto
2010-12-19 22:29:01 +00:00
e n d i f
2017-06-09 06:38:42 +00:00
##### Debugging
2012-05-20 07:25:25 +00:00
2017-06-09 06:38:42 +00:00
i f n e q ( $( RELEASE ) $( DEBUGANYWAY ) , 1 0 )
ifeq ( $( PACKAGE_REPOSITORY) ,0)
COMMONFLAGS += -g
ifeq ( 0,$( CLANG) )
ifneq ( $( PLATFORM) ,WII)
COMMONFLAGS += -fno-omit-frame-pointer
endif
endif
endif
ifeq ( $( SUBPLATFORM) ,LINUX)
# This option is needed to allow obtaining backtraces from within a program.
LIBS += -rdynamic
endif
2011-07-18 19:06:29 +00:00
e n d i f
2011-03-19 18:07:12 +00:00
2014-02-08 14:37:41 +00:00
i f n e q ( $( ALLOCACHE_AS_MALLOC ) , 0 )
2014-07-22 07:25:54 +00:00
COMPILERFLAGS += -DDEBUG_ALLOCACHE_AS_MALLOC
2014-02-08 14:37:41 +00:00
e n d i f
2013-08-18 19:24:15 +00:00
# See http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation
# for a list of possible UBSan options.
# Clang 3.2 does only supports -fsanitize=address for the AddressSanitizer
2014-11-22 18:37:19 +00:00
CLANG_DEBUG_FLAGS := -fsanitize= address -fsanitize= bounds,enum,float-cast-overflow,object-size
#CLANG_DEBUG_FLAGS := $(CLANG_DEBUG_FLAGS),signed-integer-overflow
#CLANG_DEBUG_FLAGS := $(CLANG_DEBUG_FLAGS),unsigned-integer-overflow
#CLANG_DEBUG_FLAGS := $(CLANG_DEBUG_FLAGS) -fsanitize-undefined-trap-on-error
2013-08-18 19:24:15 +00:00
2017-06-09 06:38:42 +00:00
i f e q ( 0 , $( DEBUGANYWAY ) )
COMPILERFLAGS += -DNDEBUG
e l s e
COMPILERFLAGS += -DDEBUGGINGAIDS= $( DEBUGANYWAY)
ifneq ( 0,$( CLANG) )
ifeq ( 2,$( DEBUGANYWAY) )
COMMONFLAGS += $( CLANG_DEBUG_FLAGS)
Win64 support! (Meaning it works, not that we recommend it for everyday use.)
This includes a complete Windows header and library refresh, including the addition of 64-bit compiled libs:
*libogg 1.3.0
*libvorbis 1.3.3
*zlib 1.2.7
*libpng 1.5.13
*libvpx 9a3de881c0e681ba1a79a166a86308bbc84b4acd
*SDL_mixer 1.2.12 (for RENDERTYPE=SDL)
*DirectX import libraries: dsound and dxguid (now included)
To build in 64-bit, you essentially need MinGW's MSYS (but not MinGW itself) and MinGW-w64 at the top of your PATH. The target is automatically detected using `$(CC) -dumpmachine`. The EDukeWiki will get detailed instrucitons.
All compiler and linker warnings when building in 64-bit mode have been fixed.
Remaining 64-bit to-do:
- The ebacktrace dll does not build under 64-bit. It uses code specific to the format of 32-bit executables and will have to be ported to work with 64-bit executables. A future 64-bit version will be named ebacktrace1-64.dll.
- RENDERTYPE=SDL crashes in SDL_mixer's Mix_Linked_Version().
- DirectInput gives an error and does not function. This only affects joysticks, and the error never happens without any plugged in.
- Port the classic renderer ASM to 64-bit. (Just kidding, this is way out of my league.)
This commit includes a fair bit of Makefile development spanning all platforms, including simplifying the SDLCONFIG code, fixing build on Mac OS X (thanks rhoenie!), globally factoring Apple brew/port inclusion, enforcing that all -L come before all -l, and ensuring that $(shell ) is always :='d.
In addition, I have resurrected the old GCC_MAJOR and GCC_MINOR detection using `$(CC) -dumpversion`, but I have made it failsafe in case the command fails or the version is manually specified. I have applied this new fine-grained detection where applicable, including allowing LTO, and restraining -W's to versions that support them.
git-svn-id: https://svn.eduke32.com/eduke32@3278 1a8010ca-5511-0410-912e-c29ae57300e0
2012-12-13 02:37:20 +00:00
endif
2011-12-15 22:43:01 +00:00
endif
2017-06-09 06:38:42 +00:00
e n d i f
2014-11-22 18:37:19 +00:00
2017-06-09 06:38:42 +00:00
i f n e q ( 0 , $( KRANDDEBUG ) )
COMPILERFLAGS += -DKRANDDEBUG= 1
e n d i f
i f n e q ( 0 , $( PROFILER ) )
ifneq ( $( PLATFORM) ,DARWIN)
LIBS += -lprofiler
2011-09-22 16:52:55 +00:00
endif
2017-06-09 06:38:42 +00:00
COMMONFLAGS += -pg
e n d i f
2014-11-22 18:37:19 +00:00
2017-06-09 06:38:42 +00:00
##### -f stuff
i f n e q ( 0 , $( GCC_PREREQ_ 4) )
F_NO_STACK_PROTECTOR := -fno-stack-protector
ifeq ( 0,$( CLANG) )
F_JUMP_TABLES := -fjump-tables
2011-03-25 11:42:07 +00:00
endif
2017-06-09 06:38:42 +00:00
e n d i f
i f e q ( $( PLATFORM ) , D A R W I N )
ifeq ( 1,$( DARWIN9) )
F_JUMP_TABLES :=
endif
ifeq ( $( findstring ppc,$( IMPLICIT_ARCH) ) $( findstring i386,$( IMPLICIT_ARCH) ) ,)
F_NO_STACK_PROTECTOR :=
endif
e n d i f
i f e q ( 0 , $( RELEASE ) )
F_NO_STACK_PROTECTOR :=
2010-12-19 22:29:01 +00:00
e l s e
2017-06-09 06:38:42 +00:00
ifeq ( 0,$( CLANG) )
COMMONFLAGS += -funswitch-loops
endif
2014-11-22 18:37:19 +00:00
2017-06-09 06:38:42 +00:00
ifeq ( 0,$( DEBUGANYWAY) )
COMMONFLAGS += -fomit-frame-pointer
Inreased debugging level for catching oob accesses to 'main' arrays.
If enabled, this makes the following arrays be allocated statically:
spriteext, spritesmooth, sector, wall, sprite, tsprite, while
necessarily disabling the clipshape feature (because it relies on
setting sector/wall to different malloc'd block temporarily).
To compile, pass DEBUGANYWAY=1 in addition to RELEASE=0 to 'make',
and it's really only useful with CC=clang, of course.
git-svn-id: https://svn.eduke32.com/eduke32@2270 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-19 23:17:34 +00:00
endif
2017-06-09 06:38:42 +00:00
e n d i f
i f n e q ( 0 , $( KRANDDEBUG ) )
COMMONFLAGS += -fno-inline -fno-inline-functions -fno-inline-functions-called-once
e n d i f
Inreased debugging level for catching oob accesses to 'main' arrays.
If enabled, this makes the following arrays be allocated statically:
spriteext, spritesmooth, sector, wall, sprite, tsprite, while
necessarily disabling the clipshape feature (because it relies on
setting sector/wall to different malloc'd block temporarily).
To compile, pass DEBUGANYWAY=1 in addition to RELEASE=0 to 'make',
and it's really only useful with CC=clang, of course.
git-svn-id: https://svn.eduke32.com/eduke32@2270 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-19 23:17:34 +00:00
2017-06-09 06:38:42 +00:00
COMMONFLAGS += -fno-strict-aliasing $( F_JUMP_TABLES) $( F_NO_STACK_PROTECTOR)
2014-11-22 18:37:19 +00:00
2017-06-09 06:38:42 +00:00
##### Warnings
W_STRICT_OVERFLOW := -Wno-strict-overflow
i f e q ( $( PLATFORM ) , D A R W I N )
ifneq ( 0,$( DARWIN9) )
W_STRICT_OVERFLOW :=
2010-12-19 22:29:01 +00:00
endif
e n d i f
2016-01-12 10:31:07 +00:00
W_UNINITIALIZED := -Wuninitialized
W_GCC_4_1 := -Wno-attributes
W_GCC_4_2 := $( W_STRICT_OVERFLOW)
W_GCC_4_4 := -Wno-unused-result
W_GCC_4_5 := -Wlogical-op -Wcast-qual
2011-02-12 13:25:24 +00:00
2016-01-12 10:31:07 +00:00
CWARNS = -W -Wall \
2012-07-01 22:11:35 +00:00
-Wextra \
2016-01-12 10:31:07 +00:00
-Wpointer-arith \
2014-07-22 07:25:54 +00:00
-Wno-char-subscripts \
2015-10-10 06:57:51 +00:00
-Wno-missing-braces \
2016-01-11 05:06:10 +00:00
-Wwrite-strings \
2016-01-12 10:31:07 +00:00
$( W_UNINITIALIZED) \
$( W_GCC_4_1) \
$( W_GCC_4_2) \
$( W_GCC_4_4) \
$( W_GCC_4_5) \
2012-07-01 22:11:35 +00:00
#-Wstrict-prototypes \
#-Waggregate-return \
2016-01-11 05:05:50 +00:00
#-Wcast-align \
2016-06-05 04:46:28 +00:00
#-Waddress
2012-07-01 22:11:35 +00:00
2017-03-22 15:45:56 +00:00
CONLYWARNS = -Wimplicit -Werror-implicit-function-declaration
2012-05-18 21:40:38 +00:00
i f n e q ( 0 , $( CLANG ) )
2016-01-12 10:31:07 +00:00
CWARNS += -Wno-unused-value -Wno-parentheses -Wno-unknown-warning-option
e l s e
2017-06-09 06:38:42 +00:00
ifeq ( 0,$( GCC_PREREQ_4) )
2016-01-12 10:31:07 +00:00
W_GCC_4_5 :=
W_GCC_4_4 :=
ifeq ( 0,$( OPTLEVEL) )
W_UNINITIALIZED :=
endif
W_GCC_4_2 :=
W_GCC_4_1 :=
endif
ifeq ( 1,$( strip $( shell expr $( GCC_MAJOR) = 4) ) )
ifeq ( 1,$( strip $( shell expr $( GCC_MINOR) \< 5) ) )
W_GCC_4_5 :=
ifeq ( 1,$( strip $( shell expr $( GCC_MINOR) \< 4) ) )
W_GCC_4_4 :=
ifeq ( 0,$( OPTLEVEL) )
W_UNINITIALIZED :=
endif
ifeq ( 1,$( strip $( shell expr $( GCC_MINOR) \< 2) ) )
W_GCC_4_2 :=
ifeq ( 1,$( strip $( shell expr $( GCC_MINOR) \< 1) ) )
W_GCC_4_1 :=
endif
endif
endif
endif
endif
2011-12-09 19:08:47 +00:00
e n d i f
2012-12-09 13:24:44 +00:00
2017-06-09 06:38:42 +00:00
##### Features
2012-11-10 20:59:00 +00:00
2017-06-09 06:38:42 +00:00
i f n e q ( , $( APPNAME ) )
COMPILERFLAGS += -DAPPNAME= \" $( APPNAME) \"
2013-07-20 03:36:54 +00:00
e n d i f
2017-06-09 06:38:42 +00:00
i f n e q ( , $( APPBASENAME ) )
COMPILERFLAGS += -DAPPBASENAME= \" $( APPBASENAME) \"
2013-08-18 21:14:37 +00:00
e n d i f
2012-11-10 20:59:00 +00:00
2017-06-09 06:38:42 +00:00
i f n e q ( 0 , $( NOASM ) )
COMPILERFLAGS += -DNOASM
e n d i f
i f n e q ( 0 , $( USE_ASM 64) )
COMPILERFLAGS += -DUSE_ASM64
e n d i f
i f n e q ( 0 , $( MEMMAP ) )
ifeq ( $( PLATFORM) ,DARWIN)
LINKERFLAGS += -Wl,-map -Wl,$@ .memmap
2012-11-10 20:59:00 +00:00
else
2017-06-09 06:38:42 +00:00
LINKERFLAGS += -Wl,-Map= $@ .memmap
2012-11-10 20:59:00 +00:00
endif
e n d i f
2017-06-09 06:38:42 +00:00
COMPILERFLAGS += -DRENDERTYPE$( RENDERTYPE) = 1 -DMIXERTYPE$( MIXERTYPE) = 1
2012-06-01 20:09:27 +00:00
2017-06-09 06:38:42 +00:00
i f e q ( 0 , $( NETCODE ) )
COMPILERFLAGS += -DNETCODE_DISABLE
2011-07-18 19:06:29 +00:00
e n d i f
2016-11-09 22:51:33 +00:00
i f n e q ( 0 , $( STARTUP_WINDOW ) )
COMPILERFLAGS += -DSTARTUP_WINDOW
e n d i f
2017-01-18 22:21:40 +00:00
i f n e q ( 0 , $( SIMPLE_MENU ) )
COMPILERFLAGS += -DEDUKE32_SIMPLE_MENU
e n d i f
2017-01-18 22:21:08 +00:00
i f n e q ( 0 , $( STANDALONE ) )
COMPILERFLAGS += -DEDUKE32_STANDALONE
e n d i f
2017-06-09 06:38:42 +00:00
i f n e q ( 0 , $( USE_OPENGL ) )
COMPILERFLAGS += -DUSE_OPENGL
2014-07-22 07:25:54 +00:00
e n d i f
2017-06-09 06:38:42 +00:00
i f n e q ( 0 , $( POLYMER ) )
COMPILERFLAGS += -DPOLYMER
2014-07-22 07:25:54 +00:00
e n d i f
2016-05-29 21:11:24 +00:00
2014-07-22 07:25:54 +00:00
2017-06-09 06:38:42 +00:00
##### External library paths
2014-10-16 21:03:24 +00:00
2017-06-09 06:38:42 +00:00
i f e q ( $( PLATFORM ) , W I N D O W S )
COMPILERFLAGS += -Iplatform/Windows/include
LIBDIRS += -Lplatform/Windows/lib/$( BITS)
e l s e i f e q ( $( PLATFORM ) , D A R W I N )
2014-10-16 21:03:24 +00:00
ifneq ( $( shell port --version & >/dev/null; echo $$ ?) ,127)
LIBDIRS += -L/opt/local/lib
COMPILERFLAGS += -I/opt/local/include
endif
ifneq ( $( shell brew --version & >/dev/null; echo $$ ?) ,127)
LIBDIRS += -L/usr/local/lib
COMPILERFLAGS += -I/usr/local/include
endif
ifneq ( $( shell fink --version & >/dev/null; echo $$ ?) ,127)
LIBDIRS += -L/sw/lib
COMPILERFLAGS += -I/sw/include
endif
2017-06-09 06:38:42 +00:00
e l s e i f e q ( $( PLATFORM ) , B S D )
COMPILERFLAGS += -I/usr/local/include
e l s e i f e q ( $( PLATFORM ) , W I I )
COMPILERFLAGS += -I$( PORTLIBS) /include -Iplatform/Wii/include
LIBDIRS += -L$( PORTLIBS) /lib -Lplatform/Wii/lib
e n d i f
2014-07-22 07:25:54 +00:00
2017-06-09 06:38:42 +00:00
##### External libraries
2014-06-16 23:16:23 +00:00
2017-06-09 06:38:42 +00:00
i f n e q ( $( LUNATIC ) , 0 )
ifneq ( $( USE_LUAJIT_2_1) ,0)
COMPILERFLAGS += -DUSE_LUAJIT_2_1
2016-05-23 04:47:12 +00:00
endif
2014-07-22 07:25:54 +00:00
2017-06-09 06:38:42 +00:00
ifeq ( $( PLATFORM) ,WINDOWS)
LIBS += -lluajit
else
LIBS += -lluajit-5.1
2014-07-22 07:25:54 +00:00
endif
2017-06-09 06:38:42 +00:00
e n d i f
2014-07-22 07:25:54 +00:00
2017-06-09 06:38:42 +00:00
i f n e q ( 0 , $( USE_LIBPNG ) )
COMPILERFLAGS += -DUSE_LIBPNG
ifeq ( $( PLATFORM) ,WINDOWS)
LIBS += -lpng_mini -lz_mini
else ifeq ( $( PLATFORM) ,DARWIN)
LIBS += -lpng # -lz
else
LIBS += -lpng -lz
2014-07-22 07:25:54 +00:00
endif
e n d i f
2017-06-09 06:38:42 +00:00
i f n e q ( 0 , $( USE_LIBVPX ) )
COMPILERFLAGS += -DUSE_LIBVPX
LIBS += -lvpx
2014-07-22 07:25:54 +00:00
e n d i f
2017-06-09 06:38:42 +00:00
i f n e q ( 0 , $( HAVE_VORBIS ) )
COMPILERFLAGS += -DHAVE_VORBIS
2016-06-03 04:50:47 +00:00
e n d i f
2017-06-09 06:38:42 +00:00
i f n e q ( 0 , $( HAVE_FLAC ) )
COMPILERFLAGS += -DHAVE_FLAC
e n d i f
i f n e q ( 0 , $( HAVE_XMP ) )
COMPILERFLAGS += -DHAVE_XMP
2014-07-22 07:25:54 +00:00
e n d i f
i f e q ( $( RENDERTYPE ) , S D L )
2017-06-09 06:38:42 +00:00
ifeq ( $( PLATFORM) ,WII)
SDLCONFIG =
else ifeq ( $( PLATFORM) ,SKYOS)
COMPILERFLAGS += -I/boot/programs/sdk/include/sdl
SDLCONFIG =
endif
2016-06-15 07:08:35 +00:00
ifeq ( $( SDL_TARGET) ,2)
SDLCONFIG ?= sdl2-config
SDLNAME ?= SDL2
2017-06-09 06:38:42 +00:00
else ifeq ( $( SDL_TARGET) ,1)
2016-06-15 07:08:35 +00:00
SDLCONFIG ?= sdl-config
SDLNAME ?= SDL
ifeq ( 0,$( RELEASE) )
COMPILERFLAGS += -DNOSDLPARACHUTE
endif
endif
2014-07-22 07:25:54 +00:00
2016-06-15 07:08:35 +00:00
ifneq ( $( strip $( SDLCONFIG) ) ,)
ifeq ( $( strip $( shell $( SDLCONFIG) --version $( DONT_PRINT_STDERR) ) ) ,)
override SDLCONFIG =
endif
2014-07-22 07:25:54 +00:00
endif
2016-06-15 07:08:35 +00:00
COMPILERFLAGS += -DSDL_TARGET= $( SDL_TARGET)
2014-07-22 07:25:54 +00:00
2017-06-09 06:38:42 +00:00
SDL_FRAMEWORK ?= 0
2016-06-15 07:08:35 +00:00
ifneq ( $( SDL_FRAMEWORK) ,0)
ifeq ( $( PLATFORM) ,DARWIN)
2017-06-09 06:38:42 +00:00
APPLE_FRAMEWORKS ?= /Library/Frameworks
2016-06-15 07:08:35 +00:00
LIBDIRS += -F$( APPLE_FRAMEWORKS)
ifeq ( $( MIXERTYPE) ,SDL)
COMPILERFLAGS += -I$( APPLE_FRAMEWORKS) /$( SDLNAME) _mixer.framework/Headers
LIBS += -Wl,-framework,$( SDLNAME) _mixer
2014-07-22 07:25:54 +00:00
endif
2016-06-15 07:08:35 +00:00
COMPILERFLAGS += -I$( APPLE_FRAMEWORKS) /$( SDLNAME) .framework/Headers
LIBS += -Wl,-framework,$( SDLNAME) -Wl,-rpath -Wl,"@loader_path/../Frameworks"
2014-07-22 07:25:54 +00:00
endif
else
2016-06-15 07:08:35 +00:00
ifeq ( $( MIXERTYPE) ,SDL)
LIBS += -l$( SDLNAME) _mixer
endif
ifneq ( $( SDLCONFIG) ,)
SDLCONFIG_CFLAGS := $( strip $( subst -Dmain= SDL_main,,$( shell $( SDLCONFIG) --cflags) ) )
SDLCONFIG_LIBS := $( strip $( subst -mwindows,,$( shell $( SDLCONFIG) --libs) ) )
2017-03-23 20:47:11 +00:00
COMPILERFLAGS += $( SDLCONFIG_CFLAGS)
2016-06-15 07:08:35 +00:00
LIBS += $( SDLCONFIG_LIBS)
else
ifeq ( $( SDL_TARGET) ,1)
COMPILERFLAGS += -D_GNU_SOURCE= 1
2014-07-22 07:25:54 +00:00
endif
2016-06-15 07:08:35 +00:00
COMPILERFLAGS += -D_REENTRANT -DSDL_USEFOLDER
LIBS += -l$( SDLNAME)
2014-07-22 07:25:54 +00:00
endif
endif
2017-06-09 06:38:42 +00:00
e n d i f
2014-07-22 07:25:54 +00:00
2017-06-09 06:38:42 +00:00
i f n e q ( 0 , $( HAVE_GTK 2) )
ifneq ( No,$( shell $( PKG_CONFIG) --exists gtk+-2.0 || echo No) )
COMPILERFLAGS += -DHAVE_GTK2 $( shell $( PKG_CONFIG) --cflags gtk+-2.0)
2014-07-22 07:25:54 +00:00
else
2017-06-09 06:38:42 +00:00
override HAVE_GTK2 = 0
2014-07-22 07:25:54 +00:00
endif
e n d i f
2017-06-09 06:38:42 +00:00
##### System libraries
2014-07-22 07:25:54 +00:00
i f e q ( $( PLATFORM ) , W I N D O W S )
2017-06-09 06:38:42 +00:00
ifneq ( 0,$( GCC_PREREQ_4) )
L_SSP := -lssp
2014-07-22 07:25:54 +00:00
endif
2017-06-09 06:38:42 +00:00
LIBS += -lmingwex -lgdi32
ifeq ( $( RENDERTYPE) ,WIN)
LIBS += -ldxguid
2014-07-22 07:25:54 +00:00
else
2017-06-09 06:38:42 +00:00
LIBS += -ldxguid_sdl -lmingw32 -limm32 -lole32 -loleaut32 -lversion
2014-07-22 07:25:54 +00:00
endif
2017-06-09 06:38:42 +00:00
LIBS += -lcomctl32 -lwinmm $( L_SSP) -lwsock32 -lws2_32 -lshlwapi
# -lshfolder
e l s e i f e q ( $( PLATFORM ) , S K Y O S )
LIBS += -lnet
e l s e i f e q ( $( PLATFORM ) , Q N X )
LIBS += -lsocket
e l s e i f e q ( $( PLATFORM ) , S U N O S )
LIBS += -lsocket -lnsl
e l s e i f e q ( $( PLATFORM ) , W I I )
LIBS += -laesnd_tueidj -lfat -lwiiuse -lbte -lwiikeyboard -logc
e l s e i f e q ( $( SUBPLATFORM ) , L I N U X )
LIBS += -lrt
2014-07-22 07:25:54 +00:00
e n d i f
2017-06-09 06:38:42 +00:00
i f e q ( , $( filter $ ( PLATFORM ) ,WINDOWS WII ) )
ifneq ( $( PLATFORM) ,BSD)
LIBS += -ldl
endif
ifneq ( $( PLATFORM) ,DARWIN)
LIBS += -pthread
2014-07-22 07:25:54 +00:00
endif
e n d i f
2017-06-09 06:38:42 +00:00
LIBS += -lm
2014-07-22 07:25:54 +00:00
2017-06-09 06:38:42 +00:00
##### Detect version control revision, if applicable
2014-07-28 08:59:58 +00:00
i f e q ( , $( VC_REV ) )
ifneq ( ,$( wildcard EDUKE32_REVISION) )
VC_REV := $( shell cat EDUKE32_REVISION)
endif
e n d i f
i f e q ( , $( VC_REV ) )
VC_REV := $( shell svn info 2>& 1 | grep Revision | cut -d' ' -f2)
e n d i f
i f e q ( , $( VC_REV ) )
VC_REV := $( shell git svn info 2>& 1 | grep Revision | cut -d' ' -f2)
e n d i f
i f n e q ( , $( VC_REV ) $( VC_REV_CUSTOM ) )
2017-06-09 06:38:42 +00:00
REVFLAG := -DREV= " \"r $( VC_REV) $( VC_REV_CUSTOM) \" "
2014-07-28 08:59:58 +00:00
e n d i f
2017-06-09 06:38:42 +00:00
##### Final assembly of commands
2017-03-22 15:45:59 +00:00
COMPILER_C = $( CC) $( CONLYFLAGS) $( COMMONFLAGS) $( CWARNS) $( CONLYWARNS) $( COMPILERFLAGS) $( CUSTOMOPT)
COMPILER_CXX = $( CXX) $( CXXONLYFLAGS) $( COMMONFLAGS) $( CWARNS) $( COMPILERFLAGS) $( CUSTOMOPT)
COMPILER_OBJC = $( COBJC) $( CONLYFLAGS) $( COMMONFLAGS) $( CWARNS) $( CONLYWARNS) $( COMPILERFLAGS) $( CUSTOMOPT)
COMPILER_OBJCXX = $( COBJCXX) $( CXXONLYFLAGS) $( COMMONFLAGS) $( CWARNS) $( COMPILERFLAGS) $( CUSTOMOPT)
LINKER = $( L_CXX) $( CXXONLYFLAGS) $( L_CXXONLYFLAGS) $( COMMONFLAGS) $( LINKERFLAGS) $( CUSTOMOPT)
2014-07-22 07:25:54 +00:00
i f n e q ( $( CPLUSPLUS ) , 0 )
2017-02-01 10:20:54 +00:00
COMPILER_C = $( COMPILER_CXX)
COMPILER_OBJC = $( COMPILER_OBJCXX)
2014-07-22 07:25:54 +00:00
e n d i f
2014-06-16 23:16:23 +00:00
2017-06-09 06:38:42 +00:00
##### Allow standard environment variables to take precedence, to help package maintainers.
2014-07-22 07:25:54 +00:00
i f n e q ( , $( CFLAGS ) )
COMMONFLAGS += $( CFLAGS)
e n d i f
2014-07-22 11:19:25 +00:00
i f n e q ( , $( CXXFLAGS ) )
2016-05-23 04:47:06 +00:00
CXXONLYFLAGS += $( CXXFLAGS)
2014-07-22 11:19:25 +00:00
e n d i f
i f n e q ( , $( LDFLAGS ) )
LINKERFLAGS += $( LDFLAGS)
e n d i f
2014-07-22 07:25:54 +00:00
2017-06-09 06:38:42 +00:00
##### Pretty-printing
2014-07-22 07:25:54 +00:00
i f e q ( $( PRETTY_OUTPUT ) , 1 )
RECIPE_IF = if
2017-06-09 06:38:46 +00:00
BUILD_STARTED = printf " \033[K\033[1;36mBuilding: \033[0;36m $( MAKE) $( MAKECMDGOALS) - $( MAKEFLAGS) \033[0m\n "
2014-07-22 07:25:54 +00:00
COMPILE_STATUS = printf " \033[K\033[0mBuilding object \033[1m $@ \033[0m...\033[0m\r "
COMPILE_OK = printf " \033[K\033[0;32mBuilt object \033[1;32m $@ \033[0;32m \033[0m\n "
COMPILE_FAILED = printf " \033[K\033[0;31mFailed building \033[1;31m $@ \033[0;31m from\033[0m \033[1;31m $<\033[0;31m!\033[0m\n " ; exit 1
RECIPE_RESULT_COMPILE = ; then $( COMPILE_OK) ; else $( COMPILE_FAILED) ; fi
2015-07-08 03:34:34 +00:00
ONESTEP_STATUS = printf " \033[K\033[0mBuilding \033[1m $@ \033[0m...\033[0m\r "
ONESTEP_OK = printf " \033[K\033[0;32mBuilt \033[1;32m $@ \033[0;32m \033[0m\n "
ONESTEP_FAILED = printf " \033[K\033[0;31mFailed building \033[1;31m $@ \033[0;31m!\033[0m\n " ; exit 1
2014-07-22 07:25:54 +00:00
RECIPE_RESULT_ONESTEP = ; then $( ONESTEP_OK) ; else $( ONESTEP_FAILED) ; fi
ARCHIVE_STATUS = printf " \033[K\033[0mCreating library archive \033[1m $@ \033[0m...\033[0m\r "
ARCHIVE_OK = printf " \033[K\033[0;32mCreated library archive \033[1;32m $@ \033[0;32m \033[0m\n "
ARCHIVE_FAILED = printf " \033[K\033[0;31mFailed creating library archive \033[1;31m $@ \033[0;31m from\033[0m \033[1;31m $<\033[0;31m!\033[0m\n " ; exit 1
RECIPE_RESULT_ARCHIVE = ; then $( ARCHIVE_OK) ; else $( ARCHIVE_FAILED) ; fi
2015-07-08 03:34:34 +00:00
LINK_STATUS = printf " \033[K\033[0;0mLinking \033[1m $@ \033[0;0m...\033[0m\r "
LINK_OK = printf " \033[K\033[0;32mLinked \033[1;32m $@ \033[0;32m \033[0m\n "
2016-02-02 00:20:59 +00:00
LINK_FAILED = printf " \033[K\033[0;31mFailed linking \033[1;31m $@ \033[0;31m!\nIf the build options, environment, or system packages have changed, run \'\033[1;31mmake clean\033[0;31m\' and try again.\033[0m\n " ; exit 1
2014-07-22 07:25:54 +00:00
RECIPE_RESULT_LINK = ; then $( LINK_OK) ; else $( LINK_FAILED) ; fi
e l s e
RECIPE_IF =
BUILD_STARTED =
COMPILE_STATUS =
COMPILE_OK = true
COMPILE_FAILED = false; exit 1
RECIPE_RESULT_COMPILE =
ONESTEP_STATUS =
ONESTEP_OK = true
ONESTEP_FAILED = false; exit 1
RECIPE_RESULT_ONESTEP =
ARCHIVE_STATUS =
ARCHIVE_OK = true
ARCHIVE_FAILED = false; exit 1
RECIPE_RESULT_ARCHIVE =
LINK_STATUS =
LINK_OK = true
LINK_FAILED = false; exit 1
RECIPE_RESULT_LINK =
2014-06-16 23:16:23 +00:00
e n d i f