-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsconstruct
More file actions
91 lines (69 loc) · 2.36 KB
/
sconstruct
File metadata and controls
91 lines (69 loc) · 2.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import glob, os, os.path
env = Environment()
opts = Options()
opts.Add('libdir', 'Define the basename for library dirs', 'lib')
opts.Add('destdir', 'Define the (installation) prefix; The Directory to install to', '')
opts.Add('prefix', 'Define the (runtime) prefix', '/')
destdir = ARGUMENTS.get('destdir', '')
prefix = ARGUMENTS.get('prefix', '/')
libdir = ARGUMENTS.get('libdir', 'lib')
Help(opts.GenerateHelpText(env))
RuntimeDirEtc = prefix + 'etc/einit'
RuntimeDirLibEinit = prefix + libdir + '/einit'
RuntimeDirModules = prefix + libdir + '/einit/modules'
InstallDirEtc = destdir + RuntimeDirEtc
InstallDirLibEinit = destdir + RuntimeDirLibEinit
InstallDirModules = destdir + RuntimeDirModules
haveFiles = []
try:
os.stat('/etc/frugalware-release')
for i in glob.glob('data-frugalware/modules-xml/*.xml'):
b = os.path.basename(i)
haveFile += [ b ]
env.Install (InstallDirLibEinit + '/modules-xml', i)
except:
print ("not frugalware...")
for i in glob.glob('data/modules-xml/*.xml'):
b = os.path.basename(i)
if not b in haveFiles:
env.Install (InstallDirLibEinit + '/modules-xml', i)
for i in glob.glob('data/conf.d/*.xml'):
b = os.path.basename(i)
env.Install (InstallDirLibEinit + '/defaults/conf.d/', i)
try:
os.stat(RuntimeDirEtc + '/conf.d/' + b)
try:
odata = ""
ndata = ""
f = open(RuntimeDirLibEinit + '/defaults/conf.d/' + b, "r")
if f:
odata = f.read ()
f.close()
f = open(i, "r")
if f:
ndata = f.read ()
f.close()
if ndata != odata:
env.InstallAs (InstallDirEtc + '/conf.d/' + b, i)
else:
env.InstallAs (InstallDirEtc + '/conf.d/' + b, RuntimeDirEtc + '/conf.d/' + b)
except:
env.InstallAs (InstallDirEtc + '/conf.d/' + b, i)
except:
env.Install (InstallDirEtc + '/conf.d', i)
menv = env.Clone (SHLIBPREFIX = '', CCFLAGS = '-DEINIT_MODULE')
librt = [ 'rt' ]
uname = "unknown"
f = os.popen ('uname', 'r')
if f:
uname = f.readline().strip()
f.close()
if uname == 'Darwin':
menv.Append (LINKFLAGS = '$LINKFLAGS -Wl,-bundle_loader,src/einit-core')
librt = []
def buildModule(name, location, e):
e.Install(InstallDirModules, e.LoadableModule(name, location + '/' + name + '.c'))
Modules = ['module-xml']
for i in Modules:
buildModule (i, 'src', menv)
env.Alias ('install', [InstallDirEtc + '/conf.d', InstallDirLibEinit + '/modules-xml', InstallDirLibEinit + '/defaults/conf.d', InstallDirModules])