#! /usr/bin/env python # encoding: utf-8 # mittorn, 2018 VERSION='0.99' APPNAME='xash3d-fwgs' top = '.' def options(opt): opt.load('compiler_c') # opt.load('msvs') opt.add_option('--dedicated', action = 'store_true', help = 'build dedicated server only' ) opt.add_option('--64bits', dest = 'amd64', action = 'store_true', help = 'build 64-bit engine on x86_64' ) def configure(conf): conf.load('compiler_c') conf.env.append_unique('CFLAGS', '-O2') conf.env.append_unique('DEFINES', 'SINGLE_BINARY') conf.env.append_value('LINKFLAGS', '-ldl') conf.env.append_value('LINKFLAGS', '-lm') conf.env.append_value('LINKFLAGS', '-pthread') # check for 64-bit builds # TODO: check 32-bit toolchain and dependencies if conf.env.DEST_CPU == 'x86_64' and not conf.options.amd64: conf.env.append_value('LINKFLAGS', '-m32') conf.env.append_value('CFLAGS', '-m32') print('NOTE: will build engine with 64-bit toolchain using -m32') else: print('Warning: 64bit engine may be unstable') # check for dedicated server build if conf.options.dedicated: conf.env.append_unique('DEFINES', 'XASH_DEDICATED') conf.env.dedicated = True else: # TODO: add way to specify SDL2 path, move to separate function try: conf.check_cfg(path='sdl2-config', args='--cflags --libs', package='', msg='Checking for SDL2', uselib_store='SDL2') except conf.errors.ConfigurationError: conf.fatal('SDL2 not availiable! If you want to build dedicated server, specify --dedicated') conf.env.append_unique('DEFINES', 'XASH_SDL') def build(bld): # basic build: dedicated only, no dependencies use = []; source = bld.path.ant_glob([ 'common/*.c', 'common/imagelib/*.c', 'common/soundlib/*.c', 'common/soundlib/libmpg/*.c', 'server/*.c']) # add client files and sdl2 library if not bld.env.dedicated: use += ['SDL2'] source += bld.path.ant_glob([ 'client/*.c', 'client/vgui/*.c', 'client/avi/*.c', 'platform/sdl/*.c']) bld( target = 'xash', features = 'c cprogram', includes = ['../common', '../pm_shared', 'common', 'server', 'client', 'client/vgui', '.' ], source = source, use = use )