SRB2/src/Makefile.cfg

499 lines
6.7 KiB
INI
Raw Normal View History

2014-03-15 16:59:03 +00:00
#
# Makefile.cfg for SRB2
#
#
# GNU compiler & tools' flags
# and other things
#
2017-10-01 03:07:47 +00:00
ifdef GCC80
GCC72=1
endif
ifdef GCC72
GCC71=1
endif
ifdef GCC71
GCC64=1
endif
2017-03-12 21:45:18 +00:00
2017-09-28 13:04:36 +00:00
ifdef GCC64
GCC63=1
2017-09-28 13:04:36 +00:00
endif
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
2018-12-15 00:33:40 +00:00
WFLAGS+=-Wfloat-equal
2014-03-15 16:59:03 +00:00
#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
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
ifdef GCC46
WFLAGS+=-Wno-error=suggest-attribute=noreturn
endif
ifdef GCC54
WFLAGS+=-Wno-logical-op -Wno-error=logical-op
endif
ifdef GCC61
WFLAGS+=-Wno-tautological-compare -Wno-error=tautological-compare
2017-03-12 21:45:18 +00:00
endif
ifdef GCC71
WFLAGS+=-Wno-error=implicit-fallthrough
WFLAGS+=-Wno-implicit-fallthrough
endif
ifdef GCC80
WFLAGS+=-Wno-error=format-overflow
WFLAGS+=-Wno-error=stringop-truncation
WFLAGS+=-Wno-error=stringop-overflow
WFLAGS+=-Wno-format-overflow
WFLAGS+=-Wno-stringop-truncation
WFLAGS+=-Wno-stringop-overflow
2019-02-21 23:48:42 +00:00
WFLAGS+=-Wno-error=multistatement-macros
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
2018-11-14 23:00:10 +00:00
ifndef MINGW64
2014-03-15 16:59:03 +00:00
ifndef SDL
ifndef NDS
ifndef DUMMY
DJGPPDOS=1
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
2018-11-14 23:00:10 +00:00
endif
2014-03-15 16:59:03 +00:00
#determine the interface directory (where you put all i_*.c)
i_cdmus_o=$(OBJDIR)/i_cdmus.o
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
INTERFACE=sdl12
2014-03-15 16:59:03 +00:00
NONX86=1
STATIC=1
PREFIX?=powerpc-eabi
SDL=1
SDL12=1
2014-03-15 16:59:03 +00:00
SDLMAIN=1
OBJDIR:=$(OBJDIR)/Wii
BIN:=$(BIN)/Wii
NOUPX=1
else
ifdef PS3N
INTERFACE=sdl12
2014-03-15 16:59:03 +00:00
NONX86=1
STATIC=1
PREFIX?=ppu
SDL=1
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
INTERFACE=sdl12
2014-03-15 16:59:03 +00:00
NASMFORMAT=win32
PREFIX?=/usr/local/openxdk/bin/i386-pc-xbox
SDL=1
SDL12=1
2014-03-15 16:59:03 +00:00
OBJDIR:=$(OBJDIR)/XBOX
BIN:=$(BIN)/XBOX
else
ifdef PSP
INTERFACE=sdl12
2014-03-15 16:59:03 +00:00
NONX86=1
SDL=1
SDL12=1
2014-03-15 16:59:03 +00:00
OBJDIR:=$(OBJDIR)/PSP
BIN:=$(BIN)/PSP
NOUPX=1
else
ifdef DC
INTERFACE=sdl12
2014-03-15 16:59:03 +00:00
NONX86=1
SDL=1
SDL12=1
2014-03-15 16:59:03 +00:00
OBJDIR:=$(OBJDIR)/DC
BIN:=$(BIN)/DC
NOUPX=1
else
ifdef WINCE
INTERFACE=sdl12
2014-03-15 16:59:03 +00:00
NONX86=1
PREFIX?=arm-wince-pe
SDL=1
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 GP2X
ifdef SDL
SDL12=1
endif
endif
2014-03-15 16:59:03 +00:00
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
# 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
# SDL 2.0
ifndef SDL12
2014-08-28 02:43:10 +00:00
INTERFACE=sdl
# 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