# $URL$
# $Id$

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

srcdir      ?= .

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

MODULES     :=
MODULE_DIRS :=

STANDALONE  :=
# This one will go away once all tools are converted
NO_MAIN     := -DEXPORT_MAIN


# 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

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
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

#######################################################################

include $(srcdir)/Makefile.common

# check if configure has been run or has been changed since last run
config.h config.mk: $(srcdir)/configure
ifeq "$(findstring config.mk,$(MAKEFILE_LIST))" "config.mk"
	@echo "Running $(srcdir)/configure with the last specified parameters"
	@sleep 2
	LDFLAGS="$(SAVED_LDFLAGS)" CXX="$(SAVED_CXX)" \
			CXXFLAGS="$(SAVED_CXXFLAGS)" CPPFLAGS="$(SAVED_CPPFLAGS)" \
			ASFLAGS="$(SAVED_ASFLAGS)" WINDRESFLAGS="$(SAVED_WINDRESFLAGS)" \
			$(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

#
# Windows specific
#

scummvmtoolswinres.o: $(srcdir)/gui/media/scummvmtools.ico $(srcdir)/dists/scummvmtools.rc
	$(QUIET_WINDRES)$(WINDRES) -DHAVE_CONFIG_H $(WINDRESFLAGS) $(DEFINES) -I. -I$(srcdir) $(srcdir)/dists/scummvmtools.rc scummvmtoolswinres.o

# Special target to create a win32 tools snapshot binary
WIN32PATH=c:/scummvm
win32dist:   all
	mkdir -p $(WIN32PATH)
	mkdir -p $(WIN32PATH)/graphics
	mkdir -p $(WIN32PATH)/tools
	mkdir -p $(WIN32PATH)/tools/media
	cp gui/media/detaillogo.jpg $(WIN32PATH)/tools/media/
	cp gui/media/logo.jpg $(WIN32PATH)/tools/media/
	cp gui/media/tile.gif $(WIN32PATH)/tools/media/
	$(STRIP) construct_mohawk.exe -o $(WIN32PATH)/tools/construct_mohawk.exe
	$(STRIP) create_sjisfnt.exe -o $(WIN32PATH)/tools/create_sjisfnt.exe
	$(STRIP) decine.exe -o $(WIN32PATH)/tools/decine.exe
	$(STRIP) degob.exe -o $(WIN32PATH)/tools/degob.exe
	$(STRIP) dekyra.exe -o $(WIN32PATH)/tools/dekyra.exe
	$(STRIP) deriven.exe -o $(WIN32PATH)/tools/deriven.exe
	$(STRIP) descumm.exe -o $(WIN32PATH)/tools/descumm.exe
	$(STRIP) desword2.exe -o $(WIN32PATH)/tools/desword2.exe
	$(STRIP) extract_mohawk.exe -o $(WIN32PATH)/tools/extract_mohawk.exe
	$(STRIP) gob_loadcalc.exe -o $(WIN32PATH)/tools/gob_loadcalc.exe
	$(STRIP) scummvm-tools.exe -o $(WIN32PATH)/tools/scummvm-tools.exe
	$(STRIP) scummvm-tools-cli.exe -o $(WIN32PATH)/tools/scummvm-tools-cli.exe
	cp *.bat $(WIN32PATH)/tools
	cp COPYING $(WIN32PATH)/tools/COPYING.txt
	cp README $(WIN32PATH)/tools/README.txt
	cp NEWS $(WIN32PATH)/tools/NEWS.txt
	cp dists/win32/graphics/left.bmp $(WIN32PATH)/graphics
	cp dists/win32/graphics/scummvm-install.ico $(WIN32PATH)/graphics
	cp dists/win32/ScummVM?Tools.iss $(WIN32PATH)
	unix2dos $(WIN32PATH)/tools/*.txt

# Special target to create a win32 NSIS installer
WIN32BUILD=build
win32setup: all
	mkdir -p $(srcdir)/$(WIN32BUILD)
	cp $(srcdir)/COPYING          $(srcdir)/$(WIN32BUILD)
	cp $(srcdir)/NEWS             $(srcdir)/$(WIN32BUILD)
	cp $(srcdir)/README           $(srcdir)/$(WIN32BUILD)
	unix2dos $(srcdir)/$(WIN32BUILD)/*.*
	$(STRIP) construct_mohawk.exe   -o $(srcdir)/$(WIN32BUILD)/construct_mohawk.exe
	$(STRIP) create_sjisfnt.exe     -o $(srcdir)/$(WIN32BUILD)/create_sjisfnt.exe
	$(STRIP) decine.exe             -o $(srcdir)/$(WIN32BUILD)/decine.exe
	$(STRIP) degob.exe              -o $(srcdir)/$(WIN32BUILD)/degob.exe
	$(STRIP) dekyra.exe             -o $(srcdir)/$(WIN32BUILD)/dekyra.exe
	$(STRIP) deriven.exe            -o $(srcdir)/$(WIN32BUILD)/deriven.exe
	$(STRIP) descumm.exe            -o $(srcdir)/$(WIN32BUILD)/descumm.exe
	$(STRIP) desword2.exe           -o $(srcdir)/$(WIN32BUILD)/desword2.exe
	$(STRIP) extract_mohawk.exe     -o $(srcdir)/$(WIN32BUILD)/extract_mohawk.exe
	$(STRIP) gob_loadcalc.exe       -o $(srcdir)/$(WIN32BUILD)/gob_loadcalc.exe
	$(STRIP) scummvm-tools.exe      -o $(srcdir)/$(WIN32BUILD)/scummvm-tools.exe
	$(STRIP) scummvm-tools-cli.exe  -o $(srcdir)/$(WIN32BUILD)/scummvm-tools-cli.exe
	makensis -V2 -Dtop_srcdir="../.." -Dtext_dir="../../$(WIN32BUILD)" -Dbuild_dir="../../$(WIN32BUILD)" $(srcdir)/dists/win32/scummvm-tools.nsi
