Mercurial > gub
changeset 60:7ca803616783
Download mingw-runtime from sf. Move mingw stuff to mingw.py
author | janneke <janneke@gnu.org> |
---|---|
date | Sun, 27 Nov 2005 19:53:36 +0100 |
parents | 0c43f7ba55b8 |
children | 8fd7bac6f44b |
files | GNUmakefile driver.py specs/framework.py specs/gub.py specs/mingw.py |
diffstat | 5 files changed, 151 insertions(+), 71 deletions(-) [+] |
line wrap: on
line diff
--- a/GNUmakefile Sun Nov 27 10:51:53 2005 +0100 +++ b/GNUmakefile Sun Nov 27 19:53:36 2005 +0100 @@ -1,6 +1,3 @@ - -MINGW_RUNTIME_DIR = /usr -export MINGW_RUNTIME_DIR default: all
--- a/driver.py Sun Nov 27 10:51:53 2005 +0100 +++ b/driver.py Sun Nov 27 19:53:36 2005 +0100 @@ -24,7 +24,6 @@ self.target_architecture = arch self.targetdir = self.topdir + '/target/%s' % self.target_architecture - self.runtimedir = None self.builddir = self.targetdir + '/build' self.garbagedir = self.targetdir + '/garbage' self.statusdir = self.targetdir + '/status' @@ -89,7 +88,7 @@ def main (): (options, files) = getopt.getopt (sys.argv[1:], 'V', ['verbose']) verbose = 0 - for (o,a) in options: + for (o, a) in options: if o == '--verbose' or o == '-V': verbose = 1 @@ -108,11 +107,9 @@ elif platform == 'mingw': settings = Settings ('i586-mingw32msvc') settings.target_gcc_flags = '-mwindows -mms-bitfields' - settings.runtimedir = '/usr/i586-mingw32msvc' elif platform == 'mingw-fedora': settings = Settings ('i386-mingw32') settings.target_gcc_flags = '-mwindows -mms-bitfields' - settings.runtimedir = '/usr/local/i386-mingw32' platform = 'mingw' gub.start_log () @@ -127,10 +124,12 @@ if platform == 'mac': import darwintools process_packages (darwintools.get_packages (settings)) + if platform.startswith ('mingw'): + import mingw + process_packages (mingw.get_packages (settings)) process_packages (framework.get_packages (settings, platform)) - if __name__ == '__main__': main ()
--- a/specs/framework.py Sun Nov 27 10:51:53 2005 +0100 +++ b/specs/framework.py Sun Nov 27 19:53:36 2005 +0100 @@ -1,33 +1,28 @@ import cvs import download -import glob import gub import os import re -class Mingw (gub.Target_package): - def untar (self): - self.system ('mkdir -p %(srcdir)s/') - self.dump ('%(srcdir)s/configure', ''' -cat > Makefile <<EOF -default: - @echo done -all: default -install: - mkdir -p %(installdir)s - tar -C %(MINGW_RUNTIME_DIR)s/%(target_architecture)s -cf- . | tar -C %(installdir)s -xvf- - mkdir -p %(installdir)s/bin - -cp /cygwin/usr/bin/cygcheck.exe %(installdir)s/bin -EOF +class Libtool (gub.Target_package): + pass + +class Gs (gub.Target_package): + pass + +class Python (gub.Target_package): + def xxpatch (self): + if self.settings.platform.startswith ('mingw'): + self.system (''' +cd %(srcdir)s && patch -p1 < $HOME/installers/windows/patch/python-2.4.2-1.patch ''') - self.system ('chmod +x %(srcdir)s/configure') -class Libtool (gub.Target_package): +class LilyPad (gub.Target_package): pass class Gmp (gub.Target_package): def xxconfigure (self): - self.system ('''cd %(srcdir)s && libtoolize --force''') + self.system ('''cd %(srcdir)s && libtoolize --force --copy''') self.system ('''cd %(srcdir)s && ./missing --run aclocal''') self.system ('''cd %(srcdir)s && ./missing --run autoconf''') self.system ('''cd %(srcdir)s && ./missing --run automake''') @@ -37,12 +32,11 @@ self.file_sub ("-Wl,-e,'\$dll_entry'", '', '%(srcdir)s/configure') - self.system ('''chmod +x %(srcdir)s/configure''') - + os.chmod ('%(srcdir)s/configure' % self.package_dict (), 0755) gub.Target_package.configure (self) def xpatch (self): - if self.settings.platform == 'mingw': + if self.settings.platform.startswith ('mingw'): ## FIXME, seems we don't need this? self.system (''' cd %(srcdir)s && patch -p1 < $HOME/installers/windows/patch/gmp-4.1.4-1.patch @@ -56,31 +50,25 @@ mv %(installdir)s/lib/lib*.dll %(installdir)s/bin/ cp %(builddir)s/.libs/libgmp.dll.a %(installdir)s/lib/ ''') - base = 'gmp' - self.file_sub ('library_names=.*', - "library_names='lib%(base)s.dll.a'", - '%(installdir)s/lib/lib%(base)s.la', - locals ()) - -class Regex (gub.Target_package): - pass class Guile (gub.Target_package): def xpatch (self): - if self.settings.platform == 'mingw': + if self.settings.platform.startswith ('mingw'): ## FIXME self.system (''' cd %(srcdir)s && patch -p1 < $HOME/installers/windows/patch/guile-1.7.2-3.patch ''') def configure_command (self): - self.settings.target_gcc_flags = '-mms-bitfields' - self.settings.target_gxx_flags = '-mms-bitfields' - cmd = gub.join_lines ('''\ + cmd = '' + if self.settings.platform.startswith ('mingw'): + self.settings.target_gcc_flags = '-mms-bitfields' + self.settings.target_gxx_flags = '-mms-bitfields' + cmd = gub.join_lines ('''\ PATH_SEPARATOR=";" AS=%(target_architecture)s-as -''') \ - + gub.Target_package.configure_command (self) \ +''') + cmd += gub.Target_package.configure_command (self) \ + gub.join_lines (''' --without-threads --with-gnu-ld @@ -92,24 +80,41 @@ ''') return cmd - def configure (self): - gub.Target_package.config_cache (self) - self.dump ('%(builddir)s/config.cache', ''' + def config_cache_overrides (self, str): + if self.settings.platform.startswith ('mingw'): + str += ''' guile_cv_func_usleep_declared=${guile_cv_func_usleep_declared=yes} guile_cv_exeext=${guile_cv_exeext=} libltdl_cv_sys_search_path=${libltdl_cv_sys_search_path="%(systemdir)s/usr/lib"} -''', mode='a') +''' + return str + + def configure (self): gub.Package.configure (self) - - self.file_sub ('^\(allow_undefined_flag=.*\)unsupported', + if self.settings.platform.startswith ('mingw'): + self.file_sub ('^\(allow_undefined_flag=.*\)unsupported', '\\1', '%(builddir)s/libtool') - self.file_sub ('^\(allow_undefined_flag=.*\)unsupported', + self.file_sub ('^\(allow_undefined_flag=.*\)unsupported', '\\1', '%(builddir)s/guile-readline/libtool') - self.system ('''cp $HOME/installers/windows/bin/%(target_architecture)s-libtool %(builddir)s/libtool''') - self.system ('''cp $HOME/installers/windows/bin/%(target_architecture)s-libtool %(builddir)s/guile-readline/libtool''') + self.system ('''cp $HOME/installers/windows/bin/%(target_architecture)s-libtool %(builddir)s/libtool''') + self.system ('''cp $HOME/installers/windows/bin/%(target_architecture)s-libtool %(builddir)s/guile-readline/libtool''') + def install (self): + gub.Target_package.install (self) + version = self.read_pipe ('''\ +GUILE_LOAD_PATH=%(installdir)s/share/guile/* %(installdir)s/bin/guile-config --version 2>&1\ +''').split ()[-1] + self.dump ('%(installdir)s/bin/%(target_architecture)s-guile-config', '''\ +#!/bin/sh +[ "$1" == "--version" ] && echo "%(target_architecture)s-guile-config - Guile version $GUILE" +[ "$1" == "compile" ] && echo "-I%(systemdir)s/usr/include" +[ "$1" == "link" ] && echo "-L%(systemdir)s/usr/lib -lguile -lgmp" +exit 0 +''') + os.chmod ('%(installdir)s/bin/%(target_architecture)s-guile-config', 0755) + class LilyPond (gub.Target_package): def configure (self): @@ -117,11 +122,13 @@ gub.Target_package.configure (self) 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) - # this for mingw-3.7 only, but mingw-3.8 does not link - # guile.exe - str += ''' + def config_cache_overrides (self, str): + if self.settings.platform == 'mingw': + str = re.sub ('ac_cv_func_select=yes','ac_cv_func_select=no', str) + if 0: + # this for mingw-3.7 only, but mingw-3.8 does not link + # guile.exe + str += ''' # gettext does not include winsock2.h -- do not feel like patching right now # but in mingw only if winsock2.h ac_cv_func_select=${ac_cv_func_select=no} @@ -130,7 +137,7 @@ jm_cv_func_mbrtowc=${jm_cv_func_mbrtowc=no} ''' return str - + def configure_command (self): cmd = gub.Target_package.configure_command (self) \ + ' --disable-csharp' @@ -139,17 +146,31 @@ cmd = re.sub ('--config-cache ', '', cmd) return cmd + def configure (self): + self.system ('''cd %(srcdir)s && libtoolize --force --copy''') + gub.Target_package.configure (self) + class Libiconv (gub.Target_package): pass class Glib (gub.Target_package): - def configure_cache_overrides (self, str): + def config_cache_overrides (self, str): return str + ''' glib_cv_stack_grows=${glib_cv_stack_grows=no} ''' class Pango (gub.Target_package): - pass + def configure_command (self): + return gub.Target_package.configure_command (self) \ + + gub.join_lines (''' +--without-x +--without-cairo +''') + + def configure (self): + gub.Target_package.configure (self) + if self.settings.platform.startswith ('mingw'): + self.system ('''cp $HOME/installers/windows/bin/%(target_architecture)s-libtool %(builddir)s/libtool''') class Freetype (gub.Target_package): def configure (self): @@ -185,7 +206,7 @@ --exec-prefix=%(systemdir)s/usr "''') - if self.settings.platform == 'mingw': + if self.settings.platform.startswith ('mingw'): cmd += gub.join_lines (''' --with-default-fonts=@WINDIR@\\fonts\\ --with-add-fonts=@INSTDIR@\\usr\\share\\gs\\fonts @@ -203,7 +224,7 @@ --exec-prefix=%(installdir)s \ '''}) gub.Package.configure (self) - if self.settings.platform == 'mingw': + if self.settings.platform.startswith ('mingw'): self.dump ('%(builddir)s/config.h', ''' #define sleep(x) _sleep (x) ''', mode='a') @@ -250,6 +271,7 @@ #Freetype (settings).with (version='2.1.9', mirror=download.freetype), #Expat (settings).with (version='1.95.8', mirror=download.sf), #Fontconfig (settings).with (version='2.3.92', mirror=download.fontconfig), +#Gettext (settings).with (version='0.14.5'), def get_packages (settings, platform): packages = { @@ -261,24 +283,22 @@ Fontconfig (settings).with (version='2.3.2', mirror=download.fontconfig), ), 'mingw': ( - # FIXME: mingw 3.7/3.8 is a system issue, how to enforce? - Mingw (settings).with (version='3.7', download=gub.Package.skip), -# Mingw (settings).with (version='3.8', download=gub.Package.skip), Libtool (settings).with (version='1.5.20'), Zlib (settings).with (version='1.2.2-1', mirror=download.lp, format='bz2'), -# FIXME: gettext-0.14.5 does not link with mingw-3.7 -# Gettext (settings).with (version='0.14.5'), Gettext (settings).with (version='0.14.1-1', mirror=download.lp, format='bz2'), Libiconv (settings).with (version='1.9.2'), Freetype (settings).with (version='2.1.7-1', mirror=download.lp, format='bz2'), Expat (settings).with (version='1.95.8-1', mirror=download.lp, format='bz2'), Fontconfig (settings).with (version='2.3.2-1', mirror=download.lp, format='bz2'), Gmp (settings).with (version='4.1.4'), - Regex (settings).with (version='2.3.90-1', mirror=download.lp, format='bz2'), Guile (settings).with (version='1.7.2-3', mirror=download.lp, format='bz2'), Glib (settings).with (version='2.8.4', mirror=download.gtk), Pango (settings).with (version='1.10.1', mirror=download.gtk), + Python (settings).with (version='2.4.2-1', mirror=download.lp, format='bz2'), +# Python (settings).with (version='2.4.2', mirror=download.python), + Gs (settings).with (version='8.15-1', mirror=download.lp, format='bz2'), LilyPond (settings).with (mirror=cvs.gnu, download=gub.Package.cvs), + LilyPad (settings).with (version='0.0.7-1', mirror=download.lp, format='bz2'), ), }
--- a/specs/gub.py Sun Nov 27 10:51:53 2005 +0100 +++ b/specs/gub.py Sun Nov 27 19:53:36 2005 +0100 @@ -1,6 +1,7 @@ import cross import cvs import download as dl +import glob import os import re import subprocess @@ -236,6 +237,27 @@ def install (self): self.system ('cd %(builddir)s && %(install_command)s') + if self.settings.platform.startswith ('mingw'): + self.libtool_la_fixups () + + def libtool_la_fixups (self): + dll_name = 'lib' + for i in glob.glob ('%(installdir)s/lib/*.la' \ + % self.package_dict ()): + base = os.path.basename (i)[3:-3] + self.file_sub (''' *-L *[^"' ][^"' ]*''', '', i) + self.file_sub ('''( |=|')(/[^ ]*usr/lib/lib)([^ ']*)\.(a|la|so)[^ ']*''', '\\1-l\\3', i) + # '" + self.file_sub ('library_names=.*', + "library_names='lib%(base)s.dll.a'", + i, locals ()) + # we don't have sover +# self.file_sub ('^dlname=.*', +# """dlname='../bin/%(dll_prefix)%(base)s-%(sover)s.dll'""", +# i, locals ()) + self.file_sub ('^old_library=.*', + """old_library='lib%(base)s.a'""", + i, locals ()) def compile_command (self): return 'make' @@ -306,7 +328,7 @@ --libdir=/usr/lib ''') - def configure_cache_overrides (self, str): + def config_cache_overrides (self, str): return str def installdir (self): @@ -338,7 +360,7 @@ cache = open (cache_fn, 'w') str = (cross.cross_config_cache['all'] + cross.cross_config_cache[self.settings.platform]) - str = self.configure_cache_overrides (str) + str = self.config_cache_overrides (str) cache.write (str) cache.close () os.chmod (cache_fn, 0755) @@ -371,7 +393,6 @@ # 'LDFLAGS': '-L%(systemdir)s/usr/lib', # FIXME: for zlib, try adding bin 'LDFLAGS': '-L%(systemdir)s/usr/lib -L%(systemdir)s/usr/bin', - 'MINGW_RUNTIME_DIR': self.settings.runtimedir, 'NM': '%(target_architecture)s-nm', 'PKG_CONFIG_PATH': '%(systemdir)s/usr/lib/pkgconfig', 'PKG_CONFIG': '''/usr/bin/pkg-config \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/specs/mingw.py Sun Nov 27 19:53:36 2005 +0100 @@ -0,0 +1,43 @@ +import download +import gub +import os +import re + +# FIXME: compile using mingw-runtime-src ? +class Mingw_runtime (gub.Target_package): + def set_download (self, mirror=download.gnu, format='gz', download=gub.Target_package.wget): + gub.Target_package.set_download (self, mirror, format, download) + self.url = re.sub ('mingw-runtime/', 'mingw/', self.url) + gub.Target_package.wget (self) + + def untar (self): + self.system ("rm -rf %(srcdir)s %(builddir)s") + self.system ('mkdir -p %(srcdir)s/root') + file = self.settings.downloaddir + '/' + self.file_name () + flags = '-zxf' + cmd = 'tar %(flags)s %(file)s -C %(srcdir)s/root' + self.system (cmd, locals ()) + + self.dump ('%(srcdir)s/configure', ''' +cat > Makefile <<EOF +default: + @echo done +all: default +install: + mkdir -p %(installdir)s + tar -C %(srcdir)s/root -cf- . | tar -C %(installdir)s -xvf- + mkdir -p %(installdir)s/bin + -cp /cygwin/usr/bin/cygcheck.exe %(installdir)s/bin +EOF +''') + os.chmod ('%(srcdir)s/configure' % self.package_dict (), 0755) + + +class Regex (gub.Target_package): + pass + +def get_packages (settings): + return ( + Mingw_runtime (settings).with (version='3.9', mirror=download.sf), + Regex (settings).with (version='2.3.90-1', mirror=download.lp, format='bz2'), + )