Jamfile.next
changeset 0 29654efe3188
child 222 b88456001397
equal deleted inserted replaced
-1:000000000000 0:29654efe3188
       
     1 CFILES = 	ai.c aircraft_cmd.c aircraft_gui.c airport_gui.c
       
     2 	bridge_gui.c clear_cmd.c command.c disaster_cmd.c
       
     3 	dock_gui.c dummy_land.c economy.c engine.c engine_gui.c
       
     4 	fileio.c gfx.c graph_gui.c industry_cmd.c industry_gui.c
       
     5 	intro_gui.c landscape.c main_gui.c minilzo.c misc.c
       
     6 	misc_cmd.c misc_gui.c music_gui.c namegen.c network.c
       
     7 	news_gui.c oldloader.c order_cmd.c order_gui.c pathfind.c
       
     8 	player_gui.c players.c rail_cmd.c rail_gui.c road_cmd.c
       
     9 	road_gui.c roadveh_cmd.c roadveh_gui.c saveload.c sdl.c
       
    10 	settings.c settings_gui.c ship_cmd.c ship_gui.c smallmap_gui.c
       
    11 	sound.c spritecache.c station_cmd.c station_gui.c
       
    12 	strings.c subsidy_gui.c texteff.c town_cmd.c town_gui.c
       
    13 	train_cmd.c train_gui.c tree_cmd.c ttd.c
       
    14 	tunnelbridge_cmd.c unmovable_cmd.c vehicle.c
       
    15 	viewport.c water_cmd.c widget.c window.c screenshot.c 
       
    16 	airport.c grfspecial.c terraform_gui.c ;
       
    17 
       
    18 
       
    19 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;
       
    20 
       
    21 ####################
       
    22 # On UNIX we use gcc
       
    23 ####################
       
    24 if $(UNIX) {
       
    25 	SDL_CONFIG_CFLAGS = `XX_SDL_CONFIG_PLACEHOLDER_XX --cflags` ;
       
    26 	SDL_CONFIG_LIBS = `XX_SDL_CONFIG_PLACEHOLDER_XX --libs` ;
       
    27 
       
    28 	LINKFLAGS += $(SDL_CONFIG_LIBS) ;
       
    29 	CC = gcc ;
       
    30 	CCFLAGS += -Wall -Wno-multichar -DUNIX -DWITH_SDL ;
       
    31 	
       
    32 	OPTIMFLAGS = -O2 -fomit-frame-pointer ;
       
    33 	DEBUGFLAGS = -g ;
       
    34 	
       
    35 # also include extmidi
       
    36 	CFILES += extmidi.c unix.c ;
       
    37 
       
    38 # compile in PNG support?
       
    39 	if $(WITH_PNG) {
       
    40 		CCFLAGS += -DWITH_PNG -I$(WITH_PNG) ;
       
    41 		LINKFLAGS += -lpng ;
       
    42 	}
       
    43 
       
    44 # compile in zlib support?
       
    45 	if $(WITH_ZLIB) {
       
    46 		CCFLAGS += -DWITH_ZLIB ;
       
    47 		LINKFLAGS += -lz ;
       
    48 	}
       
    49 # compile for BeOS 5.1 and higher
       
    50 	if $(WITH_BONE_NETWORKING) {
       
    51 		CCFLAGS += -DENABLE_NETWORK ;
       
    52 		LINKFLAGS += -lsocket -lbind ;
       
    53 	}
       
    54 # link in BeOS MIDI and Be API libraries
       
    55 	if $(BEOS_MIDI) {
       
    56 		CCFLAGS += -DBEOS_MIDI ;
       
    57 		LINKFLAGS += -lbe -lmidi ;
       
    58 		CFILES += bemidi.cpp ;
       
    59 	}
       
    60 }
       
    61 
       
    62 ####################
       
    63 # MSVC on Win32
       
    64 ####################
       
    65 
       
    66 actions ActWin32Res {
       
    67 	$(VISUALC)\\..\\common\\msdev98\\bin\\rc /r /i $(STDHDRS) /fo $(<) $(>) 
       
    68 }
       
    69 
       
    70 rule Win32Res { ActWin32Res $(<) : $(>) ; DEPENDS $(<) : $(>) ; }
       
    71 
       
    72 if $(TOOLSET) = VISUALC {
       
    73 	OPTIMFLAGS = /Oa /Os /Ow /Oy /Oi /Og /Ox /Gr /Gf /Gy /Zp4 /J	/WX /W3 -DNDEBUG ;
       
    74 
       
    75 	CCFLAGS += -DWIN32 -DWIN32_EXCEPTION_TRACKER ;
       
    76 	CFILES += win32.c ;	
       
    77 	LINKFLAGS += /opt:nowin98 /LIBPATH:$(VISUALC)\\lib ;
       
    78 	
       
    79 	LINKLIBS = ws2_32.lib winmm.lib user32.lib gdi32.lib ;
       
    80 		
       
    81 # compile resources too
       
    82 	EOBJ = ttd.res ;
       
    83 	Win32Res ttd.res : ttd.rc ;
       
    84 
       
    85 # png screenshots?
       
    86 	if $(WITH_PNG) {
       
    87 		CCFLAGS += -DWITH_PNG -I$(WITH_PNG) ;
       
    88 		LINKLIBS += libpng.lib ;
       
    89 	}
       
    90 
       
    91 # zlib savegames?
       
    92 	if $(WITH_ZLIB) {
       
    93 		CCFLAGS += -DWITH_ZLIB ;
       
    94 		LINKLIBS += zlibstat.lib ;
       
    95 	}
       
    96 	
       
    97 # build release by default
       
    98 	RELEASE = 1 ;
       
    99 }
       
   100 
       
   101 
       
   102 ####################
       
   103 # Common
       
   104 ####################
       
   105 rule MyObjects {
       
   106 	local _i _t _s ;
       
   107 
       
   108 	_t = $(OUTDIR)/$(>:S=$(SUFOBJ)) ;
       
   109 	OPTIM on $(_t) = $(3) ;
       
   110 	
       
   111 	MkDir $(OUTDIR) ;
       
   112 	Depends $(_t) : $(OUTDIR) ;
       
   113 
       
   114 	for _i in $(>) {
       
   115 		_s = $(OUTDIR)/$(_i:S=$(SUFOBJ)) ;
       
   116 		Object $(_s) : $(_i) ;
       
   117 
       
   118 # special handling for sdl.c and unix.c
       
   119 		if $(_i) = sdl.c || $(_i) = unix.c { CCFLAGS on $(_s) += $(SDL_CONFIG_CFLAGS) ; }
       
   120 	}
       
   121 	MainFromObjects $(OUTDIR)/$(<) : $(_t) $(EOBJ) ;
       
   122 }
       
   123 
       
   124 rule MyMain {
       
   125 	if $(RELEASE) {
       
   126 		OUTDIR = release ;
       
   127 		MyObjects ttd : $(>) : $(OPTIMFLAGS) ;
       
   128 	} else {
       
   129 		OUTDIR = debug ;
       
   130 		MyObjects ttd : $(>) : -D_DEBUG $(DEBUGFLAGS) ;
       
   131 	}
       
   132 }
       
   133 
       
   134 actions CompileLang {
       
   135 	strgen$(SLASH)strgen $(>)
       
   136 }
       
   137 
       
   138 rule LangFile {
       
   139 	if $(>) = lang/english.txt {
       
   140 		CompileLang $(<) table/strings.h : ;
       
   141 		DEPENDS table/string.h : $(>) ;
       
   142 	} else {
       
   143 		CompileLang $(<) : $(>) ;
       
   144 	}
       
   145 	
       
   146 	Clean clean : $(<) ;
       
   147 	DEPENDS $(<) : $(>) ;
       
   148 	DEPENDS all : $(<) ;
       
   149 	DEPENDS $(<) : strgen/strgen ;
       
   150 }
       
   151 
       
   152 rule LangFiles {
       
   153 	local _i ;
       
   154 	for _i in $(<) { LangFile $(_i:S=.lng) : $(_i) ; }
       
   155 	Clean clean : table/strings.h ;
       
   156 }
       
   157 
       
   158 LangFiles lang/$(LANGFILES) ;
       
   159 
       
   160 Main strgen/strgen : strgen/strgen.c ;
       
   161 
       
   162 MyMain ttd : $(CFILES) ;
       
   163