annotate gub/specs/guile.py-1.8 @ 6512:ccc20ae889ca default tip guix

mingw::guile-2.0.7 builds.
author Jan Nieuwenhuizen <janneke@gnu.org>
date Thu, 24 Mar 2016 08:03:39 +0100
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6512
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
1 import os
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
2 #
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
3 from gub import context
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
4 from gub import misc
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
5 from gub import loggedos
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
6 from gub import octal
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
7 from gub import repository
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
8 from gub import target
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
9 from gub import tools
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
10
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
11 class Guile (target.AutoBuild):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
12 # source = 'git://git.sv.gnu.org/guile.git&branch=branch_release-1-8&revision=bba579611b3671c7e4c1515b100f01c048a07935'
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
13 source = 'http://ftp.gnu.org/pub/gnu/guile/guile-1.8.7.tar.gz'
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
14 patches = ['guile-reloc-1.8.6.patch',
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
15 'guile-cexp.patch',
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
16 'guile-1.8.6-test-use-srfi.patch',
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
17 'guile-1.8.7-doc-snarfing.patch']
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
18 dependencies = ['gettext-devel', 'gmp-devel', 'libtool', 'tools::guile']
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
19 guile_configure_flags = misc.join_lines ('''
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
20 --without-threads
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
21 --with-gnu-ld
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
22 --enable-deprecated
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
23 --enable-discouraged
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
24 --disable-error-on-warning
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
25 --enable-relocation
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
26 --enable-rpath
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
27 ''')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
28 configure_variables = (target.AutoBuild.configure_variables
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
29 + misc.join_lines ('''
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
30 CC_FOR_BUILD="
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
31 LD_PRELOAD=
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
32 C_INCLUDE_PATH=
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
33 CPPFLAGS=
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
34 LIBRARY_PATH=
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
35 PATH_SEPARATOR=':'
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
36 PATH=/usr/bin:$PATH
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
37 /usr/bin/cc
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
38 -I%(builddir)s
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
39 -I%(srcdir)s
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
40 -I%(builddir)s/libguile
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
41 -I.
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
42 -I%(srcdir)s/libguile"
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
43 '''))
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
44 # FIXME: guile runs gen_scmconfig [when not x-building also guile]
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
45 # without setting the proper LD_LIBRARY_PATH.
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
46 compile_flags_native = (' LD_PRELOAD= '
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
47 + ' LD_LIBRARY_PATH=%(tools_prefix)s/lib:${LD_LIBRARY_PATH-/foe} '
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
48 + ' cross_compiling=yes ')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
49 # FIXME: guile runs gen_scmconfig [when not x-building also guile]
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
50 # without setting the proper LD_LIBRARY_PATH.
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
51 configure_command = ('GUILE_FOR_BUILD=%(tools_prefix)s/bin/guile '
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
52 + target.AutoBuild.configure_command
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
53 + guile_configure_flags)
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
54 compile_command = ('preinstguile=%(tools_prefix)s/bin/guile '
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
55 + target.AutoBuild.compile_command)
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
56 subpackage_names = ['doc', 'devel', 'runtime', '']
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
57 @staticmethod
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
58 def version_from_VERSION (self):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
59 return self.version_from_shell_script ('GUILE-VERSION',
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
60 'GUILE_MAJOR_VERSION',
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
61 '%(GUILE_MAJOR_VERSION)s.%(GUILE_MINOR_VERSION)s.%(GUILE_MICRO_VERSION)s',
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
62 '1.8.6')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
63 def __init__ (self, settings, source):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
64 target.AutoBuild.__init__ (self, settings, source)
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
65 if isinstance (source, repository.Git):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
66 ##source.version = lambda: '1.8.6'
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
67 source.version = misc.bind_method (Guile.version_from_VERSION,
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
68 source)
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
69 self.so_version = '17'
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
70 def patch (self):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
71 self.dump ('''#!/bin/sh
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
72 exec %(tools_prefix)s/bin/guile "$@"
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
73 ''', "%(srcdir)s/pre-inst-guile.in")
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
74 #self.autopatch ()
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
75 target.AutoBuild.patch (self)
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
76 def autopatch (self):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
77 self.file_sub ([(r'AC_CONFIG_SUBDIRS\(guile-readline\)', '')],
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
78 '%(srcdir)s/configure.in')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
79 self.file_sub ([(r'guile-readline', '')],
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
80 '%(srcdir)s/Makefile.am')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
81 # Guile [doc] does not compile with dash *and* not with
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
82 # librestrict-stat.so; patch out.
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
83 if isinstance (self.source, repository.Git):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
84 self.file_sub ([(' doc ', ' ')], '%(srcdir)s/Makefile.am')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
85 self.file_sub ([('guile-readline', '')], '%(srcdir)s/Makefile.am')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
86 else:
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
87 self.file_sub ([(' doc ', ' ')], '%(srcdir)s/Makefile.in')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
88 self.file_sub ([('guile-readline', '')], '%(srcdir)s/Makefile.in')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
89 self.dump ('', '%(srcdir)s/doc/ref/version.texi')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
90 self.dump ('', '%(srcdir)s/doc/tutorial/version.texi')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
91 def compile (self):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
92 ## Ugh: broken dependencies break parallel build with make -jX
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
93 self.system ('cd %(builddir)s/libguile && make %(compile_flags_native)s gen-scmconfig guile_filter_doc_snarfage')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
94 # Remove -L %(system_root)s from `guile-config link'
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
95 self.system ('cd %(builddir)s/libguile && make %(compile_flags_native)slibpath.h')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
96 self.file_sub ([('''-L *%(system_root)s''', '-L')],
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
97 '%(builddir)s/libguile/libpath.h')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
98 target.AutoBuild.compile (self)
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
99 def install (self):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
100 # with 1.8.7: libtool: cannot install directory not ending in...
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
101 # after config.status is being re-run for building of libpath.h
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
102 self.update_libtool ()
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
103 target.AutoBuild.install (self)
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
104 majmin_version = '.'.join (self.expand ('%(version)s').split ('.')[0:2])
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
105
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
106 self.dump ("prependdir GUILE_LOAD_PATH=$INSTALLER_PREFIX/share/guile/%(majmin_version)s\n",
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
107 '%(install_prefix)s/etc/relocate/guile.reloc',
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
108 env=locals ())
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
109 version = self.expand ('%(version)s')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
110 #FIXME: c&p linux.py
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
111 self.dump ('''\
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
112 #! /bin/sh
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
113 test "$1" = "--version" && echo "%(target_architecture)s-guile-config - Guile version %(version)s"
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
114 #test "$1" = "compile" && echo "-I $%(system_prefix)s/include"
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
115 #test "$1" = "link" && echo "-L%(system_prefix)s/lib -lguile -lgmp"
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
116 #prefix=$(dirname $(dirname $0))
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
117 prefix=%(system_prefix)s
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
118 test "$1" = "compile" && echo "-I$prefix/include"
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
119 test "$1" = "link" && echo "-L$prefix/lib -lguile -lgmp"
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
120 test "$1" = "info" && test "$2" = "guileversion" && echo "%(version)s"
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
121 exit 0
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
122 ''',
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
123 '%(install_prefix)s%(cross_dir)s/bin/%(target_architecture)s-guile-config')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
124 self.chmod ('%(install_prefix)s%(cross_dir)s/bin/%(target_architecture)s-guile-config', octal.o755)
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
125 self.system ('cd %(install_prefix)s%(cross_dir)s/bin && cp -pv %(target_architecture)s-guile-config guile-config')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
126
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
127 class Guile__mingw (Guile):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
128 def __init__ (self, settings, source):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
129 Guile.__init__ (self, settings, source)
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
130 # Configure (compile) without -mwindows for console
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
131 self.target_gcc_flags = '-mms-bitfields'
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
132 dependencies = Guile.dependencies + ['regex-devel']
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
133 configure_flags = (Guile.configure_flags
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
134 + ' --without-threads')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
135 configure_variables = (Guile.configure_variables
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
136 .replace ("':'", "';'")
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
137 + misc.join_lines ('''
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
138 CFLAGS='-O2 -DHAVE_CONFIG_H=1 -I%(builddir)s'
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
139 '''))
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
140 config_cache_overrides = Guile.config_cache_overrides + '''
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
141 scm_cv_struct_timespec=${scm_cv_struct_timespec=no}
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
142 guile_cv_func_usleep_declared=${guile_cv_func_usleep_declared=yes}
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
143 guile_cv_exeext=${guile_cv_exeext=}
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
144 libltdl_cv_sys_search_path=${libltdl_cv_sys_search_path="%(system_prefix)s/lib"}
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
145 '''
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
146 def configure (self):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
147 self.file_sub ([('''^#(LIBOBJS=".*fileblocks.*)''', r'\1')],
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
148 '%(srcdir)s/configure')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
149 Guile.configure (self)
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
150 for libtool in ['%(builddir)s/libtool']: # readline patched-out: '%(builddir)s/guile-readline/libtool']:
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
151 self.file_sub ([('-mwindows', '')], libtool)
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
152 def compile (self):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
153 ## Why the !?#@$ is .EXE only for guile_filter_doc_snarfage?
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
154 self.system ('''cd %(builddir)s/libguile &&make %(compile_flags_native)sgen-scmconfig guile_filter_doc_snarfage.exe''')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
155 self.system ('cd %(builddir)s/libguile && cp guile_filter_doc_snarfage.exe guile_filter_doc_snarfage')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
156 Guile.compile (self)
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
157 def install (self):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
158 Guile.install (self)
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
159 # dlopen-able .la files go in BIN dir, BIN OR LIB package
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
160 self.system ('''mv %(install_prefix)s/lib/lib*[0-9].la %(install_prefix)s/bin''')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
161 self.system ('''cd %(install_prefix)s/bin && cp guile.exe guile-windows.exe''')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
162
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
163 class Guile__linux (Guile):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
164 compile_command = ('export LD_LIBRARY_PATH=%(builddir)s/libguile/.libs:$LD_LIBRARY_PATH;'
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
165 + Guile.compile_command)
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
166
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
167 class Guile__linux__ppc (Guile__linux):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
168 config_cache_overrides = Guile__linux.config_cache_overrides + '''
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
169 guile_cv_have_libc_stack_end=no
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
170 '''
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
171
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
172 class Guile__freebsd (Guile):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
173 config_cache_overrides = Guile.config_cache_overrides + '''
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
174 ac_cv_type_socklen_t=yes
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
175 guile_cv_use_csqrt="no"
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
176 '''
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
177
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
178 class Guile__darwin (Guile):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
179 patches = Guile.patches + ['guile-1.8.6-pthreads-cross.patch']
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
180 def install (self):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
181 Guile.install (self)
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
182 def dylib_link (logger, fname):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
183 directory = os.path.split (fname)[0]
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
184 src = os.path.basename (fname)
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
185 dst = os.path.splitext (os.path.basename (fname))[0] + '.so'
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
186 loggedos.symlink (logger, src, os.path.join (directory, dst))
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
187 self.map_locate (dylib_link,
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
188 self.expand ('%(install_prefix)s/lib/'),
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
189 'libguile-srfi*.dylib')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
190 def configure (self):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
191 self.file_sub ([('guile-readline', '')],
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
192 '%(srcdir)s/Makefile.in')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
193 Guile.configure (self)
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
194
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
195 class Guile__linux__x86 (Guile):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
196 patches = Guile.patches + ['guile-1.8.6-pthreads-cross.patch']
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
197
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
198 class Guile__tools (tools.AutoBuild, Guile):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
199 dependencies = (Guile.dependencies
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
200 + ['autoconf', 'automake', 'gettext', 'flex', 'libtool'])
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
201 make_flags = Guile.make_flags
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
202 # Doing make gen-scmconfig, guile starts a configure recheck:
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
203 # cd .. && make am--refresh
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
204 # /bin/sh ./config.status --recheck
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
205 # leading to
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
206 # checking size of char... 0
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
207 # Great idea, let's re-check! You never know... :-)
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
208 compile_flags_native = misc.join_lines ('''
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
209 LD_LIBRARY_PATH=%(system_prefix)s/lib
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
210 CFLAGS='-O2 -I%(system_prefix)s/include'
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
211 LDFLAGS='-L%(system_prefix)s/lib %(rpath)s'
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
212 ''')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
213 configure_command = ('LD_LIBRARY_PATH=%(system_prefix)s/lib:${LD_LIBRARY_PATH-/foe} '
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
214 + tools.AutoBuild.configure_command
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
215 + Guile.guile_configure_flags)
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
216 # FIXME: when configuring, guile runs binaries linked against
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
217 # libltdl.
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
218 # FIXME: when not x-building, guile runs gen_scmconfig, guile without
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
219 # setting the proper LD_LIBRARY_PATH.
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
220 compile_command = ('export LD_LIBRARY_PATH=%(builddir)s/libguile/.libs:%(system_prefix)s/lib:${LD_LIBRARY_PATH-/foe};'
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
221 + Guile.compile_command)
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
222 def patch (self):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
223 tools.AutoBuild.patch (self)
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
224 #Guile.autopatch (self)
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
225 def install (self):
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
226 tools.AutoBuild.install (self)
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
227 self.system ('cd %(install_root)s%(packaging_suffix_dir)s%(prefix_dir)s/bin && cp guile guile-1.8')
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
228 self.file_sub ([('[(]string-join other-flags[)]', '(string-join (filter (lambda (x) (not (equal? x "-L/usr/lib"))) other-flags))')],
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
229 '%(install_root)s%(packaging_suffix_dir)s%(prefix_dir)s/bin/guile-config',
ccc20ae889ca mingw::guile-2.0.7 builds.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
230 must_succeed=True)