vm: Fix DEBUG flag, make REPRODUCIBLE work like debug, minor fixes to build.sh

- ``make DEBUG=0`` caused debug mode because the check was ``ifdef DEBUG`` which is true even if DEBUG=0
- no need to ``#pragma message`` that we are doing a reproducible build imo
- clang warns about redefining builtin macros, turn the warning off for reproducible builds
- add ``./build.sh info`` as an alias for ``./build.sh report``
- show if we a reproducible in report/info
windows-drag
Doug Coleman 2019-02-23 16:17:58 -06:00
parent 044f7bbe11
commit a9871b39aa
5 changed files with 22 additions and 12 deletions

View File

@ -1,9 +1,9 @@
ifdef CONFIG ifdef CONFIG
VERSION = 0.99 VERSION = 0.99
GIT_LABEL = $(shell echo `git describe --all`-`git rev-parse HEAD`) GIT_LABEL = $(shell echo `git describe --all`-`git rev-parse HEAD`)
REPRODUCIBLE ?= 0
BUNDLE = Factor.app BUNDLE = Factor.app
DEBUG ?= 0
REPRODUCIBLE ?= 0
include $(CONFIG) include $(CONFIG)
@ -11,17 +11,20 @@ ifdef CONFIG
-pedantic \ -pedantic \
-DFACTOR_VERSION="$(VERSION)" \ -DFACTOR_VERSION="$(VERSION)" \
-DFACTOR_GIT_LABEL="$(GIT_LABEL)" \ -DFACTOR_GIT_LABEL="$(GIT_LABEL)" \
-DFACTOR_REPRODUCIBLE="$(REPRODUCIBLE)" \
$(SITE_CFLAGS) $(SITE_CFLAGS)
CXXFLAGS += -std=c++11 CXXFLAGS += -std=c++11
ifdef DEBUG ifneq ($(DEBUG), 0)
CFLAGS += -g -DFACTOR_DEBUG CFLAGS += -g -DFACTOR_DEBUG
else else
CFLAGS += -O3 CFLAGS += -O3
endif endif
ifneq ($(REPRODUCIBLE), 0)
CFLAGS += -DFACTOR_REPRODUCIBLE -Wno-builtin-macro-redefined
endif
ENGINE = $(DLL_PREFIX)factor$(DLL_SUFFIX)$(DLL_EXTENSION) ENGINE = $(DLL_PREFIX)factor$(DLL_SUFFIX)$(DLL_EXTENSION)
EXECUTABLE = factor$(EXE_SUFFIX)$(EXE_EXTENSION) EXECUTABLE = factor$(EXE_SUFFIX)$(EXE_EXTENSION)
CONSOLE_EXECUTABLE = factor$(EXE_SUFFIX)$(CONSOLE_EXTENSION) CONSOLE_EXECUTABLE = factor$(EXE_SUFFIX)$(CONSOLE_EXTENSION)
@ -152,6 +155,7 @@ help:
@echo "Additional modifiers:" @echo "Additional modifiers:"
@echo "" @echo ""
@echo "DEBUG=1 compile VM with debugging information" @echo "DEBUG=1 compile VM with debugging information"
@echo "REPRODUCIBLE=1 compile VM without timestamp"
@echo "SITE_CFLAGS=... additional optimization flags" @echo "SITE_CFLAGS=... additional optimization flags"
@echo "X11=1 force link with X11 libraries instead of Cocoa (only on Mac OS X)" @echo "X11=1 force link with X11 libraries instead of Cocoa (only on Mac OS X)"

View File

@ -66,7 +66,7 @@ CL_FLAGS = $(CL_FLAGS) /Zi /DFACTOR_DEBUG
!ENDIF !ENDIF
!IF DEFINED(REPRODUCIBLE) !IF DEFINED(REPRODUCIBLE)
CL_FLAGS = $(CL_FLAGS) /DFACTOR_REPRODUCIBLE=1 CL_FLAGS = $(CL_FLAGS) /DFACTOR_REPRODUCIBLE
!ENDIF !ENDIF
ML_FLAGS = /nologo /safeseh ML_FLAGS = /nologo /safeseh

View File

