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
rules.mk
###############################################
# Common build rules, used by the sub modules and their module.mk files
#
###############################################
ifeq ($(LOAD_RULES_MK), 1)
# Copy the list of objects to a new variable. The name of the new variable
# contains the module name, a trick we use so we can keep multiple different
# module object lists, one for each module.
MODULE_OBJS-$(MODULE) := $(addprefix $(MODULE)/, $(MODULE_OBJS))
# Add all involved directories to the MODULE_DIRS list
MODULE_DIRS += $(sort $(dir $(MODULE_OBJS-$(MODULE))))
ifdef TOOL_EXECUTABLE
################################################
# Build rule for (tool) executables.
# TODO: Refactor this, so that even our master executable can use this rule?
################################################
TOOL-$(MODULE) := $(MODULE)/$(TOOL_EXECUTABLE)$(EXEEXT)
TOOL_LIBS-$(TOOL-$(MODULE)) := $(TOOL_LIBS)
TOOL_CFLAGS-$(TOOL-$(MODULE)) := $(TOOL_CFLAGS)
$(TOOL-$(MODULE)): $(MODULE_OBJS-$(MODULE)) $(TOOL_DEPS)
+$(QUIET_LINK)$(LD) $(LDFLAGS) $(TOOL_CFLAGS-$@) $+ $(TOOL_LIBS-$@) -o $@
# Reset TOOL_* vars
TOOL_EXECUTABLE:=
TOOL_DEPS:=
TOOL_CFLAGS:=
TOOL_LIBS:=
# Add to "devtools" target
devtools: $(TOOL-$(MODULE))
# Pseudo target for comfort, allows for "make devtools/skycpt", etc.
$(MODULE): $(TOOL-$(MODULE))
clean-devtools: clean-$(MODULE)
else
ifdef PLUGIN
################################################
# Build rule for dynamic (loadable) plugins
################################################
PLUGIN-$(MODULE) := plugins/$(PLUGIN_PREFIX)$(notdir $(MODULE))$(PLUGIN_SUFFIX)
$(PLUGIN-$(MODULE)): $(MODULE_OBJS-$(MODULE)) $(PLUGIN_EXTRA_DEPS)
$(QUIET)$(MKDIR) plugins
+$(QUIET_PLUGIN)$(LD) $(SAVED_LDFLAGS) $(filter-out $(PLUGIN_EXTRA_DEPS),$+) $(PLUGIN_LDFLAGS) -o $@
# Reset PLUGIN var
PLUGIN:=
# Add to "plugins" target
plugins: $(PLUGIN-$(MODULE))
ifdef SPLIT_DWARF
$(PLUGIN-$(MODULE)).dwp: $(PLUGIN-$(MODULE))
$(QUIET_DWP)$(DWP) -e $<
plugins: $(PLUGIN-$(MODULE)).dwp
endif
# Add to the PLUGINS variable
PLUGINS += $(PLUGIN-$(MODULE))
# Pseudo target for comfort, allows for "make common", "make gui" etc.
$(MODULE): $(PLUGIN-$(MODULE))
clean-plugins: clean-$(MODULE)
else
################################################
# Build rule for static modules/plugins
################################################
MODULE_LIB-$(MODULE) := $(MODULE)/lib$(notdir $(MODULE)).a
# If not building as a plugin, add the object files to the main OBJS list
OBJS += $(MODULE_LIB-$(MODULE))
# Convenience library target
$(MODULE_LIB-$(MODULE)): $(MODULE_OBJS-$(MODULE))
$(QUIET)-$(RM) $@
$(QUIET_AR)$(AR) $@ $+
$(QUIET_RANLIB)$(RANLIB) $@
# Pseudo target for comfort, allows for "make common", "make gui" etc.
$(MODULE): $(MODULE_LIB-$(MODULE))
endif # PLUGIN
endif # TOOL_EXECUTABLE
###############################################
# Clean target, removes all object files. This looks a bit hackish, as we have to
# copy the content of MODULE_OBJS to another unique variable (the next module.mk
# will overwrite it after all). The same for the libMODULE.a library file.
###############################################
clean: clean-$(MODULE)
clean-$(MODULE): clean-% :
-$(RM) $(MODULE_OBJS-$*) $(MODULE_LIB-$*) $(PLUGIN-$*) $(TOOL-$*)
ifdef SPLIT_DWARF
-$(RM) $(MODULE_OBJS-$*:.o=.dwo)
endif
.PHONY: clean-$(MODULE) $(MODULE)
endif # LOAD_RULES_MK
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...