changeset 5394:d6ed36e3702c

/GUB: bootstrap [fake-]root- [fake-]chrootable root. Notes: http://github.com/janneke/gub/commit/ba4eca63fad7bdcb9b89c1f5149bbf09fc5300de for i in librestrict cross/binutils dash cross/gcc-core linux-headers glibc-core cross/gcc glibc bash coreutils tar make sed libtool fakeroot fakechroot makedev; do gub -x --fresh --keep $i || break; done fakechroot chroot x86_64-linux /usr/bin/bash fakeroot -s fakeroot.save fakechroot chroot x86_64-linux /usr/bin/bash fakechroot chroot . /x86_64-linux/usr/bin/bash bash-3.2$ bash -x ldd /bin/x86_64-linux-gcc bash: /home/janneke/vc/gub/GUB/./lib/libc.so.6: version `GLIBC_2.4' not found (required by /usr/lib/fakechroot/libfakechroot.so) ln -s /GUB/x86_64-linux/usr . ln -s /GUB/x86_64-linux/usr/bin . ln -s /GUB/x86_64-linux/lib64 . ln -s /GUB/x86_64-linux/dev . ln -s /GUB/x86_64-linux/etc . mkdir -p /GUB/lib ln -sf /GUB/x86_64-linux/usr/bin/true /GUB/lib/ld-linux.so.2 fakeroot -s fakeroot.save fakechroot chroot /GUB fakechroot chroot /GUB cd /dev && ./MAKEDEV standard bash-3.2$ cp -pv /bin/true /lib/ld-linux.so.2 `/bin/true' -> `/lib/ld-linux.so.2' bash-3.2$ ldd /bin/x86_64-linux-gcc linux-vdso.so.1 => (0x00007fffdc7fe000) libfakechroot.so => /usr/lib/fakechroot/libfakechroot.so (0x00007f66d41fa000) libc.so.6 => /lib/libc.so.6 (0x00007f66d3e88000) libdl.so.2 => /lib/libdl.so.2 (0x00007f66d3c84000) /lib64/ld-linux-x86-64.so.2 (0x00007f66d4409000) /GUB/x86_64-linux/usr/bin/fakechroot chroot /GUB /GUB/x86_64-linux/usr/bin/fakeroot -s fakeroot.save /GUB/x86_64-linux/usr/bin/fakechroot chroot /GUB bash-3.2# ldd /bin/x86_64-linux-gcc linux-vdso.so.1 => (0x00007fffd39ff000) libfakechroot.so => /GUB/x86_64-linux/usr/lib/fakechroot/libfakechroot.so (0x00007fa0cb436000) libfakeroot.so => /GUB/x86_64-linux/usr/lib/libfakeroot.so (0x00007fa0cb22e000) libc.so.6 => /lib/libc.so.6 (0x00007fa0caebc000) libdl.so.2 => /lib/libdl.so.2 (0x00007fa0cacb8000) /lib64/ld-linux-x86-64.so.2 (0x00007fa0cb646000)
author Jan Nieuwenhuizen <janneke@gnu.org>
date Thu, 23 Jul 2009 12:56:51 +0200
parents a9e728eddb12
children 2329bfeb44c9
files gub/gup.py gub/specs/fakechroot.py gub/specs/fakeroot-ng.py gub/specs/fakeroot.py gub/specs/findutils.py gub/specs/make.py gub/specs/makedev.py gub/specs/sed.py gub/specs/tar.py patches/fakeroot-ng-linux-2.4.patch patches/fakeroot-ng-srcdir.patch
diffstat 11 files changed, 439 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/gub/gup.py	Thu Jul 23 10:40:30 2009 +0200
+++ b/gub/gup.py	Thu Jul 23 12:56:51 2009 +0200
@@ -142,7 +142,8 @@
                              ),],
                            '%(root)s/%(file)s' % locals (),
                            must_succeed=('tools/root' not in self.root
-                                         and 'cross' not in dir))
+                                         and 'cross' not in dir
+                                         and '/GUB' not in self.root))
         
     def pkgconfig_pc_fixup (self, root, file, prefix_dir):
         # avoid using libs from build platform, by adding
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gub/specs/fakechroot.py	Thu Jul 23 12:56:51 2009 +0200
@@ -0,0 +1,13 @@
+from gub import tools
+
+class Fakechroot__tools (tools.AutoBuild):
+    source = 'http://ftp.debian.nl/debian/pool/main/f/fakechroot/fakechroot_2.9.orig.tar.gz'
+    def _get_build_dependencies (self):
+        return ['libtool']
+    def configure_command (self):
+        return (tools.AutoBuild.configure_command (self)
+                + ''' LDFLAGS='-L%(system_prefix)s/lib -ldl' '''
+                + ' CC=%(system_prefix)s/bin/%(toolchain_prefix)sgcc'
+                + ' CCLD=%(system_prefix)s/bin/%(toolchain_prefix)sgcc'
+                + ' CXX=%(system_prefix)s/bin/%(toolchain_prefix)sg++'
+                )
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gub/specs/fakeroot-ng.py	Thu Jul 23 12:56:51 2009 +0200
@@ -0,0 +1,14 @@
+from gub import tools
+
+class Fakeroot_ng__tools (tools.AutoBuild):
+    source = 'http://ftp.debian.nl/debian/pool/main/f/fakeroot-ng/fakeroot-ng_0.16.orig.tar.gz'
+    patches = ['fakeroot-ng-srcdir.patch', 'fakeroot-ng-linux-2.4.patch']
+    def configure_command (self):
+        return (tools.AutoBuild.configure_command (self)
+                + ' CFLAGS=-I%(builddir)s'
+                + ' CC=%(system_prefix)s/bin/%(toolchain_prefix)sgcc'
+                + ' CXX=%(system_prefix)s/bin/%(toolchain_prefix)sg++'
+                )
+    def configure (self):
+        self.shadow ()
+        tools.AutoBuild.configure (self)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gub/specs/fakeroot.py	Thu Jul 23 12:56:51 2009 +0200
@@ -0,0 +1,13 @@
+from gub import tools
+
+class Fakeroot__tools (tools.AutoBuild):
+    source = 'http://ftp.debian.nl/debian/pool/main/f/fakeroot/fakeroot_1.5.10.tar.gz'
+    def _get_build_dependencies (self):
+        return ['libtool']
+    def configure_command (self):
+        return (tools.AutoBuild.configure_command (self)
+                + ''' LDFLAGS='-L%(system_prefix)s/lib -ldl' '''
+                + ' CC=%(system_prefix)s/bin/%(toolchain_prefix)sgcc'
+                + ' CCLD=%(system_prefix)s/bin/%(toolchain_prefix)sgcc'
+                + ' CXX=%(system_prefix)s/bin/%(toolchain_prefix)sg++'
+                )
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gub/specs/findutils.py	Thu Jul 23 12:56:51 2009 +0200
@@ -0,0 +1,4 @@
+from gub import target as tools
+
+class Findutils__tools (tools.AutoBuild):
+    source = 'http://ftp.gnu.org/pub/gnu/findutils/findutils-4.4.2.tar.gz'
--- a/gub/specs/make.py	Thu Jul 23 10:40:30 2009 +0200
+++ b/gub/specs/make.py	Thu Jul 23 12:56:51 2009 +0200
@@ -1,5 +1,6 @@
 from gub import misc
