Initial commit
This commit is contained in:
160
Makefile
Normal file
160
Makefile
Normal file
@@ -0,0 +1,160 @@
|
||||
# GNU Make 3.80 and older have bugs that cause parsing issues.
|
||||
# Make sure we have at least version 3.81.
|
||||
ifndef .FEATURES
|
||||
$(error GNU Make 3.81 or higher is required)
|
||||
endif
|
||||
|
||||
#######################################################################
|
||||
# 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+= -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 compilation 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
|
||||
|
||||
ifeq ($(VERBOSE_BUILD),1)
|
||||
LS := ls -l
|
||||
else
|
||||
LS := true
|
||||
endif
|
||||
|
||||
#######################################################################
|
||||
# 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 CXXFILT CXXFLAGS LD LDFLAGS NM 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_ENGINEDATA_BIG) $(DIST_FILES_SOUNDFONTS) $(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
|
||||
|
||||
test-games: $(EXECUTABLE)
|
||||
devtools/run_event_recorder_tests.py --xunit-output=$(EXECUTABLE).test-results.xml
|
||||
Reference in New Issue
Block a user