summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/makefile_tiles.unix
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/makefile_tiles.unix')
-rw-r--r--crawl-ref/source/makefile_tiles.unix373
1 files changed, 373 insertions, 0 deletions
diff --git a/crawl-ref/source/makefile_tiles.unix b/crawl-ref/source/makefile_tiles.unix
new file mode 100644
index 0000000000..f4d1c9ed0c
--- /dev/null
+++ b/crawl-ref/source/makefile_tiles.unix
@@ -0,0 +1,373 @@
+# -*- Makefile -*- for Dungeon Crawl (unix)
+
+#
+# Modified for Crawl Reference by $Author: dshaligram $ on $Date: 2007-06-24T16:27:58.475101Z $
+#
+
+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
+
+SDL_CFLAGS := $(shell sdl-config --cflags)
+SDL_LDFLAGS := $(shell sdl-config --libs) -lSDLmain
+
+CXX = g++
+DELETE = rm -f
+COPY = cp
+OS_TYPE = UNIX
+EXTRA_INCLUDES = -DUSE_TILE -DCLUA_BINDINGS
+
+# Change this to y if you want to use Unicode glyphs in the map, and you have
+# libncursesw available.
+UNICODE_GLYPHS = n
+
+ifeq ($(strip $(OSX)),y)
+PNG_INCLUDE := -I/sw/include
+PNG_LIB := -L/sw/lib
+FREETYPE_INCLUDE := -I/sw/include/freetype2
+
+# 10.5 Fink bug
+FINK_OPENGL_WORKAROUND := -Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
+
+SDL_LDFLAGS += -framework Cocoa -L/usr/X11/lib $(FINK_OPENGL_WORKAROUND)
+
+EXTRA_INCLUDES += -I/sw/include
+else
+PNG_INCLUDE :=
+PNG_LIB :=
+FREETYPE_INCLUDE := -I/usr/include/freetype2
+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
+
+DBH_FILE := /usr/include/db.h
+NDBM_FILE := /usr/include/ndbm.h
+
+HAVE_DBH := $(shell [ -f $(DBH_FILE) ] && echo y)
+HAVE_NDBM := $(shell [ -f $(NDBM_FILE) -a "`uname`" = "Darwin" ] && echo y)
+
+ifeq ($(strip $(HAVE_DBH)),y)
+ifneq ($(shell grep dbm_open $(DBH_FILE)),)
+SELDBM := -DDB_DBH
+LIBDBM := -ldb
+endif
+endif
+
+ifeq ($(strip $(HAVE_NDBM)),y)
+SELDBM ?= -DDB_NDBM
+ifeq ($(SELDBM),-DDB_NDBM)
+LIBDBM := -ldbm
+endif
+endif
+
+SQLSRC := util/sqlite
+SQLLIB := sqlite3
+SQLLIBA := lib$(SQLLIB).a
+FSQLLIBA := $(SQLSRC)/$(SQLLIBA)
+
+ifeq ($(strip $(LIBDBM)),)
+LIBDBM := -L$(SQLSRC) -lsqlite3
+EXTRA_INCLUDES += -I$(SQLSRC)
+EXTRA_DEPENDS += $(FSQLLIBA)
+endif
+
+LIB = -L$(LUASRC) -l$(LUALIB) $(LIBDBM) -lpng $(SDL_LDFLAGS) -lGL -lGLU -lSDL_image -lfreetype
+
+INCLUDES := $(INCLUDES) -Iutil -I. -I$(LUASRC) $(EXTRA_INCLUDES) $(PNG_INCLUDE) $(FREETYPE_INCLUDE)
+
+CFWARN := -Wall -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
+
+CFOTHERS += $(SELDBM)
+
+CFLAGS := $(INCLUDES) $(CFWARN) $(CFOTHERS) $(SDL_CFLAGS)
+YCFLAGS := $(INCLUDES) $(CFOTHERS)
+
+UTIL = util/
+
+YTABC := levcomp.tab.c
+YTABH := levcomp.tab.h
+
+RLTILES = rltiles/
+
+TILEHEADERS = \
+tiledef.h \
+tiledef-p.h \
+tilep-cmt.h \
+tiledef-dngn.h \
+tilecount-dngn.h
+
+TILEFILES = \
+ tile.png \
+ player.png \
+ title.png \
+ dngn.png
+DESTTILEFILES = $(TILEFILES:%=dat/tiles/%)
+
+EXTRA_DEPENDS += $(TILEHEADERS) $(DESTTILEFILES)
+
+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)
+ @for i in $^; do \
+ echo "Updating dependencies for $$i"; \
+ $(CXX) -MM $(CFLAGS) $$i >>$(DEPENDENCY_MKF) 2>/dev/null; \
+ done
+
+-include $(DEPENDENCY_MKF)
+
+##########################################################################
+# The level compiler
+#
+
+ifeq ($(DOYACC),y)
+
+prebuildyacc: $(UTIL)levcomp.tab.cc $(UTIL)levcomp.tab.h $(UTIL)levcomp.lex.cc
+ cp $^ 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
+ cp prebuilt/*.h $(UTIL)
+ cp $< $@
+
+
+$(UTIL)levcomp.lex.cc: prebuilt/levcomp.lex.cc
+ cp $< $@
+
+endif
+
+##########################################################################
+# RLTiles
+#
+
+ORIGTILEHEADERS = $(TILEHEADERS:%=$(RLTILES)%)
+ORIGTILEFILES = $(TILEFILES:%=$(RLTILES)%)
+
+$(ORIGTILEHEADERS): makerltiles
+
+makerltiles:
+ cd $(RLTILES) && make -f makefile.unix all CFLAGS="$(PNG_INCLUDE)" LDFLAGS="$(PNG_LIB)" && cd ..
+
+$(TILEHEADERS): $(ORIGTILEHEADERS)
+ cp $(RLTILES)$@ .
+
+$(ORIGTILEFILES): makerltiles
+
+dat/tiles/%.png: rltiles/%.png
+ mkdir -p dat/tiles
+ $(COPY) $< $@
+
+clean-rltiles:
+ cd $(RLTILES) && make -f makefile.unix distclean && cd ..
+ $(DELETE) $(TILEHEADERS)
+
+##########################################################################
+
+
+##########################################################################
+# 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
+ cp dat/*.des $(DATADIR)/dat
+ cp dat/lua/*.lua $(DATADIR)/dat/lua
+ cp dat/clua/*.lua $(DATADIR)/dat/clua
+ cp dat/descript/*.txt $(DATADIR)/dat/descript
+ cp dat/database/*.txt $(DATADIR)/dat/database
+ mkdir -p $(DATADIR)/settings
+ cp ../settings/* $(DATADIR)/settings/
+ mkdir -p $(DATADIR)/docs
+ cp ../docs/*.txt $(DATADIR)/docs
+ mkdir -p $(DATADIR)/dat/tiles
+ cp dat/tiles/*.png $(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:
+ cd $(LUASRC) && $(MAKE) clean
+
+clean-sql:
+ cd $(SQLSRC) && $(MAKE) 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)
+
+debug: $(GAME_DEPENDS)
+ ${CXX} ${LDFLAGS} $(CFLAGS) $(OBJECTS) -o $(GAME) $(LIB)
+
+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...
+ cd $(LUASRC) && $(MAKE) crawl_unix
+
+#############################################################################
+# Build SQLite
+
+$(FSQLLIBA):
+ echo Building SQLite
+ cd $(SQLSRC) && $(MAKE)
+
+#############################################################################
+# 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