@ -357,6 +357,7 @@ echo_build_info() {
$ECHO NUM_CORES=$NUM_CORES $ECHO NUM_CORES=$NUM_CORES
$ECHO WORD=$WORD $ECHO WORD=$WORD
$ECHO DEBUG=$DEBUG $ECHO DEBUG=$DEBUG
$ECHO REPRODUCIBLE=$REPRODUCIBLE
$ECHO CURRENT_BRANCH=$CURRENT_BRANCH $ECHO CURRENT_BRANCH=$CURRENT_BRANCH
$ECHO FACTOR_BINARY=$FACTOR_BINARY $ECHO FACTOR_BINARY=$FACTOR_BINARY
$ECHO FACTOR_LIBRARY=$FACTOR_LIBRARY $ECHO FACTOR_LIBRARY=$FACTOR_LIBRARY
@ -731,7 +732,7 @@ usage() {
$ECHO " bootstrap - bootstrap with existing boot image" $ECHO " bootstrap - bootstrap with existing boot image"
$ECHO " net-bootstrap - recompile, download a boot image, bootstrap" $ECHO " net-bootstrap - recompile, download a boot image, bootstrap"
$ECHO " make-target - find and print the os-arch-cpu string" $ECHO " make-target - find and print the os-arch-cpu string"
$ECHO " report - print the build variables" $ECHO " report|info - print the build variables"
$ECHO " update-boot-image - get the boot image for the current branch of for master" $ECHO " update-boot-image - get the boot image for the current branch of for master"
$ECHO "" $ECHO ""
$ECHO "If you are behind a firewall, invoke as:" $ECHO "If you are behind a firewall, invoke as:"
@ -747,6 +748,13 @@ MAKE_TARGET=unknown
if [[ -n "$2" ]] ; then if [[ -n "$2" ]] ; then
parse_build_info $2 parse_build_info $2
fi fi
$ECHO "args $#"
if [ "$#" -gt 3 ]; then
usage
$ECHO "error: too many arguments"
exit 1
fi
set_copy set_copy
set_delete set_delete
@ -760,13 +768,12 @@ case "$1" in
deps-pkg) install_deps_pkg ;; deps-pkg) install_deps_pkg ;;
self-update) update; make_boot_image; bootstrap;; self-update) update; make_boot_image; bootstrap;;
quick-update) update; refresh_image ;; quick-update) update; refresh_image ;;
update) update; download_and_bootstrap ;; update|latest) update; download_and_bootstrap ;;
latest) update; download_and_bootstrap ;;
compile) find_build_info; make_factor ;; compile) find_build_info; make_factor ;;
bootstrap) get_config_info; bootstrap ;; bootstrap) get_config_info; bootstrap ;;
net-bootstrap) net_bootstrap_no_pull ;; net-bootstrap) net_bootstrap_no_pull ;;
make-target) FIND_MAKE_TARGET=true; ECHO=false; find_build_info; exit_script ;; make-target) FIND_MAKE_TARGET=true; ECHO=false; find_build_info; exit_script ;;
report) find_build_info ;; report|info) find_build_info ;;
full-report) find_build_info; check_installed_programs; check_libraries ;; full-report) find_build_info; check_installed_programs; check_libraries ;;
update-boot-image) find_build_info; check_installed_programs; update_boot_image;; update-boot-image) find_build_info; check_installed_programs; update_boot_image;;
*) usage ;; *) usage ;;

View File

@ -1,4 +1,4 @@
ifndef DEBUG ifneq ($(DEBUG), 0)
SITE_CFLAGS += -fomit-frame-pointer SITE_CFLAGS += -fomit-frame-pointer
endif endif

View File

@ -52,8 +52,7 @@
#define FACTOR_COMPILER_VERSION "unknown" #define FACTOR_COMPILER_VERSION "unknown"
#endif #endif
#if (FACTOR_REPRODUCIBLE == 1) #if defined(FACTOR_REPRODUCIBLE)
#pragma message "REPRODUCIBLE"
#define FACTOR_COMPILE_TIME "[reproducible]" #define FACTOR_COMPILE_TIME "[reproducible]"
#else #else
// Record compilation time // Record compilation time