CFLAGS += -g -DFACTOR_DEBUG
else
CFLAGS += -O3
+ CFLAGS += $(CC_OPT)
endif
ifneq ($(REPRODUCIBLE), 0)
@echo "DEBUG=1 compile VM with debugging information"
@echo "REPRODUCIBLE=1 compile VM without timestamp"
@echo "SITE_CFLAGS=... additional optimization flags"
+ @echo "LTO=1 compile VM with Link Time Optimization"
@echo "X11=1 force link with X11 libraries instead of Cocoa (only on Mac OS X)"
ALL = factor factor-ffi-test factor-lib
if test_programs_installed x86_64-w64-mingw32-gcc x86_64-w64-mingw32-g++; then
[ -z "$CC" ] && CC=x86_64-w64-mingw32-gcc
[ -z "$CXX" ] && CXX=x86_64-w64-mingw32-g++
+ [ -z "$CC_OPT" ] && [ "$LTO" -eq "1" ] && CC_OPT="-flto=auto"
return
fi
if test_programs_installed i686-w64-mingw32-gcc i686-w64-mingw32-g++; then
[ -z "$CC" ] && CC=i686-w64-mingw32-gcc
[ -z "$CXX" ] && CXX=i686-w64-mingw32-g++
+ [ -z "$CC_OPT" ] && [ "$LTO" -eq "1" ] && CC_OPT="-flto=auto"
return
fi
fi
if test_programs_installed clang clang++ ; then
[ -z "$CC" ] && CC=clang
[ -z "$CXX" ] && CXX=clang++
+ [ -z "$CC_OPT" ] && [ "$LTO" -eq "1" ] && CC_OPT="-flto"
return
fi
if test_programs_installed gcc g++ ; then
[ -z "$CC" ] && CC=gcc
[ -z "$CXX" ] && CXX=g++
+ [ -z "$CC_OPT" ] && [ "$LTO" -eq "1" ] && CC_OPT="-flto=auto"
return
fi
$ECHO "DOWNLOADER_NAME=$DOWNLOADER_NAME"
$ECHO "CC=$CC"
$ECHO "CXX=$CXX"
+ $ECHO "LTO=$LTO"
+ $ECHO "CC_OPT=$CC_OPT"
$ECHO "MAKE=$MAKE"
}
make_factor() {
$ECHO "Building factor with $NUM_CORES cores"
- invoke_make "CC=$CC" "CXX=$CXX" "$MAKE_TARGET" "-j$NUM_CORES"
+ invoke_make "CC=$CC" "CXX=$CXX" "CC_OPT=$CC_OPT" "$MAKE_TARGET" "-j$NUM_CORES"
}
make_clean_factor() {