Jamfile.next
author darkvater
Sat, 18 Sep 2004 16:31:31 +0000
changeset 286 03a46430df87
parent 233 dd177a8c9f19
child 413 36afcda97345
permissions -rw-r--r--
(svn r292) -Fix: [1030275] 'Service at' orders ignored after 2090. After 2090 year is reset to 1. Jan 2090, so most of the time, last service was in the future and no service ensured.
CFILES = 	ai.c aircraft_cmd.c aircraft_gui.c airport_gui.c
	bridge_gui.c clear_cmd.c command.c disaster_cmd.c
	dock_gui.c dummy_land.c economy.c engine.c engine_gui.c
	fileio.c gfx.c graph_gui.c industry_cmd.c industry_gui.c
	intro_gui.c landscape.c main_gui.c minilzo.c misc.c
	misc_cmd.c misc_gui.c music_gui.c namegen.c network.c
	news_gui.c oldloader.c order_cmd.c order_gui.c pathfind.c
	player_gui.c players.c rail_cmd.c rail_gui.c road_cmd.c
	road_gui.c roadveh_cmd.c roadveh_gui.c saveload.c sdl.c
	settings.c settings_gui.c ship_cmd.c ship_gui.c smallmap_gui.c
	sound.c spritecache.c station_cmd.c station_gui.c
	strings.c subsidy_gui.c texteff.c town_cmd.c town_gui.c
	train_cmd.c train_gui.c tree_cmd.c ttd.c
	tunnelbridge_cmd.c unmovable_cmd.c vehicle.c
	viewport.c water_cmd.c widget.c window.c screenshot.c
	airport.c grfspecial.c terraform_gui.c ;


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;

####################
# On UNIX we use gcc
####################
if $(UNIX) {
	SDL_CONFIG_CFLAGS = `XX_SDL_CONFIG_PLACEHOLDER_XX --cflags` ;
	SDL_CONFIG_LIBS = `XX_SDL_CONFIG_PLACEHOLDER_XX --libs` ;

	LINKFLAGS += $(SDL_CONFIG_LIBS) ;
	CC = gcc ;
	CCFLAGS += -Wall -Wno-multichar -DUNIX -DWITH_SDL ;

	OPTIMFLAGS = -O2 -fomit-frame-pointer ;
	DEBUGFLAGS = -g ;

# also include extmidi
	CFILES += extmidi.c unix.c ;

# compile in PNG support?
	if $(WITH_PNG) {
		CCFLAGS += -DWITH_PNG -I$(WITH_PNG) ;
		LINKFLAGS += -lpng ;
	}

# compile in zlib support?
	if $(WITH_ZLIB) {
		CCFLAGS += -DWITH_ZLIB ;
		LINKFLAGS += -lz ;
	}
# compile for BeOS 5.1 and higher
	if $(WITH_BONE_NETWORKING) {
		CCFLAGS += -DENABLE_NETWORK ;
		LINKFLAGS += -lsocket -lbind ;
	}
# link in BeOS MIDI and Be API libraries
	if $(BEOS_MIDI) {
		CCFLAGS += -DBEOS_MIDI ;
		LINKFLAGS += -lbe -lmidi ;
		CFILES += bemidi.cpp ;
	}
}

####################
# MSVC on Win32
####################

actions ActWin32Res {
	$(VISUALC)\\..\\common\\msdev98\\bin\\rc /r /i $(STDHDRS) /fo $(<) $(>)
}

rule Win32Res { ActWin32Res $(<) : $(>) ; DEPENDS $(<) : $(>) ; }

if $(TOOLSET) = VISUALC {
	OPTIMFLAGS = /Oa /Os /Ow /Oy /Oi /Og /Ox /Gr /Gf /Gy /Zp4 /J	/WX /W3 -DNDEBUG ;

	CCFLAGS += -DWIN32 -DWIN32_EXCEPTION_TRACKER ;
	CFILES += win32.c ;
	LINKFLAGS += /opt:nowin98 /LIBPATH:$(VISUALC)\\lib ;

	LINKLIBS = ws2_32.lib winmm.lib user32.lib gdi32.lib ;

# compile resources too
	EOBJ = ttd.res ;
	Win32Res ttd.res : ttd.rc ;

# png screenshots?
	if $(WITH_PNG) {
		CCFLAGS += -DWITH_PNG -I$(WITH_PNG) ;
		LINKLIBS += libpng.lib ;
	}

# zlib savegames?
	if $(WITH_ZLIB) {
		CCFLAGS += -DWITH_ZLIB ;
		LINKLIBS += zlibstat.lib ;
	}

# build release by default
	RELEASE = 1 ;
}


####################
# Common
####################
rule MyObjects {
	local _i _t _s ;

	_t = $(OUTDIR)/$(>:S=$(SUFOBJ)) ;
	OPTIM on $(_t) = $(3) ;

	MkDir $(OUTDIR) ;
	Depends $(_t) : $(OUTDIR) ;

	for _i in $(>) {
		_s = $(OUTDIR)/$(_i:S=$(SUFOBJ)) ;
		Object $(_s) : $(_i) ;

# special handling for sdl.c and unix.c
		if $(_i) = sdl.c || $(_i) = unix.c { CCFLAGS on $(_s) += $(SDL_CONFIG_CFLAGS) ; }
	}
	MainFromObjects $(OUTDIR)/$(<) : $(_t) $(EOBJ) ;
}

rule MyMain {
	if $(RELEASE) {
		OUTDIR = release ;
		MyObjects ttd : $(>) : $(OPTIMFLAGS) ;
	} else {
		OUTDIR = debug ;
		MyObjects ttd : $(>) : -D_DEBUG $(DEBUGFLAGS) ;
	}
}

actions CompileLang {
	strgen$(SLASH)strgen $(>)
}

rule LangFile {
	if $(>) = lang/english.txt {
		CompileLang $(<) table/strings.h : ;
		DEPENDS table/string.h : $(>) ;
	} else {
		CompileLang $(<) : $(>) ;
	}

	Clean clean : $(<) ;
	DEPENDS $(<) : $(>) ;
	DEPENDS all : $(<) ;
	DEPENDS $(<) : strgen/strgen ;
}

rule LangFiles {
	local _i ;
	for _i in $(<) { LangFile $(_i:S=.lng) : $(_i) ; }
	Clean clean : table/strings.h ;
}

LangFiles lang/$(LANGFILES) ;

Main strgen/strgen : strgen/strgen.c ;

MyMain ttd : $(CFILES) ;