mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-23 18:24:59 +00:00
859212df25
Based on patch #2903830: "Updated Translation Prototype" by alexbevi which in turn is based on patch #1739965 by jvprat. Currently it builds all translations right into ScummVM. Once the feature will be accepted more widely, i.e. more translations will pop up, it will be trivial to move translation strings to external file. Finished translation: Russian Unfinished translation: Hungarian Things which are nice to do: - Language code -> language mapping for more user friendness - Specifying fonts to be used with language - Updating of interface language without restart. It will require moving of much code to reflowLayout() methods for each dialog The .po files must be in single byte encodings. I.e. no support for Unicode. svn-id: r49759
263 lines
7.6 KiB
Makefile
263 lines
7.6 KiB
Makefile
# This file is used by Makefile and declares common build rules,
|
|
# a list of common object files etc.
|
|
#
|
|
# $URL$
|
|
# $Id$
|
|
|
|
######################################################################
|
|
# The default build target: just build the scummvm executable
|
|
######################################################################
|
|
|
|
all: $(EXECUTABLE) plugins
|
|
|
|
|
|
######################################################################
|
|
# Module settings
|
|
######################################################################
|
|
|
|
PLUGINS :=
|
|
MODULES := test tools base $(MODULES)
|
|
|
|
-include $(srcdir)/engines/engines.mk
|
|
|
|
# After the game specific modules follow the shared modules
|
|
MODULES += \
|
|
gui \
|
|
sound \
|
|
backends \
|
|
engines \
|
|
graphics \
|
|
common \
|
|
po
|
|
|
|
ifdef USE_MT32EMU
|
|
MODULES += sound/softsynth/mt32
|
|
endif
|
|
|
|
######################################################################
|
|
# The build rules follow - normally you should have no need to
|
|
# touch whatever comes after here.
|
|
######################################################################
|
|
|
|
# Concat DEFINES and INCLUDES to form the CPPFLAGS
|
|
CPPFLAGS := $(DEFINES) $(INCLUDES)
|
|
|
|
# Include the build instructions for all modules
|
|
-include $(addprefix $(srcdir)/, $(addsuffix /module.mk,$(MODULES)))
|
|
|
|
# Depdir information
|
|
DEPDIRS = $(addsuffix $(DEPDIR),$(MODULE_DIRS))
|
|
DEPFILES =
|
|
|
|
# Make base/version.o depend on all other object files. This way if anything is
|
|
# changed, it causes version.cpp to be recompiled. This in turn ensures that
|
|
# the build date in gScummVMBuildDate is correct.
|
|
base/version.o: $(filter-out base/libbase.a,$(OBJS))
|
|
|
|
# Replace regular output with quiet messages
|
|
ifneq ($(findstring $(MAKEFLAGS),s),s)
|
|
ifneq ($(VERBOSE_BUILD),1)
|
|
ifneq ($(VERBOSE_BUILD),yes)
|
|
QUIET_CXX = @echo ' ' C++ ' ' $@;
|
|
QUIET_AS = @echo ' ' AS ' ' $@;
|
|
QUIET_NASM = @echo ' ' NASM ' ' $@;
|
|
QUIET_AR = @echo ' ' AR ' ' $@;
|
|
QUIET_RANLIB = @echo ' ' RANLIB ' ' $@;
|
|
QUIET_PLUGIN = @echo ' ' PLUGIN ' ' $@;
|
|
QUIET_LINK = @echo ' ' LINK ' ' $@;
|
|
QUIET = @
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
# The build rule for the ScummVM executable
|
|
$(EXECUTABLE): $(OBJS)
|
|
$(QUIET_LINK)$(LD) $(LDFLAGS) $(PRE_OBJS_FLAGS) $+ $(POST_OBJS_FLAGS) $(LIBS) -o $@
|
|
|
|
distclean: clean
|
|
$(RM) config.h config.mk config.log
|
|
|
|
clean:
|
|
$(RM_REC) $(DEPDIRS)
|
|
$(RM) $(OBJS) $(EXECUTABLE)
|
|
|
|
|
|
#
|
|
# The build rules for object files.
|
|
#
|
|
|
|
ifdef CXX_UPDATE_DEP_FLAG
|
|
|
|
# Build rule for C++ files. Makes use of CXX_UPDATE_DEP_FLAG for advanced
|
|
# dependency tracking.
|
|
%.o: %.cpp
|
|
$(QUIET)$(MKDIR) $(*D)/$(DEPDIR)
|
|
$(QUIET_CXX)$(CXX) $(CXX_UPDATE_DEP_FLAG) $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o
|
|
|
|
|
|
# Build rules for Objective-C and Objective-C++ files. Strictly speaking, this is for OS X only.
|
|
%.o: %.mm
|
|
$(QUIET)$(MKDIR) $(*D)/$(DEPDIR)
|
|
$(QUIET_CXX)$(CXX) $(CXX_UPDATE_DEP_FLAG) $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o
|
|
|
|
%.o: %.m
|
|
$(QUIET)$(MKDIR) $(*D)/$(DEPDIR)
|
|
$(QUIET_CXX)$(CXX) $(CXX_UPDATE_DEP_FLAG) $(OBJCFLAGS) -c $(<) -o $*.o
|
|
|
|
# Build rule for assembler files with preprocessing
|
|
%.o: %.S
|
|
$(QUIET)$(MKDIR) $(*D)/$(DEPDIR)
|
|
$(QUIET_AS)$(CXX) $(CXX_UPDATE_DEP_FLAG) $(ASFLAGS) -c $(<) -o $*.o
|
|
|
|
else
|
|
|
|
# Dumb compile rule, for C++ compilers that don't allow dependency tracking or
|
|
# where it is broken (such as GCC 2.95).
|
|
.cpp.o:
|
|
$(QUIET)$(MKDIR) $(*D)
|
|
$(QUIET_CXX)$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o
|
|
|
|
# Build rule for assembler files with preprocessing
|
|
%.o: %.S
|
|
$(QUIET)$(MKDIR) $(*D)
|
|
$(QUIET_AS)$(CXX) $(ASFLAGS) -c $(<) -o $*.o
|
|
|
|
endif
|
|
|
|
# Build rule for assembler files
|
|
%.o: %.s
|
|
$(QUIET)$(MKDIR) $(*D)
|
|
$(QUIET_AS)$(AS) $(ASFLAGS) $(<) -o $*.o
|
|
|
|
ifdef USE_NASM
|
|
# Build rule for NASM assembler files
|
|
%.o: %.asm
|
|
$(QUIET)$(MKDIR) $(*D)
|
|
$(QUIET_NASM)$(NASM) $(NASMFLAGS) -o $*.o $(<)
|
|
endif
|
|
|
|
# Include the dependency tracking files.
|
|
-include $(wildcard $(addsuffix /*.d,$(DEPDIRS)))
|
|
|
|
# Mark *.d files and most *.mk files as PHONY. This stops make from trying to
|
|
# recreate them (which it can't), and in particular from looking for potential
|
|
# source files. This can save quite a bit of disk access time.
|
|
.PHONY: $(wildcard $(addsuffix /*.d,$(DEPDIRS))) $(addprefix $(srcdir)/, $(addsuffix /module.mk,$(MODULES))) \
|
|
$(srcdir)/$(port_mk) $(srcdir)/rules.mk $(srcdir)/engines/engines.mk
|
|
|
|
######################################################################
|
|
# Get the current version information
|
|
######################################################################
|
|
|
|
# AmigaOS4's grep has a problem with "./" in pathnames, so use cat.
|
|
VERSION = $(shell cat "${srcdir}/base/internal_version.h" | grep SCUMMVM_VERSION | cut -d\" -f2)
|
|
VER_MAJOR = $(shell echo $(VERSION) | cut -d. -f 1)
|
|
VER_MINOR = $(shell echo $(VERSION) | cut -d. -f 2)
|
|
VER_PATCH = $(shell echo $(VERSION) | cut -d. -f 3 | cut -c1)
|
|
VER_EXTRA = $(shell echo $(VERSION) | cut -d. -f 3 | cut -c2-)
|
|
|
|
|
|
######################################################################
|
|
# Get Subversion's working copy information
|
|
######################################################################
|
|
|
|
ifneq ($(shell svn info $(srcdir) 1>/dev/null 2>&1 || echo "error"),error)
|
|
SVNROOT := $(srcdir)
|
|
ifeq ($(origin VER_SVNREV), undefined)
|
|
# Get the working copy base revision
|
|
VER_SVNREV := $(shell LANG=C svn info $(SVNROOT) | grep "^Revision" | cut -d ' ' -f 2)
|
|
endif
|
|
else
|
|
SVNROOT := https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/trunk/
|
|
endif
|
|
|
|
# Define the Subversion revision if available, either autodetected or
|
|
# specified by the user
|
|
ifneq ($(origin VER_SVNREV), undefined)
|
|
CXXFLAGS+= -DSCUMMVM_SVN_REVISION=\"$(VER_SVNREV)\"
|
|
endif
|
|
|
|
|
|
######################################################################
|
|
# Distribution settings
|
|
######################################################################
|
|
|
|
ifeq ($(VER_EXTRA),svn)
|
|
ifeq ($(origin VER_SVNREV), undefined)
|
|
DISTVERSION = $(shell date '+%Y-%m-%d')
|
|
else
|
|
DISTVERSION = svn$(VER_SVNREV)
|
|
endif
|
|
else
|
|
DISTVERSION = $(VERSION)
|
|
endif
|
|
|
|
DISTNAME := scummvm-$(DISTVERSION)
|
|
DISTDIR := dist
|
|
VERFILE := $(DISTDIR)/$(DISTNAME)/base/internal_version.h
|
|
|
|
$(VERFILE): $(srcdir)/base/internal_version.h
|
|
@$(RM_REC) $(DISTDIR)
|
|
@$(MKDIR) $(DISTDIR)
|
|
svn export $(SVNROOT) $(DISTDIR)/$(DISTNAME)
|
|
ifneq ($(origin VER_SVNREV), undefined)
|
|
@# Use the current SVN revision as a default for the snapshot sources
|
|
@svn cat $(SVNROOT)/base/internal_version.h | sed -e \
|
|
"s/^#define SCUMMVM_SVN_REVISION$$/#define SCUMMVM_SVN_REVISION \"$(VER_SVNREV)\"/g" \
|
|
> $(VERFILE)
|
|
endif
|
|
|
|
$(DISTDIR)/$(DISTNAME).tar.gz: $(VERFILE)
|
|
cd $(DISTDIR); tar zcf $(DISTNAME).tar.gz $(DISTNAME)
|
|
|
|
$(DISTDIR)/$(DISTNAME).tar.bz2: $(VERFILE)
|
|
cd $(DISTDIR); tar jcf $(DISTNAME).tar.bz2 $(DISTNAME)
|
|
|
|
$(DISTDIR)/$(DISTNAME).zip: $(VERFILE)
|
|
cd $(DISTDIR); zip -qr9 $(DISTNAME).zip $(DISTNAME)
|
|
|
|
dist-src: \
|
|
$(DISTDIR)/$(DISTNAME).tar.gz \
|
|
$(DISTDIR)/$(DISTNAME).tar.bz2 \
|
|
$(DISTDIR)/$(DISTNAME).zip
|
|
@#RPM-src?
|
|
@#DEB-src?
|
|
|
|
# Common files
|
|
DIST_FILES_DOCS:=$(addprefix $(srcdir)/,AUTHORS COPYING COPYING.LGPL COPYRIGHT NEWS README)
|
|
|
|
# Themes files
|
|
DIST_FILES_THEMES:=$(addprefix $(srcdir)/gui/themes/,scummmodern.zip)
|
|
|
|
# Engine data files
|
|
DIST_FILES_ENGINEDATA=
|
|
ifdef ENABLE_DRASCULA
|
|
DIST_FILES_ENGINEDATA+=drascula.dat
|
|
endif
|
|
ifdef ENABLE_KYRA
|
|
DIST_FILES_ENGINEDATA+=kyra.dat
|
|
endif
|
|
ifdef ENABLE_LURE
|
|
DIST_FILES_ENGINEDATA+=lure.dat
|
|
endif
|
|
ifdef ENABLE_M4
|
|
DIST_FILES_ENGINEDATA+=m4.dat
|
|
endif
|
|
ifdef ENABLE_QUEEN
|
|
DIST_FILES_ENGINEDATA+=queen.tbl
|
|
endif
|
|
ifdef ENABLE_SKY
|
|
DIST_FILES_ENGINEDATA+=sky.cpt
|
|
endif
|
|
ifdef ENABLE_TEENAGENT
|
|
DIST_FILES_ENGINEDATA+=teenagent.dat
|
|
endif
|
|
DIST_FILES_ENGINEDATA:=$(addprefix $(srcdir)/dists/engine-data/,$(DIST_FILES_ENGINEDATA))
|
|
|
|
# pred.dic is currently only used for the AGI engine
|
|
ifdef ENABLE_AGI
|
|
DIST_FILES_ENGINEDATA+=$(srcdir)/dists/pred.dic
|
|
endif
|
|
|
|
.PHONY: all clean distclean plugins dist-src
|