-from gub import tools
+#from gub import tools
+from gub import target as tools
 
 class Make_make__tools (tools.AutoBuild):
     source = 'ftp://ftp.gnu.org/pub/gnu/make/make-3.81.tar.gz'
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gub/specs/makedev.py	Thu Jul 23 12:56:51 2009 +0200
@@ -0,0 +1,7 @@
+from gub import tools
+
+class Makedev__tools (tools.MakeBuild):
+    source = 'http://ftp.debian.nl/debian/pool/main/m/makedev/makedev_3.3.8.2.orig.tar.gz'
+    def install_command (self):
+        return '''make %(makeflags)s DESTDIR=%(install_root)s/%(system_root)s install'''
+
--- a/gub/specs/sed.py	Thu Jul 23 10:40:30 2009 +0200
+++ b/gub/specs/sed.py	Thu Jul 23 12:56:51 2009 +0200
@@ -1,4 +1,4 @@
-from gub import tools
+from gub import target as tools
 
 class Sed__tools (tools.AutoBuild):
     source = 'ftp://ftp.gnu.org/pub/gnu/sed/sed-4.1.5.tar.gz'
--- a/gub/specs/tar.py	Thu Jul 23 10:40:30 2009 +0200
+++ b/gub/specs/tar.py	Thu Jul 23 12:56:51 2009 +0200
@@ -1,4 +1,4 @@
-from gub import tools
+from gub import target as tools
 
 class Tar__tools (tools.AutoBuild):
     source = 'ftp://ftp.gnu.org/pub/gnu/tar/tar-1.20.tar.gz'
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/fakeroot-ng-linux-2.4.patch	Thu Jul 23 12:56:51 2009 +0200
@@ -0,0 +1,367 @@
+--- fakeroot-ng-0.16.orig/arch/linux/x86_64/platform.c.orig	2009-07-23 11:02:30.418385068 +0200
++++ fakeroot-ng-0.16.orig/arch/linux/x86_64/platform.c	2009-07-23 11:06:33.586021194 +0200
+@@ -224,8 +224,16 @@ static int syscall_32_to_64[]={
+     __NR_rt_sigtimedwait,	/* 177 */
+     __NR_rt_sigqueueinfo,	/* 178 */
+     __NR_rt_sigsuspend,		/* 179 */
++#ifdef LINUX_2_5
+     __NR_pread64,		/* 180 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_pwrite64,		/* 181 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
+     __NR_chown,		        /* 182 */
+     __NR_getcwd,		/* 183 */
+     __NR_capget,		/* 184 */
+@@ -294,74 +302,302 @@ static int syscall_32_to_64[]={
+     __NR_io_getevents,		/* 247 */
+     __NR_io_submit,		/* 248 */
+     __NR_io_cancel,		/* 249 */
++#ifdef LINUX_2_5
+     __NR_fadvise64,		/* 250 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
+     -1,                         /* 251 is available for reuse (was briefly sys_set_zone_reclaim) */
++#ifdef LINUX_2_5
+     __NR_exit_group,		/* 252 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
+     __NR_lookup_dcookie,	/* 253 */
+     __NR_epoll_create,		/* 254 */
+     __NR_epoll_ctl,		/* 255 */
+     __NR_epoll_wait,		/* 256 */
+     __NR_remap_file_pages,	/* 257 */
++#ifdef LINUX_2_5
+     __NR_set_tid_address,	/* 258 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_timer_create,		/* 259 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_timer_settime,		/* 260 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_timer_gettime,		/* 261 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_timer_getoverrun,	/* 262 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_timer_delete,		/* 263 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_clock_settime,		/* 264 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_clock_gettime,		/* 265 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_clock_getres,		/* 266 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_clock_nanosleep,	/* 267 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
+     -1, /* statfs64,		 268 */
+     -1, /* fstatfs64,		269 */
++#ifdef LINUX_2_5
+     __NR_tgkill,		/* 270 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_utimes,		/* 271 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
+     -1, /* fadvise64_64,		 272 */
++#ifdef LINUX_2_5
+     __NR_vserver,		/* 273 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_mbind,	        	/* 274 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_get_mempolicy,		/* 275 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_set_mempolicy,		/* 276 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_mq_open,		/* 277 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_mq_unlink,		/* 278 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_mq_timedsend,		/* 279 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_mq_timedreceive,	/* 280 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_mq_notify,		/* 281 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_mq_getsetattr,		/* 282 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_kexec_load,		/* 283 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_waitid,		/* 284 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
+     -1,                         /* __NR_sys_setaltroot	285 */
++#ifdef LINUX_2_5
+     __NR_add_key,		/* 286 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_request_key,		/* 287 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_keyctl,		/* 288 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_ioprio_set,		/* 289 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_ioprio_get,		/* 290 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_inotify_init,		/* 291 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_inotify_add_watch,	/* 292 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_inotify_rm_watch,	/* 293 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_migrate_pages,		/* 294 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_openat,		/* 295 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_mkdirat,		/* 296 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_mknodat,		/* 297 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_fchownat,		/* 298 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_futimesat,		/* 299 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
+     SYS_fstatat64,		/* 300 */
++#ifdef LINUX_2_5
+     __NR_unlinkat,		/* 301 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_renameat,		/* 302 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_linkat,		/* 303 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_symlinkat,		/* 304 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_readlinkat,		/* 305 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_fchmodat,		/* 306 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_faccessat,		/* 307 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_pselect6,		/* 308 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_ppoll,	        	/* 309 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_unshare,		/* 310 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_set_robust_list,	/* 311 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_get_robust_list,	/* 312 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_splice,		/* 313 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_sync_file_range,	/* 314 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_tee,		        /* 315 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_vmsplice,		/* 316 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
++#ifdef LINUX_2_5
+     __NR_move_pages,		/* 317 */
++#else /* !LINUX_2_5 */
++    -1,
++#endif /* !LINUX_2_5 */
+     -1, /* getcpu,		 318 */
+     -1, /* epoll_pwait,		 319 */
+     -1, /* utimensat,		320 */
+--- fakeroot-ng-0.16.orig/arch/linux/os.c~	2009-06-23 19:25:42.000000000 +0200
++++ fakeroot-ng-0.16.orig/arch/linux/os.c	2009-07-23 11:15:26.034467872 +0200
+@@ -36,6 +36,30 @@
+ #include "../platform.h"
+ #include "os.h"
+ 
++#ifndef PTRACE_GETEVENTMSG
++#define PTRACE_GETEVENTMSG 0x4201
++#endif
++
++#ifndef PTRACE_GETSIGINFO
++#define PTRACE_GETSIGINFO 0x4202
++#endif
++
++#ifndef PTRACE_SETSIGINFO
++#define PTRACE_SETSIGINFO 0x4203
++#endif
++
++#ifndef PTRACE_EVENT_FORK
++#define PTRACE_EVENT_FORK 1
++#endif
++
++#ifndef PTRACE_EVENT_VFORK
++#define PTRACE_EVENT_VFORK 2
++#endif
++
++#ifndef PTRACE_EVENT_CLONE
++#define PTRACE_EVENT_CLONE 3
++#endif
++
+ int ptlib_linux_continue( int request, pid_t pid, int signal )
+ {
+     return ptrace( request, pid, 0, signal );
+--- fakeroot-ng-0.16.orig/parent.cpp~	2009-06-23 19:25:42.000000000 +0200
++++ fakeroot-ng-0.16.orig/parent.cpp	2009-07-23 11:17:09.759327981 +0200
+@@ -205,7 +205,9 @@ static void init_handlers()
+     syscalls[SYS_faccessat]=syscall_hook(sys_generic_chroot_at_link4, "faccessat");
+ #endif
+     syscalls[SYS_utime]=syscall_hook(sys_generic_chroot_support_param1, "utime");
++#if defined(SYS_utimes)
+     syscalls[SYS_utimes]=syscall_hook(sys_generic_chroot_support_param1, "utimes");
++#endif
+ #ifdef SYS_setxattr
+     syscalls[SYS_setxattr]=syscall_hook(sys_generic_chroot_support_param1, "setxattr");
+     syscalls[SYS_getxattr]=syscall_hook(sys_generic_chroot_support_param1, "getxattr");
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/fakeroot-ng-srcdir.patch	Thu Jul 23 12:56:51 2009 +0200
@@ -0,0 +1,15 @@
+--- fakeroot-ng-0.16.orig/arch/linux/Makefile.template.in~	2008-08-20 11:19:40.000000000 +0200
++++ fakeroot-ng-0.16.orig/arch/linux/Makefile.template.in	2009-07-23 10:25:30.595354639 +0200
+@@ -19,10 +19,8 @@ RANLIB = @RANLIB@
+ target_cpu = @target_cpu@
+ target_os = @target_os@
+ 
+-# Because we are extracted by configure one directory above the one from which we are included,
+-# manually add a "directory up"
+-top_builddir = ../@top_builddir@
+-top_srcdir = ../@top_srcdir@
++top_builddir = @top_builddir@
++top_srcdir = @top_srcdir@
+ 
+ %.lo: %.c $(DEPDIR)/stamp
+ 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) \