summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source
diff options
context:
space:
mode:
authorSteven Noonan <steven@uplinklabs.net>2009-10-10 04:09:33 -0700
committerSteven Noonan <steven@uplinklabs.net>2009-10-10 22:18:47 -0700
commita0582692a2630f42b8e64d6baaab001a793fcf3c (patch)
treea3c3e07a9290487083d41f51b010645bafd3407a /crawl-ref/source
parent930477f201bf327048aee3abb1831b27892bb711 (diff)
downloadcrawl-ref-a0582692a2630f42b8e64d6baaab001a793fcf3c.tar.gz
crawl-ref-a0582692a2630f42b8e64d6baaab001a793fcf3c.zip
Makefiles: unifying makefile.unix and makefile_tiles.unix, and cleaning up
Lots of major build changes here: - No longer have multiple makefiles for Linux, Mac, MinGW, etc. - To build a USE_TILE build, simply do 'make <target> TILES=y'. - Makefiles now use a much prettier output while building. To see verbose messages, add 'V=1' to the command-line for 'make'. - Lots of weird dependency bugs corrected in the Makefiles. - makefile.unix now works for Mac OS X builds too (both tiles and ASCII builds). - Added GCC precompiled header support to makefile.unix. In my tests, it doesn't add much of a speedup, if any, but it's at least convenient to have it implemented. To use it, add 'PCH=y' to your 'make' command line. - Added fastdep support, and enabled by default on machines with fastdep installed. This allows for the Makefile to be sensitive to changed header files (recompiling those source files that are affected by the changes). If fastdep isn't installed, you can still use the the old (and much slower) GCC built-in dependency generator, but it's not enabled by default. Signed-off-by: Steven Noonan <steven@uplinklabs.net>
Diffstat (limited to 'crawl-ref/source')
-rw-r--r--crawl-ref/source/makefile615
-rw-r--r--crawl-ref/source/makefile.mgw236
-rw-r--r--crawl-ref/source/makefile.mgw_unix238
-rw-r--r--crawl-ref/source/makefile.osx40
-rw-r--r--crawl-ref/source/makefile.unix325
-rw-r--r--crawl-ref/source/makefile_tiles.mgw292
-rw-r--r--crawl-ref/source/makefile_tiles.mgw_unix274
-rw-r--r--crawl-ref/source/makefile_tiles.unix371
-rw-r--r--crawl-ref/source/rltiles/makefile.unix26
-rw-r--r--crawl-ref/source/util/Makefile26
-rw-r--r--crawl-ref/source/util/lua/src/Makefile22
-rw-r--r--crawl-ref/source/util/sqlite/Makefile17
12 files changed, 649 insertions, 1833 deletions
diff --git a/crawl-ref/source/makefile b/crawl-ref/source/makefile
index 03861c74db..39e5af50db 100644
--- a/crawl-ref/source/makefile
+++ b/crawl-ref/source/makefile
@@ -1,55 +1,596 @@
-#Makefile chooser. Choose one:
+#
+# Dungeon Crawl Stone Soup
+# GNU Makefile
+#
+# largely written by Steven Noonan <steven@uplinklabs.net>
+# (if something breaks, blame him.)
+#
-MAKEFILE ?= makefile.unix
-#MAKEFILE ?= makefile.dos
-#MAKEFILE ?= makefile.osx
-#MAKEFILE ?= makefile.mgw
-#MAKEFILE ?= makefile_tiles.mgw
-#MAKEFILE ?= makefile_tiles.unix
+GAME = crawl
-#These are for cross-compiling purposes on crawl.develz.org, here for convenience:
+CC = gcc
+CXX = g++
+DELETE = rm -f
+COPY = cp
-#MAKEFILE ?= makefile.mgw_unix
-#MAKEFILE ?= makefile_tiles.mgw_unix
+#
+# Platform Detection
+#
+# Use the variable OSNAME if you need to add something that's
+# platform-specific.
+# The valid OSNAME values are currently:
+# 'WIN32': alias for MinGW and Cygwin
+# 'MacOS': alias for Darwin (Mac OS X)
+# and non-translated values from other platforms (values from
+# 'uname -s' call). So Linux is simply 'Linux', etc.
+#
+UNAME_S := $(shell uname -s | cut -d'_' -f1)
+OSNAME =
+ifeq ($(UNAME_S),MINGW32)
+OSNAME = WIN32
+endif
+ifeq ($(UNAME_S),CYGWIN)
+OSNAME = WIN32
+endif
+ifeq ($(UNAME_S),Darwin)
+OSNAME = MacOS
+endif
+ifeq ($(OSNAME),)
+OSNAME = $(UNAME_S)
+endif
-all:
- +$(MAKE) -f $(MAKEFILE)
+ifeq ($(OSNAME),WIN32)
+GAME = crawl.exe
+endif
-profile:
- +$(MAKE) -f $(MAKEFILE) EXTRA_FLAGS='-pg'
+TILES = n
-noopt:
- +$(MAKE) -f $(MAKEFILE)
+#
+# Set up object file dependencies for $(GAME) target.
+#
+include makefile.obj
-install:
- +$(MAKE) -f $(MAKEFILE) install
+# Works for Mac OS X and Linux.
+OBJECTS += crash-u.o
+
+ifneq ($(TILES),n)
+OBJECTS += libgui.o tile2.o tilereg.o tilepick.o tilesdl.o tilefont.o tiletex.o tilemcache.o tilebuf.o
+else
+ifneq ($(UNAME_S),MINGW32)
+OBJECTS += libunix.o
+else
+OBJECTS += libw32c.o
+endif
+endif
+
+# To get stack trace symbols.
+# Note that MinGW doesn't support -rdynamic.
+ifeq ($(OSNAME),WIN32)
+LDFLAGS :=
+else
+LDFLAGS := -rdynamic
+endif
+
+# Change this to y (case-sensitive!) if you want to use Unicode glyphs
+# in the map, and you have libncursesw available.
+UNICODE_GLYPHS = n
+
+# If you're using UNICODE_GLYPHS=y, and have a preferred Unicode
+# (UTF-8) locale you want Crawl to use, you can set it here. The
+# default is en_US.UTF-8. If you'd prefer that Crawl use the locale
+# as set in your environment LC_* variables, use UNICODE_LOCALE = .
+UNICODE_LOCALE =
+
+# If you have lex and yacc, set DOYACC to y (lowercase y).
+DOYACC := y
+
+# Permissions to set on the game executable.
+MCHMOD := 2755
+
+# Permissions to set on the save directory.
+MCHMOD_SAVEDIR := 775
+
+# The user:group to install the game as.
+INSTALL_UGRP := games:games
+
+INSTALLDIR := /usr/games/crawl
+
+# If you're installing Crawl for multiple users, you *must* set this to a
+# valid path before building Crawl. This is not necessary if you are building
+# Crawl for a single user.
+
+# SAVEDIR := /usr/games/crawl/saves/
+# DATADIR := /usr/games/crawl/data/
+
+PCH := n
+
+# libpcre
+PCRESRC := util/pcre/
+PCRELIB := pcre
+PCRELIBA := lib$(PCRELIB).a
+FPCRELIBA := $(PCRESRC)$(PCRELIBA)
+
+# LUA
+LUASRC := util/lua/src/
+LUALIB := lua
+LUALIBA := lib$(LUALIB).a
+FLUALIBA := $(LUASRC)$(LUALIBA)
+
+# SQLite
+SQLSRC := util/sqlite/
+SQLLIB := sqlite3
+SQLLIBA := lib$(SQLLIB).a
+FSQLLIBA := $(SQLSRC)$(SQLLIBA)
+
+LIBDBM := $(FSQLLIBA)
+EXTRA_INCLUDES += -I$(SQLSRC)
+EXTRA_DEPENDS += $(FSQLLIBA)
+
+LIB := -L$(LUASRC) -l$(LUALIB) $(LIBDBM)
+
+INCLUDES += -Iutil -I. -I$(LUASRC) $(EXTRA_INCLUDES)
+
+
+ifneq ($(TILES),n)
+RLTILES = rltiles
+
+ifneq ($(shell which pkg-config 2> /dev/null),)
+
+# If pkg-config is available, it's the surest way to find where
+# the contributing libraries are located.
+#
+PNG_INCLUDE := $(shell pkg-config libpng --cflags-only-I)
+PNG_CFLAGS := $(shell pkg-config libpng --cflags-only-other)
+PNG_LDFLAGS := $(shell pkg-config libpng --libs)
+
+FREETYPE_INCLUDE := $(shell pkg-config freetype2 --cflags-only-I)
+FREETYPE_CFLAGS := $(shell pkg-config freetype2 --cflags-only-other)
+FREETYPE_LDFLAGS := $(shell pkg-config freetype2 --libs)
+
+SDL_INCLUDE := $(shell pkg-config sdl --cflags-only-I)
+SDL_CFLAGS := $(shell pkg-config sdl --cflags-only-other)
+SDL_LDFLAGS := $(shell pkg-config sdl --libs)
+
+else # pkg-config
+
+# Ugh, pkg-config isn't available. We're probably on MinGW, Cygwin,
+# or some other stupid platform. We've got to assume that the
+# libraries are either in the standard paths or are in /opt/<lib>/.
+#
+PNG_INCLUDE := -I/opt/libpng/include
+PNG_CFLAGS :=
+PNG_LDFLAGS := -L/opt/libpng/lib -lpng
+
+FREETYPE_INCLUDE := -I/opt/freetype/include
+FREETYPE_CFLAGS :=
+FREETYPE_LDFLAGS := -L/opt/freetype/lib -lfreetype
+
+ifneq ($(which sdl-config 2> /dev/null),)
+
+# sdl-config is our second best bet...
+#
+SDL_INCLUDE := $(shell sdl-config --cflags | tr ' ' '\n' | grep ^[-]I | tr '\n' ' ')
+SDL_CFLAGS := $(shell sdl-config --cflags | tr ' ' '\n' | grep -v ^[-]I | tr '\n' ' ')
+SDL_LDFLAGS := $(shell sdl-config --libs)
+
+else # sdl-config
+
+# Fine, we have to make some REALLY ugly assumptions...
+#
+SDL_INCLUDE := -I/opt/sdl/include/SDL
+SDL_CFLAGS :=
+SDL_LDFLAGS := -L/opt/sdl/lib -lSDL -lSDLmain
+
+endif # sdl-config
+endif # pkg-config
+
+LIB += $(PNG_LDFLAGS) $(FREETYPE_LDFLAGS) $(SDL_LDFLAGS) -lSDL_image
+ifeq ($(OSNAME),MacOS)
+LIB += -framework OpenGL -framework AppKit
+else
+LIB += -lGL -lGLU
+endif
+
+EXTRA_FLAGS += -DUSE_TILE $(PNG_CFLAGS) $(FREETYPE_CFLAGS) $(SDL_CFLAGS)
+INCLUDES += -I$(RLTILES) $(PNG_INCLUDE) $(FREETYPE_INCLUDE) $(SDL_INCLUDE)
+endif # TILES
+
+
+CFWARN := -Wall -Wno-parentheses -Wwrite-strings -Wshadow -pedantic
+CFOTHERS = -fno-strict-aliasing -fsigned-char $(EXTRA_FLAGS) -DCLUA_BINDINGS -pipe $(SDL_CFLAGS)
+
+#
+# Figure out the build settings for this type of build
+#
+
+# Crawl defaults
+# Optimized, no debugging.
+FULLDEBUG=n
+WIZARD=n
+DEBUG=n
+OPTIMIZE=y
+
+# Debug
+# No optimization, full debugging.
+ifeq ($(MAKECMDGOALS),debug)
+FULLDEBUG=y
+WIZARD=y
+DEBUG=y
+OPTIMIZE=n
+endif
+
+# Wizard
+# Optimized, with wizard mode.
+ifeq ($(MAKECMDGOALS),wizard)
+FULLDEBUG=n
+WIZARD=y
+DEBUG=y
+OPTIMIZE=y
+endif
+
+# Profile
+# Optimized, with full debugging.
+ifeq ($(MAKECMDGOALS),profile)
+FULLDEBUG=y
+WIZARD=y
+DEBUG=y
+OPTIMIZE=y
+endif
+
+ifeq ($(FULLDEBUG),y)
+EXTRA_FLAGS += -DFULLDEBUG
+endif
+ifeq ($(DEBUG),y)
+EXTRA_FLAGS += -ggdb
+endif
+ifeq ($(WIZARD),y)
+EXTRA_FLAGS += -DWIZARD
+endif
+ifeq ($(OPTIMIZE),y)
+CFOPTIMIZE := -O2
+else
+CFOPTIMIZE := -O0
+endif
+ifneq ($(PCH),n)
+CFWARN += -Winvalid-pch
+endif
+
+# Cygwin has a panic attack if we do this...
+ifneq ($(UNAME_S),CYGWIN)
+CFWARN += -Wuninitialized
+else
+CFWARN += -Wno-uninitialized
+endif
+
+ifneq ($(strip $(SAVEDIR)),)
+CFOTHERS += '-DSAVE_DIR_PATH="$(strip $(SAVEDIR))"'
+endif
+
+ifneq ($(strip $(DATADIR)),)
+CFOTHERS += '-DDATA_DIR_PATH="$(strip $(DATADIR))"'
+endif
+
+ifeq ($(strip $(UNICODE_GLYPHS)),y)
+# Include path for (n)curses with Unicode support.
+INCLUDES += -I/usr/include/ncursesw
+
+# Your ncurses library may include Unicode support, and you may not have a
+# separate libncursesw; in that case, change this line accordingly.
+LIBCURS = ncursesw
+CFOTHERS += -DUNICODE_GLYPHS
+
+ifneq ($(strip $(UNICODE_LOCALE)),)
+ifneq ($(strip $(UNICODE_LOCALE)),.)
+CFOTHERS += -DUNICODE_LOCALE=\"$(strip $(UNICODE_LOCALE))\"
+else
+CFOTHERS += -DUNICODE_LOCALE=\"\"
+endif
+endif
+
+# The standard ncurses library also supports Unicode on Mac OS/Darwin.
+ifeq ($(shell uname),Darwin)
+LIBCURS = ncurses
+endif
+
+else
+# Include path for curses or ncurses (non-Unicode).
+INCLUDES += -I/usr/include/ncurses
+LIBCURS = ncurses
+endif
+
+ifeq ($(OSNAME),WIN32)
+ifneq ($(TILES),n)
+CFOTHERS += -DWIN32TILES
+else
+CFOTHERS += -DWIN32CONSOLE
+endif
+endif
+
+ifeq ($(OSNAME),WIN32)
+INCLUDES += -Iutil/pcre
+LIB += $(FPCRELIBA)
+else
+LIB += -l$(LIBCURS)
+endif
+
+CFLAGS := $(CFOPTIMIZE) $(CFWARN) $(INCLUDES) $(CFOTHERS)
+YCFLAGS := $(CFOPTIMIZE) $(CFOTHERS) $(INCLUDES)
+
+UTIL = util/
+
+OBJECTS := $(UTIL)levcomp.tab.o $(UTIL)levcomp.lex.o $(OBJECTS)
+
+LEX := $(shell which flex 2> /dev/null)
+YACC := $(shell which bison 2> /dev/null)
+
+ifeq ($(strip $(LEX)),)
+DOYACC := n
+endif
+ifeq ($(strip $(YACC)),)
+DOYACC := n
+endif
+
+ifneq ($(findstring $(MAKEFLAGS),s),s)
+ifndef V
+ QUIET_CC = @echo ' ' CC $@;
+ QUIET_CXX = @echo ' ' CXX $@;
+ QUIET_PCH = @echo ' ' PCH $@;
+ QUIET_LINK = @echo ' ' LINK $@;
+ QUIET_COPY = @echo ' ' COPY $@;
+ QUIET_DEPEND = @echo ' ' DEPEND $@;
+ export V
+endif
+endif
+
+ifneq ($(TILES),n)
+TILEDEFS = dngn main player gui unrand
+TILEDEFPRES = $(TILEDEFS:%=$(RLTILES)/tiledef-%)
+TILEDEFTXTS = $(TILEDEFPRES:%=%.txt)
+TILEDEFOBJS = $(TILEDEFPRES:%=%.o)
+TILEDEFSRCS = $(TILEDEFPRES:%=%.cc)
+TILEDEFHDRS = $(TILEDEFPRES:%=%.h)
+
+TILEFILES = \
+ main.png \
+ player.png \
+ dngn.png \
+ gui.png
+ORIGTILEFILES = $(TILEFILES:%=$(RLTILES)/%)
+DESTTILEFILES = $(TILEFILES:%=dat/tiles/%)
+
+EXTRA_DEPENDS += $(DESTTILEFILES)
+OBJECTS += $(TILEDEFOBJS)
+endif
+
+GAME_DEPENDS := $(LUASRC)$(LUALIBA) $(EXTRA_DEPENDS) $(OBJECTS)
+SRC_PKG_BASE := stone_soup
+SRC_VERSION := $(shell egrep 'VER_NUM *".*"' version.h | cut -d'"' -f2)
+PKG_SRC_DIR := $(SRC_PKG_BASE)-$(SRC_VERSION)-src
+SRC_PKG_TAR := $(PKG_SRC_DIR).tbz2
+SRC_PKG_ZIP := $(PKG_SRC_DIR).zip
+
+ifeq ($(UNAME_S),MINGW32)
+GAME_DEPENDS += $(FPCRELIBA)
+endif
+
+PKG_TIDY_LIST := $(UTIL)*.o $(LEVCOMP) *.o \
+ $(UTIL)*.tab.cc $(UTIL)*.tab.h $(UTIL)*.lex.cc *.ixx
+PKG_EXCLUDES := $(PWD)/misc/src-pkg-excludes.lst
+
+##########################################################################
+
+all: $(GAME)
+
+test: $(GAME)
+ $(PWD)/$(GAME) -test
+
+##########################################################################
+# Dependencies
+
+DEPENDENCY_MKF := makefile.dep
+
+ifeq ($(shell which fastdep 2> /dev/null),)
+depend: $(OBJECTS:.o=.cc)
+ rm -f $(DEPENDENCY_MKF).tmp
+ @for i in $^; do \
+ echo ' ' DEP $$i; \
+ $(CXX) -MM $(CFLAGS) $$i >>$(DEPENDENCY_MKF).tmp 2>/dev/null; \
+ done
+ mv -f $(DEPENDENCY_MKF).tmp $(DEPENDENCY_MKF)
+else
+depend: $(DEPENDENCY_MKF)
+
+%.dep: $(OBJECTS:.o=.cc)
+ $(QUIET_DEPEND)fastdep $(INCLUDES) *.h $(OBJECTS:.o=.cc) > $@
+endif
+
+-include $(DEPENDENCY_MKF)
+
+##########################################################################
+# The level compiler
+#
+
+ifeq ($(strip $(DOYACC)),y)
+
+prebuildyacc: $(UTIL)levcomp.tab.cc $(UTIL)levcomp.tab.h $(UTIL)levcomp.lex.cc
+ $(QUIET_COPY)$(COPY) $^ prebuilt/
+
+$(UTIL)levcomp.tab.cc: $(UTIL)levcomp.ypp
+ +@$(MAKE) -C $(UTIL) levcomp.tab.cc
+
+$(UTIL)levcomp.lex.cc: $(UTIL)levcomp.lpp
+ +@$(MAKE) -C $(UTIL) levcomp.lex.cc
+
+else
+
+# Pull the level-compiler stuff up from prebuilt/
+
+$(UTIL)levcomp.tab.cc: prebuilt/levcomp.tab.cc
+ $(QUIET_COPY)$(COPY) prebuilt/*.h $(UTIL)
+ $(QUIET_COPY)$(COPY) $< $@
+
+$(UTIL)levcomp.lex.cc: prebuilt/levcomp.lex.cc
+ $(QUIET_COPY)$(COPY) $< $@
+
+endif
+
+##########################################################################
+
+
+##########################################################################
+# The actual build targets
+#
+
+install: $(GAME)
+ifeq ($(DATADIR),)
+ $(error DATADIR not set! Set DATADIR and run make clean install again)
+endif
+ [ -d $(INSTALLDIR) ] || mkdir -p $(INSTALLDIR)
+ $(COPY) $(GAME) $(INSTALLDIR)
+ chown $(INSTALL_UGRP) $(INSTALLDIR)/$(GAME)
+ chmod $(MCHMOD) $(INSTALLDIR)/$(GAME)
+ mkdir -p $(DATADIR)/dat
+ mkdir -p $(DATADIR)/dat/lua
+ mkdir -p $(DATADIR)/dat/clua
+ mkdir -p $(DATADIR)/dat/descript
+ mkdir -p $(DATADIR)/dat/database
+ $(COPY) dat/*.des $(DATADIR)/dat
+ $(COPY) dat/lua/*.lua $(DATADIR)/dat/lua
+ $(COPY) dat/clua/*.lua $(DATADIR)/dat/clua
+ $(COPY) dat/descript/*.txt $(DATADIR)/dat/descript
+ $(COPY) dat/database/*.txt $(DATADIR)/dat/database
+ mkdir -p $(DATADIR)/settings
+ $(COPY) ../settings/* $(DATADIR)/settings/
+ mkdir -p $(DATADIR)/docs
+ $(COPY) ../docs/*.txt $(DATADIR)/docs
+ chown -R $(INSTALL_UGRP) $(DATADIR)
+ifneq ($(SAVEDIR),)
+ mkdir -p $(SAVEDIR)
+ chown $(INSTALL_UGRP) $(SAVEDIR)
+ chmod $(MCHMOD_SAVEDIR) $(SAVEDIR)
+endif
clean:
- +$(MAKE) -f $(MAKEFILE) clean
+ +$(MAKE) -C $(UTIL) clean
+ $(DELETE) *.o
+ $(DELETE) *.ixx
+
+clean-lua:
+ +$(MAKE) -C $(LUASRC) clean
+
+clean-sql:
+ +$(MAKE) -C $(SQLSRC) clean
+
+distclean: clean clean-lua clean-sql clean-rltiles
+ $(DELETE) bones.*
+ $(DELETE) morgue.txt
+ $(DELETE) scores
+ $(DELETE) $(GAME)
+ $(DELETE) *.sav
+ $(DELETE) core
+ $(DELETE) *.0*
+ $(DELETE) *.lab
+ $(DELETE) $(DEPENDENCY_MKF)
+
+$(GAME): $(GAME_DEPENDS)
+ $(QUIET_LINK)$(CXX) $(LDFLAGS) $(CFLAGS) $(OBJECTS) -o $(GAME) $(LIB)
+
+.PHONY : debug profile wizard
+
+debug: $(GAME)
+profile: $(GAME)
+wizard: $(GAME)
+
+# [ds] Note we don't use the standard CFLAGS here; that's intentional, most
+# flex/bison combos I've tried don't produce code that passes the warnings
+# test.
+
+$(UTIL)%.o: $(UTIL)%.cc
+ $(QUIET_CXX)$(CXX) $(YCFLAGS) -o $@ -c $<
+
+ifneq ($(PCH),n)
+%.h.gch: %.h
+ $(QUIET_PCH)$(CXX) $(CFLAGS) -c $< -o $@
+
+CC_DEP := AppHdr.h.gch
+endif
+
+$(OBJECTS:%.o=%.cc): $(CC_DEP) $(TILEDEFHDRS)
+
+%.o: %.m
+ $(QUIET_CXX)$(CC) $(CFLAGS) -c $< -o $@
+
+%.o: %.cc
+ $(QUIET_CXX)$(CXX) $(CFLAGS) -c $< -o $@
+
+#############################################################################
+# Build PCRE
+
+$(FPCRELIBA):
+ +@$(MAKE) -C $(PCRESRC)
+
+#############################################################################
+# Build Lua
+
+$(FLUALIBA):
+ +@$(MAKE) -C $(LUASRC) crawl_unix
+
+#############################################################################
+# Build SQLite
+
+$(FSQLLIBA):
+ +@$(MAKE) -C $(SQLSRC)
+
+#############################################################################
+# Build unrandart data
+art-data.h: art-data.txt util/art-data.pl art-func.h
+ util/art-data.pl
+
+#############################################################################
+# RLTiles
+#
+
+.PHONY: rltile-build
+rltile-build:
+ $(MAKE) -C $(RLTILES) -f makefile.unix all
+
+$(TILEDEFSRCS): rltile-build
+$(TILEDEFHDRS): rltile-build
+$(ORIGTILEFILES): rltile-build
+
+dat/tiles/%.png: $(RLTILES)/%.png
+ $(QUIET_COPY)$(COPY) $< $@
-distclean:
- +$(MAKE) -f $(MAKEFILE) distclean
+clean-rltiles:
+ +$(MAKE) -C $(RLTILES) -f makefile.unix distclean
-depend:
- +$(MAKE) -f $(MAKEFILE) depend
+#############################################################################
+# Packaging a source tarball for release
+#
-# WIZARD mode currently includes asserts, bounds checking, item checking and
-# monster checking.
-wizard:
- +$(MAKE) -f $(MAKEFILE) debug EXTRA_FLAGS='-g -DWIZARD -DDEBUG -DDEBUG_ITEM_SCAN -DDEBUG_MONS_SCAN'
+# To package, you *must* have lex and yacc to generate the intermediates.
+ifeq ($(DOYACC),y)
+package-source: distclean prebuildyacc pkgtidy depend removeold vlink \
+ pkgtarbz2 pkgzip
-# DEBUG mode includes WIZARD mode as well as copious debugging input
-debug:
- +$(MAKE) -f $(MAKEFILE) DEBUG_CRAWL=y debug EXTRA_FLAGS='-g -DFULLDEBUG -DWIZARD'
+pkgtidy:
+ $(DELETE) $(PKG_TIDY_LIST)
-# [dshaligram] The individual makefile need not necessarily support
-# package-source; only makefile.unix does at the moment.
-package-source:
- +$(MAKE) -f $(MAKEFILE) package-source
+removeold:
+ if [ -f ../../$(SRC_PKG_TAR) ]; then $(DELETE) ../../$(SRC_PKG_TAR); fi
+ if [ -f ../../$(SRC_PKG_ZIP) ]; then $(DELETE) ../../$(SRC_PKG_ZIP); fi
-prebuildyacc:
- +$(MAKE) -f $(MAKEFILE) prebuildyacc
+# [ds] Existing directory names could produce a bad package!
+vlink:
+ cd .. && WHERE=$$PWD && cd .. && \
+ ( [ -e $(PKG_SRC_DIR) ] || ln -sf $$WHERE $(PKG_SRC_DIR) )
-# DO NOT DELETE THIS LINE -- $(MAKE) depend depends on it.
+pkgtarbz2:
+ cd ../.. && tar -ch --bzip2 -f $(SRC_PKG_TAR) \
+ -X $(PKG_EXCLUDES) $(PKG_SRC_DIR)
+pkgzip:
+ cd ../.. && zip -rq $(SRC_PKG_ZIP) $(PKG_SRC_DIR) \
+ -x@$(PKG_EXCLUDES)
+endif
diff --git a/crawl-ref/source/makefile.mgw b/crawl-ref/source/makefile.mgw
deleted file mode 100644
index ec353b9415..0000000000
--- a/crawl-ref/source/makefile.mgw
+++ /dev/null
@@ -1,236 +0,0 @@
-# -*- Makefile -*- for Dungeon Crawl (Win32, MinGW)
-
-# makefile.obj includes a list of object files needed to build Crawl.
-include makefile.obj
-
-ifeq ($(DEBUG_CRAWL),)
-OPATH := rel
-else
-OPATH := dbg
-endif
-
-# need .exe so make will find the right file
-APPNAME = $(OPATH)\crawl.exe
-CXX = g++
-DELETE = del
-COPY = copy
-OS_TYPE = WIN32CONSOLE
-
-INSTALLDIR := $(OPATH)
-
-# If you don't have flex or bison, set DOYACC to N or empty.
-DOYACC := n
-
-LEX := flex
-YACC := bison -y
-
-ifeq ($(LUASRC),)
-LUASRC := util\lua\src
-endif
-
-LUALIB = lua
-LUALIBA = lib$(LUALIB).a
-
-SQLSRC := util\sqlite
-SQLLIB := sqlite3
-SQLIBA := lib$(SQLLIB).a
-FSQLLIBA := $(SQLLIB)\$(SQLIBA)
-
-PCRESRC := util\pcre
-PCRELIB := pcre
-PCRELIBA := lib$(PCRELIB).a
-
-LIB = -static -lwinmm -L$(LUASRC) -l$(LUALIB) -L$(SQLSRC) -l$(SQLLIB) -L$(PCRESRC) -lpcre
-INCLUDES := -Iutil -I. -I$(LUASRC) -I$(SQLSRC) -I$(PCRESRC)
-
-CFWARN := -Wall -Wwrite-strings -Wshadow -pedantic
-
-CFOTHERS := -fsigned-char \
- -fstrict-aliasing \
- -pedantic \
- -O2 \
- -D$(OS_TYPE) $(EXTRA_FLAGS) \
- -DWINMM_PLAY_SOUNDS -DCLUA_BINDINGS
-
-CFLAGS := $(INCLUDES) $(CFWARN) $(CFOTHERS)
-YCFLAGS := $(INCLUDES) $(CFOTHERS)
-
-OBJECTS := $(OBJECTS) libw32c.o crash-w.o
-
-LDFLAGS =
-
-#LIB = -lcurso -lpano
-
-UTIL = util/
-
-YTABC := levcomp.tab.c
-YTABH := levcomp.tab.h
-
-
-ifeq ($(LEX),)
-DOYACC :=
-endif
-
-ifeq ($(YACC),)
-DOYACC :=
-endif
-
-RESOURCE := $(UTIL)crawl.rc
-RESOURCEOBJ := crawlres.o
-WINDRES := windres.exe
-
-# Do the levcomp stuff first because that's the most likely to fail.
-OBJECTS := levcomp.tab.o levcomp.lex.o \
- $(OBJECTS) $(RESOURCEOBJ)
-
-OBJECTS := $(foreach file,$(OBJECTS),$(OPATH)/$(file))
-
-GAME_DEPENDS := prepare $(LUASRC)\$(LUALIBA) $(FSQLLIBA) $(PCRESRC)\$(PCRELIBA) $(OBJECTS)
-
-##########################################################################
-
-all: $(APPNAME)
-
-prepare:
- if not exist $(OPATH) mkdir $(OPATH)
-
-DEPENDENCY_MKF := makefile.dep
--include $(DEPENDENCY_MKF)
-
-##########################################################################
-# The level compiler
-#
-ifeq ($(DOYACC),y)
-
-# [ds] A plague on the broken copy command on Windoze.
-prebuildyacc: $(UTIL)levcomp.lex.cc $(UTIL)levcomp.tab.cc $(UTIL)levcomp.tab.h
- $(subst /,\,for %%f in ($^) do $(COPY) %%f prebuilt)
-
-$(UTIL)levcomp.tab.cc: $(UTIL)levcomp.ypp
- $(subst /,\, cd $(UTIL)) && $(YACC) -d -b levcomp levcomp.ypp
- $(subst /,\, cd $(UTIL)) && move $(YTABC) levcomp.tab.cc
-
-$(UTIL)levcomp.lex.cc: $(UTIL)levcomp.lpp
- $(subst /,\, cd $(UTIL) && $(LEX) -olevcomp.lex.cc levcomp.lpp)
-
-else
-
-$(UTIL)levcomp.tab.cc: prebuilt/levcomp.tab.cc
- $(subst /,\,$(COPY) prebuilt/*.h $(UTIL))
- $(subst /,\,$(COPY) $< $@)
-
-$(UTIL)levcomp.lex.cc: prebuilt/levcomp.lex.cc
- $(subst /,\,$(COPY) $< $@)
-
-endif
-
-##########################################################################
-
-install: $(APPNAME)
-ifneq ($(OPATH),$(INSTALLDIR))
- $(COPY) $(APPNAME) ${INSTALLDIR}
-endif
- mkdir $(INSTALLDIR)\dat 2>nul || echo "" >nul
- mkdir $(INSTALLDIR)\dat\lua 2>null || echo "">nul
- mkdir $(INSTALLDIR)\dat\clua 2>null || echo "">nul
- mkdir $(INSTALLDIR)\dat\descript 2>null || echo "">nul
- mkdir $(INSTALLDIR)\dat\database 2>null || echo "">nul
- mkdir $(INSTALLDIR)\settings 2>null || echo "">nul
- mkdir $(INSTALLDIR)\docs 2>null || echo "">nul
- copy /y dat\*.des $(INSTALLDIR)\dat
- copy /y dat\lua\*.lua $(INSTALLDIR)\dat\lua
- copy /y dat\clua\*.lua $(INSTALLDIR)\dat\clua
- copy /y dat\descript\*.txt $(INSTALLDIR)\dat\descript
- copy /y dat\database\*.txt $(INSTALLDIR)\dat\database
- copy /y ..\settings\* $(INSTALLDIR)\settings
- copy /y ..\docs\* $(INSTALLDIR)\docs
- copy /y ..\* $(INSTALLDIR)
- $(DELETE) $(INSTALLDIR)\*.sh
-
-clean:
- $(DELETE) $(OPATH)\*.o
- $(subst /,\,$(DELETE) $(UTIL)*.o)
- $(subst /,\,$(DELETE) $(UTIL)*.exe)
- $(subst /,\,$(DELETE) $(UTIL)*.lex.cc)
- $(subst /,\,$(DELETE) $(UTIL)*.tab.cc)
- $(subst /,\,$(DELETE) $(UTIL)*.tab.h)
- $(subst /,\,$(DELETE) $(UTIL)*.tab.c)
- $(subst /,\,$(DELETE) *.ixx)
-
-clean-lua:
- cd $(LUASRC) && $(MAKE) clean_win
-
-clean-sql:
- cd $(SQLSRC) && $(MAKE) "RM_F=del /f" clean
-
-clean-pcre:
- cd $(PCRESRC) && $(MAKE) clean
-
-distclean: clean clean-lua clean-sql clean-pcre
- $(DELETE) $(OPATH)\*.o
- $(DELETE) *.o
- $(DELETE) bones.*
- $(DELETE) $(OPATH)\bones.*
- $(DELETE) morgue.txt
- $(DELETE) $(OPATH)\morgue.txt
- $(DELETE) scores
- $(DELETE) $(OPATH)\scores
- $(DELETE) crawl.exe
- $(DELETE) $(subst /,\,$(APPNAME))
- $(DELETE) *.sav
- $(DELETE) $(OPATH)\*.sav
- $(DELETE) core
- $(DELETE) $(OPATH)\core
- $(DELETE) *.0*
- $(DELETE) $(OPATH)\*.0*
- $(DELETE) *.lab
- $(DELETE) $(OPATH)\*.lab
-
-$(APPNAME): $(GAME_DEPENDS)
- ${CXX} ${LDFLAGS} $(CFLAGS) $(OBJECTS) -o $(APPNAME) $(LIB)
- strip $(APPNAME)
-
-debug: $(GAME_DEPENDS)
- ${CXX} ${LDFLAGS} $(CFLAGS) $(OBJECTS) -o $(APPNAME) $(LIB)
-
-profile: $(GAME_DEPENDS)
- ${CXX} -g -p ${LDFLAGS} $(CFLAGS) $(OBJECTS) -o $(APPNAME) $(LIB)
-
-$(OPATH)/%.o: %.cc
- ${CXX} ${CFLAGS} -o $@ -c $<
-
-$(OPATH)/%.o: $(UTIL)%.cc
- $(CXX) $(YCFLAGS) -o $@ -c $<
-
-#############################################################################
-# Build Lua
-
-$(LUASRC)\$(LUALIBA):
- @echo Building Lua...
- @cd $(LUASRC) && $(MAKE) crawl_mingw
-
-#############################################################################
-# Build SQLite
-
-$(FSQLLIBA):
- @echo Building SQLite
- cd $(SQLSRC) && $(MAKE)
-
-#############################################################################
-# Build unrandart data
-art-data.h: art-data.txt util/art-data.pl art-func.h
- util/art-data.pl
-
-#############################################################################
-# Build PCRE
-
-$(PCRESRC)\$(PCRELIBA):
- @echo Building PCRE...
- @cd $(PCRESRC) && $(MAKE)
-
-##########################################################################
-# Resources
-#
-
-$(OPATH)/$(RESOURCEOBJ): $(RESOURCE)
- $(WINDRES) $< $@
diff --git a/crawl-ref/source/makefile.mgw_unix b/crawl-ref/source/makefile.mgw_unix
deleted file mode 100644
index 036b90109e..0000000000
--- a/crawl-ref/source/makefile.mgw_unix
+++ /dev/null
@@ -1,238 +0,0 @@
-# -*- Makefile -*- for Dungeon Crawl (Cross-compiling MinGW for crawl.develz.org)
-
-# makefile.obj includes a list of object files needed to build Crawl.
-include makefile.obj
-
-OPATH := build
-
-# need .exe so make will find the right file
-APPNAME = $(OPATH)/crawl.exe
-CXX = i586-mingw32msvc-g++
-DELETE = rm -f
-COPY = cp
-OS_TYPE = WIN32CONSOLE
-
-ifeq ($(INSTALLDIR),)
-INSTALLDIR := crawl-mingw32
-endif
-
-# If you don't have flex or bison, set DOYACC to N or empty.
-DOYACC := n
-
-LEX := flex
-YACC := bison -y
-
-ifeq ($(LUASRC),)
-LUASRC := util/lua/src
-endif
-
-LUALIB = lua
-LUALIBA = lib$(LUALIB).a
-
-SQLSRC := util/sqlite
-SQLLIB := sqlite3
-SQLIBA := lib$(SQLLIB).a
-FSQLLIBA := $(SQLLIB)/$(SQLIBA)
-
-PCRESRC := util/pcre
-PCRELIB := pcre
-PCRELIBA := lib$(PCRELIB).a
-
-LIB = -static -L$(HOME)/source/mingw32/lib -lwinmm -L$(LUASRC) -l$(LUALIB) -L$(SQLSRC) -l$(SQLLIB) -L$(PCRESRC) -l$(PCRELIB)
-INCLUDES := -Iutil -I. -I$(HOME)/source/mingw32/include -I$(LUASRC) -I$(SQLSRC) -I$(PCRESRC)
-
-CFWARN := -Wwrite-strings
-
-CFOTHERS := -fsigned-char \
- -fstrict-aliasing \
- -pedantic \
- -O2 \
- -D$(OS_TYPE) $(EXTRA_FLAGS) \
- -DWINMM_PLAY_SOUNDS -DCLUA_BINDINGS -DWIZARD
-
-CFLAGS := $(INCLUDES) $(CFWARN) $(CFOTHERS)
-YCFLAGS := $(INCLUDES) $(CFOTHERS)
-
-OBJECTS := $(OBJECTS) libw32c.o crash-w.o
-
-LDFLAGS =
-
-#LIB = -lcurso -lpano
-
-UTIL = util/
-
-YTABC := levcomp.tab.c
-YTABH := levcomp.tab.h
-
-
-ifeq ($(LEX),)
-DOYACC :=
-endif
-
-ifeq ($(YACC),)
-DOYACC :=
-endif
-
-RESOURCE := $(UTIL)crawl.rc
-RESOURCEOBJ := crawlres.o
-WINDRES := i586-mingw32msvc-windres
-
-# Do the levcomp stuff first because that's the most likely to fail.
-OBJECTS := levcomp.tab.o levcomp.lex.o \
- $(OBJECTS) $(RESOURCEOBJ)
-
-OBJECTS := $(foreach file,$(OBJECTS),$(OPATH)/$(file))
-
-GAME_DEPENDS := prepare $(LUASRC)/$(LUALIBA) $(FSQLLIBA) $(PCRESRC)/$(PCRELIBA) $(OBJECTS)
-
-##########################################################################
-
-all: $(APPNAME)
-
-prepare:
- mkdir -p $(OPATH)
-
-DEPENDENCY_MKF := makefile.dep
--include $(DEPENDENCY_MKF)
-
-##########################################################################
-# The level compiler
-#
-ifeq ($(DOYACC),y)
-
-# [ds] A plague on the broken copy command on Windoze.
-prebuildyacc: $(UTIL)levcomp.lex.cc $(UTIL)levcomp.tab.cc $(UTIL)levcomp.tab.h
- $(COPY) $^ prebuilt/
-
-$(UTIL)levcomp.tab.cc: $(UTIL)levcomp.ypp
- cd $(UTIL) && $(YACC) -d -b levcomp levcomp.ypp \
- && mv $(YTABC) levcomp.tab.cc || false
-
-$(UTIL)levcomp.lex.cc: $(UTIL)levcomp.lpp
- cd $(UTIL) && $(LEX) -olevcomp.lex.cc levcomp.lpp
-
-else
-
-$(UTIL)levcomp.tab.cc: prebuilt/levcomp.tab.cc
- $(COPY) prebuilt/*.h $(UTIL)
- $(COPY) $< $@
-
-$(UTIL)levcomp.lex.cc: prebuilt/levcomp.lex.cc
- $(COPY) $< $@
-
-endif
-
-##########################################################################
-
-install: $(APPNAME)
-ifneq ($(OPATH),$(INSTALLDIR))
- mkdir -p $(INSTALLDIR)
- $(COPY) $(APPNAME) ${INSTALLDIR}
-endif
- mkdir -p $(INSTALLDIR)/dat
- mkdir -p $(INSTALLDIR)/dat/clua
- mkdir -p $(INSTALLDIR)/dat/database
- mkdir -p $(INSTALLDIR)/dat/descript
- mkdir -p $(INSTALLDIR)/dat/lua
- mkdir -p $(INSTALLDIR)/docs
- mkdir -p $(INSTALLDIR)/settings
- $(COPY) dat/*.des $(INSTALLDIR)/dat/
- $(COPY) dat/clua/*.lua $(INSTALLDIR)/dat/clua/
- $(COPY) dat/database/*.txt $(INSTALLDIR)/dat/database/
- $(COPY) dat/descript/*.txt $(INSTALLDIR)/dat/descript/
- $(COPY) dat/lua/*.lua $(INSTALLDIR)/dat/lua/
- $(COPY) ../docs/*.txt $(INSTALLDIR)/docs/
- $(COPY) ../docs/changes.stone_soup $(INSTALLDIR)/docs/
- $(COPY) ../CREDITS.txt $(INSTALLDIR)/
- $(COPY) ../README.txt ../README.pdf $(INSTALLDIR)/
- $(COPY) ../licence.txt $(INSTALLDIR)/LICENCE.txt
- $(COPY) ../settings/* $(INSTALLDIR)/settings/
-
-clean:
- $(DELETE) $(OPATH)/*.o
- $(DELETE) $(UTIL)*.o
- $(DELETE) $(UTIL)*.exe
- $(DELETE) $(UTIL)*.lex.cc
- $(DELETE) $(UTIL)*.tab.cc
- $(DELETE) $(UTIL)*.tab.h
- $(DELETE) $(UTIL)*.tab.c
- $(DELETE) *.ixx
-
-clean-lua:
- cd $(LUASRC) && $(MAKE) clean_win
-
-clean-sql:
- cd $(SQLSRC) && $(MAKE) clean
-
-clean-pcre:
- cd $(PCRESRC) && $(MAKE) clean
-
-distclean: clean clean-lua clean-sql clean-pcre
- $(DELETE) $(OPATH)/*.o
- $(DELETE) *.o
- $(DELETE) bones.*
- $(DELETE) $(OPATH)/bones.*
- $(DELETE) morgue.txt
- $(DELETE) $(OPATH)/morgue.txt
- $(DELETE) scores
- $(DELETE) $(OPATH)/scores
- $(DELETE) crawl.exe
- $(DELETE) $(APPNAME)
- $(DELETE) *.sav
- $(DELETE) $(OPATH)/*.sav
- $(DELETE) core
- $(DELETE) $(OPATH)/core
- $(DELETE) *.0*
- $(DELETE) $(OPATH)/*.0*
- $(DELETE) *.lab
- $(DELETE) $(OPATH)/*.lab
-
-$(APPNAME): $(GAME_DEPENDS)
- ${CXX} ${LDFLAGS} $(CFLAGS) $(OBJECTS) -o $(APPNAME) $(LIB)
- i586-mingw32msvc-strip $(APPNAME)
-
-debug: $(GAME_DEPENDS)
- ${CXX} ${LDFLAGS} $(CFLAGS) $(OBJECTS) -o $(APPNAME) $(LIB)
-
-profile: $(GAME_DEPENDS)
- ${CXX} -g -p ${LDFLAGS} $(CFLAGS) $(OBJECTS) -o $(APPNAME) $(LIB)
-
-$(OPATH)/%.o: %.cc
- ${CXX} ${CFLAGS} -o $@ -c $<
-
-$(OPATH)/%.o: $(UTIL)%.cc
- $(CXX) $(YCFLAGS) -o $@ -c $<
-
-#############################################################################
-# Build Lua
-
-$(LUASRC)/$(LUALIBA):
- @echo Building Lua...
- @cd $(LUASRC) && $(MAKE) crawl_mingw
-
-#############################################################################
-# Build SQLite
-
-$(FSQLLIBA):
- @echo Building SQLite
- cd $(SQLSRC) && $(MAKE)
-
-#############################################################################
-# Build unrandart data
-art-data.h: art-data.txt util/art-data.pl art-func.h
- util/art-data.pl
-
-#############################################################################
-# Build PCRE
-
-$(PCRESRC)/$(PCRELIBA):
- @echo Building PCRE...
- @cd $(PCRESRC) && $(MAKE)
-
-##########################################################################
-# Resources
-#
-
-$(OPATH)/$(RESOURCEOBJ): $(RESOURCE)
- $(WINDRES) $< $@
-
diff --git a/crawl-ref/source/makefile.osx b/crawl-ref/source/makefile.osx
deleted file mode 100644
index f1ada8a14a..0000000000
--- a/crawl-ref/source/makefile.osx
+++ /dev/null
@@ -1,40 +0,0 @@
-# -*- Makefile -*- for Dungeon Crawl
-
-PROJECT = Crawl.xcodeproj
-GAME = Crawl
-
-all: $(GAME)
-
-# Xcode handles dependencies, so install does _not_ have to depend on building.
-install:
- xcodebuild -project $(PROJECT) -target $(GAME) -configuration Release install
-
-clean:
- xcodebuild -project $(PROJECT) -target $(GAME) -configuration Release clean
- xcodebuild -project $(PROJECT) -target $(GAME) -configuration Debug clean
- xcodebuild -project $(PROJECT) -target $(GAME) -configuration Wizard clean
-
-distclean: clean
- rm -f bones.*
- rm -f morgue.txt
- rm -f scores
- rm -f $(GAME)
- rm -f *.sav
- rm -f core
- rm -f *.0*
- rm -f *.lab
-
-$(GAME):
- xcodebuild -project $(PROJECT) -target $(GAME) -configuration Release build
-
-debug:
- xcodebuild -project $(PROJECT) -target $(GAME) -configuration Debug build
-
-wizard:
- xcodebuild -project $(PROJECT) -target $(GAME) -configuration Wizard build
-
-devel:
- xcodebuild -project $(PROJECT) -target $(GAME) -configuration Development build
-
-devclean:
- xcodebuild -project $(PROJECT) -target $(GAME) -configuration Development clean
diff --git a/crawl-ref/source/makefile.unix b/crawl-ref/source/makefile.unix
deleted file mode 100644
index 19b20ad7da..0000000000
--- a/crawl-ref/source/makefile.unix
+++ /dev/null
@@ -1,325 +0,0 @@
-# -*- Makefile -*- for Dungeon Crawl (unix)
-
-GAME = crawl
-
-# this file contains a list of the libraries.
-# it will make a variable called OBJECTS that contains all the libraries
-include makefile.obj
-
-OBJECTS += libunix.o crash-u.o
-
-CXX = g++
-DELETE = rm -f
-COPY = cp
-OS_TYPE = UNIX
-# To get stack trace symbols.
-LDFLAGS = -rdynamic
-
-# Change this to y (case-sensitive!) if you want to use Unicode glyphs
-# in the map, and you have libncursesw available.
-UNICODE_GLYPHS = n
-
-# If you're using UNICODE_GLYPHS=y, and have a preferred Unicode
-# (UTF-8) locale you want Crawl to use, you can set it here. The
-# default is en_US.UTF-8. If you'd prefer that Crawl use the locale
-# as set in your environment LC_* variables, use UNICODE_LOCALE = .
-UNICODE_LOCALE =
-
-# If you have lex and yacc, set DOYACC to y (lowercase y).
-DOYACC := y
-
-# Permissions to set on the game executable.
-MCHMOD := 2755
-
-# Permissions to set on the save directory.
-MCHMOD_SAVEDIR := 775
-
-# The user:group to install the game as.
-INSTALL_UGRP := games:games
-
-INSTALLDIR := /usr/games/crawl
-
-# If you're installing Crawl for multiple users, you *must* set this to a
-# valid path before building Crawl. This is not necessary if you are building
-# Crawl for a single user.
-
-# SAVEDIR := /usr/games/crawl/saves/
-# DATADIR := /usr/games/crawl/data/
-
-LEX := flex
-YACC := bison -y
-
-LUASRC := util/lua/src
-LUALIB = lua
-LUALIBA = l$(LUALIB).a
-
-SQLSRC := util/sqlite
-SQLLIB := sqlite3
-SQLLIBA := lib$(SQLLIB).a
-FSQLLIBA := $(SQLSRC)/$(SQLLIBA)
-
-LIBDBM := $(FSQLLIBA)
-EXTRA_INCLUDES += -I$(SQLSRC)
-EXTRA_DEPENDS += $(FSQLLIBA)
-
-LIB = -l$(LIBCURS) -L$(LUASRC) -l$(LUALIB) $(LIBDBM)
-
-INCLUDES := $(INCLUDES) -Iutil -I. -I$(LUASRC) $(EXTRA_INCLUDES)
-
-CFWARN := -Wall -Wno-parentheses -Wwrite-strings -Wshadow -pedantic
-
-CFOTHERS := -fsigned-char -D$(OS_TYPE) $(EXTRA_FLAGS) -DCLUA_BINDINGS
-
-ifneq ($(HURRY),y)
-ifneq ($(DEBUG_CRAWL),y)
-CFWARN += -Wuninitialized
-CFOTHERS += -O2
-endif
-endif
-
-ifneq ($(strip $(SAVEDIR)),)
-CFOTHERS += '-DSAVE_DIR_PATH="$(strip $(SAVEDIR))"'
-endif
-
-ifneq ($(strip $(DATADIR)),)
-CFOTHERS += '-DDATA_DIR_PATH="$(strip $(DATADIR))"'
-endif
-
-ifeq ($(strip $(UNICODE_GLYPHS)),y)
-# Include path for (n)curses with Unicode support.
-INCLUDES += -I/usr/include/ncursesw
-
-# Your ncurses library may include Unicode support, and you may not have a
-# separate libncursesw; in that case, change this line accordingly.
-LIBCURS = ncursesw
-CFOTHERS += -DUNICODE_GLYPHS
-
-ifneq ($(strip $(UNICODE_LOCALE)),)
-ifneq ($(strip $(UNICODE_LOCALE)),.)
-CFOTHERS += -DUNICODE_LOCALE=\"$(strip $(UNICODE_LOCALE))\"
-else
-CFOTHERS += -DUNICODE_LOCALE=\"\"
-endif
-endif
-
-# The standard ncurses library also supports Unicode on Mac OS/Darwin.
-ifeq ($(shell uname),Darwin)
-LIBCURS = ncurses
-endif
-
-else
-# Include path for curses or ncurses (non-Unicode).
-INCLUDES += -I/usr/include/ncurses
-LIBCURS = ncurses
-endif
-
-CFLAGS := $(INCLUDES) $(CFWARN) $(CFOTHERS)
-YCFLAGS := $(INCLUDES) $(CFOTHERS)
-
-UTIL = util/
-
-YTABC := levcomp.tab.c
-YTABH := levcomp.tab.h
-
-OBJECTS := $(UTIL)levcomp.tab.o $(UTIL)levcomp.lex.o $(OBJECTS)
-
-ifeq ($(strip $(LEX)),)
-DOYACC :=
-endif
-
-ifeq ($(strip $(YACC)),)
-DOYACC :=
-endif
-
-GAME_DEPENDS := $(LUASRC)$(LUALIBA) $(EXTRA_DEPENDS) $(OBJECTS)
-SRC_PKG_BASE := stone_soup
-SRC_VERSION := $(shell egrep 'VER_NUM *".*"' version.h | \
- egrep -o '[0-9]\.[0-9](\.[0-9])?')
-PKG_SRC_DIR := $(SRC_PKG_BASE)-$(SRC_VERSION)-src
-SRC_PKG_TAR := $(PKG_SRC_DIR).tbz2
-SRC_PKG_ZIP := $(PKG_SRC_DIR).zip
-
-PKG_TIDY_LIST := $(UTIL)*.o $(LEVCOMP) *.o \
- $(UTIL)*.tab.cc $(UTIL)*.tab.h $(UTIL)*.lex.cc *.ixx
-PKG_EXCLUDES := $(PWD)/misc/src-pkg-excludes.lst
-
-##########################################################################
-
-all: $(GAME)
-
-test: $(GAME)
- $(PWD)/$(GAME) -test
-
-##########################################################################
-# Dependencies
-
-DEPENDENCY_MKF := makefile.dep
-
-depend: $(OBJECTS:.o=.cc)
- rm -f $(DEPENDENCY_MKF).tmp
- @for i in $^; do \
- echo "Updating dependencies for $$i"; \
- $(CXX) -MM $(CFLAGS) $$i >>$(DEPENDENCY_MKF).tmp 2>/dev/null; \
- done
- mv -f $(DEPENDENCY_MKF).tmp $(DEPENDENCY_MKF)
-
--include $(DEPENDENCY_MKF)
-
-##########################################################################
-# The level compiler
-#
-
-ifeq ($(DOYACC),y)
-
-prebuildyacc: $(UTIL)levcomp.tab.cc $(UTIL)levcomp.tab.h $(UTIL)levcomp.lex.cc
- $(COPY) $^ prebuilt/
-
-$(UTIL)levcomp.tab.cc: $(UTIL)levcomp.ypp
- cd $(UTIL) && $(YACC) -d -b levcomp levcomp.ypp \
- && mv $(YTABC) levcomp.tab.cc || false
-
-$(UTIL)levcomp.lex.cc: $(UTIL)levcomp.lpp
- cd $(UTIL) && $(LEX) -olevcomp.lex.cc levcomp.lpp
-
-else
-
-# Pull the level-compiler stuff up from prebuilt/
-
-$(UTIL)levcomp.tab.cc: prebuilt/levcomp.tab.cc
- $(COPY) prebuilt/*.h $(UTIL)
- $(COPY) $< $@
-
-
-$(UTIL)levcomp.lex.cc: prebuilt/levcomp.lex.cc
- $(COPY) $< $@
-
-endif
-
-##########################################################################
-
-
-##########################################################################
-# The actual build targets
-#
-
-install: $(GAME)
-ifeq ($(DATADIR),)
- $(error DATADIR not set! Set DATADIR and run make clean install again)
-endif
- [ -d $(INSTALLDIR) ] || mkdir -p $(INSTALLDIR)
- $(COPY) $(GAME) $(INSTALLDIR)
- chown $(INSTALL_UGRP) $(INSTALLDIR)/$(GAME)
- chmod ${MCHMOD} ${INSTALLDIR}/$(GAME)
- mkdir -p $(DATADIR)/dat
- mkdir -p $(DATADIR)/dat/lua
- mkdir -p $(DATADIR)/dat/clua
- mkdir -p $(DATADIR)/dat/descript
- mkdir -p $(DATADIR)/dat/database
- $(COPY) dat/*.des $(DATADIR)/dat
- $(COPY) dat/lua/*.lua $(DATADIR)/dat/lua
- $(COPY) dat/clua/*.lua $(DATADIR)/dat/clua
- $(COPY) dat/descript/*.txt $(DATADIR)/dat/descript
- $(COPY) dat/database/*.txt $(DATADIR)/dat/database
- mkdir -p $(DATADIR)/settings
- $(COPY) ../settings/* $(DATADIR)/settings/
- mkdir -p $(DATADIR)/docs
- $(COPY) ../docs/*.txt $(DATADIR)/docs
- chown -R $(INSTALL_UGRP) $(DATADIR)
-ifneq ($(SAVEDIR),)
- mkdir -p $(SAVEDIR)
- chown $(INSTALL_UGRP) $(SAVEDIR)
- chmod $(MCHMOD_SAVEDIR) $(SAVEDIR)
-endif
-
-clean:
- $(DELETE) *.o
- $(DELETE) $(UTIL)*.o
- $(DELETE) $(LEVCOMP)
- $(DELETE) $(UTIL)*.tab.cc $(UTIL)*.tab.c $(UTIL)*.tab.h $(UTIL)*.lex.cc
- $(DELETE) *.ixx
-
-clean-lua:
- +$(MAKE) -C $(LUASRC) clean
-
-clean-sql:
- +$(MAKE) -C $(SQLSRC) clean
-
-distclean: clean clean-lua clean-sql
- $(DELETE) bones.*
- $(DELETE) morgue.txt
- $(DELETE) scores
- $(DELETE) $(GAME)
- $(DELETE) *.sav
- $(DELETE) core
- $(DELETE) *.0*
- $(DELETE) *.lab
- $(DELETE) $(DEPENDENCY_MKF)
-
-$(GAME): $(GAME_DEPENDS)
- ${CXX} ${LDFLAGS} $(CFLAGS) $(OBJECTS) -o $(GAME) $(LIB)
-
-.PHONY : debug
-
-debug: $(GAME)
-
-profile: $(GAME_DEPENDS)
- ${CXX} -g -p ${LDFLAGS} $(CFLAGS) $(OBJECTS) -o $(GAME) $(LIB)
-
-.cc.o:
- ${CXX} ${CFLAGS} -c $<
-
-# [ds] Note we don't use the standard CFLAGS here; that's intentional, most
-# flex/bison combos I've tried don't produce code that passes the warnings
-# test.
-$(UTIL)%.o: $(UTIL)%.cc
- $(CXX) $(YCFLAGS) -o $@ -c $<
-
-#############################################################################
-# Build Lua
-
-$(LUASRC)$(LUALIBA):
- echo Building Lua...
- +$(MAKE) -C $(LUASRC) crawl_unix
-
-#############################################################################
-# Build SQLite
-
-$(FSQLLIBA):
- echo Building SQLite
- +$(MAKE) -C $(SQLSRC)
-
-#############################################################################
-# Build unrandart data
-art-data.h: art-data.txt util/art-data.pl art-func.h
- util/art-data.pl
-
-#############################################################################
-# Packaging a source tarball for release
-#
-
-# To package, you *must* have lex and yacc to generate the intermediates.
-ifeq ($(DOYACC),y)
-package-source: distclean prebuildyacc pkgtidy depend removeold vlink \
- pkgtarbz2 pkgzip
-
-pkgtidy:
- $(DELETE) $(PKG_TIDY_LIST)
-
-removeold:
- if [ -f ../../$(SRC_PKG_TAR) ]; then $(DELETE) ../../$(SRC_PKG_TAR); fi
- if [ -f ../../$(SRC_PKG_ZIP) ]; then $(DELETE) ../../$(SRC_PKG_ZIP); fi
-
-# [ds] Existing directory names could produce a bad package!
-vlink:
- cd .. && WHERE=$$PWD && cd .. && \
- ( [ -e $(PKG_SRC_DIR) ] || ln -sf $$WHERE $(PKG_SRC_DIR) )
-
-pkgtarbz2:
- cd ../.. && tar -ch --bzip2 -f $(SRC_PKG_TAR) \
- -X $(PKG_EXCLUDES) $(PKG_SRC_DIR)
-
-pkgzip:
- cd ../.. && zip -rq $(SRC_PKG_ZIP) $(PKG_SRC_DIR) \
- -x@$(PKG_EXCLUDES)
-
-endif
diff --git a/crawl-ref/source/makefile_tiles.mgw b/crawl-ref/source/makefile_tiles.mgw
deleted file mode 100644
index 93fe6eaeb0..0000000000
--- a/crawl-ref/source/makefile_tiles.mgw
+++ /dev/null
@@ -1,292 +0,0 @@
-# -*- Makefile -*- for Dungeon Crawl (Win32, MinGW)
-
-# makefile.obj includes a list of object files needed to build Crawl.
-include makefile.obj
-
-ifeq ($(DEBUG_CRAWL),)
-OPATH := rel
-else
-OPATH := dbg
-endif
-
-# need .exe so make will find the right file
-APPNAME = $(OPATH)\crawl.exe
-CXX = g++
-DELETE = del
-COPY = copy
-OS_TYPE = WIN32TILES
-EXTRA_DEFINES = -DUSE_TILE -DCLUA_BINDINGS
-
-SDL_PREFIX ?= C:/mingw
-SDL_CFLAGS := -D_GNU_SOURCE=1 -Dmain=SDL_main -I$(SDL_PREFIX)/include/SDL
-SDL_LDFLAGS := -lmingw32 -lSDLmain -lSDL -mwindows
-
-INSTALLDIR := $(OPATH)
-
-# If you don't have flex or bison, set DOYACC to N or empty.
-DOYACC := n
-
-LEX := flex
-YACC := bison -y
-
-ifeq ($(LUASRC),)
-LUASRC := util\lua\src
-endif
-
-LUALIB = lua
-LUALIBA = lib$(LUALIB).a
-
-SQLSRC := util\sqlite
-SQLLIB := sqlite3
-SQLIBA := lib$(SQLLIB).a
-FSQLLIBA := $(SQLLIB)\$(SQLIBA)
-
-PCRESRC := util\pcre
-PCRELIB := pcre
-PCRELIBA := lib$(PCRELIB).a
-
-RLTILES = rltiles
-EXTRA_INCLUDES += -I$(RLTILES)
-
-TILEDEFS = dngn main player gui unrand
-TILEDEFPRES = $(TILEDEFS:%=$(RLTILES)/tiledef-%)
-TILEDEFOBJS = $(TILEDEFPRES:%=%.o)
-TILEDEFSRCS = $(TILEDEFPRES:%=%.cc)
-TILEDEFHDRS = $(TILEDEFPRES:%=%.h)
-
-OBJECTS += $(TILEDEFOBJS)
-
-TILEFILES = \
- main.png \
- player.png \
- dngn.png \
- gui.png
-
-DESTTILEFILES = $(TILEFILES:%=dat/tiles/%)
-
-LIB = -lwinmm -mwindows -lcomctl32 -L$(LUASRC) -l$(LUALIB) -L$(SQLSRC) -l$(SQLLIB) -L$(PCRESRC) -l$(PCRELIB) -lpng $(SDL_LDFLAGS) -lopengl32 -lglu32 -lSDL_image -lfreetype
-INCLUDES := -Iutil -I. -I$(LUASRC) -I$(SQLSRC) -I$(PCRESRC) $(EXTRA_INCLUDES)
-
-CFWARN := -Wall -Wwrite-strings -pedantic
-
-CFOTHERS := -fsigned-char \
- -fstrict-aliasing \
- -pedantic \
- -O2 \
- -D$(OS_TYPE) $(EXTRA_FLAGS) \
- -DWINMM_PLAY_SOUNDS -DCLUA_BINDINGS \
- -DWINVER=0x0400 -D_WIN32_IE=0x0400 \
- $(EXTRA_DEFINES) \
-
-CFLAGS := $(INCLUDES) $(CFWARN) $(CFOTHERS) $(SDL_CFLAGS)
-YCFLAGS := $(INCLUDES) $(CFOTHERS)
-
-OBJECTS := $(OBJECTS) libgui.o tilepick.o tile2.o tilereg.o tilesdl.o tilefont.o tiletex.o tilemcache.o tilebuf.o crash-w.o
-
-LDFLAGS =
-
-UTIL = util/
-
-YTABC := levcomp.tab.c
-YTABH := levcomp.tab.h
-
-ifeq ($(LEX),)
-DOYACC :=
-endif
-
-ifeq ($(YACC),)
-DOYACC :=
-endif
-
-RESOURCE := $(UTIL)crawl.rc
-RESOURCEOBJ := crawlres.o
-WINDRES := windres.exe
-
-# Do the levcomp stuff first because that's the most likely to fail.
-OBJECTS := levcomp.tab.o levcomp.lex.o \
- $(OBJECTS) $(RESOURCEOBJ)
-
-OBJECTS := $(foreach file,$(OBJECTS),$(OPATH)/$(file))
-
-GAME_DEPENDS := prepare $(LUASRC)\$(LUALIBA) $(FSQLLIBA) $(PCRESRC)\$(PCRELIBA) $(TILEHEADERS) $(DESTTILEFILES) $(OBJECTS)
-
-##########################################################################
-
-all: $(APPNAME)
-
-prepare:
- if not exist $(OPATH) mkdir $(OPATH)
-
-DEPENDENCY_MKF := makefile.dep
--include $(DEPENDENCY_MKF)
-
-##########################################################################
-# The level compiler
-#
-ifeq ($(DOYACC),y)
-
-# [ds] A plague on the broken copy command on Windoze.
-prebuildyacc: $(UTIL)levcomp.lex.cc $(UTIL)levcomp.tab.cc $(UTIL)levcomp.tab.h
- $(subst /,\,for %%f in ($^) do $(COPY) %%f prebuilt)
-
-$(UTIL)levcomp.tab.cc: $(UTIL)levcomp.ypp
- $(subst /,\, cd $(UTIL)) && $(YACC) -d -b levcomp levcomp.ypp
- $(subst /,\, cd $(UTIL)) && move $(YTABC) levcomp.tab.cc
-
-$(UTIL)levcomp.lex.cc: $(UTIL)levcomp.lpp
- $(subst /,\, cd $(UTIL) && $(LEX) -olevcomp.lex.cc levcomp.lpp)
-
-else
-
-$(UTIL)levcomp.tab.cc: prebuilt/levcomp.tab.cc
- $(subst /,\,$(COPY) prebuilt/*.h $(UTIL))
- $(subst /,\,$(COPY) $< $@)
-
-$(UTIL)levcomp.lex.cc: prebuilt/levcomp.lex.cc
- $(subst /,\,$(COPY) $< $@)
-
-endif
-
-##########################################################################
-# RLTiles
-#
-
-ORIGTILEFILES = $(TILEFILES:%=$(RLTILES)/%)
-
-makerltiles:
- pushd $(RLTILES) && $(MAKE) -f makefile.mgw all
- mkdir $(OPATH)\rltiles 2>nul || echo.>nul
-
-$(TILEDEFSRCS): makerltiles
-
-$(TILEDEFHDRS): makerltiles
-
-$(ORIGTILEFILES): makerltiles
-
-dat/tiles/%.png: rltiles/%.png
- $(subst /,\,$(COPY) $< $@)
-
-clean-rltiles:
- pushd $(RLTILES) && $(MAKE) -f makefile.mgw distclean
-
-##########################################################################
-
-
-##########################################################################
-
-install: $(APPNAME)
-ifneq ($(OPATH),$(INSTALLDIR))
- $(COPY) $(APPNAME) ${INSTALLDIR}
-endif
- mkdir $(INSTALLDIR)\dat 2>nul || echo "" >nul
- mkdir $(INSTALLDIR)\dat\lua 2>null || echo "">nul
- mkdir $(INSTALLDIR)\dat\clua 2>null || echo "">nul
- mkdir $(INSTALLDIR)\dat\descript 2>null || echo "">nul
- mkdir $(INSTALLDIR)\dat\database 2>null || echo "">nul
- mkdir $(INSTALLDIR)\settings 2>null || echo "">nul
- mkdir $(INSTALLDIR)\docs 2>null || echo "">nul
- copy /y dat\*.des $(INSTALLDIR)\dat
- copy /y dat\lua\*.lua $(INSTALLDIR)\dat\lua
- copy /y dat\clua\*.lua $(INSTALLDIR)\dat\clua
- copy /y dat\descript\*.txt $(INSTALLDIR)\dat\descript
- copy /y dat\database\*.txt $(INSTALLDIR)\dat\database
- copy /y ..\settings\* $(INSTALLDIR)\settings
- copy /y ..\docs\* $(INSTALLDIR)\docs
- mkdir $(INSTALLDIR)\dat\tiles 2>nul || echo "" > nul
- copy /y dat\tiles\*.* $(INSTALLDIR)\dat\tiles
- copy /y ..\* $(INSTALLDIR)
- $(DELETE) $(INSTALLDIR)\*.sh
-
-clean:
- $(DELETE) $(OPATH)\*.o
- $(subst /,\,$(DELETE) $(UTIL)*.o)
- $(subst /,\,$(DELETE) $(UTIL)*.exe)
- $(subst /,\,$(DELETE) $(UTIL)*.lex.cc)
- $(subst /,\,$(DELETE) $(UTIL)*.tab.cc)
- $(subst /,\,$(DELETE) $(UTIL)*.tab.h)
- $(subst /,\,$(DELETE) $(UTIL)*.tab.c)
- $(subst /,\,$(DELETE) *.ixx)
-
-clean-lua:
- cd $(LUASRC) && $(MAKE) clean_win
-
-clean-sql:
- cd $(SQLSRC) && $(MAKE) "RM_F=del /f" clean
-
-clean-pcre:
- cd $(PCRESRC) && $(MAKE)
-
-distclean: clean clean-lua clean-sql clean-pcre clean-rltiles
- $(DELETE) dbg\*.o
- $(DELETE) rel\*.o
- $(DELETE) *.o
- $(DELETE) bones.*
- $(DELETE) $(OPATH)\bones.*
- $(DELETE) morgue.txt
- $(DELETE) $(OPATH)\morgue.txt
- $(DELETE) scores
- $(DELETE) $(OPATH)\scores
- $(DELETE) crawl.exe
- $(DELETE) $(subst /,\,$(APPNAME))
- $(DELETE) *.sav
- $(DELETE) $(OPATH)\*.sav
- $(DELETE) core
- $(DELETE) $(OPATH)\core
- $(DELETE) *.0*
- $(DELETE) $(OPATH)\*.0*
- $(DELETE) *.lab
- $(DELETE) $(OPATH)\*.lab
-
-$(APPNAME): $(GAME_DEPENDS)
- ${CXX} ${LDFLAGS} $(CFLAGS) $(OBJECTS) -o $(APPNAME) $(LIB)
- strip $(APPNAME)
-
-debug: $(GAME_DEPENDS)
- ${CXX} ${LDFLAGS} $(CFLAGS) $(OBJECTS) -o $(APPNAME) $(LIB)
-
-profile: $(GAME_DEPENDS)
- ${CXX} -g -p ${LDFLAGS} $(CFLAGS) $(OBJECTS) -o $(APPNAME) $(LIB)
-
-$(OPATH)/%.o: %.cc $(TILEDEFHDRS)
- ${CXX} ${CFLAGS} -o $@ -c $<
-
-# STL is bad in debug. Always compile this file with optimizations.
-$(OPATH)/tilebuf.o: tilebuf.cc $(TILEDEFHDRS)
- ${CXX} ${CFLAGS} -O2 -o $@ -c $<
-
-
-$(OPATH)/%.o: $(UTIL)%.cc $(TILEDEFHDRS)
- $(CXX) $(YCFLAGS) -o $@ -c $<
-
-#############################################################################
-# Build Lua
-
-$(LUASRC)\$(LUALIBA):
- @echo Building Lua...
- @cd $(LUASRC) && $(MAKE) crawl_mingw
-
-#############################################################################
-# Build SQLite
-
-$(FSQLLIBA):
- @echo Building SQLite
- cd $(SQLSRC) && $(MAKE)
-
-#############################################################################
-# Build unrandart data
-art-data.h: art-data.txt util/art-data.pl art-func.h
- util/art-data.pl
-
-#############################################################################
-# Build PCRE
-
-$(PCRESRC)\$(PCRELIBA):
- @echo Building PCRE...
- @cd $(PCRESRC) && $(MAKE)
-
-##########################################################################
-# Resources
-#
-
-$(OPATH)/$(RESOURCEOBJ): $(RESOURCE)
- $(WINDRES) $< $@
diff --git a/crawl-ref/source/makefile_tiles.mgw_unix b/crawl-ref/source/makefile_tiles.mgw_unix
deleted file mode 100644
index e1c5996b95..0000000000
--- a/crawl-ref/source/makefile_tiles.mgw_unix
+++ /dev/null
@@ -1,274 +0,0 @@
-# -*- Makefile -*- for Dungeon Crawl (Cross-compiling MinGW for crawl.develz.org)
-
-# makefile.obj includes a list of object files needed to build Crawl.
-include makefile.obj
-
-OPATH := build
-
-# need .exe so make will find the right file
-APPNAME = $(OPATH)/crawl.exe
-CXX = i586-mingw32msvc-g++
-DELETE = rm -f
-COPY = cp
-OS_TYPE = WIN32TILES
-EXTRA_DEFINES = -DUSE_TILE -DCLUA_BINDINGS -DWIZARD
-
-SDL_PREFIX ?= $(HOME)/source/mingw32
-SDL_CFLAGS := -D_GNU_SOURCE=1 -Dmain=SDL_main -I$(SDL_PREFIX)/include/SDL
-SDL_LDFLAGS := -lmingw32 -lSDLmain -lSDL.dll -lSDL_image -lopengl32 -lglu32
-
-ifeq ($(INSTALLDIR),)
-INSTALLDIR := crawl-mingw32
-endif
-
-# If you don't have flex or bison, set DOYACC to N or empty.
-DOYACC := n
-
-LEX := flex
-YACC := bison -y
-
-ifeq ($(LUASRC),)
-LUASRC := util/lua/src
-endif
-
-LUALIB = lua
-LUALIBA = lib$(LUALIB).a
-
-SQLSRC := util/sqlite
-SQLLIB := sqlite3
-SQLIBA := lib$(SQLLIB).a
-FSQLLIBA := $(SQLLIB)/$(SQLIBA)
-
-PCRESRC := util/pcre
-PCRELIB := pcre
-PCRELIBA := lib$(PCRELIB).a
-
-RLTILES = rltiles
-EXTRA_INCLUDES += -I$(RLTILES)
-
-TILEDEFS = dngn main player unrand
-TILEDEFPRES = $(TILEDEFS:%=$(RLTILES)/tiledef-%)
-TILEDEFOBJS = $(TILEDEFPRES:%=%.o)
-TILEDEFSRCS = $(TILEDEFPRES:%=%.cc)
-TILEDEFHDRS = $(TILEDEFPRES:%=%.h)
-
-OBJECTS += $(TILEDEFOBJS)
-
-TILEFILES = \
- main.png \
- player.png \
- dngn.png
-
-DESTTILEFILES = $(TILEFILES:%=dat/tiles/%)
-
-LIB = -static -L$(HOME)/source/mingw32/lib -lwinmm -mwindows -lcomctl32 -L$(LUASRC) -l$(LUALIB) -L$(SQLSRC) -l$(SQLLIB) -L$(PCRESRC) -l$(PCRELIB) $(SDL_LDFLAGS) -lfreetype
-INCLUDES := -Iutil -I. -I$(HOME)/source/mingw32/include -I$(LUASRC) -I$(SQLSRC) -I$(PCRESRC) $(EXTRA_INCLUDES)
-
-CFWARN := -Wwrite-strings
-
-CFOTHERS := -fsigned-char \
- -fstrict-aliasing \
- -pedantic \
- -O2 \
- -D$(OS_TYPE) $(EXTRA_FLAGS) \
- -DWINMM_PLAY_SOUNDS -DCLUA_BINDINGS \
- -DWINVER=0x0400 -D_WIN32_IE=0x0400 \
- $(EXTRA_DEFINES)
-
-CFLAGS := $(INCLUDES) $(CFWARN) $(CFOTHERS) $(SDL_CFLAGS)
-YCFLAGS := $(INCLUDES) $(CFOTHERS)
-
-OBJECTS := $(OBJECTS) libgui.o tilepick.o tile2.o tilereg.o tilesdl.o tilefont.o tiletex.o tilemcache.o tilebuf.o crash-w.o
-
-LDFLAGS =
-
-UTIL = util/
-
-YTABC := levcomp.tab.c
-YTABH := levcomp.tab.h
-
-ifeq ($(LEX),)
-DOYACC :=
-endif
-
-ifeq ($(YACC),)
-DOYACC :=
-endif
-
-RESOURCE := $(UTIL)crawl.rc
-RESOURCEOBJ := crawlres.o
-WINDRES := i586-mingw32msvc-windres
-
-# Do the levcomp stuff first because that's the most likely to fail.
-OBJECTS := levcomp.tab.o levcomp.lex.o \
- $(OBJECTS) $(RESOURCEOBJ)
-
-OBJECTS := $(foreach file,$(OBJECTS),$(OPATH)/$(file))
-
-GAME_DEPENDS := prepare $(LUASRC)/$(LUALIBA) $(FSQLLIBA) $(PCRESRC)/$(PCRELIBA) $(TILEHEADERS) $(DESTTILEFILES) $(OBJECTS)
-
-##########################################################################
-
-all: $(APPNAME)
-
-prepare:
- mkdir -p $(OPATH)
-
-DEPENDENCY_MKF := makefile.dep
--include $(DEPENDENCY_MKF)
-
-##########################################################################
-# The level compiler
-#
-ifeq ($(DOYACC),y)
-
-# [ds] A plague on the broken copy command on Windoze.
-prebuildyacc: $(UTIL)levcomp.lex.cc $(UTIL)levcomp.tab.cc $(UTIL)levcomp.tab.h
- $(COPY) $^ prebuilt/
-
-$(UTIL)levcomp.tab.cc: $(UTIL)levcomp.ypp
- cd $(UTIL) && $(YACC) -d -b levcomp levcomp.ypp \
- && mv $(YTABC) levcomp.tab.cc || false
-
-$(UTIL)levcomp.lex.cc: $(UTIL)levcomp.lpp
- cd $(UTIL) && $(LEX) -olevcomp.lex.cc levcomp.lpp
-
-else
-
-$(UTIL)levcomp.tab.cc: prebuilt/levcomp.tab.cc
- $(COPY) prebuilt/*.h $(UTIL)
- $(COPY) $< $@
-
-$(UTIL)levcomp.lex.cc: prebuilt/levcomp.lex.cc
- $(COPY) $< $@
-endif
-
-##########################################################################
-# RLTiles
-#
-
-ORIGTILEFILES = $(TILEFILES:%=$(RLTILES)/%)
-
-makerltiles:
- pushd $(RLTILES) && $(MAKE) -f makefile.unix all
- mkdir -p $(OPATH)/rltiles
-
-$(TILEDEFSRCS): makerltiles
-
-$(TILEDEFHDRS): makerltiles
-
-$(ORIGTILEFILES): makerltiles
-
-dat/tiles/%.png: rltiles/%.png
- mkdir -p dat/tiles
- $(COPY) $< $@
-
-clean-rltiles:
- pushd $(RLTILES) && $(MAKE) -f makefile.unix distclean
-
-##########################################################################
-
-
-##########################################################################
-
-install: $(APPNAME)
-ifneq ($(OPATH),$(INSTALLDIR))
- mkdir -p $(INSTALLDIR)
- $(COPY) $(APPNAME) ${INSTALLDIR}
-endif
- mkdir -p $(INSTALLDIR)/dat
- mkdir -p $(INSTALLDIR)/dat/clua
- mkdir -p $(INSTALLDIR)/dat/database
- mkdir -p $(INSTALLDIR)/dat/descript
- mkdir -p $(INSTALLDIR)/dat/lua
- mkdir -p $(INSTALLDIR)/dat/tiles
- mkdir -p $(INSTALLDIR)/docs
- mkdir -p $(INSTALLDIR)/settings
- $(COPY) dat/*.des $(INSTALLDIR)/dat/
- $(COPY) dat/clua/*.lua $(INSTALLDIR)/dat/clua/
- $(COPY) dat/database/*.txt $(INSTALLDIR)/dat/database/
- $(COPY) dat/descript/*.txt $(INSTALLDIR)/dat/descript/
- $(COPY) dat/lua/*.lua $(INSTALLDIR)/dat/lua/
- $(COPY) dat/tiles/*.png dat/tiles/*.ttf $(INSTALLDIR)/dat/tiles/
- $(COPY) ../docs/*.txt $(INSTALLDIR)/docs/
- $(COPY) ../docs/changes.stone_soup $(INSTALLDIR)/docs/
- $(COPY) ../CREDITS.txt $(INSTALLDIR)/
- $(COPY) ../README.txt ../README.pdf $(INSTALLDIR)/
- $(COPY) ../licence.txt $(INSTALLDIR)/LICENCE.txt
- $(COPY) ../settings/* $(INSTALLDIR)/settings/
-
-clean:
- $(DELETE) $(OPATH)/*.o
- $(DELETE) $(UTIL)*.o
- $(DELETE) $(UTIL)*.exe
- $(DELETE) $(UTIL)*.lex.cc
- $(DELETE) $(UTIL)*.tab.cc
- $(DELETE) $(UTIL)*.tab.h
- $(DELETE) $(UTIL)*.tab.c
- $(DELETE) *.ixx
-
-clean-lua:
- cd $(LUASRC) && $(MAKE) clean_win
-
-clean-sql:
- cd $(SQLSRC) && $(MAKE) clean
-
-clean-pcre:
- cd $(PCRESRC) && $(MAKE) clean
-
-distclean: clean clean-lua clean-sql clean-pcre clean-rltiles
-
-$(APPNAME): $(GAME_DEPENDS)
- ${CXX} ${LDFLAGS} $(CFLAGS) $(OBJECTS) -o $(APPNAME) $(LIB)
- i586-mingw32msvc-strip $(APPNAME)
-
-debug: $(GAME_DEPENDS)
- ${CXX} ${LDFLAGS} $(CFLAGS) $(OBJECTS) -o $(APPNAME) $(LIB)
-
-profile: $(GAME_DEPENDS)
- ${CXX} -g -p ${LDFLAGS} $(CFLAGS) $(OBJECTS) -o $(APPNAME) $(LIB)
-
-$(OPATH)/%.o: %.cc $(TILEDEFHDRS)
- ${CXX} ${CFLAGS} -o $@ -c $<
-
-# STL is bad in debug. Always compile this file with optimizations.
-$(OPATH)/tilebuf.o: tilebuf.cc $(TILEDEFHDRS)
- ${CXX} ${CFLAGS} -O2 -o $@ -c $<
-
-
-$(OPATH)/%.o: $(UTIL)%.cc $(TILEDEFHDRS)
- $(CXX) $(YCFLAGS) -o $@ -c $<
-
-#############################################################################
-# Build Lua
-
-$(LUASRC)/$(LUALIBA):
- @echo Building Lua...
- @cd $(LUASRC) && $(MAKE) crawl_mingw
-
-#############################################################################
-# Build SQLite
-
-$(FSQLLIBA):
- @echo Building SQLite
- cd $(SQLSRC) && $(MAKE)
-
-#############################################################################
-# Build unrandart data
-art-data.h: art-data.txt util/art-data.pl art-func.h
- util/art-data.pl
-
-#############################################################################
-# Build PCRE
-
-$(PCRESRC)/$(PCRELIBA):
- @echo Building PCRE...
- @cd $(PCRESRC) && $(MAKE)
-
-##########################################################################
-# Resources
-#
-
-$(OPATH)/$(RESOURCEOBJ): $(RESOURCE)
- $(WINDRES) $< $@
-
diff --git a/crawl-ref/source/makefile_tiles.unix b/crawl-ref/source/makefile_tiles.unix
deleted file mode 100644
index 9d39f5442c..0000000000
--- a/crawl-ref/source/makefile_tiles.unix
+++ /dev/null
@@ -1,371 +0,0 @@
-# -*- Makefile -*- for Dungeon Crawl (unix)
-
-GAME = crawl
-
-# this file contains a list of the libraries.
-# it will make a variable called OBJECTS that contains all the libraries
-include makefile.obj
-
-OBJECTS += libgui.o tilepick.o tile2.o tilereg.o tilesdl.o tilefont.o tiletex.o tilemcache.o tilebuf.o crash-u.o
-
-SDL_CFLAGS := $(shell sdl-config --cflags)
-
-CXX = g++
-DELETE = rm -f
-COPY = cp
-OS_TYPE = UNIX
-EXTRA_INCLUDES := -DUSE_TILE -DCLUA_BINDINGS
-# To get stack trace symbols.
-LDFLAGS = -rdynamic
-
-# Change this to y if you want to use Unicode glyphs in the map, and you have
-# libncursesw available.
-UNICODE_GLYPHS = n
-
-# OSX vs. Linux differences:
-ifeq ($(strip $(OSX)),y)
-PNG_INCLUDE := -I/sw/include
-FREETYPE_INCLUDE := -I/sw/include/freetype2
-
-# Note: gcc on OS X will *always* include the dynamic library
-# version of any lib if it exists in the path. Therefore, all non-standard
-# libraries have to be linked explicitly by full path rather than searched
-# for.
-LIB_BASE := /sw/lib
-FREETYPE_LIB := $(LIB_BASE)/freetype2/lib/libfreetype.a
-
-SW_LIB_LIST := SDL SDL_image SDLmain png tiff jpeg
-LIB_LIST := $(SW_LIB_LIST:%=$(LIB_BASE)/lib%.a) $(FREETYPE_LIB)
-
-# The list of frameworks that SDL would normally dynamically load and need to
-# be included explicitly if SDL is linked statically.
-FRAMEWORK_LIST := Cocoa Carbon AudioUnit IOKit OpenGL QuickTime
-
-EXTRA_LIBS := $(FRAMEWORK_LIST:%=-Wl,-framework,%) $(LIB_LIST) -lz
-
-EXTRA_INCLUDES += -I/sw/include
-else
-PNG_INCLUDE := $(shell pkg-config libpng --cflags)
-PNG_LDFLAGS := $(shell pkg-config libpng --libs)
-FREETYPE_INCLUDE := $(shell pkg-config freetype2 --cflags)
-FREETYPE_LDFLAGS := $(shell pkg-config freetype2 --libs)
-SDL_LDFLAGS := $(shell sdl-config --libs) -lSDLmain
-EXTRA_LIBS := $(PNG_LDFLAGS) $(SDL_LDFLAGS) $(FREETYPE_LDFLAGS) -lGL -lGLU -lSDL_image
-endif
-
-# If you have lex and yacc, set DOYACC to y (lowercase y).
-DOYACC := y
-
-# Permissions to set on the game executable.
-MCHMOD := 2755
-
-# Permissions to set on the save directory.
-MCHMOD_SAVEDIR := 775
-
-# The user:group to install the game as.
-INSTALL_UGRP := games:games
-
-INSTALLDIR := /usr/games/crawl
-
-# If you're installing Crawl for multiple users, you *must* set this to a
-# valid path before building Crawl. This is not necessary if you are building
-# Crawl for a single user.
-
-# SAVEDIR := /usr/games/crawl/saves/
-# DATADIR := /usr/games/crawl/data/
-
-LEX := flex
-YACC := bison -y
-
-LUASRC := util/lua/src
-LUALIB = lua
-LUALIBA = l$(LUALIB).a
-
-SQLSRC := util/sqlite
-SQLLIB := sqlite3
-SQLLIBA := lib$(SQLLIB).a
-FSQLLIBA := $(SQLSRC)/$(SQLLIBA)
-
-# Note: link sqlite with the full path to the .a, so OSX uses the right one.
-LIBDBM := $(FSQLLIBA)
-EXTRA_INCLUDES += -I$(SQLSRC)
-EXTRA_DEPENDS += $(FSQLLIBA)
-
-RLTILES = rltiles
-
-EXTRA_INCLUDES += -I$(RLTILES)
-
-TILEDEFS = dngn main player gui unrand
-TILEDEFPRES = $(TILEDEFS:%=$(RLTILES)/tiledef-%)
-TILEDEFOBJS = $(TILEDEFPRES:%=%.o)
-TILEDEFSRCS = $(TILEDEFPRES:%=%.cc)
-TILEDEFHDRS = $(TILEDEFPRES:%=%.h)
-
-OBJECTS += $(TILEDEFOBJS)
-
-TILEFILES = \
- main.png \
- player.png \
- dngn.png \
- gui.png
-DESTTILEFILES = $(TILEFILES:%=dat/tiles/%)
-
-EXTRA_DEPENDS += $(DESTTILEFILES)
-
-LIB = -L$(LUASRC) -l$(LUALIB) $(LIBDBM) $(EXTRA_LIBS)
-
-INCLUDES := $(INCLUDES) -Iutil -I. -I$(LUASRC) $(EXTRA_INCLUDES) $(PNG_INCLUDE) $(FREETYPE_INCLUDE)
-
-CFWARN := -Wall -Wwrite-strings -Wshadow -pedantic -Wno-parentheses
-
-CFOTHERS := -fsigned-char -D$(OS_TYPE) $(EXTRA_FLAGS) -DCLUA_BINDINGS
-
-ifneq ($(HURRY),y)
-ifneq ($(DEBUG_CRAWL),y)
-CFWARN += -Wuninitialized
-CFOTHERS += -O2
-endif
-endif
-
-ifneq ($(strip $(SAVEDIR)),)
-CFOTHERS += '-DSAVE_DIR_PATH="$(strip $(SAVEDIR))"'
-endif
-
-ifneq ($(strip $(DATADIR)),)
-CFOTHERS += '-DDATA_DIR_PATH="$(strip $(DATADIR))"'
-endif
-
-CFLAGS := $(INCLUDES) $(CFWARN) $(CFOTHERS) $(SDL_CFLAGS)
-YCFLAGS := $(INCLUDES) $(CFOTHERS)
-
-UTIL = util/
-
-YTABC := levcomp.tab.c
-YTABH := levcomp.tab.h
-
-OBJECTS := $(UTIL)levcomp.tab.o $(UTIL)levcomp.lex.o $(OBJECTS)
-
-ifeq ($(strip $(LEX)),)
-DOYACC :=
-endif
-
-ifeq ($(strip $(YACC)),)
-DOYACC :=
-endif
-
-GAME_DEPENDS := $(LUASRC)$(LUALIBA) $(EXTRA_DEPENDS) $(OBJECTS)
-SRC_PKG_BASE := stone_soup
-SRC_VERSION := $(shell egrep 'VER_NUM *".*"' version.h | \
- egrep -o '[0-9]\.[0-9](\.[0-9])?')
-PKG_SRC_DIR := $(SRC_PKG_BASE)-$(SRC_VERSION)-src
-SRC_PKG_TAR := $(PKG_SRC_DIR).tbz2
-SRC_PKG_ZIP := $(PKG_SRC_DIR).zip
-
-PKG_TIDY_LIST := $(UTIL)*.o $(LEVCOMP) *.o \
- $(UTIL)*.tab.cc $(UTIL)*.tab.h $(UTIL)*.lex.cc *.ixx
-PKG_EXCLUDES := $(PWD)/misc/src-pkg-excludes.lst
-
-##########################################################################
-
-all: $(GAME)
-
-##########################################################################
-# Dependencies
-
-DEPENDENCY_MKF := makefile.dep
-
-depend: $(OBJECTS:.o=.cc)
- rm -f $(DEPENDENCY_MKF).tmp
- @for i in $^; do \
- echo "Updating dependencies for $$i"; \
- $(CXX) -MM $(CFLAGS) $$i >>$(DEPENDENCY_MKF).tmp 2>/dev/null; \
- done
- mv -f $(DEPENDENCY_MKF).tmp $(DEPENDENCY_MKF)
-
--include $(DEPENDENCY_MKF)
-
-##########################################################################
-# The level compiler
-#
-
-ifeq ($(DOYACC),y)
-
-prebuildyacc: $(UTIL)levcomp.tab.cc $(UTIL)levcomp.tab.h $(UTIL)levcomp.lex.cc
- $(COPY) $^ prebuilt/
-
-$(UTIL)levcomp.tab.cc: $(UTIL)levcomp.ypp
- cd $(UTIL) && $(YACC) -d -b levcomp levcomp.ypp \
- && mv $(YTABC) levcomp.tab.cc || false
-
-$(UTIL)levcomp.lex.cc: $(UTIL)levcomp.lpp
- cd $(UTIL) && $(LEX) -olevcomp.lex.cc levcomp.lpp
-
-else
-
-# Pull the level-compiler stuff up from prebuilt/
-
-$(UTIL)levcomp.tab.cc: prebuilt/levcomp.tab.cc
- $(COPY) prebuilt/*.h $(UTIL)
- $(COPY) $< $@
-
-
-$(UTIL)levcomp.lex.cc: prebuilt/levcomp.lex.cc
- $(COPY) $< $@
-
-endif
-
-##########################################################################
-# RLTiles
-#
-
-ORIGTILEFILES = $(TILEFILES:%=$(RLTILES)/%)
-
-makerltiles:
- +$(MAKE) -C rltiles -f makefile.unix all
-
-$(TILEDEFSRCS): makerltiles
-
-$(TILEDEFHDRS): makerltiles
-
-$(ORIGTILEFILES): makerltiles
-
-dat/tiles/%.png: $(RLTILES)/%.png
- $(COPY) $< $@
-
-clean-rltiles:
- +$(MAKE) -C $(RLTILES) -f makefile.unix distclean && cd ..
-
-##########################################################################
-
-
-##########################################################################
-# The actual build targets
-#
-
-install: $(GAME)
-ifeq ($(DATADIR),)
- $(error DATADIR not set! Set DATADIR and run make clean install again)
-endif
- [ -d $(INSTALLDIR) ] || mkdir -p $(INSTALLDIR)
- $(COPY) $(GAME) $(INSTALLDIR)
- chown $(INSTALL_UGRP) $(INSTALLDIR)/$(GAME)
- chmod ${MCHMOD} ${INSTALLDIR}/$(GAME)
- mkdir -p $(DATADIR)/dat
- mkdir -p $(DATADIR)/dat/lua
- mkdir -p $(DATADIR)/dat/clua
- mkdir -p $(DATADIR)/dat/descript
- mkdir -p $(DATADIR)/dat/database
- $(COPY) dat/*.des $(DATADIR)/dat
- $(COPY) dat/lua/*.lua $(DATADIR)/dat/lua
- $(COPY) dat/clua/*.lua $(DATADIR)/dat/clua
- $(COPY) dat/descript/*.txt $(DATADIR)/dat/descript
- $(COPY) dat/database/*.txt $(DATADIR)/dat/database
- mkdir -p $(DATADIR)/settings
- $(COPY) ../settings/* $(DATADIR)/settings/
- mkdir -p $(DATADIR)/docs
- $(COPY) ../docs/*.txt $(DATADIR)/docs
- mkdir -p $(DATADIR)/dat/tiles
- $(COPY) dat/tiles/* $(DATADIR)/dat/tiles
- chown -R $(INSTALL_UGRP) $(DATADIR)
-ifneq ($(SAVEDIR),)
- mkdir -p $(SAVEDIR)
- chown $(INSTALL_UGRP) $(SAVEDIR)
- chmod $(MCHMOD_SAVEDIR) $(SAVEDIR)
-endif
-
-clean:
- $(DELETE) *.o
- $(DELETE) $(UTIL)*.o
- $(DELETE) $(LEVCOMP)
- $(DELETE) $(UTIL)*.tab.cc $(UTIL)*.tab.c $(UTIL)*.tab.h $(UTIL)*.lex.cc
- $(DELETE) *.ixx
-
-clean-lua:
- +$(MAKE) -C $(LUASRC) clean
-
-clean-sql:
- +$(MAKE) -C $(SQLSRC) clean
-
-distclean: clean clean-lua clean-sql clean-rltiles
- $(DELETE) bones.*
- $(DELETE) morgue.txt
- $(DELETE) scores
- $(DELETE) $(GAME)
- $(DELETE) *.sav
- $(DELETE) core
- $(DELETE) *.0*
- $(DELETE) *.lab
- $(DELETE) $(DEPENDENCY_MKF)
-
-$(GAME): $(GAME_DEPENDS)
- ${CXX} ${LDFLAGS} $(CFLAGS) $(OBJECTS) -o $(GAME) $(LIB)
-
-.PHONY : debug
-
-debug: $(GAME)
-
-profile: $(GAME_DEPENDS)
- ${CXX} -g -p ${LDFLAGS} $(CFLAGS) $(OBJECTS) -o $(GAME) $(LIB)
-
-%.o: %.cc $(TILEDEFHDRS)
- ${CXX} ${CFLAGS} -c $< -o $@
-
-# STL is bad in debug. Always compile this file with optimizations.
-tilebuf.o: tilebuf.cc $(TILEDEFHDRS)
- ${CXX} ${CFLAGS} -O2 -c $< -o $@
-
-# [ds] Note we don't use the standard CFLAGS here; that's intentional, most
-# flex/bison combos I've tried don't produce code that passes the warnings
-# test.
-$(UTIL)%.o: $(UTIL)%.cc $(TILEDEFHDRS)
- $(CXX) $(YCFLAGS) -o $@ -c $<
-
-#############################################################################
-# Build Lua
-
-$(LUASRC)$(LUALIBA):
- echo Building Lua...
- +$(MAKE) -C $(LUASRC) crawl_unix
-
-#############################################################################
-# Build SQLite
-
-$(FSQLLIBA):
- echo Building SQLite
- +$(MAKE) -C $(SQLSRC)
-
-#############################################################################
-# Build unrandart data
-art-data.h: art-data.txt util/art-data.pl art-func.h
- util/art-data.pl
-
-#############################################################################
-# Packaging a source tarball for release
-#
-
-# To package, you *must* have lex and yacc to generate the intermediates.
-ifeq ($(DOYACC),y)
-package-source: distclean prebuildyacc pkgtidy depend removeold vlink \
- pkgtarbz2 pkgzip
-
-pkgtidy:
- $(DELETE) $(PKG_TIDY_LIST)
-
-removeold:
- if [ -f ../../$(SRC_PKG_TAR) ]; then $(DELETE) ../../$(SRC_PKG_TAR); fi
- if [ -f ../../$(SRC_PKG_ZIP) ]; then $(DELETE) ../../$(SRC_PKG_ZIP); fi
-
-# [ds] Existing directory names could produce a bad package!
-vlink:
- cd .. && WHERE=$$PWD && cd .. && \
- ( [ -e $(PKG_SRC_DIR) ] || ln -sf $$WHERE $(PKG_SRC_DIR) )
-
-pkgtarbz2:
- cd ../.. && tar -ch --bzip2 -f $(SRC_PKG_TAR) \
- -X $(PKG_EXCLUDES) $(PKG_SRC_DIR)
-
-pkgzip:
- cd ../.. && zip -rq $(SRC_PKG_ZIP) $(PKG_SRC_DIR) \
- -x@$(PKG_EXCLUDES)
-
-endif
diff --git a/crawl-ref/source/rltiles/makefile.unix b/crawl-ref/source/rltiles/makefile.unix
index 721c467410..715b06ed14 100644
--- a/crawl-ref/source/rltiles/makefile.unix
+++ b/crawl-ref/source/rltiles/makefile.unix
@@ -2,13 +2,8 @@
SDL_CFLAGS := $(shell sdl-config --cflags)
SDL_LDFLAGS := $(shell sdl-config --libs)
-ifeq ($(strip $(OSX)),y)
-PNG_INCLUDE := -I/sw/include
-PNG_LIB := -L/sw/lib
-else
-PNG_INCLUDE :=
-PNG_LIB :=
-endif
+PNG_INCLUDE := $(shell pkg-config libpng --cflags)
+PNG_LIB := $(shell pkg-config libpng --libs)
CFLAGS := $(SDL_CFLAGS) $(PNG_INCLUDE)
LDFLAGS := $(SDL_LDFLAGS) $(PNGLIB) -lSDL_image -lpng
@@ -25,21 +20,30 @@ HEADERS := $(INPUTS:%=tiledef-%.h)
SOURCE := $(INPUTS:%=tiledef-%.cc)
IMAGES := $(INPUTS:%=%.png)
+ifneq ($(findstring $(MAKEFLAGS),s),s)
+ifndef V
+ QUIET_CXX = @echo ' ' CXX $@;
+ QUIET_GEN = @echo ' ' GEN $*;
+ QUIET_LINK = @echo ' ' LINK $@;
+ export V
+endif
+endif
+
BASE_OBJECTS := tile_colour.o tile.o tile_page.o tile_list_processor.o main.o
OBJECTS := $(BASE_OBJECTS:%=$(TOOLDIR)/%)
all: $(TILEGEN) $(HEADERS) $(SOURCE) $(IMAGES)
tiledef-%.h tiledef-%.cc %.png: dc-%.txt $(TILEGEN)
- $(TILEGEN) $<
+ $(QUIET_GEN)$(TILEGEN) $<
clean:
$(DELETE) $(HEADERS) $(OBJECTS) $(TILEGEN) $(SOURCE) $(IMAGES)
distclean: clean
-.cc.o:
- ${CXX} ${CFLAGS} -c $< -o $@
+%.o: %.cc
+ $(QUIET_CXX)$(CXX) $(CFLAGS) -c $< -o $@
$(TILEGEN): $(OBJECTS)
- ${CXX} ${LDFLAGS} $(OBJECTS) -o $@
+ $(QUIET_LINK)$(CXX) $(LDFLAGS) $(OBJECTS) -o $@
diff --git a/crawl-ref/source/util/Makefile b/crawl-ref/source/util/Makefile
new file mode 100644
index 0000000000..2e61683b21
--- /dev/null
+++ b/crawl-ref/source/util/Makefile
@@ -0,0 +1,26 @@
+YACC := bison -y
+LEX := flex
+
+ifneq ($(findstring $(MAKEFLAGS),s),s)
+ifndef V
+ QUIET_YACC = @echo ' ' YACC $@;
+ QUIET_LEX = @echo ' ' LEX $@;
+ export V
+endif
+endif
+
+all: levcomp.tab.cc levcomp.lex.cc
+
+clean:
+ rm -f levcomp.tab.cc levcomp.tab.h
+ rm -f levcomp.lex.cc
+ rm -f *.o
+
+%.tab.cc: %.tab.c
+ @mv $< $@
+
+%.lex.cc: %.lpp
+ $(QUIET_LEX)$(LEX) -o$@ $<
+
+%.tab.c: %.ypp
+ $(QUIET_YACC)$(YACC) -d -b $* $<
diff --git a/crawl-ref/source/util/lua/src/Makefile b/crawl-ref/source/util/lua/src/Makefile
index d5f5222207..d6cd279837 100644
--- a/crawl-ref/source/util/lua/src/Makefile
+++ b/crawl-ref/source/util/lua/src/Makefile
@@ -9,6 +9,15 @@
# Your platform. See PLATS for possible values.
PLAT= none
+ifneq ($(findstring $(MAKEFLAGS),s),s)
+ifndef V
+ QUIET_CC = @echo ' ' CC $@;
+ QUIET_AR = @echo ' ' AR $@;
+ QUIET_LINK = @echo ' ' LINK $@;
+ export V
+endif
+endif
+
CC= gcc
CFLAGS= -O2 -Wall $(MYCFLAGS)
AR= ar rcu
@@ -46,19 +55,22 @@ default: $(PLAT)
all: $(ALL_T)
+%.o: %.c
+ $(QUIET_CC)$(CC) -c $(CFLAGS) -o $@ $<
+
o: $(ALL_O)
a: $(ALL_A)
$(LUA_A): $(CORE_O) $(LIB_O)
- $(AR) $@ $?
- $(RANLIB) $@
+ $(QUIET_AR)$(AR) $@ $?
+ @$(RANLIB) $@
$(LUA_T): $(LUA_O) $(LUA_A)
- $(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
+ $(QUIET_LINK)$(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
$(LUAC_T): $(LUAC_O) $(LUA_A)
- $(CC) -o $@ $(MYLDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
+ $(QUIET_LINK)$(CC) -o $@ $(MYLDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
clean:
$(RM) $(ALL_T) $(ALL_O)
@@ -116,7 +128,7 @@ mingw:
$(MAKE) "LUAC_T=luac.exe" luac.exe
crawl_unix:
- $(MAKE) "LUA_A=liblua.a" \
+ @$(MAKE) "LUA_A=liblua.a" \
"MYCFLAGS=" "MYLIBS=" "MYLDFLAGS=" liblua.a
crawl_mingw: crawl_unix
diff --git a/crawl-ref/source/util/sqlite/Makefile b/crawl-ref/source/util/sqlite/Makefile
index 01a73c4392..6f9686fbd8 100644
--- a/crawl-ref/source/util/sqlite/Makefile
+++ b/crawl-ref/source/util/sqlite/Makefile
@@ -1,5 +1,13 @@
# -*- Makefile -*- for stripped down SQLite 3 static lib.
+ifneq ($(findstring $(MAKEFLAGS),s),s)
+ifndef V
+ QUIET_CC = @echo ' ' CC $@;
+ QUIET_AR = @echo ' ' AR $@;
+ export V
+endif
+endif
+
LIBSQL = libsqlite3.a
AR = ar rcu
CC = gcc
@@ -22,7 +30,8 @@ CFLAGS = -DSQLITE_OMIT_AUTHORIZATION \
-DSQLITE_OMIT_SCHEMA_VERSION_PRAGMAS \
-DSQLITE_OMIT_TCL_VARIABLE \
-DSQLITE_OMIT_LOAD_EXTENSION \
- -DTHREADSAFE=0
+ -DTHREADSAFE=0 \
+ -w
all: $(LIBSQL)
@@ -31,8 +40,8 @@ clean:
$(RM_F) *.a
$(LIBSQL): sqlite3.o
- $(AR) $@ $^
- $(RANLIB) $@
+ $(QUIET_AR)$(AR) $@ $^
+ @$(RANLIB) $@
%.o: %.c
- $(CC) $(CFLAGS) -o $@ -c $<
+ $(QUIET_CC)$(CC) $(CFLAGS) -o $@ -c $<