# This file is part of SECONDO. # # Copyright (C) 2004, University in Hagen, Department of Computer Science, # Database Systems for New Applications. # # SECONDO is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # SECONDO is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with SECONDO; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # Configuration file for some important compiler switches # # April 2006, M. Spiekermann # # Uncomment next line to compile with debugging information: DEBUG = -ggdb # The next flag instructs the preprocessor to report the hierachy # of include instructions. #DEBUG += -Wp, -H # Note: The flags below print out all defined symbols the preprocessor knows # gcc -dM -E # Uncomment one of the next lines to compile with code optimizations. #OPTIMIZE = -O1 -finline-functions -fearly-inlining -finline-limit=1800 -funit-at-a-time --param inline-unit-growth=300 # Use more optimizations #OPTIMIZE += -O2 -finline-functions -mcpu=athlon-xp # Use even more optimization #OPTIMIZE += -O3 -march=native #OPTIMIZE += -O3 # Do not use assertions. # Assertions may # only check logical constraints without doing any program # logic! NEVER use functions having side-effects within an assert(...)! #OPTIMIZE += -DNDEBUG # Uncomment next lines to generate profiling data used by gprof # Run make realclean; make #DEBUG += -pg #LDFLAGS += -pg # Set up default flags for the compiler DEFAULTCCFLAGS += $(DEBUG) $(OPTIMIZE) $(TEMPLATEFLAGS) -I. -I$(INCLUDEDIR) # Compiler sanitizer (as an alternative to valgrind) #DEFAULTCCFLAGS += -fsanitize=address #DEFAULTCCFLAGS += -fsanitize=undefined #DEFAULTCCFLAGS += -fsanitize=nullability #DEFAULTCCFLAGS += -fno-omit-frame-pointer #LDFLAGS += -fsanitize=address #LDFLAGS += -fsanitize=undefined #LDFLAGS += -fsanitize=nullability #LDFLAGS += -fno-omit-frame-pointer # Show all warnings DEFAULTCCFLAGS += -Wall # -pedantic -Wunreachable-code -Wunknown-pragmas -Wshadow -Wformat=2 -Wundef -Wbad-function-cast -Wcast-qual -Wsign-compare -fbounds-check -fstack-check -fcheck-new # Define some macros which define optional behaviour in some # libraries DEFAULTCCFLAGS += -D_REENTRANT CPPSTDOPTION = -std=c++17 #On 32 bit systems, the file size is restrictec to 2GB #when handling huge data sets, this may be not sufficient #thereby we set the file system to support much larger files DEFAULTCCFLAGS += -D_FILE_OFFSET_BITS=64 # Flag for a persistent implementation of class NestedList. Remove the comment # in the line below to use temporary Berkeley-DB record files instead of main # memory. This is needed if you want to restore large objects. DEFAULTCCFLAGS += -DNL_PERSISTENT # Flag for compiling code of operator value mappings which supports progress measurement. DEFAULTCCFLAGS += -DUSE_PROGRESS # Flag for compiling code which uses serialization instead of copying class instances # on block. After changing this flag you need to do a make clean, rebuild secondo, and # restore your databases! # DEFAULTCCFLAGS += -DUSE_SERIALIZATION # The next flag activates trace messages. Alternatively you may define it # only in some subordinated makefiles to avoid to many messages. #DEFAULTCCFLAGS += -DTRACE_ON INC_FILES := $(shell ls $(SECONDO_BUILD_DIR)/makefile.n*c 2>/dev/null) ifdef INC_FILES include $(INC_FILES) endif