Fix dependency info.

pull/15/head
Jussi Pakkanen 12 years ago
parent 9ad2921659
commit cdf99fa3be
  1. 17
      builder_install.py
  2. 3
      depfixer.py
  3. 7
      generators.py

@ -14,11 +14,13 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import sys, pickle, os, shutil
import sys, pickle, os, shutil, subprocess
class InstallData():
def __init__(self):
def __init__(self, depfixer, dep_prefix):
self.targets = []
self.depfixer = depfixer
self.dep_prefix = dep_prefix
def do_install(datafilename):
ifile = open(datafilename, 'rb')
@ -28,9 +30,18 @@ def do_install(datafilename):
outdir = t[1]
fname = os.path.split(fullfilename)[1]
outname = os.path.join(outdir, fname)
print('Copying %s to %s' % (fname, outdir))
print('Installing %s to %s' % (fname, outdir))
os.makedirs(outdir, exist_ok=True)
shutil.copyfile(fullfilename, outname)
shutil.copystat(fullfilename, outname)
p = subprocess.Popen([d.depfixer, outname, d.dep_prefix], stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
(stdo, stde) = p.communicate()
if p.returncode != 0:
print('Could not fix dependency info.\n')
print('Stdout:\n%s\n' % stdo.decode())
print('Stderr:\n%s\n' % stde.decode())
sys.exit(1)
if __name__ == '__main__':
if len(sys.argv) != 2:

@ -63,7 +63,8 @@ class Elf():
def parse_header(self):
self.e_ident = struct.unpack('16s', self.bf.read(16))[0]
if self.e_ident[1:4] != b'ELF':
raise RuntimeError('File "%s" is not an ELF file.' % self.bfile)
print('File "%s" is not an ELF file.' % self.bfile)
sys.exit(0)
self.e_type = struct.unpack('h', self.bf.read(2))[0]
self.e_machine = struct.unpack('h', self.bf.read(2))[0]
self.e_version = struct.unpack('i', self.bf.read(4))[0]

@ -171,8 +171,10 @@ class NinjaGenerator(Generator):
self.generate_install_data(outfile, install_data)
def generate_install_data(self, outfile, install_data_file):
depfixer = os.path.join(self.get_script_root(), 'depfixer.py')
prefix = self.environment.get_prefix()
d = InstallData()
d = InstallData(depfixer, './') # Fixme
libdir = os.path.join(prefix, self.environment.get_libdir())
bindir = os.path.join(prefix, self.environment.get_bindir())
@ -305,7 +307,8 @@ class NinjaGenerator(Generator):
pass
def generate_ending(self, outfile):
build = 'build all: phony %s\n' % ' '.join(self.build.get_targets().keys())
targetlist = [self.get_target_filename(t) for t in self.build.get_targets().values()]
build = 'build all: phony %s\n' % ' '.join(targetlist)
default = 'default all\n\n'
outfile.write(build)
outfile.write(default)

Loading…
Cancel
Save