diff options
-rw-r--r-- | crawl-ref/source/makefile | 615 | ||||
-rw-r--r-- | crawl-ref/source/makefile.mgw | 236 | ||||
-rw-r--r-- | crawl-ref/source/makefile.mgw_unix | 238 | ||||
-rw-r--r-- | crawl-ref/source/makefile.osx | 40 | ||||
-rw-r--r-- | crawl-ref/source/makefile.unix | 325 | ||||
-rw-r--r-- | crawl-ref/source/makefile_tiles.mgw | 292 | ||||
-rw-r--r-- | crawl-ref/source/makefile_tiles.mgw_unix | 274 | ||||
-rw-r--r-- | crawl-ref/source/makefile_tiles.unix | 371 | ||||
-rw-r--r-- | crawl-ref/source/rltiles/makefile.unix | 26 | ||||
-rw-r--r-- | crawl-ref/source/util/Makefile | 26 | ||||
-rw-r--r-- | crawl-ref/source/util/lua/src/Makefile | 22 | ||||
-rw-r--r-- | crawl-ref/source/util/sqlite/Makefile | 17 |
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 $< |