mirror of
https://github.com/MariaDB/server.git
synced 2025-01-22 06:44:16 +01:00
178820a688
2216a is no longer valid. Refs #2216. [t:2216]. {{{ svn merge -r17301:18179 https://svn.tokutek.com/tokudb/toku/tokudb.2216a/src/tests }}} git-svn-id: file:///svn/toku/tokudb@18181 c7de825b-a66e-492c-adef-691d508d4ae1
251 lines
6.8 KiB
Text
251 lines
6.8 KiB
Text
SYSTEM = $(shell uname -s | tr [:upper:] [:lower:])
|
|
ARCH = $(shell uname -m | tr [:upper:] [:lower:])
|
|
|
|
ifeq ($(CYGWIN),)
|
|
OS=$(SYSTEM)
|
|
else ifneq ($(CC),icc)
|
|
OS=$(SYSTEM)
|
|
else
|
|
OS=windows
|
|
endif
|
|
|
|
ifeq ($(CC),icc)
|
|
COMPILER=icc
|
|
else
|
|
COMPILER=gcc
|
|
endif
|
|
|
|
OEXT_linux_gcc =o
|
|
OEXT_windows_icc=obj
|
|
OEXT=$(OEXT_$(OS)_$(COMPILER))
|
|
|
|
AEXT_linux_gcc =a
|
|
AEXT_windows_icc=lib
|
|
AEXT=$(AEXT_$(OS)_$(COMPILER))
|
|
|
|
SOEXT=so
|
|
|
|
COMBINE_C_windows_icc = -Qipo-c
|
|
COMBINE_C_linux_icc = -ipo-c
|
|
COMBINE_C_linux_gcc = -combine -c
|
|
COMBINE_C = $(COMBINE_C_$(OS)_$(COMPILER))
|
|
|
|
# Need XOPEN_SOURCE=600 to get strtoll()
|
|
ifeq ($(SYSTEM),linux)
|
|
CPPFLAGS+=-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
|
|
endif
|
|
ifeq ($(SYSTEM),sunos)
|
|
CPPFLAGS+=-D_SVID_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_XOPEN_SOURCE=600
|
|
endif
|
|
|
|
WALL = -Wall -Wextra -Wcast-align -Wbad-function-cast -Wno-missing-noreturn -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations
|
|
W64 =
|
|
ifeq ($(CC),icc)
|
|
W64 = -Wport #-Wp64
|
|
endif
|
|
ifeq ($(SYSTEM),freebsd)
|
|
WERROR =
|
|
else
|
|
WERROR = -Werror
|
|
endif
|
|
ifneq ($(CYGWIN),)
|
|
ifeq ($(CC),icc)
|
|
#Cygwin icc only
|
|
WERROR = -WX # Windows icc version of -Werror
|
|
WERROR += -Qdiag-error:167,266,810 # Workarounds for -WX not being complete on windows icc
|
|
endif
|
|
endif
|
|
FORMAT = -Wmissing-format-attribute #-Wformat=2 #Stronger printf warnings once logger.c cleaned up
|
|
ifeq ($(CC),icc)
|
|
FORMAT= #No argument for extra format warnings.
|
|
endif
|
|
ifneq ($(CYGWIN),)
|
|
ifneq ($(CC),icc)
|
|
FORMAT = -Wno-format # cygwin gcc only
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(SYSTEM),sunos)
|
|
VISIBILITY=
|
|
else
|
|
VISIBILITY= -fvisibility=hidden
|
|
endif
|
|
ifneq ($(CYGWIN),)
|
|
VISIBILITY=#Not supported
|
|
endif
|
|
FPICFLAGS = -fPIC
|
|
ifneq ($(CYGWIN),)
|
|
FPICFLAGS=#FPIC is default and not allowed as an option.
|
|
endif
|
|
SHADOW = -Wshadow
|
|
ifneq ($(CYGWIN),)
|
|
SHADOW=#Not supported
|
|
endif
|
|
ifneq ($(CC),icc)
|
|
ifeq ($(ARCH),i686)
|
|
ARCHFLAGS = -march=$(ARCH)
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(CC),icc)
|
|
#icc only:
|
|
OPT_OPTFLAGS = -O3 -ip -ipo1
|
|
DBG_OPTFLAGS = -O0
|
|
else
|
|
ifneq ($(CYGWIN),)
|
|
#cygwin icc
|
|
OPT_OPTFLAGS = -Ox -Qip -Qipo1
|
|
DBG_OPTFLAGS = -Od
|
|
else
|
|
#linux icc
|
|
OPT_OPTFLAGS = -O3 -finline-functions
|
|
DBG_OPTFLAGS = -O0
|
|
endif
|
|
endif
|
|
|
|
AR=ar
|
|
DBG_ARFLAGS=cr
|
|
OPT_ARFLAGS=cr
|
|
|
|
foo:
|
|
echo $(DEBUG)
|
|
ifneq ($(DEBUG),1)
|
|
OPTFLAGS = $(OPT_OPTFLAGS)
|
|
ARFLAGS = $(OPT_ARFLAGS)
|
|
else
|
|
OPTFLAGS = $(DBG_OPTFLAGS)
|
|
ARFLAGS = $(DBG_ARFLAGS)
|
|
endif
|
|
|
|
ifneq ($(GCOV),)
|
|
GCOV_FLAGS = -fprofile-arcs -ftest-coverage -DGCOV
|
|
endif
|
|
ifneq ($(PROF),)
|
|
PROF_FLAGS = -pg
|
|
endif
|
|
|
|
ifeq ($(CC),icc)
|
|
SYMBOLS= -g -debug all -inline-debug-info
|
|
else
|
|
ifneq ($(CYGWIN),)
|
|
SYMBOLS= -Zi -debug:all -Qinline-debug-info
|
|
else
|
|
SYMBOLS = -g3 -ggdb3
|
|
endif
|
|
endif
|
|
|
|
SKIP_WARNING=
|
|
ifeq ($(CC),icc)
|
|
ifneq ($(CYGWIN),)
|
|
#Cygwin
|
|
ICC_NOWARN=-Qdiag-disable:
|
|
SKIP_WARNING += $(ICC_NOWARN)869 # Don't complain about unused variables (since we defined __attribute__ to be nothing.)
|
|
SKIP_WARNING += $(ICC_NOWARN)593 # Don't complain about unused variables (since we defined __attribute__ to be nothing.)
|
|
SKIP_WARNING += $(ICC_NOWARN)11000 # Disable message about multi-file optimization
|
|
SKIP_WARNING += $(ICC_NOWARN)11000 # Disable message about single-file optimization
|
|
SKIP_WARNING += $(ICC_NOWARN)11005 # Disable message about creating object file
|
|
SKIP_WARNING += $(ICC_NOWARN)188 # Disable message about 0 used for enum
|
|
SKIP_WARNING += $(ICC_NOWARN)1011 # Disable message about missing return with an abort
|
|
else
|
|
#Linux
|
|
ICC_NOWARN=-diag-disable #Need the space
|
|
endif
|
|
SKIP_WARNING += $(ICC_NOWARN)810 # Remove warnings about losing precision
|
|
SKIP_WARNING += $(ICC_NOWARN)94 # Allow arrays of length 0
|
|
SKIP_WARNING += $(ICC_NOWARN)118 # Allow void functions to return void functions
|
|
SKIP_WARNING += $(ICC_NOWARN)177 # Don't complain about static variables that are not used.
|
|
#SKIP_WARNING += $(ICC_NOWARN)188 # Don't complain about enumerated type mixed with another type.
|
|
SKIP_WARNING += $(ICC_NOWARN)589 # Don't complain about goto into a block that skips initializing variables. GCC catches the actual uninitialized variables.
|
|
SKIP_WARNING += $(ICC_NOWARN)981 # Don't complain about "operands are evaluated in unspecified order". This seems to be generated whenever more than one argument to a function or operand is computed by function call.
|
|
SKIP_WARNING += $(ICC_NOWARN)1324 # Don't complain about rdtsc clobbering its registers more than once.
|
|
endif
|
|
|
|
C99 = -std=c99
|
|
ifneq ($(CYGWIN),)
|
|
ifeq ($(CC),icc)
|
|
C99 = -Qstd=c99 -Qvc9
|
|
endif
|
|
endif
|
|
|
|
CCQUIET=
|
|
ifneq ($(CYGWIN),)
|
|
ifeq ($(CC),icc)
|
|
CCQUIET=-nologo
|
|
endif
|
|
endif
|
|
ifeq ($(GCCVERSION),4.4.2)
|
|
CC_VERSION_SPECIFIC_FLAGS = -Wno-deprecated
|
|
endif
|
|
CFLAGS = $(WALL) $(W64) $(WERROR) $(FORMAT) $(VISIBILITY) $(FPICFLAGS) $(SHADOW) $(ARCHFLAGS) \
|
|
$(OPTFLAGS) $(GCOV_FLAGS) $(PROF_FLAGS) \
|
|
$(SYMBOLS) $(SKIP_WARNING) $(C99) $(CCQUIET) $(CC_VERSION_SPECIFIC_FLAGS)
|
|
|
|
OOUTPUT = -o
|
|
ifneq ($(CYGWIN),)
|
|
ifeq ($(CC),icc)
|
|
OOUTPUT=-Fo
|
|
endif
|
|
endif
|
|
|
|
# TODO: 1398 Get rid of this hack.
|
|
CPPFLAGS+=-DBRT_LEVEL_STRADDLE_CALLBACK_LOGIC_NOT_READY=1
|
|
|
|
CPPFLAGS+=$(CPP_DIRECTORIES)
|
|
|
|
LDFLAGS = -Wl,-rpath,libo
|
|
|
|
ifeq ($(TOKU_SKIP_CXX),1)
|
|
SRCDIRS_CXX =
|
|
else
|
|
SRCDIRS_CXX = cxx db-benchmark-test-cxx
|
|
endif
|
|
|
|
//SRCDIRS = $(OS) newbrt src utils db-benchmark-test $(SRCDIRS_CXX)
|
|
SRCDIRS = $(OS) buildheader newbrt
|
|
|
|
%.$(OEXT):%.c
|
|
$(CC) $< -c $(CPPFLAGS) $(CPPFLAGS_DIRECTORY) $(CFLAGS) $(OOUTPUT)$@
|
|
|
|
%.$(AEXT):
|
|
$(AR) $(ARFLAGS) $(AROUTPUT)$@ $(filter %.$(OEXT),$^) $(patsubst %.bundle, %.bundle/*.$(OEXT), $(filter-out %.$(OEXT),$^))
|
|
|
|
VALGRIND=valgrind
|
|
SUPPRESSIONS=no
|
|
VGRIND=$(VALGRIND) --quiet --error-exitcode=1 --leak-check=full --show-reachable=yes \
|
|
--suppressions=$(TOKUROOT)newbrt/valgrind.suppressions \
|
|
--suppressions=$(TOKUROOT)src/tests/bdb.suppressions \
|
|
--gen-suppressions=$(SUPPRESSIONS)
|
|
|
|
#Testing tools
|
|
ifeq ($(SUMMARIZE),1)
|
|
SUMMARIZE_CMD = ;if test $$? = 0; then printf "%-60sPASS\n" $(HERE)/$@; else printf "%-60sFAIL\n" $(HERE)/$@ ; test 0 = 1; fi
|
|
SUMMARIZE_SHOULD_FAIL= ;if test $$? = 0; then printf "%-60sXFAIL\n" $(HERE)/$@; else printf "%-60sXPASS\n" $(HERE)/$@ ; test 0 = 1; fi
|
|
INVERTER=;test $$? -ne 0
|
|
else
|
|
SUMMARIZE_CMD =
|
|
endif
|
|
|
|
ifeq ($(VERBOSE),2)
|
|
VERBVERBOSE=-v
|
|
MAYBEATSIGN=
|
|
else ifeq ($(VERBOSE),1)
|
|
VERBVERBOSE=
|
|
MAYBEATSIGN=
|
|
else
|
|
VERBVERBOSE=-q
|
|
MAYBEATSIGN=@
|
|
endif
|
|
|
|
CPPFLAGS += $(CPPFLAGS_DIRECTORY)
|
|
CFLAGS += $(CFLAGS_DIRECTORY)
|
|
LDFLAGS += $(LDFLAGS_DIRECTORY)
|
|
LOADLIBES += $(LOADLIBES_DIRECTORY)
|
|
|
|
%.$(SOEXT):
|
|
$(CC) -shared $(CFLAGS) $(LDFLAGS) $^ $(LOADLIBES) -o $@
|
|
|
|
include $(patsubst %,%/make.include,$(SRCDIRS))
|
|
|
|
build: buildheader/build $(OS)/build newbrt/build
|
|
check: $(OS)/check newbrt/check
|
|
|