Mercurial > gub
changeset 11:f87f9d511a99
more package list refactoring
author | janneke <janneke@gnu.org> |
---|---|
date | Fri, 25 Nov 2005 09:29:55 +0100 |
parents | 6d156e22d424 |
children | 30aa2d214b5c |
files | GNUmakefile specs/cvs.py specs/download.py specs/framework.py specs/gub.py |
diffstat | 5 files changed, 105 insertions(+), 44 deletions(-) [+] |
line wrap: on
line diff
--- a/GNUmakefile Fri Nov 25 01:50:32 2005 +0100 +++ b/GNUmakefile Fri Nov 25 09:29:55 2005 +0100 @@ -2,13 +2,13 @@ default: all all: - python driver.py mac doos + python driver.py mac mingw mac: python driver.py mac -doos: - python driver.py doos +mingw: + python driver.py mingw realclean: rm -rf target/*/build target/*/status
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/specs/cvs.py Fri Nov 25 09:29:55 2005 +0100 @@ -0,0 +1,3 @@ + +def gnu (): + return ':ext:anoncvs@subversions.gnu.org:/cvsroot/%(name)s'
--- a/specs/download.py Fri Nov 25 01:50:32 2005 +0100 +++ b/specs/download.py Fri Nov 25 09:29:55 2005 +0100 @@ -1,21 +1,14 @@ -import string -import re - +def gtk (): + return 'ftp://ftp.gtk.org/pub/gtk/v%(gtk_version)s/%(name)s-%(version)s.tar.%(format)s' -def set_download (package, version, format, url_template): - d = package.package_dict () - d.update (locals()) - package.url = url_template % d - - -def set_gtk_download (package, version, format): - set_download (package, version, format, 'ftp://ftp.gtk.org/pub/gtk/v%(gtk_version)s/%(name)s-%(version)s.tar.%(format)s') - - -def set_gnu_download (package, version, format): +def gnu (): # base = 'ftp://dl.xs4all.nl/pub/mirror/gnu' base = 'ftp://sunsite.dk/pub/gnu' - - set_download (package, version, format, base + '/%(name)s/%(name)s-%(version)s.tar.%(format)s') + return base + '/%(name)s/%(name)s-%(version)s.tar.%(format)s' +def freetype (): + return 'ftp://sunsite.cnlab-switch.ch/mirror/freetype/freetype2/%(name)s-%(version)s.tar.%(format)s' +def fontconfig (): + return 'http://www.fontconfig.org/release/%(name)s-%(version)s.tar.%(format)s' +
--- a/specs/framework.py Fri Nov 25 01:50:32 2005 +0100 +++ b/specs/framework.py Fri Nov 25 09:29:55 2005 +0100 @@ -1,10 +1,14 @@ -import re +import cvs +import download import gub -import download +import re class Libtool (gub.Target_package): pass +class LilyPond (gub.Target_package): + pass + class Gettext (gub.Target_package): def configure_cache_overrides (self, str): str = re.sub ('ac_cv_func_select=yes','ac_cv_func_select=no', str) @@ -23,26 +27,58 @@ glib_cv_stack_grows=${glib_cv_stack_grows=no} ''' -def get_packages (settings, platform): - mingw = ( platform == 'mingw') - mac = (platform == 'mac') +class Freetype (gub.Target_package): + def __init__ (self, settings): + gub.Package.__init__ (self, settings) + self.with (mirror=download.freetype) - packages = [] - if mingw: - libtool = Libtool (settings) - download.set_gnu_download (libtool, '1.5.20', 'gz') - packages.append (libtool) + def configure (self): + self.system (''' + rm -f %(srcdir)s/builds/unix/{unix-def.mk,unix-cc.mk,ftconfig.h,freetype-config,freetype2.pc,config.status,config.log} +''') + gub.Package.configure (self) + + def install (self): + self.system (''' +cd %(srcdir)s && CC=cc ./configure --disable-static --enable-shared +''') + gub.Package.install (self) - gettext = Gettext (settings) - if platform == 'mingw': - download.set_gnu_download (gettext, '0.14.5', 'gz') - elif platform == 'mac': - download.set_gnu_download (gettext, '0.10.40', 'gz') - packages.append (gettext) + +class Fontconfig (gub.Target_package): + + def configure_command (self): + return gub.Target_package.configure_command (self) + ''' +--with-default-fonts=@WINDIR@\fonts\ +--with-add-fonts=@INSTDIR@\usr\share\gs\fonts +''' + + def configure (self): + os.environ['ft_config'] = '''/usr/bin/freetype-config \ +--prefix=%(systemdir)s \ +--exec-prefix=%(systemdir)s \ +''' - if platform == 'mingw': - libiconv = Libiconv (settings) - download.set_gnu_download (libiconv, '2.8.4', 'gz') - packages.append (libiconv) + self.system (''' + rm -f %(srcdir)s/builds/unix/{unix-def.mk,unix-cc.mk,ftconfig.h,freetype-config,freetype2.pc,config.status,config.log} +''') + gub.Package.configure (self) - return packages +def get_packages (settings, platform): + packages = { + 'mac': ( + Gettext (settings).with (version='0.10.40'), + Glib (settings).with (version='2.8.4', mirror=download.gtk), + Freetype (settings).with (version='2.1.9', mirror=download.freetype), + ), + 'mingw': ( + Libtool (settings).with (version='1.5.20'), + Gettext (settings).with (version='0.14.5'), + Libiconv (settings).with (version='1.9.2'), + Glib (settings).with (version='2.8.4', mirror=download.gtk), + Freetype (settings).with (version='2.1.9'), + LilyPond (settings).with (mirror=cvs.gnu, download=gub.Package.cvs), + ), + } + + return packages[platform]
--- a/specs/gub.py Fri Nov 25 01:50:32 2005 +0100 +++ b/specs/gub.py Fri Nov 25 09:29:55 2005 +0100 @@ -1,8 +1,10 @@ +import cross +import cvs +import download as dl import os -import sys import re import subprocess -import cross +import sys def system_one (cmd, ignore_error, env): sys.stderr.write ('invoking %s\n' % cmd) @@ -32,15 +34,18 @@ def __init__ (self, settings): self.settings = settings self.url = '' + self.download = self.wget def package_dict (self, env = {}): dict = { 'build_spec': self.settings.build_spec, 'garbagedir': self.settings.garbagedir, + 'gtk_version': self.settings.gtk_version, 'systemdir': self.settings.systemdir, 'target_architecture': self.settings.target_architecture, 'target_gcc_flags': self.settings.target_gcc_flags, - 'name': self.name (), + 'name': self.name (), + 'version': self.version, 'url': self.url, 'builddir': self.builddir (), 'compile_command': self.compile_command (), @@ -65,14 +70,28 @@ def system (self, cmd, env = {}): dict = self.package_dict (env) system (cmd % dict, ignore_error = False, env = dict) - + def download (self): + pass + + def wget (self): dir = self.settings.downloaddir if not os.path.exists (dir + '/' + self.file_name ()): self.system (''' cd %(dir)s && wget %(url)s ''', locals ()) + def cvs (self): + dir = self.settings.downloaddir + if not os.path.exists (dir + '/' + self.file_name ()): + self.system (''' +cvs -d %(url)s co %(name)s +''', locals ()) + else: + self.system (''' +cd %(dir)s && cvs update -dCAP -r %(version)s +''', locals ()) + def unpack_destination (self): return self.settings.srcdir @@ -176,6 +195,16 @@ cmd = 'tar %(flags)s %(file)s -C %(unpack_destination)s' self.system (cmd, locals ()) + def set_download (self, mirror=dl.gnu, format='gz', download=wget): + d = self.package_dict () + d.update (locals ()) + self.url = mirror () % d + self.download = lambda : download (self) + + def with (self, version='HEAD', mirror=dl.gnu, format='gz', download=wget): + self.version = version + self.set_download (mirror, format, download) + return self class Cross_package (Package): def configure_command (self):