truelight@0: CFILES = ai.c aircraft_cmd.c aircraft_gui.c airport_gui.c truelight@0: bridge_gui.c clear_cmd.c command.c disaster_cmd.c truelight@0: dock_gui.c dummy_land.c economy.c engine.c engine_gui.c truelight@0: fileio.c gfx.c graph_gui.c industry_cmd.c industry_gui.c truelight@0: intro_gui.c landscape.c main_gui.c minilzo.c misc.c truelight@0: misc_cmd.c misc_gui.c music_gui.c namegen.c network.c truelight@0: news_gui.c oldloader.c order_cmd.c order_gui.c pathfind.c truelight@0: player_gui.c players.c rail_cmd.c rail_gui.c road_cmd.c truelight@0: road_gui.c roadveh_cmd.c roadveh_gui.c saveload.c sdl.c truelight@0: settings.c settings_gui.c ship_cmd.c ship_gui.c smallmap_gui.c truelight@0: sound.c spritecache.c station_cmd.c station_gui.c truelight@0: strings.c subsidy_gui.c texteff.c town_cmd.c town_gui.c truelight@0: train_cmd.c train_gui.c tree_cmd.c ttd.c truelight@0: tunnelbridge_cmd.c unmovable_cmd.c vehicle.c darkvater@222: viewport.c water_cmd.c widget.c window.c screenshot.c dominik@452: airport.c newgrf.c terraform_gui.c sprite.c ; truelight@0: truelight@0: darkvater@233: LANGFILES = english.txt swedish.txt french.txt german.txt italian.txt slovak.txt hungarian.txt norwegian.txt danish.txt czech.txt galician.txt polish.txt romanian.txt; truelight@0: truelight@0: #################### truelight@0: # On UNIX we use gcc truelight@0: #################### truelight@0: if $(UNIX) { truelight@0: SDL_CONFIG_CFLAGS = `XX_SDL_CONFIG_PLACEHOLDER_XX --cflags` ; truelight@0: SDL_CONFIG_LIBS = `XX_SDL_CONFIG_PLACEHOLDER_XX --libs` ; truelight@0: truelight@0: LINKFLAGS += $(SDL_CONFIG_LIBS) ; truelight@0: CC = gcc ; truelight@0: CCFLAGS += -Wall -Wno-multichar -DUNIX -DWITH_SDL ; darkvater@222: truelight@0: OPTIMFLAGS = -O2 -fomit-frame-pointer ; truelight@0: DEBUGFLAGS = -g ; darkvater@222: truelight@0: # also include extmidi truelight@0: CFILES += extmidi.c unix.c ; truelight@0: truelight@0: # compile in PNG support? truelight@0: if $(WITH_PNG) { truelight@0: CCFLAGS += -DWITH_PNG -I$(WITH_PNG) ; truelight@0: LINKFLAGS += -lpng ; truelight@0: } truelight@0: truelight@0: # compile in zlib support? truelight@0: if $(WITH_ZLIB) { truelight@0: CCFLAGS += -DWITH_ZLIB ; truelight@0: LINKFLAGS += -lz ; truelight@0: } truelight@0: # compile for BeOS 5.1 and higher truelight@0: if $(WITH_BONE_NETWORKING) { truelight@0: CCFLAGS += -DENABLE_NETWORK ; truelight@0: LINKFLAGS += -lsocket -lbind ; truelight@0: } truelight@0: # link in BeOS MIDI and Be API libraries truelight@0: if $(BEOS_MIDI) { truelight@0: CCFLAGS += -DBEOS_MIDI ; truelight@0: LINKFLAGS += -lbe -lmidi ; truelight@0: CFILES += bemidi.cpp ; truelight@0: } truelight@0: } truelight@0: truelight@0: #################### truelight@0: # MSVC on Win32 truelight@0: #################### truelight@0: truelight@0: actions ActWin32Res { darkvater@222: $(VISUALC)\\..\\common\\msdev98\\bin\\rc /r /i $(STDHDRS) /fo $(<) $(>) truelight@0: } truelight@0: truelight@0: rule Win32Res { ActWin32Res $(<) : $(>) ; DEPENDS $(<) : $(>) ; } truelight@0: truelight@0: if $(TOOLSET) = VISUALC { truelight@0: OPTIMFLAGS = /Oa /Os /Ow /Oy /Oi /Og /Ox /Gr /Gf /Gy /Zp4 /J /WX /W3 -DNDEBUG ; truelight@0: truelight@0: CCFLAGS += -DWIN32 -DWIN32_EXCEPTION_TRACKER ; darkvater@222: CFILES += win32.c ; truelight@0: LINKFLAGS += /opt:nowin98 /LIBPATH:$(VISUALC)\\lib ; darkvater@222: truelight@0: LINKLIBS = ws2_32.lib winmm.lib user32.lib gdi32.lib ; darkvater@222: truelight@0: # compile resources too truelight@0: EOBJ = ttd.res ; truelight@0: Win32Res ttd.res : ttd.rc ; truelight@0: truelight@0: # png screenshots? truelight@0: if $(WITH_PNG) { truelight@0: CCFLAGS += -DWITH_PNG -I$(WITH_PNG) ; truelight@0: LINKLIBS += libpng.lib ; truelight@0: } truelight@0: truelight@0: # zlib savegames? truelight@0: if $(WITH_ZLIB) { truelight@0: CCFLAGS += -DWITH_ZLIB ; truelight@0: LINKLIBS += zlibstat.lib ; truelight@0: } darkvater@222: truelight@0: # build release by default truelight@0: RELEASE = 1 ; truelight@0: } truelight@0: truelight@0: truelight@0: #################### truelight@0: # Common truelight@0: #################### truelight@0: rule MyObjects { truelight@0: local _i _t _s ; truelight@0: truelight@0: _t = $(OUTDIR)/$(>:S=$(SUFOBJ)) ; truelight@0: OPTIM on $(_t) = $(3) ; darkvater@222: truelight@0: MkDir $(OUTDIR) ; truelight@0: Depends $(_t) : $(OUTDIR) ; truelight@0: truelight@0: for _i in $(>) { truelight@0: _s = $(OUTDIR)/$(_i:S=$(SUFOBJ)) ; truelight@0: Object $(_s) : $(_i) ; truelight@0: truelight@0: # special handling for sdl.c and unix.c truelight@0: if $(_i) = sdl.c || $(_i) = unix.c { CCFLAGS on $(_s) += $(SDL_CONFIG_CFLAGS) ; } truelight@0: } truelight@0: MainFromObjects $(OUTDIR)/$(<) : $(_t) $(EOBJ) ; truelight@0: } truelight@0: truelight@0: rule MyMain { truelight@0: if $(RELEASE) { truelight@0: OUTDIR = release ; truelight@0: MyObjects ttd : $(>) : $(OPTIMFLAGS) ; truelight@0: } else { truelight@0: OUTDIR = debug ; truelight@0: MyObjects ttd : $(>) : -D_DEBUG $(DEBUGFLAGS) ; truelight@0: } truelight@0: } truelight@0: truelight@0: actions CompileLang { truelight@0: strgen$(SLASH)strgen $(>) truelight@0: } truelight@0: truelight@0: rule LangFile { truelight@0: if $(>) = lang/english.txt { truelight@0: CompileLang $(<) table/strings.h : ; truelight@0: DEPENDS table/string.h : $(>) ; truelight@0: } else { truelight@0: CompileLang $(<) : $(>) ; truelight@0: } darkvater@222: truelight@0: Clean clean : $(<) ; truelight@0: DEPENDS $(<) : $(>) ; truelight@0: DEPENDS all : $(<) ; truelight@0: DEPENDS $(<) : strgen/strgen ; truelight@0: } truelight@0: truelight@0: rule LangFiles { truelight@0: local _i ; truelight@0: for _i in $(<) { LangFile $(_i:S=.lng) : $(_i) ; } truelight@0: Clean clean : table/strings.h ; truelight@0: } truelight@0: truelight@0: LangFiles lang/$(LANGFILES) ; truelight@0: truelight@0: Main strgen/strgen : strgen/strgen.c ; truelight@0: truelight@0: MyMain ttd : $(CFILES) ; truelight@0: