git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10322 c06c8d41-db1a-0410-9941-cceddc491573
MTVWMQ5HV5LGDRU53GJV45GTANABRJLNIECWT7ZH2MCLO53XLFXAC Q3B3UVMYEVC4YJUPYVSNTR4DJH4E6J4JJDHZNT5LNOCHCPPMEMXAC 3ZCY3IWI4OTBYHIDWQZYASVTCI2XNLVFJRCEXLAA7RPD7XMHFPQAC UL7XFKMUX3WIU4O2LZANK4ECJ654UZPDBFGNXUEYZYOLKBYBCG6AC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC MOT3YZFRY3JG2MH3GN2VD6IY3IJSAXJUXMXS222TXWKRFCENOCDQC 23GPKC7HCKVIPRMF4HPUROSVFVL4NQMRQQD5FUAFRLNZPYLZ4EEAC # -*- 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.objOPATH := build# need .exe so make will find the right fileAPPNAME = $(OPATH)/crawl.exeCXX = i586-mingw32msvc-g++DELETE = rm -fCOPY = cpOS_TYPE = WIN32TILESEXTRA_DEFINES = -DUSE_TILE -DCLUA_BINDINGS -DWIZARDSDL_PREFIX ?= $(HOME)/source/mingw32SDL_CFLAGS := -D_GNU_SOURCE=1 -Dmain=SDL_main -I$(SDL_PREFIX)/include/SDLSDL_LDFLAGS := -lmingw32 -lSDLmain -lSDL.dll -lSDL_image -lopengl32 -lglu32ifeq ($(INSTALLDIR),)INSTALLDIR := crawl-mingw32endif# If you don't have flex or bison, set DOYACC to N or empty.DOYACC := nLEX := flexYACC := bison -yifeq ($(LUASRC),)LUASRC := util/lua/srcendifLUALIB = luaLUALIBA = lib$(LUALIB).aSQLSRC := util/sqliteSQLLIB := sqlite3SQLIBA := lib$(SQLLIB).aFSQLLIBA := $(SQLLIB)/$(SQLIBA)PCRESRC := util/pcrePCRELIB := pcrePCRELIBA := lib$(PCRELIB).aRLTILES = rltilesEXTRA_INCLUDES += -I$(RLTILES)TILEDEFS = dngn main player unrandTILEDEFPRES = $(TILEDEFS:%=$(RLTILES)/tiledef-%)TILEDEFOBJS = $(TILEDEFPRES:%=%.o)TILEDEFSRCS = $(TILEDEFPRES:%=%.cc)TILEDEFHDRS = $(TILEDEFPRES:%=%.h)OBJECTS += $(TILEDEFOBJS)TILEFILES = \main.png \player.png \dngn.pngDESTTILEFILES = $(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) -lfreetypeINCLUDES := -Iutil -I. -I$(HOME)/source/mingw32/include -I$(LUASRC) -I$(SQLSRC) -I$(PCRESRC) $(EXTRA_INCLUDES)CFWARN := -Wwrite-stringsCFOTHERS := -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.oLDFLAGS =UTIL = util/YTABC := levcomp.tab.cYTABH := levcomp.tab.hifeq ($(LEX),)DOYACC :=endififeq ($(YACC),)DOYACC :=endifRESOURCE := $(UTIL)crawl.rcRESOURCEOBJ := crawlres.oWINDRES := 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.yppcd $(UTIL) && $(YACC) -d -b levcomp levcomp.ypp \&& mv $(YTABC) levcomp.tab.cc || false$(UTIL)levcomp.lex.cc: $(UTIL)levcomp.lppcd $(UTIL) && $(LEX) -olevcomp.lex.cc levcomp.lppelse$(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 allmkdir -p $(OPATH)/rltiles$(TILEDEFSRCS): makerltiles$(TILEDEFHDRS): makerltiles$(ORIGTILEFILES): makerltilesdat/tiles/%.png: rltiles/%.pngmkdir -p dat/tiles$(COPY) $< $@clean-rltiles:pushd $(RLTILES) && $(MAKE) -f makefile.unix distclean####################################################################################################################################################install: $(APPNAME)ifneq ($(OPATH),$(INSTALLDIR))mkdir -p $(INSTALLDIR)$(COPY) $(APPNAME) ${INSTALLDIR}endifmkdir -p $(INSTALLDIR)/datmkdir -p $(INSTALLDIR)/dat/cluamkdir -p $(INSTALLDIR)/dat/databasemkdir -p $(INSTALLDIR)/dat/descriptmkdir -p $(INSTALLDIR)/dat/luamkdir -p $(INSTALLDIR)/dat/tilesmkdir -p $(INSTALLDIR)/docsmkdir -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) *.ixxclean-lua:cd $(LUASRC) && $(MAKE) clean_winclean-sql:cd $(SQLSRC) && $(MAKE) cleanclean-pcre:cd $(PCRESRC) && $(MAKE) cleandistclean: 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 SQLitecd $(SQLSRC) && $(MAKE)############################################################################## Build unrandart dataart-data.h: art-data.txt util/art-data.pl art-func.hutil/art-data.pl############################################################################## Build PCRE$(PCRESRC)/$(PCRELIBA):@echo Building PCRE...@cd $(PCRESRC) && $(MAKE)########################################################################### Resources#$(OPATH)/$(RESOURCEOBJ): $(RESOURCE)$(WINDRES) $< $@
# -*- 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.objOPATH := build# need .exe so make will find the right fileAPPNAME = $(OPATH)/crawl.exeCXX = i586-mingw32msvc-g++DELETE = rm -fCOPY = cpOS_TYPE = WIN32CONSOLEifeq ($(INSTALLDIR),)INSTALLDIR := crawl-mingw32endif# If you don't have flex or bison, set DOYACC to N or empty.DOYACC := nLEX := flexYACC := bison -yifeq ($(LUASRC),)LUASRC := util/lua/srcendifLUALIB = luaLUALIBA = lib$(LUALIB).aSQLSRC := util/sqliteSQLLIB := sqlite3SQLIBA := lib$(SQLLIB).aFSQLLIBA := $(SQLLIB)/$(SQLIBA)PCRESRC := util/pcrePCRELIB := pcrePCRELIBA := lib$(PCRELIB).aLIB = -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-stringsCFOTHERS := -fsigned-char \-fstrict-aliasing \-pedantic \-O2 \-D$(OS_TYPE) $(EXTRA_FLAGS) \-DWINMM_PLAY_SOUNDS -DCLUA_BINDINGS -DWIZARDCFLAGS := $(INCLUDES) $(CFWARN) $(CFOTHERS)YCFLAGS := $(INCLUDES) $(CFOTHERS)OBJECTS := $(OBJECTS) libw32c.o crash-w.oLDFLAGS =#LIB = -lcurso -lpanoUTIL = util/YTABC := levcomp.tab.cYTABH := levcomp.tab.hifeq ($(LEX),)DOYACC :=endififeq ($(YACC),)DOYACC :=endifRESOURCE := $(UTIL)crawl.rcRESOURCEOBJ := crawlres.oWINDRES := 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.yppcd $(UTIL) && $(YACC) -d -b levcomp levcomp.ypp \&& mv $(YTABC) levcomp.tab.cc || false$(UTIL)levcomp.lex.cc: $(UTIL)levcomp.lppcd $(UTIL) && $(LEX) -olevcomp.lex.cc levcomp.lppelse$(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}endifmkdir -p $(INSTALLDIR)/datmkdir -p $(INSTALLDIR)/dat/cluamkdir -p $(INSTALLDIR)/dat/databasemkdir -p $(INSTALLDIR)/dat/descriptmkdir -p $(INSTALLDIR)/dat/luamkdir -p $(INSTALLDIR)/docsmkdir -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) *.ixxclean-lua:cd $(LUASRC) && $(MAKE) clean_winclean-sql:cd $(SQLSRC) && $(MAKE) cleanclean-pcre:cd $(PCRESRC) && $(MAKE) cleandistclean: 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 SQLitecd $(SQLSRC) && $(MAKE)############################################################################## Build unrandart dataart-data.h: art-data.txt util/art-data.pl art-func.hutil/art-data.pl############################################################################## Build PCRE$(PCRESRC)/$(PCRELIBA):@echo Building PCRE...@cd $(PCRESRC) && $(MAKE)########################################################################### Resources#$(OPATH)/$(RESOURCEOBJ): $(RESOURCE)$(WINDRES) $< $@