Revision b617364f453e973135d9b3e52afe4040f405295f authored by Die4Ever on 28 August 2021, 20:27:26 UTC, committed by Eugene Sandulenko on 28 August 2021, 20:55:13 UTC
This improves the range of seeds compared to using only getMillis (which
is the number of milliseconds since program start) as the seed. This was
especially an issue if you started the game directly from command line,
Steam, or GOG instead of using the ScummVM interface. Previously the
initial seed was just the load time, which can have very small variance
on a fast computer.
1 parent 7a47c44
Raw File
Makefile

#######################################################################
# Default compilation parameters. Normally don't edit these           #
#######################################################################

srcdir      ?= .

DEFINES     := -DHAVE_CONFIG_H
LDFLAGS     :=
INCLUDES    := -I. -I$(srcdir) -I$(srcdir)/engines
LIBS        :=
OBJS        :=
DEPDIR      := .deps

MODULES     :=
MODULE_DIRS :=

# All game detection-related object files for engines
DETECT_OBJS :=
LOAD_RULES_MK   := 1

# Load the make rules generated by configure
-include config.mk

ifeq "$(HAVE_GCC)" "1"
	CXXFLAGS:= -Wall $(CXXFLAGS)
	# Turn off some annoying and not-so-useful warnings
	CXXFLAGS+= -Wno-long-long -Wno-multichar -Wno-unknown-pragmas -Wno-reorder
	# Enable even more warnings...
	CXXFLAGS+= -Wpointer-arith -Wcast-qual
	CXXFLAGS+= -Wshadow -Wnon-virtual-dtor -Wwrite-strings

	# Currently we disable this gcc flag, since it will also warn in cases,
	# where using GCC_PRINTF (means: __attribute__((format(printf, x, y))))
	# is not possible, thus it would fail compiliation with -Werror without
	# being helpful.
	#CXXFLAGS+= -Wmissing-format-attribute

	# Disable exceptions.
	CXXFLAGS+= -fno-exceptions

ifneq "$(HAVE_CLANG)" "1"
	# enable checking of pointers returned by "new", but only when we do not
	# build with clang
	CXXFLAGS+= -fcheck-new
endif
endif

ifeq "$(HAVE_CLANG)" "1"
	CXXFLAGS+= -Wno-conversion -Wno-shorten-64-to-32 -Wno-sign-compare -Wno-four-char-constants
	# We use a anonymous nested type declaration in an anonymous union in
	# common/str.h. This is no standard construct and clang warns about it.
	# It works for all our target systems though, thus we simply disable that
	# warning.
	CXXFLAGS+= -Wno-nested-anon-types
endif

ifeq "$(HAVE_ICC)" "1"
	# Disable some warnings:
	#  161: unrecognized #pragma
	# 1899: multicharacter character literal (potential portability problem)
	CXXFLAGS+= -diag-disable 161,1899
endif

#######################################################################
# Default commands - put the necessary replacements in config.mk      #
#######################################################################

CAT     ?= cat
CP      ?= cp
ECHO    ?= printf
INSTALL ?= install
MKDIR   ?= mkdir -p
RM      ?= rm -f
RM_REC  ?= $(RM) -r
ZIP     ?= zip -q

#######################################################################
# Misc stuff - you should never have to edit this                     #
#######################################################################

EXECUTABLE  := $(EXEPRE)scummvm$(EXEEXT)

include $(srcdir)/Makefile.common

ENGINE_SUBDIRS_CONFIGURE := $(wildcard $(srcdir)/engines/*/configure.engine)

config.h:
SAVED_ENV_VARS = AR AS ASFLAGS CPPFLAGS CXX CXXFLAGS LD LDFLAGS RANLIB SDL_CONFIG STRIP WINDRES WINDRESFLAGS

# The environment variable PKG_CONFIG_LIBDIR has a different meaning
# for pkg-config when it is empty and when it is not defined.
# When PKG_CONFIG_LIBDIR is defined but empty, the .pc files cannot
# be found because the search path is empty.
# Here we make sure not to define PKG_CONFIG_LIBDIR when automatically
# running configure and it was not set for the previous run
# so pkg-config uses the system default search path for the .pc files.
ifneq ($(SAVED_PKG_CONFIG_LIBDIR),unset)
	SAVED_ENV_VARS += PKG_CONFIG_LIBDIR
endif

# check if configure has been run or has been changed since last run
configure.stamp: $(srcdir)/configure $(srcdir)/engines.awk $(ENGINE_SUBDIRS_CONFIGURE)
ifeq "$(findstring config.mk,$(MAKEFILE_LIST))" "config.mk"
	@echo "Running $(srcdir)/configure with the last specified parameters"
	@sleep 2

	$(foreach VAR,$(SAVED_ENV_VARS),$(VAR)="$(SAVED_$(VAR))") \
		$(srcdir)/configure $(SAVED_CONFIGFLAGS)
else
	$(error You need to run $(srcdir)/configure before you can run make. Check $(srcdir)/configure --help for a list of parameters)
endif

config.h config.mk engines/plugins_table.h engines/detection_table.h engines/engines.mk: configure.stamp
	@if ! test -f $@; then \
		rm -f configure.stamp; \
		$(MAKE) configure.stamp; \
	fi

ifneq ($(origin port_mk), undefined)
include $(srcdir)/$(port_mk)
endif

.PHONY: print-dists print-executables print-version print-distversion
print-dists:
	@echo $(DIST_FILES_DOCS) $(DIST_FILES_THEMES) $(DIST_FILES_NETWORKING) $(DIST_FILES_VKEYBD) $(DIST_FILES_ENGINEDATA) $(DIST_FILES_PLATFORM) $(srcdir)/doc

print-executables:
	@echo $(if $(DIST_EXECUTABLES),$(DIST_EXECUTABLES),$(EXECUTABLE) $(PLUGINS))

print-version:
	@echo $(VERSION)

print-distversion:
	@echo $(DISTVERSION)

devtools/create_project/cmake/build/create_project:
	cmake -Hdevtools/create_project/cmake -Bdevtools/create_project/cmake/build/
	cmake --build devtools/create_project/cmake/build/

CMakeLists.txt: devtools/create_project/cmake/build/create_project config.mk
	./devtools/create_project/cmake/build/create_project . --cmake $(SAVED_CONFIGFLAGS)

cmake: CMakeLists.txt
	cmake -H. -Bbuild
	cmake --build build
back to top