79
80
phony_file = normpath(mktemp(prefix="phony_%s_" % alias, dir="."))
80
81
return Alias(alias, Command(target=phony_file, source=None, action=action))
82
########################################################################### Functions for setting permissions when installing
83
############################## Functions for setting permissions when installing
83
84
# don't forget to set umask
145
146
env.Tool("ctags", toolpath=['build/scons-tools'])
146
147
env.Tool("PNGShrink", toolpath=['build/scons-tools'])
147
148
env.Tool("astyle", toolpath=['build/scons-tools'])
148
env.Tool("disttar", toolpath=['build/scons-tools'])
149
env.Tool("Distribute", toolpath=['build/scons-tools'])
150
151
################################################################################
151
152
# Environment setup
260
261
################################################################################
262
opts.Save('build/scons-config.py',env) #build_id must be saved *before* it might be set to a fixed date
263
#build_id must be saved *before* it might be set to a fixed date
264
opts.Save('build/scons-config.py',env)
264
#This is just a default, do not change it here. Use the option 'build_id' instead.
266
#This is just a default, don't change it here. Use the option 'build_id' instead
265
267
if (env['build_id']=='') or (env['build_id']=='date'):
266
268
env['build_id']=time.strftime("%Y.%m.%d-%H%M%S", time.gmtime())
267
269
print 'Build ID: '+env['build_id']
284
286
# env['ENV']['PATH'] = '/usr/lib/distcc/bin:'+env['ENV']['PATH']
285
287
# env['ENV']['HOME'] = os.environ['HOME']
287
############################################################################ Build things
289
############### Build setup
289
################################################################### Build things
291
291
SConsignFile('build/scons-signatures')
292
292
BUILDDIR='build/'+TARGET+'-'+env['build']
293
293
Export('env', 'Glob', 'BUILDDIR', 'PhonyTarget')
295
############### buildcat
295
####################################################################### buildcat
297
297
buildcat=SConscript('locale/SConscript')
299
############### The binary
299
##################################################################### The binary
301
301
thebinary=SConscript('src/SConscript', build_dir=BUILDDIR, duplicate=0)
302
302
Default(thebinary)
304
####################################################################### the rest
306
SConscript('build/SConscript')
307
SConscript('campaigns/SConscript')
308
SConscript('doc/SConscript')
309
SConscript('maps/SConscript')
310
SConscript('utils/SConscript')
312
########################################################################### tags
306
314
S=find('src', '*.h')
307
315
S+=find('src', '*.cc')
367
375
install=PhonyTarget("install", do_inst)
368
376
uninstall=PhonyTarget("uninstall", do_uninst)
370
############### Distribute
378
'README-compiling.txt',
381
'build-widelands.sh',
384
'build/build-with-cross.sh',
385
'build/debian-crossbuild',
386
'build/scons-config.py',
387
env.Dir('build/scons-tools'),
388
env.Dir('build/win32'),
389
'build/win32-vctoolkit.bat',
390
env.Dir('campaigns'),
393
env.Dir('game_server'),
406
env['DISTTAR_FORMAT']='bz2'
408
DISTTAR_EXCLUDEEXTS=['.o','.so','.a','.dll','.cache','.pyc','.cvsignore','.dblite','.log'],
409
DISTTAR_EXCLUDEDIRS=['CVS','.svn','sourcecode']
412
if 'dist' in BUILD_TARGETS:
413
print "Assembling file list for distribution tarball..."
414
dist=env.DistTar('widelands-'+env['build_id']+'.tar.bz2', DISTFILES)
417
############### longlines
378
##################################################################### Distribute
380
distadd(env, 'ChangeLog')
381
distadd(env, 'COPYING')
382
distadd(env, 'CREDITS')
383
distadd(env, 'Doxyfile')
384
distadd(env, 'Makefile')
385
distadd(env, 'README-compiling.txt')
386
distadd(env, 'README.developers')
387
distadd(env, 'SConstruct')
388
distadd(env, 'build-widelands.sh')
389
distadd(env, 'fonts')
390
distadd(env, 'game_server')
391
distadd(env, 'locale')
392
distadd(env, 'macos')
393
distadd(env, 'music')
395
distadd(env, 'sound')
397
distadd(env, 'tribes')
399
distadd(env, 'utils')
400
distadd(env, 'worlds')
402
dist=env.DistPackage('widelands.tar.bz2', '')
406
###################################################################### longlines
419
408
longlines=PhonyTarget("longlines", 'utils/count-longlines.py')
421
############### precommit
410
###################################################################### precommit
423
412
#Alias('precommit', 'indent')
424
413
Alias('precommit', buildcat)
425
414
Alias('precommit', 'longlines')
427
############### Documentation
416
################################################################## Documentation
429
418
PhonyTarget('doc', 'doxygen Doxyfile')