mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-11-25 22:01:01 +00:00
401 lines
5.6 KiB
INI
401 lines
5.6 KiB
INI
#
|
|
# Makefile.cfg for SRB2
|
|
#
|
|
|
|
#
|
|
# GNU compiler & tools' flags
|
|
# and other things
|
|
#
|
|
|
|
ifdef GCC91
|
|
GCC83=1
|
|
endif
|
|
|
|
ifdef GCC83
|
|
GCC82=1
|
|
endif
|
|
|
|
ifdef GCC82
|
|
GCC81=1
|
|
endif
|
|
|
|
ifdef GCC81
|
|
GCC72=1
|
|
endif
|
|
|
|
ifdef GCC72
|
|
GCC71=1
|
|
endif
|
|
|
|
ifdef GCC71
|
|
GCC64=1
|
|
endif
|
|
|
|
ifdef GCC64
|
|
GCC63=1
|
|
endif
|
|
|
|
ifdef GCC63
|
|
GCC62=1
|
|
endif
|
|
|
|
ifdef GCC62
|
|
GCC61=1
|
|
endif
|
|
|
|
ifdef GCC61
|
|
GCC54=1
|
|
endif
|
|
|
|
ifdef GCC54
|
|
GCC53=1
|
|
endif
|
|
|
|
ifdef GCC53
|
|
GCC52=1
|
|
endif
|
|
|
|
ifdef GCC52
|
|
GCC51=1
|
|
endif
|
|
|
|
ifdef GCC51
|
|
GCC49=1
|
|
endif
|
|
|
|
ifdef GCC49
|
|
GCC48=1
|
|
endif
|
|
|
|
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
|
|
|
|
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
|
|
WFLAGS+=-Wfloat-equal
|
|
#WFLAGS+=-Wtraditional
|
|
ifdef VCHELP
|
|
WFLAGS+=-Wdeclaration-after-statement
|
|
WFLAGS+=-Wno-error=declaration-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 GCC91
|
|
WFLAGS+=-Wno-error=address-of-packed-member
|
|
endif
|
|
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
|
|
WFLAGS+=-Wmissing-prototypes -Wmissing-declarations
|
|
ifdef GCC40
|
|
WFLAGS+=-Wmissing-field-initializers
|
|
endif
|
|
WFLAGS+=-Wmissing-noreturn
|
|
#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
|
|
ifdef GCC71
|
|
WFLAGS+=-Wno-error=format-overflow=2
|
|
endif
|
|
WFLAGS+=-Wformat-security
|
|
ifndef GCC29
|
|
#WFLAGS+=-Winit-self
|
|
endif
|
|
ifdef GCC46
|
|
WFLAGS+=-Wno-suggest-attribute=noreturn
|
|
endif
|
|
|
|
ifdef NOLDWARNING
|
|
LDFLAGS+=-Wl,--as-needed
|
|
endif
|
|
|
|
ifdef ERRORMODE
|
|
WFLAGS+=-Werror
|
|
endif
|
|
|
|
WFLAGS+=$(OLDWFLAGS)
|
|
|
|
ifdef GCC43
|
|
#WFLAGS+=-Wno-error=clobbered
|
|
endif
|
|
ifdef GCC44
|
|
WFLAGS+=-Wno-error=array-bounds
|
|
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
|
|
endif
|
|
ifdef GCC71
|
|
WFLAGS+=-Wimplicit-fallthrough=4
|
|
endif
|
|
ifdef GCC81
|
|
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
|
|
WFLAGS+=-Wno-error=multistatement-macros
|
|
endif
|
|
|
|
|
|
#indicate platform and what interface use with
|
|
ifndef LINUX
|
|
ifndef FREEBSD
|
|
ifndef CYGWIN32
|
|
ifndef MINGW
|
|
ifndef MINGW64
|
|
ifndef SDL
|
|
ifndef DUMMY
|
|
DJGPPDOS=1
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
#determine the interface directory (where you put all i_*.c)
|
|
i_cdmus_o=$(OBJDIR)/i_cdmus.o
|
|
i_net_o=$(OBJDIR)/i_net.o
|
|
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
|
|
MKDIR?=mkdir -p
|
|
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 MINGW
|
|
INTERFACE=win32
|
|
NASMFORMAT=win32
|
|
OBJDIR:=$(OBJDIR)/Mingw
|
|
BIN:=$(BIN)/Mingw
|
|
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
|
|
|
|
# because Apple screws with us on this
|
|
# need to get bintools from homebrew
|
|
ifdef MACOSX
|
|
CC=clang
|
|
CXX=clang
|
|
OBJCOPY=gobjcopy
|
|
OBJDUMP=gobjdump
|
|
endif
|
|
|
|
OBJDUMP_OPTS?=--wide --source --line-numbers
|
|
LD=$(CC)
|
|
|
|
ifdef SDL
|
|
INTERFACE=sdl
|
|
OBJDIR:=$(OBJDIR)/SDL
|
|
endif
|
|
|
|
ifndef DUMMY
|
|
ifdef DEBUGMODE
|
|
OBJDIR:=$(OBJDIR)/Debug
|
|
BIN:=$(BIN)/Debug
|
|
else
|
|
OBJDIR:=$(OBJDIR)/Release
|
|
BIN:=$(BIN)/Release
|
|
endif
|
|
endif
|