1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-27 22:50:26 +03:00

s4-waf: avoid having to run waf configure before waf dist

This should be useful for building tarballs from a clean checkout
This commit is contained in:
Andrew Tridgell 2010-04-04 11:00:42 +10:00
parent 3ed6d7e76f
commit 1883ee6dbc
8 changed files with 42 additions and 25 deletions

View File

@ -18,6 +18,7 @@ for d in $tests; do
pushd $d || exit 1
rm -rf bin
type waf
waf dist || exit 1
waf configure -C --enable-developer --prefix=$PREFIX || exit 1
time waf build || exit 1
time waf build || exit 1

View File

@ -4,6 +4,8 @@
import Utils, os, sys, tarfile, stat, Scripting
from samba_utils import *
dist_dirs = None
def add_tarfile(tar, fname, abspath):
'''add a file to the tarball'''
tinfo = tar.gettarinfo(name=abspath, arcname=fname)
@ -17,19 +19,13 @@ def add_tarfile(tar, fname, abspath):
def dist():
appname = Utils.g_module.APPNAME
version = Utils.g_module.VERSION
env = LOAD_ENVIRONMENT()
srcdir = os.path.normpath(os.path.join(os.path.dirname(Utils.g_module.root_path), Utils.g_module.srcdir))
if not env.DIST_DIRS:
print('You must use conf.DIST_DIRS() to set which directories to package')
sys.exit(1)
if not env.GIT:
print('You need git installed to run waf dist')
if not dist_dirs:
print('You must use samba_dist.DIST_DIRS() to set which directories to package')
sys.exit(1)
dist_base = '%s-%s' % (appname, version)
@ -37,14 +33,14 @@ def dist():
tar = tarfile.open(dist_name, 'w:gz')
for dir in env.DIST_DIRS.split():
for dir in dist_dirs.split():
if dir.find(':') != -1:
destdir=dir.split(':')[1]
dir=dir.split(':')[0]
else:
destdir = '.'
absdir = os.path.join(srcdir, dir)
git_cmd = [ env.GIT, 'ls-files', '--full-name', absdir ]
git_cmd = [ 'git', 'ls-files', '--full-name', absdir ]
try:
files = Utils.cmd_output(git_cmd).split()
except:
@ -65,9 +61,10 @@ def dist():
@conf
def DIST_DIRS(conf, dirs):
def DIST_DIRS(dirs):
'''set the directories to package, relative to top srcdir'''
if not conf.env.DIST_DIRS:
conf.env.DIST_DIRS = dirs
global dist_dirs
if not dist_dirs:
dist_dirs = dirs
Scripting.dist = dist

View File

@ -1,13 +1,25 @@
#!/usr/bin/env python
srcdir = '../..'
APPNAME = 'libreplace'
VERSION = '1.2.1'
blddir = 'bin'
import sys
import sys, os
# find the buildtools directory
buildtools = 'buildtools ../../buildtools'
for d in buildtools.split():
if os.path.exists(d):
srcdir = os.path.dirname(d) or '.'
break
sys.path.insert(0, srcdir+"/buildtools/wafsamba")
import wafsamba
import wafsamba, samba_dist
import Options, os, preproc
samba_dist.DIST_DIRS('lib/replace buildtools:buildtools')
def set_options(opt):
opt.BUILTIN_DEFAULT('NONE')
opt.BUNDLED_EXTENSION_DEFAULT('')

View File

@ -20,13 +20,16 @@ import sys
sys.path.insert(0, srcdir+"/buildtools/wafsamba")
import wafsamba, samba_dist
# setup what directories to put in a tarball
samba_dist.DIST_DIRS('lib/talloc:. lib/replace:lib/replace buildtools:buildtools')
def set_options(opt):
opt.BUILTIN_DEFAULT('replace')
opt.BUNDLED_EXTENSION_DEFAULT('talloc', noextenion='talloc')
opt.recurse(LIBREPLACE_DIR)
def configure(conf):
conf.DIST_DIRS('lib/talloc:. lib/replace:lib/replace buildtools:buildtools')
conf.sub_config(LIBREPLACE_DIR)
if conf.CHECK_BUNDLED_SYSTEM('talloc', minversion=VERSION,

View File

@ -15,7 +15,9 @@ for d in buildtools.split():
break
sys.path.insert(0, srcdir+"/buildtools/wafsamba")
import wafsamba
import wafsamba, samba_dist
samba_dist.DIST_DIRS('lib/tdb:. lib/replace:lib/replace buildtools:buildtools')
LIBREPLACE_DIR= srcdir + '/lib/replace'
@ -26,7 +28,6 @@ def set_options(opt):
opt.recurse(LIBREPLACE_DIR)
def configure(conf):
conf.DIST_DIRS('lib/tdb:. lib/replace:lib/replace buildtools:buildtools')
conf.sub_config(LIBREPLACE_DIR)
if conf.CHECK_BUNDLED_SYSTEM('tdb', minversion=VERSION,

View File

@ -15,7 +15,9 @@ for d in buildtools.split():
break
sys.path.insert(0, srcdir+"/buildtools/wafsamba")
import wafsamba
import wafsamba, samba_dist
samba_dist.DIST_DIRS('lib/tevent:. lib/replace:lib/replace lib/talloc:lib/talloc buildtools:buildtools')
LIBREPLACE_DIR= srcdir + '/lib/replace'
LIBTALLOC_DIR= srcdir + '/lib/talloc'
@ -27,7 +29,6 @@ def set_options(opt):
opt.recurse(LIBTALLOC_DIR)
def configure(conf):
conf.DIST_DIRS('lib/tevent:. lib/replace:lib/replace lib/talloc:lib/talloc buildtools:buildtools')
conf.sub_config(LIBREPLACE_DIR)
conf.sub_config(LIBTALLOC_DIR)

View File

@ -14,7 +14,10 @@ for d in buildtools.split():
break
sys.path.insert(0, srcdir+"/buildtools/wafsamba")
import wafsamba
import wafsamba, samba_dist
samba_dist.DIST_DIRS('''lib/ldb:. lib/replace:lib/replace lib/talloc:lib/talloc
lib/tdb:lib/tdb lib/tevent:lib/tevent buildtools:buildtools''')
LIBTDB_DIR= srcdir + '/lib/tdb'
@ -28,8 +31,6 @@ def set_options(opt):
opt.recurse(LIBTEVENT_DIR)
def configure(conf):
conf.DIST_DIRS('''lib/ldb:. lib/replace:lib/replace lib/talloc:lib/talloc
lib/tdb:lib/tdb lib/tevent:lib/tevent buildtools:buildtools''')
conf.sub_config(LIBTDB_DIR)
conf.sub_config(LIBTEVENT_DIR)
conf.sub_config(LIBPOPT_DIR)

View File

@ -10,6 +10,8 @@ import sys, os
sys.path.insert(0, srcdir+"/buildtools/wafsamba")
import wafsamba, Options, samba_dist
samba_dist.DIST_DIRS('.')
# install in /usr/local/samba by default
Options.default_prefix = '/usr/local/samba'
@ -39,7 +41,6 @@ def configure(conf):
conf.DEFINE('CONFIG_H_IS_FROM_SAMBA', 1)
conf.DEFINE('_SAMBA_BUILD_', 4, add_to_cflags=True)
conf.DEFINE('HAVE_CONFIG_H', 1, add_to_cflags=True)
conf.DIST_DIRS('.')
if Options.options.developer:
conf.ADD_CFLAGS('-DDEVELOPER -DDEBUG_PASSWORD')