2014-03-15 16:59:03 +00:00
|
|
|
#
|
|
|
|
# Makefile.cfg for SRB2
|
|
|
|
#
|
|
|
|
|
|
|
|
#
|
|
|
|
# GNU compiler & tools' flags
|
|
|
|
# and other things
|
|
|
|
#
|
|
|
|
|
2017-03-12 21:45:18 +00:00
|
|
|
|
|
|
|
ifdef GCC63
|
|
|
|
GCC62=1
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef GCC62
|
|
|
|
GCC61=1
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef GCC61
|
|
|
|
GCC54=1
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef GCC54
|
|
|
|
GCC53=1
|
2017-03-13 00:23:30 +00:00
|
|
|
endif
|
2017-03-12 21:45:18 +00:00
|
|
|
|
2016-01-27 06:39:12 +00:00
|
|
|
ifdef GCC53
|
|
|
|
GCC52=1
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef GCC52
|
|
|
|
GCC51=1
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef GCC51
|
|
|
|
GCC49=1
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef GCC49
|
|
|
|
GCC48=1
|
|
|
|
endif
|
|
|
|
|
2014-03-15 16:59:03 +00:00
|
|
|
ifdef GCC48
|
|
|
|
GCC47=1
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef GCC47
|
|
|
|
GCC46=1
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef GCC46
|
|
|
|
GCC45=1
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef GCC45
|
|
|
|
GCC44=1
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef GCC44
|
|
|
|
GCC43=1
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef GCC43
|
|
|
|
GCC42=1
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef GCC42
|
|
|
|
GCC41=1
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef GCC41
|
|
|
|
GCC40=1
|
|
|
|
VCHELP=1
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef GCC295
|
|
|
|
GCC29=1
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef DC
|
|
|
|
NOCASTALIGNWARN=1
|
|
|
|
endif
|
|
|
|
|
|
|
|
OLDWFLAGS:=$(WFLAGS)
|
|
|
|
# -W -Wno-unused
|
|
|
|
WFLAGS=-Wall
|
|
|
|
ifndef GCC295
|
|
|
|
#WFLAGS+=-Wno-packed
|
|
|
|
endif
|
|
|
|
ifdef ERRORMODE
|
|
|
|
WARNINGMODE=1
|
|
|
|
endif
|
|
|
|
ifdef WARNINGMODE
|
|
|
|
WFLAGS+=-W
|
|
|
|
#WFLAGS+=-Wno-sign-compare
|
|
|
|
ifndef GCC295
|
|
|
|
WFLAGS+=-Wno-div-by-zero
|
|
|
|
endif
|
|
|
|
#WFLAGS+=-Wsystem-headers
|
|
|
|
ifndef ERRORMODE
|
|
|
|
#WFLAGS+=-Wfloat-equal
|
|
|
|
endif
|
|
|
|
#WFLAGS+=-Wtraditional
|
|
|
|
ifdef VCHELP
|
|
|
|
WFLAGS+=-Wdeclaration-after-statement
|
|
|
|
endif
|
|
|
|
WFLAGS+=-Wundef
|
|
|
|
ifndef GCC295
|
|
|
|
WFLAGS+=-Wendif-labels
|
|
|
|
endif
|
|
|
|
ifdef GCC41
|
|
|
|
WFLAGS+=-Wshadow
|
|
|
|
endif
|
|
|
|
#WFLAGS+=-Wlarger-than-%len%
|
|
|
|
WFLAGS+=-Wpointer-arith -Wbad-function-cast
|
|
|
|
ifdef GCC45
|
|
|
|
#WFLAGS+=-Wc++-compat
|
|
|
|
endif
|
|
|
|
WFLAGS+=-Wcast-qual
|
|
|
|
ifndef NOCASTALIGNWARN
|
|
|
|
WFLAGS+=-Wcast-align
|
|
|
|
endif
|
|
|
|
WFLAGS+=-Wwrite-strings
|
|
|
|
ifndef ERRORMODE
|
|
|
|
#WFLAGS+=-Wconversion
|
|
|
|
ifdef GCC43
|
|
|
|
#WFLAGS+=-Wno-sign-conversion
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
WFLAGS+=-Wsign-compare
|
|
|
|
ifdef GCC45
|
|
|
|
WFLAGS+=-Wlogical-op
|
|
|
|
endif
|
|
|
|
WFLAGS+=-Waggregate-return
|
|
|
|
ifdef HAIKU
|
|
|
|
ifdef GCC41
|
|
|
|
#WFLAGS+=-Wno-attributes
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
#WFLAGS+=-Wstrict-prototypes
|
|
|
|
ifdef GCC40
|
|
|
|
WFLAGS+=-Wold-style-definition
|
|
|
|
endif
|
|
|
|
ifndef XBOX
|
|
|
|
WFLAGS+=-Wmissing-prototypes -Wmissing-declarations
|
|
|
|
endif
|
|
|
|
ifdef GCC40
|
|
|
|
WFLAGS+=-Wmissing-field-initializers
|
|
|
|
endif
|
|
|
|
ifndef XBOX
|
|
|
|
WFLAGS+=-Wmissing-noreturn
|
|
|
|
endif
|
|
|
|
#WFLAGS+=-Wmissing-format-attribute
|
|
|
|
#WFLAGS+=-Wno-multichar
|
|
|
|
#WFLAGS+=-Wno-deprecated-declarations
|
|
|
|
#WFLAGS+=-Wpacked
|
|
|
|
#WFLAGS+=-Wpadded
|
|
|
|
#WFLAGS+=-Wredundant-decls
|
|
|
|
WFLAGS+=-Wnested-externs
|
|
|
|
#WFLAGS+=-Wunreachable-code
|
|
|
|
WFLAGS+=-Winline
|
|
|
|
ifdef GCC43
|
|
|
|
WFLAGS+=-funit-at-a-time
|
|
|
|
WFLAGS+=-Wlogical-op
|
|
|
|
endif
|
|
|
|
ifndef GCC295
|
|
|
|
WFLAGS+=-Wdisabled-optimization
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
WFLAGS+=-Wformat-y2k
|
|
|
|
WFLAGS+=-Wformat-security
|
|
|
|
ifndef GCC29
|
|
|
|
#WFLAGS+=-Winit-self
|
|
|
|
endif
|
2016-01-28 17:06:00 +00:00
|
|
|
ifdef GCC46
|
|
|
|
WFLAGS+=-Wno-suggest-attribute=noreturn
|
|
|
|
endif
|
|
|
|
|
2014-03-15 16:59:03 +00:00
|
|
|
ifndef MINGW
|
|
|
|
ifdef GCC45
|
|
|
|
WFLAGS+=-Wunsuffixed-float-constants
|
|
|
|
endif
|
|
|
|
endif
|
2017-03-13 01:09:06 +00:00
|
|
|
|
2014-03-15 16:59:03 +00:00
|
|
|
ifdef NOLDWARNING
|
|
|
|
LDFLAGS+=-Wl,--as-needed
|
|
|
|
endif
|
2017-03-13 01:09:06 +00:00
|
|
|
|
2014-03-15 16:59:03 +00:00
|
|
|
ifdef ERRORMODE
|
|
|
|
WFLAGS+=-Werror
|
|
|
|
endif
|
2017-03-13 01:09:06 +00:00
|
|
|
|
2017-03-13 00:51:45 +00:00
|
|
|
WFLAGS+=$(OLDWFLAGS)
|
2017-03-13 01:09:06 +00:00
|
|
|
|
2014-03-15 16:59:03 +00:00
|
|
|
ifdef GCC43
|
|
|
|
#WFLAGS+=-Wno-error=clobbered
|
|
|
|
endif
|
2016-05-27 05:55:52 +00:00
|
|
|
ifdef GCC46
|
|
|
|
WFLAGS+=-Wno-error=suggest-attribute=noreturn
|
|
|
|
endif
|
2017-03-13 00:43:35 +00:00
|
|
|
ifdef GCC54
|
2017-03-13 01:16:37 +00:00
|
|
|
WFLAGS+=-Wno-logical-op -Wno-error=logical-op
|
2017-03-13 00:43:35 +00:00
|
|
|
endif
|
|
|
|
ifdef GCC61
|
2017-03-13 01:16:37 +00:00
|
|
|
WFLAGS+=-Wno-tautological-compare -Wno-error=tautological-compare
|
2017-03-12 21:45:18 +00:00
|
|
|
endif
|
2014-03-15 16:59:03 +00:00
|
|
|
|
2016-01-28 16:49:23 +00:00
|
|
|
|
2014-03-15 16:59:03 +00:00
|
|
|
#indicate platform and what interface use with
|
|
|
|
ifndef WINCE
|
|
|
|
ifndef XBOX
|
|
|
|
ifndef PSP
|
|
|
|
ifndef DC
|
|
|
|
ifndef WII
|
|
|
|
ifndef PS3N
|
|
|
|
ifndef LINUX
|
|
|
|
ifndef FREEBSD
|
|
|
|
ifndef CYGWIN32
|
|
|
|
ifndef MINGW
|
|
|
|
ifndef SDL
|
|
|
|
ifndef NDS
|
|
|
|
ifndef DUMMY
|
|
|
|
DJGPPDOS=1
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
#determine the interface directory (where you put all i_*.c)
|
|
|
|
i_cdmus_o=$(OBJDIR)/i_cdmus.o
|
2016-07-21 18:42:00 +00:00
|
|
|
i_net_o=$(OBJDIR)/i_net.o
|
2014-03-15 16:59:03 +00:00
|
|
|
i_system_o=$(OBJDIR)/i_system.o
|
|
|
|
i_sound_o=$(OBJDIR)/i_sound.o
|
|
|
|
i_main_o=$(OBJDIR)/i_main.o
|
|
|
|
#set OBJDIR and BIN's starting place
|
|
|
|
OBJDIR=../objs
|
|
|
|
BIN=../bin
|
|
|
|
#Nasm ASM and rm
|
|
|
|
ifdef YASM
|
|
|
|
NASM?=yasm
|
|
|
|
else
|
|
|
|
NASM?=nasm
|
|
|
|
endif
|
|
|
|
REMOVE?=rm -f
|
|
|
|
CP?=cp
|
|
|
|
MKDIR?=mkdir -p
|
|
|
|
MKISOFS?=mkisofs
|
|
|
|
DD?=dd
|
|
|
|
GZIP?=gzip
|
|
|
|
GZIP_OPTS?=-9 -f -n
|
|
|
|
GZIP_OPT2=$(GZIP_OPTS) --rsyncable
|
|
|
|
UPX?=upx
|
|
|
|
UPX_OPTS?=--best --preserve-build-id
|
|
|
|
ifndef ECHO
|
|
|
|
UPX_OPTS+=-q
|
|
|
|
endif
|
|
|
|
|
|
|
|
#Interface Setup
|
|
|
|
ifdef DJGPPDOS
|
|
|
|
INTERFACE=djgppdos
|
|
|
|
NASMFORMAT=coff
|
|
|
|
OBJDIR:=$(OBJDIR)/djgppdos
|
|
|
|
ifdef WATTCP
|
|
|
|
OBJDIR:=$(OBJDIR)/wattcp
|
|
|
|
endif
|
|
|
|
WFLAGS+=-Wno-format
|
|
|
|
BIN:=$(BIN)/Dos
|
|
|
|
else
|
|
|
|
ifdef DUMMY
|
|
|
|
INTERFACE=dummy
|
|
|
|
OBJDIR:=$(OBJDIR)/dummy
|
|
|
|
BIN:=$(BIN)/dummy
|
|
|
|
else
|
|
|
|
ifdef LINUX
|
|
|
|
NASMFORMAT=elf -DLINUX
|
|
|
|
SDL=1
|
|
|
|
ifdef LINUX64
|
|
|
|
OBJDIR:=$(OBJDIR)/Linux64
|
|
|
|
BIN:=$(BIN)/Linux64
|
|
|
|
else
|
|
|
|
OBJDIR:=$(OBJDIR)/Linux
|
|
|
|
BIN:=$(BIN)/Linux
|
|
|
|
endif
|
|
|
|
else
|
|
|
|
ifdef FREEBSD
|
|
|
|
INTERFACE=sdl
|
|
|
|
NASMFORMAT=elf -DLINUX
|
|
|
|
SDL=1
|
|
|
|
|
|
|
|
OBJDIR:=$(OBJDIR)/FreeBSD
|
|
|
|
BIN:=$(BIN)/FreeBSD
|
|
|
|
else
|
|
|
|
ifdef SOLARIS
|
|
|
|
INTERFACE=sdl
|
|
|
|
NASMFORMAT=elf -DLINUX
|
|
|
|
SDL=1
|
|
|
|
|
|
|
|
OBJDIR:=$(OBJDIR)/Solaris
|
|
|
|
BIN:=$(BIN)/Solaris
|
|
|
|
else
|
|
|
|
ifdef CYGWIN32
|
|
|
|
INTERFACE=sdl
|
|
|
|
NASMFORMAT=win32
|
|
|
|
SDL=1
|
|
|
|
|
|
|
|
OBJDIR:=$(OBJDIR)/cygwin
|
|
|
|
BIN:=$(BIN)/Cygwin
|
|
|
|
else
|
|
|
|
ifdef MINGW64
|
|
|
|
INTERFACE=win32
|
|
|
|
#NASMFORMAT=win64
|
|
|
|
OBJDIR:=$(OBJDIR)/Mingw64
|
|
|
|
BIN:=$(BIN)/Mingw64
|
|
|
|
else
|
|
|
|
ifdef WII
|
2017-09-14 20:03:20 +00:00
|
|
|
INTERFACE=sdl12
|
2014-03-15 16:59:03 +00:00
|
|
|
NONX86=1
|
|
|
|
STATIC=1
|
|
|
|
PREFIX?=powerpc-eabi
|
|
|
|
SDL=1
|
2017-09-14 20:03:20 +00:00
|
|
|
SDL12=1
|
2014-03-15 16:59:03 +00:00
|
|
|
SDLMAIN=1
|
|
|
|
OBJDIR:=$(OBJDIR)/Wii
|
|
|
|
BIN:=$(BIN)/Wii
|
|
|
|
NOUPX=1
|
|
|
|
else
|
|
|
|
ifdef PS3N
|
2017-09-14 20:03:20 +00:00
|
|
|
INTERFACE=sdl12
|
2014-03-15 16:59:03 +00:00
|
|
|
NONX86=1
|
|
|
|
STATIC=1
|
|
|
|
PREFIX?=ppu
|
|
|
|
SDL=1
|
2017-09-14 20:03:20 +00:00
|
|
|
SDL12=1
|
2014-03-15 16:59:03 +00:00
|
|
|
# unsure?
|
|
|
|
#SDLMAIN=1
|
|
|
|
# can't compile SDL_mixer for ps3...
|
|
|
|
NOMIXER=1
|
|
|
|
OBJDIR:=$(OBJDIR)/PS3
|
|
|
|
BIN:=$(BIN)/PS3
|
|
|
|
else
|
|
|
|
ifdef MINGW
|
|
|
|
INTERFACE=win32
|
|
|
|
NASMFORMAT=win32
|
|
|
|
OBJDIR:=$(OBJDIR)/Mingw
|
|
|
|
BIN:=$(BIN)/Mingw
|
|
|
|
else
|
|
|
|
ifdef XBOX
|
2017-09-14 20:03:20 +00:00
|
|
|
INTERFACE=sdl12
|
2014-03-15 16:59:03 +00:00
|
|
|
NASMFORMAT=win32
|
|
|
|
PREFIX?=/usr/local/openxdk/bin/i386-pc-xbox
|
|
|
|
SDL=1
|
2017-09-14 20:03:20 +00:00
|
|
|
SDL12=1
|
2014-03-15 16:59:03 +00:00
|
|
|
OBJDIR:=$(OBJDIR)/XBOX
|
|
|
|
BIN:=$(BIN)/XBOX
|
|
|
|
else
|
|
|
|
ifdef PSP
|
2017-09-14 20:03:20 +00:00
|
|
|
INTERFACE=sdl12
|
2014-03-15 16:59:03 +00:00
|
|
|
NONX86=1
|
|
|
|
SDL=1
|
2017-09-14 20:03:20 +00:00
|
|
|
SDL12=1
|
2014-03-15 16:59:03 +00:00
|
|
|
OBJDIR:=$(OBJDIR)/PSP
|
|
|
|
BIN:=$(BIN)/PSP
|
|
|
|
NOUPX=1
|
|
|
|
else
|
|
|
|
ifdef DC
|
2017-09-14 20:03:20 +00:00
|
|
|
INTERFACE=sdl12
|
2014-03-15 16:59:03 +00:00
|
|
|
NONX86=1
|
|
|
|
SDL=1
|
2017-09-14 20:03:20 +00:00
|
|
|
SDL12=1
|
2014-03-15 16:59:03 +00:00
|
|
|
OBJDIR:=$(OBJDIR)/DC
|
|
|
|
BIN:=$(BIN)/DC
|
|
|
|
NOUPX=1
|
|
|
|
else
|
|
|
|
ifdef WINCE
|
2017-09-14 20:03:20 +00:00
|
|
|
INTERFACE=sdl12
|
2014-03-15 16:59:03 +00:00
|
|
|
NONX86=1
|
|
|
|
PREFIX?=arm-wince-pe
|
|
|
|
SDL=1
|
2017-09-14 20:03:20 +00:00
|
|
|
SDL12=1
|
2014-03-15 16:59:03 +00:00
|
|
|
OBJDIR:=$(OBJDIR)/WinCE
|
|
|
|
BIN:=$(BIN)/WinCE
|
|
|
|
else
|
|
|
|
ifdef NDS
|
|
|
|
INTERFACE=nds
|
|
|
|
OBJDIR:=$(OBJDIR)/nds
|
|
|
|
BIN:=$(BIN)/nds
|
|
|
|
NOUPX=1
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef ARCHNAME
|
|
|
|
OBJDIR:=$(OBJDIR)/$(ARCHNAME)
|
|
|
|
BIN:=$(BIN)/$(ARCHNAME)
|
|
|
|
endif
|
|
|
|
|
|
|
|
# gcc or g++
|
|
|
|
ifdef PREFIX
|
|
|
|
CC=$(PREFIX)-gcc
|
|
|
|
CXX=$(PREFIX)-g++
|
|
|
|
OBJCOPY=$(PREFIX)-objcopy
|
|
|
|
OBJDUMP=$(PREFIX)-objdump
|
|
|
|
STRIP=$(PREFIX)-strip
|
|
|
|
WINDRES=$(PREFIX)-windres
|
|
|
|
else
|
|
|
|
OBJCOPY=objcopy
|
|
|
|
OBJDUMP=objdump
|
|
|
|
STRIP=strip
|
|
|
|
WINDRES=windres
|
|
|
|
endif
|
|
|
|
|
2016-05-19 00:14:53 +00:00
|
|
|
# because Apple screws with us on this
|
|
|
|
# need to get bintools from homebrew
|
|
|
|
ifdef MACOSX
|
|
|
|
CC=clang
|
|
|
|
CXX=clang
|
|
|
|
OBJCOPY=gobjcopy
|
|
|
|
OBJDUMP=gobjdump
|
|
|
|
endif
|
|
|
|
|
2014-03-15 16:59:03 +00:00
|
|
|
OBJDUMP_OPTS?=--wide --source --line-numbers
|
|
|
|
LD=$(CC)
|
|
|
|
|
|
|
|
ifdef SDL
|
2017-09-14 20:03:20 +00:00
|
|
|
# SDL 2.0
|
|
|
|
ifndef SDL12
|
2014-08-28 02:43:10 +00:00
|
|
|
INTERFACE=sdl
|
2017-09-14 20:03:20 +00:00
|
|
|
# SDL 1.2
|
|
|
|
else
|
|
|
|
INTERFACE=sdl12
|
|
|
|
endif
|
2014-03-15 16:59:03 +00:00
|
|
|
OBJDIR:=$(OBJDIR)/SDL
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifndef DUMMY
|
|
|
|
ifdef DEBUGMODE
|
|
|
|
OBJDIR:=$(OBJDIR)/Debug
|
|
|
|
BIN:=$(BIN)/Debug
|
|
|
|
else
|
|
|
|
OBJDIR:=$(OBJDIR)/Release
|
|
|
|
BIN:=$(BIN)/Release
|
|
|
|
endif
|
|
|
|
endif
|