Mercurial > gub
changeset 53:83ba53471c4c
naive GUB packages
author | janneke <janneke@gnu.org> |
---|---|
date | Sat, 26 Nov 2005 12:59:59 +0100 |
parents | 46b8856b7347 |
children | d83452a13fc2 |
files | GNUmakefile driver.py specs/framework.py specs/gub.py |
diffstat | 4 files changed, 46 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- a/GNUmakefile Sat Nov 26 10:45:49 2005 +0100 +++ b/GNUmakefile Sat Nov 26 12:59:59 2005 +0100 @@ -14,7 +14,7 @@ python driver.py mingw realclean: - rm -rf target/*/build target/*/status + rm -rf src target -distclean: - rm -rf src target +distclean: realclean + echo NOT rm -rf downloads
--- a/driver.py Sat Nov 26 10:45:49 2005 +0100 +++ b/driver.py Sat Nov 26 12:59:59 2005 +0100 @@ -26,6 +26,7 @@ self.builddir = self.targetdir + '/build' self.garbagedir = self.targetdir + '/garbage' self.statusdir = self.targetdir + '/status' + self.uploaddir = self.targetdir + '/uploads' ## dir for platform library & headers. ## FIXME: systemDIR/installDIR are unclear concepts @@ -41,9 +42,11 @@ self.tooldir = self.targetdir + '/tools' def create_dirs (self): - for a in ['topdir', 'statusdir', 'garbagedir', - 'downloaddir', 'srcdir', 'specdir', - 'targetdir', 'systemdir']: + for a in ('downloaddir', + 'garbagedir', + 'specdir', 'srcdir', 'statusdir', 'systemdir', + 'targetdir', 'topdir', + 'uploaddir'): try: gub.system ('mkdir -p %s' % self.__dict__[a], ignore_error = True) @@ -53,11 +56,12 @@ def process_package (package): package.download () - for stage in ['unpack', 'patch', 'configure', 'compile', 'install']: + for stage in ('untar', 'patch', 'configure', 'compile', 'install', + 'package', 'sysinstall'): if not package.is_done (stage): print 'doing stage', stage - if stage == 'unpack': - package.unpack() + if stage == 'untar': + package.untar () elif stage == 'configure': package.configure () elif stage == 'patch': @@ -66,6 +70,10 @@ package.compile () elif stage == 'install': package.install () + elif stage == 'package': + package.package () + elif stage == 'sysinstall': + package.sysinstall () package.set_done (stage)
--- a/specs/framework.py Sat Nov 26 10:45:49 2005 +0100 +++ b/specs/framework.py Sat Nov 26 12:59:59 2005 +0100 @@ -5,7 +5,7 @@ import re class Mingw (gub.Target_package): - def unpack (self): + def untar (self): self.system ('mkdir -p %(srcdir)s/') self.dump ('%(srcdir)s/configure', ''' cat > Makefile <<EOF
--- a/specs/gub.py Sat Nov 26 10:45:49 2005 +0100 +++ b/specs/gub.py Sat Nov 26 12:59:59 2005 +0100 @@ -14,10 +14,11 @@ def now (): return time.asctime (time.localtime ()) + def start_log (): global log_file log_file = open ('build.log', 'w+') - log_file.write ('\n\n *** Starting build: %s\n' % now()) + log_file.write ('\n\n *** Starting build: %s\n' % now ()) def log_command (str): sys.stderr.write (str) @@ -102,7 +103,8 @@ 'install_command': self.install_command (), 'installdir': self.installdir (), 'srcdir': self.srcdir (), - 'unpack_destination': self.unpack_destination (), + 'sourcesdir': self.settings.srcdir, + 'uploaddir': self.settings.uploaddir, } dict.update (env) @@ -132,9 +134,6 @@ system (cmd % dict, ignore_error=False, verbose = self.settings.verbose, env=dict) -# def download (self): -# pass - def skip (self): pass @@ -156,9 +155,6 @@ cd %(dir)s/%(name)s && cvs update -dCAP -r %(version)s ''', locals ()) - def unpack_destination (self): - return self.settings.srcdir - def basename (self): f = self.file_name () f = re.sub ('-src\.tar.*', '', f) @@ -171,7 +167,7 @@ return s def srcdir (self): - return self.unpack_destination () + '/' + self.basename () + return self.settings.srcdir + '/' + self.basename () def builddir (self): return self.settings.builddir + '/' + self.basename () @@ -248,7 +244,13 @@ def patch (self): pass - def unpack (self): + def package (self): + pass + + def sysinstall (self): + pass + + def untar (self): file = self.settings.downloaddir + '/' + self.file_name () if not os.path.exists (file): @@ -264,7 +266,7 @@ # clean up self.system ("rm -rf %(srcdir)s %(builddir)s") - cmd = 'tar %(flags)s %(file)s -C %(unpack_destination)s' + cmd = 'tar %(flags)s %(file)s -C %(sourcesdir)s' self.system (cmd, locals ()) def set_download (self, mirror=dl.gnu, format='gz', download=wget): @@ -306,11 +308,12 @@ return str def installdir (self): - # the usr/ works around a fascist check in libtool - ##return self.settings.installdir + "/" + self.name () + "-root/usr" + # FIXME: the usr/ works around a fascist check in libtool + # better use %(installdir)s/USR throughout and remove here? + return self.settings.installdir + "/" + self.name () + "-root/usr" # FIXME: system dir vs packaging install # no packages for now - return self.settings.systemdir + '/usr' + # return self.settings.systemdir + '/usr' def install_command (self): return '''make install \ @@ -340,6 +343,17 @@ os.chmod (cache_fn, 0755) Package.configure (self) + def package (self): + # naive tarball packages for now + self.system (''' +tar -C %(installdir)s -zcf %(uploaddir)s/%(name)s.gub . +''') + + def sysinstall (self): + self.system (''' +tar -C %(systemdir)s -zxf %(uploaddir)s/%(name)s.gub +''') + def target_dict (self, env={}): dict = { 'AR': '%(target_architecture)s-ar',